Handbook Questoes Banco de Dados

122
Questões comentadas Bancos de dados para concursos

Transcript of Handbook Questoes Banco de Dados

  • Questes comentadas

    Bancos de dadospara concursos

  • 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 agrupainformaes utilizadas para um mesmo m, ou melhor, podemos entender um banco de dadoscomo 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 aestrutura dessas informaes e as operaes que nelas possam ser realizadas.

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

    Bons estudos,

    Grupo Handbook de TI

    Pgina 1 de 120www.handbookdeti.com.br

    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 BibliotecaNacional. Todos os direitos autorais referentes a esta obra so reservados exclusivamente aosseus 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 deforma indiscriminada atravs de qualquer meio, inclusive na Internet, extrapolam os limites dacolaborao. 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 umaproduo independente e contamos com voc para mant-la sempre viva.

    Grupo Handbook de TI

    Pgina 2 de 120www.handbookdeti.com.br

    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 concurseirosde 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 [email protected]

    Twitter do Handbook de TI

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

    Pgina 3 de 120www.handbookdeti.com.br

    http://[email protected]://twitter.com/handbookdetihttp://twitter.com/handbookdetiwww.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: CESGRANRIOInstituio: BNDESCargo: Analista de SuporteAno: 2008Questo: 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 usuriodeseje.

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

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

    (e). tem seus dados organizados segundo um esquema hierrquico, para maior ecinciano 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, incluindocada 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 dastabelas, 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, queindicam 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 doSGBD. No caso dos bancos de dados relacionais, os dicionrios de dados, geralmente, soimplementados como tabelas. A forma como essas tabelas so indexadas e organizadas emdisco fator fundamental para o desempenho do banco de dados, pois elas so acessadas namaior parte das operaes realizadas pelos SGBD.

    Pgina 4 de 120www.handbookdeti.com.br

    www.handbookdeti.com.br

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

    2. Assuntos relacionados: Banco de Dados, Oracle,Banca: FCCInstituio: TRT 15a RegioCargo: Analista Judicirio - Tecnologia da InformaoAno: 2009Questo: 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 arquivosfsicos 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 buercircular 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 bancode dados. Se houver alguma falha, como o corrompimento de um datale, as informaespodem 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 arquivoredo log le atual ca cheio o banco de dados passa para o prximo arquivo redo. Quandoo 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. Aquantidade de arquivos de redo utilizados e a frequncia do processo de arquivamento devemser denidas de acordo com as caractersticas do banco de dados, de modo que dados nosejam 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 elesque contm a identicao dos arquivos de log e de dados, o nome do banco e informaes desincronismo entre os arquivos que o compe. Como regra geral, cada banco de dados Oraclepossui um nico control le associado. No entanto, o Oracle possui um recurso chamadomultiplexed control les, que permite o armazenamento de mltiplas cpias do control le

    Pgina 5 de 120www.handbookdeti.com.br

    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 trsarquivos, 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 colocaruma instncia do Oracle no ar, por exemplo, quantidade de memria alocada para oSGA, 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, blocoscorrompidos, deadlock etc.), tarefas administrativas alm dos valores de parmetros deinicializao no momento em que a instncia colocada no ar;

    Trace File: Arquivo de log onde so armazenadas informaes detalhadas sobre osproblemas ocorridos. A utilizao desse arquivo opcional.

    Pgina 6 de 120www.handbookdeti.com.br

    www.handbookdeti.com.br

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

    3. Assuntos relacionados: Banco de Dados, Oracle,Banca: FCCInstituio: TRT 15a RegioCargo: Analista Judicirio - Tecnologia da InformaoAno: 2009Questo: 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 paraconter ou referenciar os seus dados. importante lembrar que, boa parte, mas nem todosSGBDs, 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 nicotablespace podem conter objetos de diferentes schemas. Portanto, a resposta da questo aalternativa B. Agora, vamos aproveitar a questo para rever algumas denies importantessobre 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. Cadatabela formada por um conjunto de colunas, cada um uma delas com um nome (ID,FULLNAME, BIRTHDAY etc) e um tipo de dado (NUMBER, VARCHAR2, DATEetc) associados. Uma linha (row) da tabela formada pelas informaes das colunas ecorresponde 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 colunaa conter um valor em todas as linhas.

    Views

    As views (vises) so apresentaes customizadas de dados de uma ou mais tabelas ououtras views. Um view pode ser considerada uma query de armazenamento. De modogeral, as views no contm dados, sendo os dados por ela apresentados derivados daschamadas base tables (tabelas base). Existem tipos especiais de views, as materia-lized views, que contm dados de fato. Esse tipo de view geralmente utilizada paraaumentar 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 120www.handbookdeti.com.br

    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 paraaceitar inseres, atualizaes e excluses. Nesses casos, todas as operaes efetuadasna view afetam tambm as base tables.

    Index

    Os indexes (ndices) so estruturas de dados utilizadas para melhorar o desempenhodas operaes sobre uma tabela do banco de dados. Os ndices podem ser criados combase em uma ou mais colunas da tabela, sendo essa denio baseada nas consultasque o SGBD ter que responder com ecincia.

    No Oracle, os ndices mais populares so baseados em rvores B (b-trees) e nos mapasde bits (bitmaps), sendo que a melhor escolha depende do tipo de dado a ser indexadoe, 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 emhttp://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 ea 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 utilizadosindiscriminadamente, mas apenas nos casos em que os seus benefcios superem seusaspectos negativos.

    Cluster

    Os clusters (agrupamentos) so grupos de duas ou mais tabelas que so sicamentearmazenados prximas umas das outras, de modo a proporcionar maior desempenhodas operaes que referenciem ambas as tabelas. Assim como os ndices, os clustersno 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 daaplicao.

    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 dosistema 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 aousurio. Alguns exemplos de parmetros (cujos nomes so auto-explicativos) que podem sercontrolados atravs de prole so mostrados a seguir.

    Pgina 8 de 120www.handbookdeti.com.br

    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 120www.handbookdeti.com.br

    www.handbookdeti.com.br

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

    4. Assuntos relacionados: Banco de Dados, Oracle,Banca: FCCInstituio: TRT 15a RegioCargo: Analista Judicirio - Tecnologia da InformaoAno: 2009Questo: 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 eprocessos 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 oDBBC, 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 mltiplosprocessos user (shared server process). Os processos server compartilhados s so possveisem 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 servercompartilhados, diversos processos server podem ser atendidos por um mesmo processo ser-ver.

    J os os processo em background no realizam nenhuma comunicao com os processosuser. Os processos em backgound so responsveis pelas tarefas de apoio para garantir ofuncionamento do sistema de gerenciamento de banco de dados como um todo. Um sistemaOracle tem inmeros processos em background, porm apenas 4 deles so obrigatrios. Soeles:

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

    System Monitor (SMON): Realiza o processo de recuperao da instncia durante oprocesso de inicializao, limpa segmentos temporrios que no esto mais em uso, re-cupera transaes terminadas de forma anormal e realiza desfragmentao nos arquivosde dados para facilitar a alocao;

    Database Writer (DBWR): A funo principal do DBWR escreve os blocos de dadosmodicados (dirty) do DBBC para o disco. Isso feito nas seguintes situaes: (i)quando a lista de blocos modicados atinge um tamanho congurado; (ii) quando oprocesso percorre um quantidade congurada de blocos e no encontra nenhum blocolivre; (iii) quando ocorre um timeout; (iv) quando ocorre um checkpoint ou (v) quando

    Pgina 10 de 120www.handbookdeti.com.br

    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 degarantir que as alteraes feitas em buer sero persistidas, tambm gerencia o espaoem buer para melhorar o desempenho do banco;

    Log Writer (LGWR): o responsvel por copiar as informaes do redo log buer parao o redo log le (arquivo de log com a mesma estrutura do redo log buer). O LGWRtambm responsvel por atualizar os headers dos arquivos de dados quando ocorreum checkpoint. O LGWR disparado nas seguintes situaes: (i) quando ocorre umcommit; (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 sode instalao e uso opcionais. Os mais importantes so os seguintes:

    CKPT: Atualiza os headers dos arquivos de dados quando ocorre um checkpoint. Autilizao desse processo pode ajudar a melhorar o desempenho do sistema permitindoque 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 umdispositivos 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 cpiasso 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 utilizandoprocessos server compartilhados. necessrio um dispatcher para cada protocolo decomunicao utilizado.

    Pgina 11 de 120www.handbookdeti.com.br

    www.handbookdeti.com.br

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

    5. Assuntos relacionados: Oracle, SQL,Banca: FCCInstituio: TRT 16a RegioCargo: Analista Judicirio - Tecnologia da InformaoAno: 2009Questo: 25

    Os programas PL/SQL so constitudos por blocos que executam operaes lgicas e cadabloco 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 obanco de dados, mas tambm em diversas ferramentas Oracle.

    Os blocos de PL/SQL so processados por um uma PL/SQL Engine, que ltra os comandosSQL 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 seodo 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 sopermitidas em um programa PL/SQL so SELECT, INSERT, UPDATE, DELETE e vrias

    Pgina 12 de 120www.handbookdeti.com.br

    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/SQLno caso sensitivo, ou seja, no diferencia maisculas de minsculas.

    Instrues de denio de dados como CREATE, DROP ou ALTER no so permitidas. Aseo 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 umanica 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 podeser 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 programascomplexos que envolvam acesso ao banco de dados Oracle.

    Pgina 13 de 120www.handbookdeti.com.br

    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, RollingForward,Banca: FCCInstituio: TRT 18a RegioCargo: Analista Judicirio - Tecnologia da InformaoAno: 2008Questo: 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 eupdate) realizadas em uma transao. Ou seja, as alteraes de uma transao somenteso enxergadas por outras transaes de outras sesses aps um commit. Veja abaixoum 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 umrollback. Portanto, em transaes mais complexas, se utiliza alguns savepoints paramarcar pontos para os quais seja possvel realizar rollback. Dessa forma, estrategica-mente, apenas parte das alteraes da transao desfeita. Veja abaixo um exemplode 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 asalteraes 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 120www.handbookdeti.com.br

    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 queo seu estado imediatamente antes da falha seja restabelecido. Durante o funcionamentonormal de um banco de dados, todas as informaes sobre operaes so armazenadasem arquivos do tipo RedoFiles. Em situaes de falha, logo aps o banco de dadosvoltar 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 soobrigatrios at o trmino de cada transao. Isso porque savepoint opcional e rollingforward 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 sejamantido consistente, necessria ao nal de cada transao a execuo de um commit ouum rollback. Portanto, a alternativa que deve ser escolhida a letra B.

    Pgina 15 de 120www.handbookdeti.com.br

    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: FCCInstituio: TRT 18a RegioCargo: Analista Judicirio - Tecnologia da InformaoAno: 2008Questo: 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 OracleCorporation 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 (porexemplo, dentro de cdigos C). Com o aparecimento da PL/SQL isso mudou. Todo o cdigoprocedural e tambm as instrues relacionadas ao banco podem ser escritos diretamenteem 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 nessalinguagem composto por blocos. Geralmente, um bloco desenvolvido para efetuar umaao 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 120www.handbookdeti.com.br

    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 conhecidose geralmente esto presentes nas linguagem procedurais. J o quarto um tipo especial deFOR em que uma varivel assume o lugar de registros de uma relao. Abaixo um exemplopara 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 acontrole de iterao. Portanto, essa a alternativa correta.

    Pgina 17 de 120www.handbookdeti.com.br

    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: CesgranrioInstituio: PetrobrasCargo: Analista de Sistemas - InfraestruturaAno: 2008Questo: 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 umaao de Update, Delete ou Insert em uma tabela.

    II - A clusula When no comando Create Trigger vlida somente para triggers de nvelde 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 conrmadasou revertidas, independente do estado da instruo que desencadeou a chamada dotrigger.

    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 asaes que devem ser realizadas quando um gatilho for disparado. Por exemplo, suponha queem vez de permitir saldos negativos em uma conta corrente, o banco crie condies para quea conta seja zerada e o saldo negativo seja transferido para a conta emprstimo de mesmonmero que a conta corrente. Neste exemplo, a condio para o disparo do gatilho o saldonegativo da conta corrente, e a ao a ser realizada a transferncia do saldo negativo paraa conta emprstimo.

    CREATE[DEFINER = {user | CURRENT_USER}]TRIGGER trigger_name trigger_time trigger_eventON 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 120www.handbookdeti.com.br

    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 aqual 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 eno Postgree apresentada na Tabela 1 e na Tabela 2, respectivamente. Note que os sistemasde 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 serespecicados 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 gatilhodispara;

    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, ouapenas uma vez por comando SQL;

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

    O gatilho pode ser especicado para disparar antes (BEFORE) de realizar uma operaona linha (antes das restries serem vericadas e os respectivos comandos de DML seremexecutados), 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 gatilhopode fazer com que a operao no seja realizada para a linha corrente, ou pode modicara 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 quea operao modica. Diferentemente, um gatilho que est marcado FOR EACH STATE-MENT somente executa uma vez para uma determinada operao, no importando quantaslinhas foram modicadas. Em particular, uma operao que no modica nenhuma linhaainda 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 referencialde baixo nvel, e no para retornar resultados de consultas. A principal vantagem que elespodem conter uma lgica de processamento complexa.

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

    Pgina 19 de 120www.handbookdeti.com.br

    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 modicanenhuma 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 umaao de UPDATE, DELETE ou INSERT em uma tabela. Isso especicado no comandoCREATE TRIGGER com os parmetros BEFORE ou AFTER, respectivamente. Portanto,armativa correta.

    II - Conforme apresentamos, a clusula WHEN no est presente no comando CREATETRIGGER para o MySQL e PostgreeSQL. Entretanto, no Oracle SQL e SQLite possvelutilizar a clusula WHEN no comando CREATE TRIGGER. Quando a condio da clu-sula WHEN vlida, o gatilho executado para cada linha modicada, isto , a execuodo gatilho ocorre em nvel de linha. Portanto, alternativa correta.

    III - Os triggers autnomos (autonomous triggers) esto presentes no sistema de bancode dados Oracle SQL. Diferente dos triggers normalmente existentes nos sistemas de bancode dados, os triggers autnomos so executados como uma transao autnoma. Por meiodas transaes autnomas, um trigger pode conter comandos de controle de transao comoCOMMIT e ROLLBACK. Com os comandos COMMIT E ROLLBACK as modicaes nobanco de dados efetuadas por um gtilho podem ser conrmadas ou revertidas, independentedo 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 DenitionLanguage). Portanto, armativa correta.

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

    Pgina 20 de 120www.handbookdeti.com.br

    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: ESAFInstituio: Superintendncia de Seguros Privados (SUSEP)Cargo: Analista Tcnico da SUSEP - Tecnologia da InformaoAno: 2010Questo: 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 oSQL/CMD.

    (d). pode-se criar bancos de dados utilizando-se Transact-SQL, por meio do comandoSTART 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 desenvolvidapara gerenciar dados em Sistemas de Gerncia de Banco de Dados Relacional (RDBMS), efoi 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 ouPascal que so imperativas. Apesar de haver padres para o SQL (ANSI SQL92, SQL99 porexemplo), a maioria das implementaes utilizam extenses que incluem funcionalidades delinguagens 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 comuniquecom um SQL Server utiliza instrues T-SQL.

    Entre as funcionalidades adicionais que o Transact SQL oferece em relao ao SQL, pode-secitar: 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 autenticaonecessrias para se conectar a servios fora do SQL Server. criada pelo comandoCREATE CREDENTIAL e as propriedades das credenciais podem ser alteradas pelocomando ALTER CREDENTIAL. Uma credencial pode ser mapeada para um logindo 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 ANYLOGIN. 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 TSQLsejam escritas e enviadas ao servidor SQL Server, inclusive consultas;

    Pgina 21 de 120www.handbookdeti.com.br

    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. STARTDATABASE no um comando T-SQL;

    e) ERRADO: o comando para restaurar backups o RESTORE. Ele permite restaurarbanco de dados inteiros, fazer restauraes parciais, apenas arquivos ou grupo de ar-quivos de banco de dados. REUSE DATABASE e RESET BLOG no so comandosT-SQL.

    Pgina 22 de 120www.handbookdeti.com.br

    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: CESGRANRIOInstituio: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questo: 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 originalmenteduas 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, avarivel 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 dedados. 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 120www.handbookdeti.com.br

    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 deum 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 oatributo nome e o nmero 2367727 para o atributo nmero de inscrio.

    O modelo entidade-relacionamento pode descrever diversos outros objetos importantes paraa 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 daunio de dois ou mais conjuntos de entidades, produzindo um conjunto de entidades de nvelmais alto. Por outro lado, especializao o resultado da separao de um subconjunto deentidades, formando conjuntos de entidades de nvel mais baixo. A generalizao usadapara 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 conceitualnada mais do que um processo de generalizao.

    J o modelo relacional ao qual a questo se refere uma maneira de representar o bancode dados logicamente, e no conceitualmente. No modelo relacional, os dados so represen-tados como relaes matemticas, isto , como um subconjunto do produto cartesiano den conjuntos. Na etapa de transformao do modelo conceitual para o modelo lgico, serpermitido ao projetista criar um modelo consistente da informao a ser armazenada pormeio do processo de normalizao, por exemplo.

    No modelo relacional, uma varivel relacional, tambm conhecida como relvar, umavarivel que representa uma relao. Para tornarmos a explicao bem simples, podemosdizer 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 varivelde relao bsica da seguinte forma:

    UsuarioTabela(email, login)

    Pgina 24 de 120www.handbookdeti.com.br

    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 sucientepara representar o usurio na varivel de relao Funcionario. Note que, dessa maneira, aindependncia lgica ainda no est honrada, j que a varivel de relao UsuarioTabelano 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 derelao 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 atributonome advindo da tabela que representa o conjunto de funcionrios.

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

    Pgina 25 de 120www.handbookdeti.com.br

    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: FCCInstituio: TRT 2a RegioCargo: Analista Judicirio - Tecnologia da InformaoAno: 2008Questo: 39

    Em um diagrama entidade relacionamento, uma situao de composio tal qual empregadogerencia 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 deinformao. 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, algumasentidades comuns seriam Vendas, Produtos e Clientes.

    O segundo conceito fundamental o de relacionamento. No MER, um relacionamentomostra como as entidades se relacionam entre si. Em um sistema de vendas, a entidadeVendas 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 relacionamentosmuito 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 relacionamentopodem ser encontrados nas chamadas exploses de materiais, nas quais itens compostosso formados por muitos itens componentes. Os itens compostos, por sua vez, podem sercomponentes 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 representadapor um auto relacionamento N:M da entidade itens, sendo que o papel de um determinadoitem ora de componente, ora de composto.

    Um outro exemplo tpico de auto relacionamento o gerenciamento de funcionrios, trazidona questo. Um gerente nada mais que um funcionrio que possui um relacionamento com

    Pgina 26 de 120www.handbookdeti.com.br

    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 umauto relacionamento 1:N da entidade funcionrios, sendo que o papel de um determinadofuncionrio ora de gerente, ora de subordinado.

    Pgina 27 de 120www.handbookdeti.com.br

    www.handbookdeti.com.br

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

    12. Assuntos relacionados: Banco de Dados, DER,Banca: CesgranrioInstituio: BNDESCargo: Analista de Sistemas - DesenvolvimentoAno: 2008Questo: 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 eque um prossional pode desempenhar vrias atividades nesse projeto (p.ex. operador deguindaste 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 estariammais erradas e elimin-las.

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

    Pgina 28 de 120www.handbookdeti.com.br

    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 maisde 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 chancesde acertar esta questo diminuem consideravelmente.

    Vamos s alternativas.

    (A) ERRADA

    Considerando que um determinado prossional pode ser contratado por diferentes empresaspara trabalhar em diversos projetos, este modelo inapropriado. Isso por conta do atri-buto atividade, que est relacionado ao prossional. Em outras palavras, teramos que umdeterminado prossional somente poderia exercer as mesmas atividades em todos os seuseventuais 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 nicosalrio para seus eventuais contratos, o que no apropriado. Caso contrrio, o modelodesta alternativa tambm atende, apesar de ser limitado.

    (C) e (D) ERRADA

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

    (E) CORRETA

    Esta a alternativa menos errada e, portanto, a escolha mais segura possvel. Comoo 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 paratrabalhar 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 tarefasem um contrato com uma determinada empresa. Nesse caso, teramos nessa tabela 5 linhascom 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 sereliminada com um processo de normalizao deste modelo, que resultaria em outro modelomais adequado.

    Pgina 29 de 120www.handbookdeti.com.br

    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: CesgranrioInstituio: PetrobrasCargo: Analista de Sistemas Pleno - ProcessosAno: 2006Questo: 23

    Considere o modelo entidade-relacionamento representado abaixo.

    Na transformao deste modelo conceitual Entidade-Relacionamento em um modelo lgicorelacional, as cardinalidades do relacionamento entre as entidades exercem papel importante.Dado que se deseja gerar um modelo relacional que atenda terceira forma normal, pode-searmar que sempre daro origem a uma tabela para cada uma das entidades relacionadasos 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 ouabstrato, 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 acardinalidade do relacionamento. Consiste de nmeros cardinais colocados ao lado do nomedo relacionamento e dimensiona o nmero de ocorrncias de uma entidade que pode estarenvolvido 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 serelacionar 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 serelacionar com muitas ocorrncias de outra entidade.

    Pgina 30 de 120www.handbookdeti.com.br

    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 sorelacionamentos 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 sosucientes. 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 todasas ocorrncias das entidades participam do relacionamento. Para que isso seja resolvido, omodelo 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 ostipos 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 podelavar um, vrios carros ou nenhum e um carro pode no ser lavado ou ser lavado por umaou mais pessoas. J na letra (B), uma pessoa pode lavar nenhum, um ou vrios carros, masum carro pode no ser lavado ou ser lavado por, no mximo, uma pessoa. A letra (C) indicaque um carro deve ser levado por exatamente uma pessoa, mas que uma pessoa pode noter lavado nenhum carro. Na letra (D), uma pessoa deve ter lavado, no mnimo, um carroe 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 umou 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 adequadamenteo relacionamento.

    Na letra (C), que o nico caso de mapeamento um-para-um, a melhor alternativa paraatender a terceira forma normal incluir a chave primria de Pessoa como chave estrangeirana tabela Carro (opo 3). Sendo assim, todo registro da tabela Carro ter representadouma 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). Nestecaso, 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). Nestescasos, 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 umatabela que representa uma entidade e nem mesmo fundir tabelas de entidade sem que hajaproblemas de redundncia. As alternativas (A) e (D) esto erradas, pois a tabela deve sercriada para o relacionamento e no uma opo no t-la.

    Na letra (E), a melhor alternativa criar chave estrangeira para representar a pessoa quelavou o carro na tabela Carro (opo 3). Entretanto, ainda necessrio garantir que umapessoa 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 dadosredundantes. A opo (2) tambm tem a possibilidade de representar um modelo relacional

    Pgina 31 de 120www.handbookdeti.com.br

    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 quetoda pessoa da tabela Pessoa tenha um registro na tabela que representa o relacionamentoLava. 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, sabemosque 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 (opo3). Neste caso, a tabela Carro deve permitir que o valor da chave estrangeira tambm possaser nulo, pois um carro no necessariamente lavado por alguma pessoa. H controvrsiasse, neste caso, a terceira forma normal obedecida. Se optssemos por criar uma tabela parao relacionamento, no haveria problemas, pois, para garantir que um carro seja lavado porno mximo uma pessoa, basta adotar a chave primria de Carro para garantir a unicidadedo mesmo. A opo 1 no adequada para o caso, pois as informaes das pessoas iriamser redundantes na nova tabela fundida. Embora haja a controvrsia de a permisso douso de valor nulo no garantir a terceira forma normal e nem mesmo a primeiro, vamosadotar que o uso de chave estrangeira factvel para o problema e que o uso de tabela parao relacionamento tambm possvel. Sendo assim, a alternativa (B) a alternativa correta.

    Pgina 32 de 120www.handbookdeti.com.br

    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: CespeInstituio: PetrobrasCargo: Analista de Sistemas Jnior - InfraestruturaAno: 2007Questo: 8082

    Considerando que, nas tabelas acima, FK e PK sejam, respectivamente, chaves estrangeirae primria em um banco relacional, julgue os itens subseqentes.

    80 Se ALUNO em MATRICULAS referencia MATRICULA em ALUNOS, e TURMA emMATRICULAS referencia CODIGO em TURMAS, ento a cada registro em ALUNOSpodem estar associados vrios registros em TURMAS e a cada registro em TURMASpodem 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 registrosem CURSOS e a cada registro em CURSOS podem estar associados vrios registrosem DEPARTAMENTOS.

    82 Em um diagrama de entidades-relacionamentos do banco de dados composto pelastabelas apresentadas, MATRICULAS ser representada por uma classe de entidades eser muitos para muitos o relacionamento entre as classes de entidades que representemDISCIPLINAS 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 120www.handbookdeti.com.br

    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 paraum banco de dados relacional, as seguintes regras gerais devem ser seguidas:

    conjunto de entidades fortes: seja E um conjunto de entidades fortes descrito pelosatributos a1, a2, . . . , an. Representamos essa entidade por uma tabela E com n colunasdistintas, 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 soatributos da entidade A mais os atributos que formam a chave primria do conjuntoB;

    relacionamentos: seja R um conjunto de relacionamentos; seja a1, a2, . . . , an oconjunto de atributos formados pela unio das chaves primrias de cada conjunto deentidades 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 soas chaves primrias da entidades participantes mais os atributos descritivos de R, casoexistam;

    atributos multivalorados: para um atributo multivalorado, criamos uma tabela Tcom uma coluna que corresponde ao atributo multivalorado e as colunas corresponden-tes chave primria do conjunto de entidades ou conjunto de relacionamentos do qualo 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 tabelasredundantes:

    um conjunto de relacionamentos que possuem cardinalidade um para um no precisa serrepresentado no modelo relacional, pois esse relacionamento no cria uma nova relao.Em geral, caso existam atributos descritivos do relacionamento, esses so acrescentadoscomo atributos da tabela de uma das entidades participantes;

    um conjunto de relacionamentos que possuem cardinalidade muitos para um e nopossui atributos descritivos no precisa ser representado por uma tabela no modelorelacional. Em geral, isso ocorre no relacionamento entre um conjunto de entidadesfracas e um conjunto de entidades forte. A chave primria do conjunto de entidadesfortes 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 umanova relao, conforme descrito anteriormente na regra geral.

    No nosso caso, em vez de partirmos do modelo E-R para o modelo relacional, temos quepartir 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 setasindicam o sentido do relacionamento entre as tabelas:

    ALUNOS est inscrito em CURSOS. Um aluno se inscreve em um curso, e em umcurso pode estar inscrito vrios alunos. Ou seja, temos um relacionamento um paramuitos. Note que a tabela ALUNOS possui uma chave estrangeira CURSO, o quedemonstram a relao de dependncia entre as entidades ALUNOS e CURSOS. Nesterelacionamento, CURSOS uma entidade forte e ALUNOS uma entidade fraca;

    Pgina 34 de 120www.handbookdeti.com.br

    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 departamentopode administrar vrios cursos. Ou seja, temos um relacionamento um para muitos.Note que a tabela CURSOS possui uma chave estrangeira DEPARTAMENTO, o quedemonstram 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 somentea um curso ou mais de um curso, e um curso possui vrias disciplinas. Note que nesterelacionamento surge a dvida se temos um relacionamento um para muitos ou muitospara muitos. Caso tivssemos um relacionamento muitos para muitos, outra tabelarepresenta o relacionamento entre CURSOS e DISCIPLINAS deveria existir no modelorelacional. Porm, no existe essa tabela, e portanto, o relacionamento entre CURSOSe DISCIPLINAS um para muitos. Note que a tabela DISCIPLINAS possui uma chaveestrangeira CURSO, o que demonstram a relao de dependncia entre as entidadesCURSOS e DISCIPLINAS. Neste relacionamento, CURSOS uma entidade forte eDISCIPLINAS 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 paramuitos. Note que a tabela TURMAS possui uma chave estrangeira DISCIPLINA, o quedemonstram a relao de dependncia entre as entidades TURMAS e DISCIPLINAS.Neste relacionamento, DISCIPLINAS uma entidade forte e TURMAS uma entidadefraca;

    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 relacionamentomuitos para muitos. Como temos esse tipo de relacionamento, devemos represent-lono modelo relacional como uma tabela, no caso MATRICULAS. Observe que, a tabelaMATRICULAS possui as chaves primrias de ALUNOS e CURSOS.

    De acordo com os relacionamentos descritos e as respectivas cardinalidade, podemos montaro 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 120www.handbookdeti.com.br

    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 vriosregistros em TURMAS. Assim como, cada registro em TURMAS pode estar associadoa vrios registros em ALUNOS. A tabela MATRICULAS representa o relacionamentoentre 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 associadoa um nico registro em DEPARTAMENTO, e um registro em DEPARTAMENTOSpode 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 emDEPARTAMENTOS.

    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 modelorelacional no existe uma tabela representando o relacionamento entre DISCIPLINASe CURSOS. Portanto, este item est errado.

    Pgina 36 de 120www.handbookdeti.com.br

    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: ESAFInstituio: Agncia Nacional de guas (ANA)Cargo: Analista Administrativo - Tecnologia da Informao e Comunicao / Desenvolvi-mento de Sistemas e Administrao de Banco de DadosAno: 2009Questo: 17

    Um conjunto de um ou mais atributos, tomados coletivamente, para identicar unicamenteuma 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. Aschaves 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 chavepblica possvel vericar a autenticidade de mensagens, atravs da criao de assinaturasdigitais 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 doproblema 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 nomesimtrica.

    (C) CORRETA

    Uma superchave qualquer subconjunto de atributos de um esquema de relao com apropriedade de que duas tuplas, em qualquer estado de relao r de R, no tenham a mesmacombinao de valores para esse subconjunto de atributos. Em outras palavras, sejam etuplas distintas e seja SK um subconjunto de atributos de um esquema de relao. Nestecaso, para quaisquer e. Note, ainda, que toda relao possui ao menos uma superchave: apadro (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 semquebrar a restrio da superchave identicar tuplas distintas.

    Pgina 37 de 120www.handbookdeti.com.br

    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. Normalmenteimplementadas como ndices em bancos de dados, so usadas para busca e recuperao dedados.

    (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 noser discutido.

    Pgina 38 de 120www.handbookdeti.com.br

    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: ESAFInstituio: Agncia Nacional de guas (ANA)Cargo: Analista Administrativo - Tecnologia da Informao e Comunicao / Desenvolvi-mento de Sistemas e Administrao de Banco de DadosAno: 2009Questo: 22

    O modelo de dados baseado numa coleo de tabelas que representam dados e as relaesentre 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 deprimeira ordem. No modelo relacional, o banco de dados representado como uma coleode 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 natabela representa um fato que corresponde a uma entidade ou relacionamento do mundoreal. O nome da tabela e os nomes das colunas so usados para auxiliar na interpretaodos 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 suasvariaes, normalmente empregado para o projeto conceitual de aplicaes de um bancode dados, e muitas ferramentas de projeto de um banco de dados tambm aplicam seusconceitos.

    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 ouum lugar, quanto abstrata, como um feriado. Uma entidade, por sua vez, composta poratributos. Um atributo uma funo que mapeia um conjunto de entidades em um domnioem particular. Cada entidade descrita por um conjunto de pares (atributo, valor) e existeum par para cada um dos atributos da entidade.

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

    Pgina 39 de 120www.handbookdeti.com.br

    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. Ambasso relacionadas pela relao Possui, que indica que um ou mais clientes podem possuiruma 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, umobjeto 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 estendidade modo que sejam armazenados de forma permanente; portanto, os objetos continuama existir mesmo aps o trmino do programa, podendo ser posteriormente recuperados ecompartilhados 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 ocomportamento dos objetos atravs de seus mtodos, e quais estados ele capaz de manteratravs 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 suasestruturas e/ou operaes de classes ou tipos previamente denidos, o que torna maisfcil desenvolver os tipos de dados de um sistema de modo incremental e reutilizardenies de tipos na criao de novos tipos de objetos;

    Sobrecarga de operador: se refere propriedade de uma operao de ser aplicadaa diferentes tipos de objetos. Em tal situao, um nome de operao pode se referir avrias implementaes diferentes, dependendo do tipo de objetos aos quais aplicada.Essa caracterstica tambm conhecida como polimorsmo de operador.

    Pgina 40 de 120www.handbookdeti.com.br

    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 entreum objeto do mundo real e sua representao no banco de dados. O mesmo no ocorre embancos de dados orientados a objetos, que so capazes de manter estruturas de objetos comcomplexidade arbitrria.

    (D) INCORRETA

    O modelo de dados semiestruturados um modelo de bancos de dados em que no hseparao entre dados e esquema e sua estruturao depende do propsito da aplicao. Porno 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 asconsultas 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 sonormalmente armazenados com identicadores nicos referenciados por ponteiros para suasposies no disco. Como necessrio percorrer o disco seguindo os ponteiros, suas consultaspodem 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 tratadoscomo objetos e, com isso, os benefcios da orientao a objetos so unidos aos benefcios domodelo relacional (ambos modelos descritos acima).

    Essa resposta incorreta porque o modelo objeto-relacional usado para modelagem desistemas 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 KansasCity, 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 120www.handbookdeti.com.br

    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: CESGRANRIOInstituio: BNDESCargo: Analista de SuporteAno: 2008Questo: 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 asconsultas 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 deprojeo 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 comoarquivos. O diagrama de tabelas um nvel de abstrao de dados tambm conhecido comomodelo 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 aoSGBD 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, poiso resultado da consulta ser fornecido como uma tabela, essa montada dinamicamente deacordo com os critrios da operao.

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

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

    Com base nos argumentos apresentados, podemos dizer que as alternativas A, B, C e Dapresentam 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 dalinguagem de SQL. As operaes de juno nada mais so que as realizadas pelo operadorJOIN, da linguagem SQL. Enquanto as operaes de unio so realizadas pelo operadorUNION. As restries so denidas pela clusula WHERE.

    Pgina 42 de 120www.handbookdeti.com.br

    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 menorque 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 foramselecionadas 2 das 5 colunas na consulta.

    Pgina 43 de 120www.handbookdeti.com.br

    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: ESAFInstituio: Agncia Nacional de guas (ANA)Cargo: Analista Administrativo - Tecnologia da Informao e Comunicao / Desenvolvi-mento de Sistemas e Administrao de Banco de DadosAno: 2009Questo: 18

    O nvel de abstrao, que visa simplicar a interao entre usurios e o sistema de banco dedados, 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-relacionadoscom um conjunto de programas que permitem aos usurios acessarem e modicarem taisarquivos. Seu maior objetivo proporcionar aos usurios uma viso abstrata dos dados, oque signica ocultar determinados detalhes de como os dados so efetivamente armazenadose 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 utilizarestruturas de dados complexas para representar os dados na base de dados. Para ocul-tar dos usurios essa complexidade, nveis de abstrao foram denidos, simplicando ainterao 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 estruturasde 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. Nestenvel, todo o banco de dados descrito em termos de um pequeno nmero de estruturasrelativamente simples. Os administradores de bancos de dados usam os nvel lgico deabstrao 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 necessitamde toda essa informao e, assim, o nvel de viso proporciona diversas vises para amesma 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, noguardando relao com os nveis de abstrao. Semelhantemente, o modelo de um banco dedados a especicao das estruturas de dados e regras de negcio de um banco de dados,

    Pgina 44 de 120www.handbookdeti.com.br

    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 120www.handbookdeti.com.br

    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: ESAFInstituio: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanas e Controle - Tecnologia da Informao / Desenvolvimento deSistemas de InformaoAno: 2008Questo: 17

    Em termos de Bancos de Dados, a indexao mais adequada para o acesso eciente aosregistros, 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 depr-computao para aumentar o desempenho do processamento online de consultas e soteis para conjuntos de dados que so atualizados com pouca frequncia. Como essa opoapresenta uma restrio aos bancos de dados (e como h uma opo melhor, como servisto), essa alternativa incorreta.1

    (B) INCORRETA

    ndices de hashing so ndices que usam tabelas hash para indexao. Neles, as chavesde 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. Pormapearem uma chave de pesquisa a um determinado ndice de forma direta, as tabelas hashproporcionam um tempo mdio de busca constante, ou seja, O(1). Em virtude de seu altodesempenho, as tabelas hash so tipicamente utilizadas na indexao de grandes volumes deinformaes em bancos de dados e na criao de esquemas associativos de acesso s memriacache.

    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 dasocorrncias so, ento, recuperadas.

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

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

    Pgina 46 de 120www.handbookdeti.com.br

    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 sercustosa.

    (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. Porser otimizada para sistemas que leem e escrevem grandes quantidades de dados, elas sobastante 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 possuirmais de dois lhos. Mais formalmente, uma rvore B de ordem m (com m o nmero mximode 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 medidaque os elementos 1, 2, 3, 4, 5, 6 e 7 so adicionados a ela. Como exibido, sempreque 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 umarvore 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 Ba 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 bitse respondem a consultas atravs da execuo de operaes lgicas bit a bit nesses vetoresde bits. Esse tipo de ndice foi projetado para casos em que os valores de uma varivel serepetem com grande frequncia. Devido a forma como so construdos, o ndice de bitmappossui vantagens de desempenho para esse caso, mas no na busca de intervalos.

    (E) INCORRETA

    ndices funcionais so ndices denidos pelo usurio do s