SóProvas



Prova CESPE - 2012 - Banco da Amazônia - Técnico Científico - Administração de Dados


ID
769201
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens seguintes, relativos a grafos.


A implementação de um grafo do tipo ponderado e direcionado na forma de uma matriz de adjacência utiliza menor quantidade de memória que a implementação desse mesmo grafo na forma de uma lista encadeada.

Alternativas
Comentários
  • A representação com uma matriz de adjacência para um grafo com n vértices deverá ter elementos, pois cada elemento pode se ligar a qualquer vértice (inclusive ele próprio). Uma lista encadeada vai depender da implementação, mas caso os elementos da lista sejam os vértices, temos que ela terá, na pior das hipóteses (grafo completo), elementos.
  • Um grafo representado pela lista encadeada (lista de adjacencia) ocupa menos memoria do que a representação do mesmo grafo por uma matriz de adjacencia, pq na 1a. representação (por lista de adjacência) não são representados os vertices não adjacentes (os zeros existentes na matriz de adjacencia).
  • Neste site uma explicação sobre grafos ponderados: http://tiagomadeira.com/2006/01/grafos-ponderados/

  • Um grafo com N arestas quando representado pela estrutura de dados matriz de adjacencia, ocupa N x N  posicoes no espaço, ja pela representacao de lista de adjacencia ocuparia um vetor com N posicoes e X posicoes os vizinhos de um vertice, representando as arestas.

    Para um grafo completo, existe uma aresta entre quaisquer pares de vertices, a memoria ocupada pela matriz adjacencia e pela lista de adjacencia são iguais.

  • Força Guerreiro!!!!!!


ID
769204
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um algoritmo que visita todos os vértices de um grafo, cada um somente uma vez, está percorrendo o grafo. Esse algoritmo pode percorrer o grafo em largura ou em profundidade.

Alternativas
Comentários
  • correto- Os vértices do grafo são ligados por objetos (arcos) que podem ser direcionados (assimétricos) ou indirecionados (simétricos,implica relação de paridade entre os 2 nodes). Um algoritmo pode percorrer os nodes em qualquer sentido,não necessariamente linear, se for assimétrico.
  • A resposta anterior do colega não tem nada a ver... :-)

    Algoritmos de busca em profundidade e largura podem  percorrer todos os vértices do grafo somente um vez, uma vez que durante a execução dos algoritmos, marca-se quais vértices foram visitados, não visitando-os outra vez.
  • DFS (depth-first search) - Busca em Profundidade

    BFS (Breadth-First Search) - Busca em Largura - https://pt.wikipedia.org/wiki/Busca_em_largura

  • Força Guerreiro!!!!!!


ID
769207
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um grafo não direcionado é dito conectado quando há pelo menos um caminho entre dois vértices quaisquer do grafo.

Alternativas
Comentários
  • correto- não direcionado significa simétrico: há uma conexão (caminho) entre os vértices e essa relação tem payload mutual. Direcionado significa que os nodes não estão em contato direto: e.g. Em A-B-C-D, A&B são não-direcionados, enquanto q A&C não são.
  • Um grafo diz-se conexo se quaisquer que sejam os vértices distintos u e v existe sempre um caminho que os une.
  • Força Guerreiro!!!!!!


ID
769210
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma árvore de espalhamento de um grafo ponderado conectado é mínima se a soma dos pesos de todas as arestas for mínima.

Alternativas
Comentários
  • Uma árvore de espalhamento de um grafo é uma árvore que contém todos os vértices de um grafo. O item é a definição de uma árvore de espalhamento mínima, "é mínima se a soma dos pesos de todas as arestas for mínima". Veja que é importante o fato de o grafo ser conectado (ou conexo). Se ele fosse desconexo, é impossível haver UMA árvore de espalhamento.
  • A árvore de espalhamento é gerado por um algoritmo guloso que pega as arestas com os menores valores, desde que eles não gerem um ciclo.

  • Força Guerreiro!!!!!!


ID
769213
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um grafo completo contém pelo menos um subgrafo ponderado.

Alternativas
Comentários
  • Um grafo completo tem n vértices (Kn). Os arcos para Kn são n(n-1)/2. O n° de relações possíveis são: 1,1,2,4,10,26 etc

    1 é possível se houver 1 ou 2 vértices, porque só pode haver uma conexão entre 2 pontos.Nesse caso, NÃO HÁ SUBGRAFOS.

    http://www.gpec.ucdb.br/pistori/disciplinas/discreta/aulas/grafos.htm

    post scriptum: interessante notar que o mesmo conceito tem a ver com a topologia de full-mesh network, onde o n° de ligações entre os nodes é uma função quadrática (n^2)-n/2
  • São dois conceitos diferentes! Completo e ponderado!
    Um grafo é completo quando todo vértice tiver uma aresta para qualquer outro vértice. Um grafo é ponderado quando cada aresta possuir um valor associado a ela (um peso).
    Um grafo completo pode ser ponderado ou não. Ele vai possuir um subgrafo ponderado caso ele seja ponderado!
  • Exemplo de um grafo completo:
  • Grafo completo - É um grafo simples onde cada vertice se conecta a todos os outros vertices - Todo mundo se conecta a todo mundo (Há uma especie de loop no grafo... É um circuito fechado).

    Grafo Regular - Onde todos os vertices possuem o mesmo grau - ou seja... Todos possuem a mesma quantidade de ligações.

    Resumidamente - Todo grafo completo é regular, mas nem todo regular é completo :)

  • Força Guerreiro!!!!!!


ID
769216
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados

Acerca do tipo de dados árvore, julgue os próximos itens.


Quando não é possível prever antecipadamente quantos nós serão necessários para a criação e utilização de uma árvore binária, utilizam-se, na sua implementação, listas encadeadas.

Alternativas
Comentários
  • Eita! Mas que texto mal escrito... Acho que era para ser assim:
    Quando não é possível prever antecipadamente quantos nós serão necessários para a criação e utilização de uma árvore binária, utilizam-se, na sua implementação, listas encadeadas alocação dinâmica de memória (ex: PONTEIROS).
  • A questão quer saber sobre qual o melhor jeito de implementar uma árvore quando não se sabe quantos elementos ela terá. Há dois tipos de implementação padrão:
    Com vetores (arrays): estático. Implementa-se a árvore em um vetor (que possui o tamanho fixo). É necessário saber quantos elementos a árvore terá no máximo. Os filhos são determinados por alguma regra de formação, por exemplo, 0 é a raiz e se i é um nodo, 2*i é seu filho da esquerda e 2*i+1 é seu filho da direita (regra para uma árvore binária)
    Com listas encadeadas: dinâmico. A árvore é implementada com uma lista encadeada que aponta para os elementos filhos. A alocação de uma lista SEMPRE é dinâmica, ela sempre permite adicionar quantos elementos forem necessários. Se um elemento da lista é um nodo, seus filhos serão os nodos para os quais aquele aponta. Como a alocação é dinâmica, é o tipo de implementação "Quando não é possível prever antecipadamente quantos nós serão necessários ".
  • Não entendi como um árvore pode ser implementada com listas encadeadas. Lista é uma estrutura cujos elementos possuem uma ordem sequencial. Não tem como implementar os filhos como listas pois eles são subárvores também. Árvore é árvore. Lista é lista.

  • Força Guerreiro!!!!!!


ID
769219
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados

Uma árvore binária degenerada em lista encadeada não pode ser balanceada.

Alternativas
Comentários
  • Questão errada.
    Claramente é possível balancear uma árvore binária degenerada. Para isso há uma série de algoritmos, a citar: o DSW.

    Para mais informações, recomendo a leitura:
    • Estrutura de Dados e Algoritmos em C++ (Adam Drozdek), 2009, Seção. 6.7 (Balanceando uma Àrvore).
  • Em árvores degeneradas todos os nós têm apenas 1 filho, com exceção da (única) folha.

    Qualquer nó pode ser alcançado a partir da raiz em O(n) passos.
  • Força Guerreiro!!!!!!


ID
769222
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

As operações de busca em uma árvore binária não a alteram, enquanto operações de inserção e remoção de nós provocam mudanças sistemáticas na árvore.

Alternativas
Comentários
  • Mundança sistemática = mudança metódica, planejada, organizada.

    Questão correta.
  • Gabarito: C.


    Realmente, as buscas em uma árvore binária não alteram a estrutura dos dados, pois os nós são "visitados", ao contrário do que ocorre na operação de inserção, por exemplo, que além da busca de acordo com os ponteiros, o algoritmo reorganiza as subárvores e isso ocorre de maneira sistemática.


    Bons estudos e

    Inté (>‿◠)✌

  • Vamos lá. Não são nas árvores binárias, mas sim nas balanceadas.
    Algumas operações não causam tal consequência, como retirada de nós folhas ou inserção de nós  em nós folhas.
    Mas.. tudo bem.. segue. Essa questão aceita qualquer gabarito e qualquer justificativa é via engenharia reversa. Falowwww

  • Força Guerreiro!!!!!!


ID
769225
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Heap é um tipo de dados que se baseia em árvores binárias em que o balanceamento ocorre de maneira estática.

Alternativas
Comentários
  • •Balanceamento Estático:
      - Este balanceamento consiste em, depois de um certo tempo de uso da árvore, destruir sua estrutura, guardando suas informações em uma lista ordenada e reconstruí-la de forma balanceada. 
     
    •Balanceamento Dinâmico:
      - Tem por objetivo reajustar os nós de uma árvore sempre que uma inserção ou remoção provocar desbalanceamento.



    Como no caso da arvore Heap os valores são reordenados sempre que há uma inserção, podemos dizer que ela não é estatica!
  • O heap é um tipo particular de árvore binária com as seguintes propriedades:
    1. O valor de um nó não pode ser menor que o valor dos nós de suas subárvores (seus filhos);
    2. A árvore é perfeitamente balanceada;
    Ora, para que um heap seja implementado corretamente, devem existir mecanismos para restaurar essas propriedades. Logo o balanceamento dessas árvores NÃO pode ser estático; deve ser dinâmico.

    Bons estudos
  • Existem dois tipos de heaps: Os heaps de máximo (max heap), em que o valor de todos os nós são menores que os de seus respectivos pais; e os heaps de mínimo (min heap), em que o valor todos os nós são maiores que os de seus respectivos pais. Assim, em um heap de máximo, o maior valor do conjunto está na raíz da árvore, enquanto no heap de mínimo a raíz armazena o menor valor existente.
    A árvore binária do heap deve estar completa até pelo menos seu penúltimo nível e, se o seu último nível não estiver completo, todos os nós do último nível deverão estar agrupados à esquerda.
    Fonte: wiki

  • e-

    In computer science, a heap is a specialized tree-based data structure which is essentially an almost complete tree that satisfies the heap property: in a max heap, for any given node C, if P is a parent node of C, then the key (the value) of P is greater than or equal to the key of C. In a min heap, the key of P is less than or equal to the key of C. The node at the "top" of the heap (with no parents) is called the root node.

    https://en.wikipedia.org/wiki/Heap_(data_structure)

  • Força Guerreiro!!!!!!


ID
769228
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O acréscimo de um elemento em um heap pode mudar o nó raiz, dependendo do seu valor.

Alternativas
Comentários
  • O heap é uma árvore binária em que:
    A diferença máxima de altura entre os nós folha é de um nível;
    Os nós do nível mais profundo são preenchidos da esquerda para a direita;
    Todo nó deve armazenar uma chave maior do que as dos seus filhos

    Logo, pode haver mudança na raiz.
  • O heap é um tipo particular de árvore binária com as seguintes propriedades:
    1. O valor de um nó não pode ser menor que o valor dos nós de suas subárvores (seus filhos);
    2. A árvore é perfeitamente balanceada;
    Portanto se for inserido um nó cujo valor é maior que o da raiz, o nó recém-inserido será a nova raiz.

    Vejam um exemplo: no heap a seguir (árvore superior esquerda), deseja-se inserir o número 441. Observe como os nós do heap são deslocados (shift) para que o nó recém-inserido assuma a posição correta (nesse caso, ele tornando-se a raiz) e restaurando as propriedades da estrutura de dados.

     
  • Animação sobre heap: http://www.youtube.com/watch?v=QdRL3XLyiVc
  • Força Guerreiro!!!!!!


ID
769231
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados

O tipo de dados árvore representa organizações hierárquicas entre dados.

Alternativas
Comentários
  • Gabarito: C.


    De acordo com Szwarcfiter eMarkenzon, a forma mais comum de representar graficamente uma árvore é através de sua representação hierárquica, semelhante à utilizada para descrever organogramas de uma empresa.


    Bons estudos e

    Inté (>‿◠)✌

  • Força Guerreiro!!!!!!


ID
769234
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação a métodos de pesquisa de dados, julgue os itens subsecutivos.


Listas encadeadas não são utilizadas na busca que emprega tabelas hash.

Alternativas
Comentários
  • Uma tabela Hash usa uma uma função de disperção dos valores de acordo com a chave escolhida. As listas encadeadas são uma estrutura perfeita para armazenar esses valores, já que eles vão poder ser facilmente buscados de acordo com a lógica empregada.
  • Uma tabela de dispersão (também conhecida por tabela de espalhamento ou tabela hash) é uma estrutura de dados especial, que associa chaves de pesquisa a valores. Pode ser implementada por vetor (tam. Fixo) ou lista encadeada (sem limite de tamanho).
  • Existem duas formas de se implementar uma tabela hash: hashing aberto (utilizando uma estrutura externa ao vetor) e o hashing fechado (os dados são armazendos apenas no vetor). No hashing aberto, essa estrutura externa pode ser vários tipos de estruturas de dados, como uma lista encadeada, uma árvore binária, uma AVL ou uma árvore B.
  • Uma tabela hash é uma estrutura que permite associar uma chave a um valor e, posteriormente, ter acesso ao valor a partir de sua chave associada.

    É também possível consultar se uma determinada chave existe na tabela ou se um determinado valor está presente na tabela associado a qualquer chave.

    Listas encadeadas são utilizadas na busca que emprega tabelas hash.
  • ERRADO.

     

    Listas encadeadas podem ser usadas para implementar os buckets da tabela hash.

     

    Só p constar, rss...: Bucket é o nome dado ao lugar onde os elementos são armazenados na tabela hash.
     

  • Força Guerreiro!!!!!!


ID
769237
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Um dicionário é um tipo abstrato de dados que permite as operações de inserção e de retirada e o teste de pertinência de elementos a um conjunto.


Alternativas
Comentários
  • "Uma coleção de atividades, tais como inserir, suprimir e consultar, encapsulada junto com uma estrutura passiva, como um dicionário (conjunto de verbetes), pode ser considerada um tipo abstrato de dados (TAD).
    Definido dessa forma, o TAD DICIONÁRIO fica representado no nível de abstração mais alto possível: o nível conceitual.
    Em um nível de abstração mais baixo, denominado nível de design, a estrutura passiva deve ser representada por um modelo de dados (por exemplo: seqüência ou árvore binária de busca) e as operações devem ser especificadas através de procedimentos cuja representação não dependa de uma linguagem de programação.
    Em um nível de abstração ainda mais baixo, denominado nível de implementação, deve-se tomar como base o design do TAD e estabelecer representações concretas para os elementos de sua estrutura em termos de uma linguagem de programação específica."

  • Certo.

    O tipo abstrato DICIONÁRIO é diferente do DICIONÁRIO DE DADOS DE UM SGBD:

    - Dicionário: é um tipo abstrato de dados, que encapsula operações de inserção, remoção, deleção e update, podendo ser representado por uma lista sequencial ou árvore binária.

    - Dicionário de dados: é o conjunto de tabelas de um SGBD que guarda informações sobre todos os seus elementos na forma de metadados, que só permite operação de leitura e consulta.


ID
769240
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A pesquisa sequencial e o método da bolha são métodos pouco eficientes de busca de dados.

Alternativas
Comentários
  • O método da bolha é um método de ordenação (bubblesort) e não de busca.
  • O fato do metodo bolha não ser um metodo de busca não tornaria a questão certa? ou seja ele é infeciente na busca de dados?
  • Mas afimar que o método da bolha é um método de busca automaticamente invalidaria a afirmação.
    Isso que dá quando o CESPE contrata o pessoal da FCC para fazer questões! heheheheh
  • Acho que o gabarito está errado, a questão deveria estar certa. Se a resposta estiver errada, então a pesquisa sequencial OU o método da bolha são eficientes na busca de dados. Sabemos que a pesquisa sequencial não é eficiente na busca e o método da bolha não é um método de busca.
  • Questão mal elaborada. Entendo que o CESPE queria induzir o pessoal ao erro misturando método bolha com método de busca, mas acabou tornando a questão certa.
    Nem pesquisa sequencial nem método bolha são métodos eficientes de busca.
  • Alberto Cavalcante, cuidado ao afirmar que ambos não são métodos eficientes, pois deve se levar em consideração a quantidade de dados que se está sendo ordenada e outros fatores...

  • Está certo que "A pesquisa sequencial e o método da bolha são métodos pouco eficientes de busca de dados."? Não. Está errado. Afinal, o método da bolha não é um método de busca de dados (embora seja pouco eficiente como método de ordenação).

  • A pesquisa sequencial e o método da bolha são métodos pouco eficientes de busca de dados.

    "pouco eficiente" é uma característica "busca de dados" é a definição

    Basta inverter o trecho "de busca de dados" com "pouco eficientes" e vai ficar mais claro

    A pesquisa sequencial e o método da bolha são métodos de busca de dados pouco eficientes.

    Atenção ao verbo ser

    Se deixarmos somente "método da bolha é um método de busca de dados pouco eficiente". Está errado!!!

    Buble Sort não é método de busca, é método de ordenação. Se considerar a questão certa que é um método pouco eficiente em uma busca por que é um método de ordenação estaria também considerando como certo (de acordo com a própria questão) que é um método de busca (mesmo pouco eficiente) o que está errado. Total contradição!!

    As vezes a CESPE redige pessimamente as questões. O que faz com que a gente desconfie sempre que ela quer "enganar" mas nós mesmos complicamos pra se convencer que não errou. O que termina complicando também outros estudantes.

  • Força Guerreiro!!!!!!


ID
769243
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A busca binária é realizada em um grupo de dados previamente ordenado.

Alternativas
Comentários
  • Correto. A busca binária começa a fazer a busca pelo meio do vetor.

    1. Se o elemento do meio do vetor for a chave, a busca termina com sucesso.
    2. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor.
    3. Finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

    Assim, para que essa lógica de busca funcone, o grupo de dados (vetor) deve estar previamente ordenado.
    A figura abaixo mostra a busca pelo elemento 3:

  • BUSCA BINÁRIA:

     

     A ideia básica do algoritmo é percorrer o vetor como se folheia, por exemplo, uma lista telefônica. Abandonando-se as partes do catálogo onde o nome procurado, com certeza, não será encontrado.
     Para a realização desse tipo de busca, o vetor deve estar ordenado.
     Esse método exige acesso aleatório aos elementos do conjunto.
     Algoritmo possui complexidade no pior caso O(logn).
     O pior caso ocorre quando o elemento procurado é o último a ser verificado, ou mesmo não é encontrado.

     

    Fonte: Itnerante

  • Gabarito Certo

    pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Força Guerreiro!!!!!!


ID
769246
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A busca que utiliza uma tabela hash realiza comparação das chaves para encontrar a posição do elemento que está sendo buscado.

Alternativas
Comentários
  • A ideia central do Hash é utilizar uma função aplicada sobre a parte da informação (chave), para retornar o índice onde a informação deve ou deveria estar armazenada.
  • Questão errada. Busca com hashing não utiliza de comparação de chaves, utiliza indexação: uma vez que a chave é conhecida, a posição na tabela pode ser acessada diretamente, sem fazer qualquer teste preliminar.


    Bons estudos
  • ERRADO.

     

    Para identificar o bucket basta computar a função hash, não tem que comparar as chaves.

  • Força Guerreiro!!!!!!


ID
769249
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

As colisões ocorrem na utilização de tabela hash porque várias chaves podem resultar na mesma posição.

Alternativas
Comentários
  • Idealmente, cada chave processada por uma função hash geraria uma posição diferente na tabela. No entanto, na prática existem sinônimos -- chaves distintas que resultam em um mesmo valor de hashing. Quando duas ou mais chaves sinônimas são mapeadas para a mesma posição da tabela, diz-se que ocorre uma colisão.

    Uma boa função hash deve apresentar duas propriedades básicas: seu cálculo deve ser rápido e deve gerar poucas colisões. Além disso, é desejável que ela leve a uma ocupação uniforme da tabela para conjuntos de chaves quaisque

    Fonte: http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node26.html

  • As colisões ocorrem na utilização de tabela hash porque várias chaves podem resultar na mesma posição. No uso de estruturas de transformação de chave (hashing), a solução de colisões usando encadeamento tem como principal característica o fato de nunca transbordar.

    GABARITO - CERTO

    https://www.questaocerta.com.br/questoes/assunto/hashing?imprimir=true#:~:text=As%20colis%C3%B5es%20ocorrem%20na%20utiliza%C3%A7%C3%A3o,podem%20resultar%20na%20mesma%20posi%C3%A7%C3%A3o.&text=No%20uso%20de%20estruturas%20de,o%20fato%20de%20nunca%20transbordar.

  • Força Guerreiro!!!!!!


ID
769252
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os próximos itens, relativos a tipos básicos de estruturas de dados.


O tempo de busca de um elemento em uma lista duplamente encadeada é igual à metade do tempo da busca de um elemento em uma lista simplesmente encadeada.

Alternativas
Comentários
  • A questão não pode afirmar isto, visto que, se o elemento solicitado for o primeiro, tanto em uma lista simplesmente encadeada quanto numa duplamente encadeada, o tempo será o mesmo.
  • Uma lista duplamente encadeada significa que, além da informação ela possui dois ponteiros: um para o nó predecessor e outro para o sucessor. Uma lista encadeada possui apenas ponteiro para o próximo elemento. Esta característica não garante que na média, a busca em uma lista duplamente encadeada caia pela metade do tempo. Na notação big O, ambas listas possuem complexidade O(n) para buscas.
  • Listas encadeadas não são otimizadas para buscar um elemento especifico. A comparação que a questão faz teria mais sentido em relação ao array

  • Não! Apesar de permitir que se percorra a lista em ambas as direções, em média
    ambas possuem o mesmo tempo de busca de um elemento.
    Gabarito: E

     

    Estratégia Concursos

  • ERRADO.

     

    A lista encadeada simples é percorrida em um sentido
    A lista duplamente encadeada é percorrida em ambos os sentidos. 

     

    Em relação a busca, possuem a mesma complexidade de tempo O(n), em ambas estruturas tem que se percorrer os elementos a partir do elemento incial para localizar o elemento desejado.

  • Força Guerreiro!!!!!!


ID
769255
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em algumas implementações, uma lista vazia pode ter um único nó, chamado de sentinela, nó cabeça ou header. Entre suas possíveis funções, inclui-se simplificar a implementação de algumas operações realizadas sobre a lista, como inserir novos dados, recuperar o tamanho da lista, entre outras.

Alternativas
Comentários
  • A sentinela simplifica a realização de operações sobre a lista, alem de transforma-la em uma lista circular

  • Gabarito Certo

    Em ciência da computação, uma lista duplamente ligada (ou lista duplamente encadeada) é uma estrutura de dados ligada que consiste de um conjunto de registros sequencialmente ligados chamados de nós e é uma extensão da lista simplesmente ligada (ou lista simplesmente encadeada). Cada nó contem dois campos, chamados de links ou enlaces, que são referências para o nó anterior e para o nó posterior na sequência de nós. Os links anteriores e posteriores dos nós inicial e final, respectivamente, apontam para algum tipo de terminador, tipicamente um nó sentinela ou nulo, para facilitar o percorrimento da lista. Se houver apenas um nó sentinela, a lista será vinculada circularmente através do nó sentinela. Ele pode ser conceituado como duas listas unicamente vinculadas formadas a partir dos mesmos itens de dados, mas em ordens sequenciais opostas.

     

    Lista duplamente encadeada com sentinelas: Neste modelo de lista possuimos dois Nós estáticos a cabeça da lista (head) e o fim da lista(tail). O elemento prev (anterior) do nó head aponta sempre para nulo enquanto no nó tail quem aponta para nulo é o next(próximo).

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Força Guerreiro!!!!!!


ID
769258
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Estruturas ligadas como listas encadeadas superam a limitação das matrizes que não podem alterar seu tamanho inicial.

Alternativas
Comentários
  • Listas encadeadas fazem parte das estruturas dinâmicas que, assim como pilha e fila podem ter seu tamanho modificado durante o uso. Uma estrutura estática é o inverso, ou seja, não pode ter seu tamanho alterado após iniciado. Exemplos de estruturas estáticas são vetores e matrizes.
  • E a Matriz dinâmica no monte, que segendo Sebesta, pode crescer e reduzir-se durante a execução do programa conforme demandar a necessidade de espaço?
  • Conjunto de dados com alocação estática:

    A) Listas lineares seqüenciais – Vetores Simples
    B) Matriz
    B) Filas
    C) Pilhas
    D) Deques

    Conjuntos de dados com alocação dinâmica:

    A) Listas encadeadas simples
    B) Filas
    C) Pilhas
    D) Listas duplamente encadeadas
    E) Árvores

    Observe que Pilhas e Filhas podem ser implementadas de forma estática ou dinâmica.
  • Força Guerreiro!!!!!!


ID
769261
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O uso de alocação dinâmica de memória é essencial na criação de uma pilha de dados.

Alternativas
Comentários
  • Pilha é uma lista linear onde todas as inserções, remoções e acessos são realizadosem um único extremo da lista (topo). Numa lista encadeada as inserções e remoções podem ser feitas em qqr extensão da lista (não somente no topo como é caso da Pilha).
  • Na assertiva: "O uso de alocação dinâmica de memória é essencial na criação de uma pilha de dados.", o erro está em dizer que é essencial o uso de alocação dinâmica.

    Pilhas podem ser implementadas com alocação estática (arrays). Exemplo em -> http://www.cs.bu.edu/teaching/c/stack/array/
  • Posso implementar uma pilha tanto com vetor como por encadeamento. Não é essencial que seja por encadeamento.

  • errado - Se o stack tiver tamanho fixo, nao havera alocação dinâmica de memória.

  • ERRADO.

     

    O que invalida a questão é o ESSENCIAL, pois essencial seria indispensável, como se existisse apenas a alocação dinâmica e ponto, mas não, pois existe a alocação SEQUENCIAL, que aloca a memória estaticamente.

  • Maldito cespe BURN IN THE HELL!

  • RESOLUÇÃO:

    Referente a alocação é sequencial e não essencial.

    Resposta: Errado

  • Força Guerreiro!!!!!!


ID
769267
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

As listas duplamente encadeadas diferenciam-se das listas simplesmente encadeadas pelo fato de, na primeira, os nós da lista formarem um anel com o último elemento ligado ao primeiro da lista.

Alternativas
Comentários
  • O conceito descrito (os nós da lista formarem um anel com o último elemento ligado ao primeiro da lista) é uma lista circular e não uma lista duplamente encadeada.
  • As listas duplamente encadeadas diferenciam-se das listas simplesmente encadeadas pelo fato de, na primeira, os nós possuirem dois ponteiros sendo um para o nó predecessor e outro para o sucessor, enquanto que em uma lista simplesmente encadeada o nó possui apenas um ponteiro para seu sucessor.
  • A definição da questão diz respeito a uma Lista circular.

  • ERRADO.

     

    Essa caracteristica é da LISTA CIRCULAR.

     

    Lista Circular
     Uma lista circular tem como particularidade seu último nó referenciar o primeiro nó da lista.
     A lista circular pode ser simplesmente encadeada ou duplamente encadeada.

  • Força Guerreiro!!!!!!


ID
769273
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação a desenvolvimento de aplicativos web, Oracle e ferramentas CASE, julgue os itens subsequentes.


Ferramentas de documentação, como geradores automáticos de relatórios, fazem parte do conjunto de ferramentas CASE empregadas no desenvolvimento de aplicativos.

Alternativas
Comentários
  • Podemos citar como exemplo o Javadoc que é uma documentação das classes do sistema que pode ser gerada pela IDE (Ambiente de Desenvolvimento) do ECLIPSE no desenvolvimento de aplicativos na linguagem Java.
  • PMD, Checkstyle, findbugs, CPD, ...

ID
769279
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Engenharia de Software
Assuntos

Ferramentas CASE são de uso específico no desenvolvimento de aplicativos web usando banco de dados.

Alternativas
Comentários
  • Exemplo: Podemos ter uma ferramenta CASE para modelagem de processos como o BizAgi.
    Podemos ter um grande universo de aplicativos que não são voltados para Web e utilizam banco de dados e que podem ser modelados numa ferramenta CASE como exemplos: Delphi ou Pascal Object, Visual Basic e outros.

ID
769285
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

O uso de sistemas de banco de dados em aplicações web requer que o desenvolvimento seja feito em linguagem Java.

Alternativas
Comentários
  • gabarito errado!

    pode ser em php por exemplo.
  • Pode ser em qualquer linguagem moderna. Para aqueles que gostam de sofrer ate mesmo em C (nada contra C, é que não é uma linguagem adequada para desenvolvimento web).

  • a maiorias das linguagens web tem suporte pata banco de dados  

  • XML é outro formato de grande uso na internet para integração entre sistemas. 

  • ERRADO.

    Não requer que seja feito em linguagem JAVA, pode ser feito em PHP, por exemplo.A maioria das linguagens web tem suporte pata banco de dados  


  • O SBD (Sistema Banco de Dados) é o conjunto formado pelas Aplicações/Consultas, SGBD e o Banco de dados.

    SBD = APLICAÇÕES + SGBD + BD

    Aplicações: as aplicações são programas que acessam um banco de dados por meio de consultas ou solicitações enviadas a um SGBD.

    SGBD: é um programa que permite que usuários manipulem um Banco de dados.

    BD: Coleção de dados relacionados que representam algum aspecto do mundo real, com dados inter-relacionados coerentemente e com uma finalidade específica.

    Quanto a questão, não há obrigatoriedade que seja feito em linguagem JAVA.

    Gabarito: Errado

  • Pode ser feito através de uma API, conceito novo e que está previsto no edital da PF.

    Uma interface de programação de aplicações (API) é um conjunto de ferramentas, definições e protocolos para a criação e integração de serviços e software de aplicações. Com ela, sua solução ou serviço pode se comunicar com outros produtos e serviços sem precisar saber como eles foram implementados. Ex.: Google Maps, PayPal...

    O acesso aos dados por meio de uma API ajuda os clientes a agregarem informações sobre o inventário em um único local.

    Um exemplo disso é a utilização do Google Maps, essencialmente desenvolvido em JavaScript e que pode ser utilizado conjuntamente com outras linguagens, como C#, Python, ASP.NET e por aí vai.

  • ERRADO

    O banco de dados não obriga que o desenvolvimento do software seja em uma linguagem específica.

  • O banco de dados não obriga que o desenvolvimento do software seja em uma linguagem específica.


ID
769294
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Oracle Designer é a ferramenta CASE da Oracle que simplifica o projeto de sistemas web a partir de modelos de negócios e modelos de entidades e suas relações.

Alternativas
Comentários
  • Oracle Designer é um software tipo CASE da Oracle que facilita o trabalho em equipes, no desenvolvimento de aplicações. Com pouca ou até mesmo sem codificação manual, o Designer possui uma grande repositório compartilhado para gerar aplicativos complexos em diversas linguagens 4GL, como Visual Basic, Web, C++, Etc.

    Possui os seguintes modelos de análise de sistemas: ER (entidade e relacionamento), dataflow e funções de hierarquia.

  • Produto descontinuado.

  • "This product has reached its end of life and is now in "sustaining support" only. (...) For alternative modeling and design tools have a look at Oracle JDeveloper or Oracle SQL Developer Data Modeler."

    Fonte: http://www.oracle.com/technetwork/developer-tools/designer/overview/index-082236.html


ID
769300
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue os seguintes itens, relativos a programação nos sistemas operacionais Windows e Linux.


Dependendo da linguagem de programação, arquivos fontes podem ser compilados e executados sem erros tanto no Linux quanto no Windows, mas os arquivos binários executáveis resultantes da compilação somente podem ser executados em ambos os sistemas por meio de softwares de emulação.

Alternativas
Comentários
  • Certo.
    Os arquivos fontes podem ser criados em qualquer sistema operacional, porque durante o desenvolvimento eles serão executados dentro do compilador apenas. Já o arquivo gerado, que é a soma do arquivo fonte com as bibliotecas específicas do S.O. e relacionado até com o processador. Desta forma, o executável só poderá ser executado no sistema para o qual foi compilado.
  • correto:
    Os arquivos fontes-criados para rodar com compilador.
    arquivo binário gerado-depende de arquivo fonte,dll do sistm.op. e chipset,o que o faz rodar somente no sistema onde foi compilado.
  • É o caso da JVM. Basta compilar o fonte (*.java) para a JVM específica: Windows ou Linux
  • O que acho estranho nesta questão é o termo software de emulação, pois, depois que temos os arquivos binários gerados pela JVM, há, como diz a questão, a dependencia da plataforma, mas, no meu ver não há necessidade de um software de emulação.
  • Lendo os comentários acima tenho a certeza que ninguem dos 'comentaristas' entendeu a pergunta.
  • Sras e Srs,

    Um código fonte, em um mundo de Alice, está livre de contexto de plataforma, ou seja, é exatamente o que diz a questão. 

    Podendo ser usado para ser compilado tanto em Windows, quanto em Linux, FreeBSD, Minix, Unix, e até no SO que estou criando. 

    Pois, o código fonte tem por objetivo expressar como será realizado em tarefa no computador, mas de modo que o programador seja capaz de escrever/ler. Tomemos como exemplo a linguagem C:

    #include 
    int main() {

    printf("mensagem ao usuário\n");     

    return 0;

    }


    Note que o código acima não faz referência a nenhuma plataforma em específico, assim, ele poderá ser compilado em várias delas indistintamente. No entanto, temos uma chamada de linguagem, melhor de pre-processamento "#include", esta diretriz indica ao compilador que o código precisa de um conjunto de funcionalidades conhecidas para a plataforma alvo.

    Assim, se efetuarmos a compilação deste código em um ambiente MS Windows, o binário será direcionado para este MS Windows. Pois, o conjunto de libs disponibilizada para o binário recém criado é especifico para MS Windows.

    Por outro lado, se a compilação ocorrer em uma plataforma Linux-based, o conjunto de libs disponibilizada para o binário será específico para este tipo de Linuxs.

    Acredito que até este ponto desta explicação, você já tenha entendido que estamos respondendo até este ponto da questão:
    "Dependendo da linguagem de programação, arquivos fontes podem ser compilados e executados sem erros tanto no Linux quanto no Windows".

    Assim, temo dois binários: um para Windows outro para Linux. E os dois são incompatíveis entre si, mesmo sendo oriundos do mesmo código fonte.

    Se ambos são diferentes entre si, como fazer para um rodar na plataforma do outro? Resposta: Emulando a plataforma desejada.

    E como fazer isto? Usando um emulador( :) ) como Wine(Linux -> Windows), por exemplo. Mas se eu quiser rodar um programa Linux no Windows, tem como? Deve ter. ;)

    Mas eu poderia usar o virtualbox, certo? Errado. 

    O VBox é um virtualizador que tem a função de virtualizar um ambiente completo (hardware) para instalação de um SO completo. Ao usar o Wine, não precisamos deste aparato todo, basta instalá-lo no próprio linux e apontar para o arquivo executável e pronto.

    Com isto, respondemos a segunda parte da questão:
    "mas os arquivos binários executáveis resultantes da compilação somente podem ser executados em ambos os sistemas por meio de softwares de emulação."

    A resposta ficou um pouco grande, mas espero que te ajude nos estudos.

    Força e Foco!

  • Detalhes da questão: 
    - Ela fala de código compilado e não traduzido.
    - Quando a questão fala "arquivos binários executáveis" isso exclui por exemplo códigos em bytecode (como Java), pois não é um código executável e sim intermediário que irá ser interpretado numa máquina virtual.

    Considerando isso, códigos compilados em Windows para rodarem em Linux precisam ser emulados e vice-versa.

  • Resumundo em exemplo: Você não pode executar um arquivo com a extensão *.exe no Linux sem um emulador.Pois arquivos com esse tipo de extensão é nativo do Windows. Porém o mesmo código fonte com a extensão *.java por exemplo rodam(compila) em ambas as plataformas desde que tenham a JVM. Portanto a questão está correta. O arquivo executável do software em Linux não rodam em Windows se e somente se ultilizarem um emulador e ponto final.  Questão simples.


ID
769306
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

O sistema Linux utiliza vários gerenciadores de janelas, enquanto o Windows possui seu gerenciador de janelas embutido no sistema operacional. Essa é a principal razão pela qual programas desenvolvidos em Linux usando interfaces gráficas apresentam difícil portabilidade para Windows.

Alternativas
Comentários
  • Errado. O Mozilla Firefox é um exemplo de aplicativo que roda na interface gráfica do Linux e também no Windows. Como sempre, a CESPE menosprezando os softwares livres (dica). Quando isto ocorre, seja na comparação Windows x Linux, ou Internet Explorer x Mozilla Firefox, ou Microsoft Office x BrOffice/OpenOffice/LibreOffice, é sinal de que a afirmação deve estar errada.
  • O sistema Linux utiliza vários gerenciadores de janelas, enquanto o Windows possui seu gerenciador de janelas embutido no sistema operacional. Certo !  Essa é a principal razão pela qual programas desenvolvidos em Linux usando interfaces gráficas apresentam difícil portabilidade para Windows. Errado !
  • errado- alguns windows managers (software que controla comportamento de janelas) para Linux. Exemplos de GUI: E17,Gnome,KDE,LXDE,Xfce.
  • Nada a ver o comentário do Fernando Nishimura, acima.
  • O fato de existirem diversos sistemas de gerenciamento de janela no Linux e somente um no Windows não é a principal dificuldade, e sim o fato de serem sistemas de gerenciamento de janelas diferentes. Sem falar que são sistemas operacionais distintos, o que resulta em formas diferentes de fazer a mesma coisa, causando ainda mais dificuldade no quesito portabilidade.
  • A questão da portabilidade de programas em sistemas operacionais (SO) não está relacionada à interface gráfica, mas sim ao kernel do SO e como são implementadas as suas system calls (chamadas de sistemas).  Linux e os demais sistemas Unix-like utilizam o padrão POSIX, ao passo que os sistemas Windows utilizam a WIN32 API.
    (Mais informações no livro Sistemas Operacionais Modernos de A. Tanenbaum.)

    Outro fator a ser considerado é o tipo de linguagem de programação. Pois linguagens interpretadas em máquinas virtuais como Java e Python não sofrem com o problema de portabilidade.

    Bons estudos.
  • Pelo que sei, o maior problema que causa incompatibilidade de programas feitos em linux para windows é o fato de que o windows trabalha com extensões de arquivos e o linux não.

     

    Gabarito: E

  • Errado

    Linux é um termo popularmente empregado para se referir a sistemas operativos ou sistemas operacionais que utilizam o Kernel Linux. O núcleo foi desenvolvido pelo programador finlandês Linus Torvalds, inspirado no sistema Minix.

    Versão gratuita de sistema operacional. a Microsoft, não gosta disso é claro..

    Quanto a banca sempre que denegrir funcionalidades do linux, possivelmente está errada a questão....

    Microsoft Windows é uma família de sistemas operacionais desenvolvidos, comercializados e vendidos pela Microsoft.


ID
769312
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

As bibliotecas compartilhadas encontradas no sistema operacional Linux são equivalentes às bibliotecas dinâmicas empregadas no sistema operacional Windows em todos os seus aspectos.

Alternativas
Comentários
  • Errado.
    Elas são semelhantes sim, tanto no acesso aos recursos do hardware como nas respostas enviadas ao software, porém não é 'em todos os seus aspectos'.
  • errado- diferenças entre Linux e Windows dll:

    Linux é baseado em Unix, sistema usado em mainframes, enquanto windows foi criado para pc. Isso explica o porquê de Linux ter tanta distinção entre root e user e excesso de segurança. Como Linux é open-source, há muita dependência entre os arquivos de suporte, os quais são compartilhados com outros. Isso explica por que Linux tem os arquivos,binários e dlls espalhados, enquanto q windows tem tudo em pastas padrões.
  • Respondi por conta do trecho "em todos os seus aspectos". Questões com afirmações absolutas, em geral, estão erradas.
  • "As bibliotecas compartilhadas encontradas no sistema operacional Linux são equivalentes às bibliotecas dinâmicas empregadas no sistema operacional Windows em todos os seus aspectos. "

    Errado. Nem precisa se aprofundar muito. Bilbiotecas compartilhadas no Linux normalmente seguem o padrão libxxxx.so (com a extensão 'so') ao passo que no Windows temos as famigeradas DLLs (dynamic-link library ou biblioteca de vínculo dinâmico).
  • sinto-me um burro/lixo, respondendo questões de informática! Como passar em um concurso assim? pqp


ID
769318
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação a classificação de dados, julgue os itens que se seguem.


O método de classificação Shellsort iguala-se ao método Quicksort em termos de complexidade temporal, porém é mais eficiente para quantidades pequenas a moderadas de dados.

Alternativas
Comentários
  • Shellsort:
      É o método a ser escolhido para a maioria das aplicações por ser muito e?ciente para arquivos de tamanho moderado.
      Mesmo para arquivos grandes, o método é cerca de apenas duas vezes mais lento do que o Quicksort.
      Sua implementação é simples e geralmente resulta em um programa pequeno.
      Não possui um pior caso ruim e quando encontra um arquivo parcialmente ordenado trabalha menos.
  • A questão está errada por completa. "O método de classificação Shellsort iguala-se ao método Quicksort em termos de complexidade temporal, porém é mais eficiente para quantidades pequenas a moderadas de dados."
    A primeira parte está completamente errada. O Shellsort tem a complexidade dependente do gap escolhido. O problema da complexidade de tempo do Shellsort continua aberto. Mas, de uma forma geral, ele é pior que o Quicksort.
    A segunda parte é relativa. Depende bastante dos dados de entrada. O Shellsort se beneficia de dados ordenados ou quase ordenados. Para dados aleatórios, o Quicksort tende a se sair melhor. Na prática, o shellsort se sai um pouco melhor com um conjunto pequeno de dados. Mas não é categórico que ele é mais eficiente.
  • Shellsort - O(n lg(n)2)

    Quicksort - O(nlg(n))

  • QUICK - o (n log n) || o (n log n) || O (n2)

    Shell -    O (n) || o (n) || O (n log n)

  • Força Guerreiro!!!!!!


ID
769324
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Ao se tratar de classificação parcial de um conjunto de dados, o método mais indicado, de forma geral, é o Quicksort Parcial.

Alternativas
Comentários
  • http://www.dcc.ufmg.br/algoritmos-edicao2/cap4/transp/completo4/cap4.pdf
  • QuickSort

    Também conhecido como interchange sort, ou método de troca e partição, parte de uma premissa conhecida: dividir para conquistar, isto é , dividir um problema grande em problemas menores geralmente diminui a complexidade geral do problema.

    É método de ordenação por troca, sendo que, é mais difícil de ser implementado. O Bubble sort, outro método de ordenação por troca, é mais simples.


    Gabarito Certo


    Fonte: Estrutura de Dados - Botini - Ed: Senac

  • Questão muito esquisita. Não existe um método que seja sempre o mais indicado
    , sempre haverá de se analisar o caso, além de certas condições como por exemplo se os dados já estão parcialmente ordenados, o número de elementos a se ordenar, etc etc

  • Rafael, quando ele fala de forma geral, quer dizer que na maioria dos testes ele sai campeão!

  • Força Guerreiro!!!!!!


ID
769330
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Métodos de classificação por contagem são mais eficientes em termos de complexidade de tempo de execução que os métodos de classificação por comparação de chave.

Alternativas
Comentários
  • Os métodos por contagem utilizam informação anterior para ordenar. Dessa forma, eles não estão resolvendo exatamente a mesma classe de problemas dos métodos por comparação.
    De qualquer forma, métodos por contagem conseguem ordenar em tempo linear (O(n+k) para o counting sort, geralmente k=n), enquanto métodos por comparação possuem o limite inferior de O(n log n) (maior que linear).
  • Força Guerreiro!!!!!!


ID
769339
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A classificação de um conjunto de dados é realizada a partir de uma chave, que deve ser única para todos os registros do conjunto de dados.

Alternativas
Comentários
  • Mais de uma chave pode tornar um registro único.
  • Questão simples, a chave é o que será comparado para fazer a classificação. A chave não precisa ser única em um conjuno de dados. Um exemplo é a classificação (ordenação) de um conjunto números com repetidos (1,1,4,6,7). Algoritmos de classificação devem prever essa possibilidade.
  • A chave pode ser primária ou estrangeira.


ID
769345
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O método de classificação Quicksort é estável e executado em tempo linearmente dependente da quantidade de dados que estão sendo classificados.

Alternativas
Comentários
  • O consumo de tempo da função quicksort é proporcional ao número de comparações entre elementos do vetor. Se o índice j devolvido por separa estiver sempre mais ou menos a meio caminho entre p e r , o número de comparações será aproximadamente

    n log2n ,

    sendo n o número de elementos do vetor. Caso contrário, o número de comparações estará na ordem de n2 . (Isso acontece, por exemplo, se o vetor já estiver ordenado ou quase ordenado.) Portanto, o pior caso do Quicksort não é melhor que o dos algoritmos elementares.

    Felizmente, o pior caso é muito raro. Em média, o consumo de tempo do quicksort é proporcional a n log2n .

  • "O método de classificação Quicksort é estável..."

    O método QuickSort é instável. Os métodos de classificação estáveis são MergeSort, InsertionSort e BubbleSort.

    "... e executado em tempo linearmente dependente da quantidade de dados que estão sendo classificados."

    Não é linear - O(N). A complexidade do QuickSort é O(N * log(N)), isso no melhor caso e no caso médio. No pior caso, a complexidade do QuickSort é O(N²).

    Abraços.
  • ESTÁVEL: Um algoritmo de ordenação diz-se estável se  preserva a ordem de registros de chaves iguais. Isto é, se tais registros aparecem na sequência ordenada na mesma ordem em que estão na sequência inicial. 

    Esta propriedade é útil apenas quando há dados associados às chaves de ordenação.


    Alguns algoritmos de ordenação estáveis:

    · Bubble sort

    · Insertionsort

    · Merge sort

    · Bucket sort

    · Counting Sort2

     

    Alguns algoritmos de ordenação não estável:

    · Selection Sort (Dependedo algorítmo)

    · Quick Sort

    · Heap Sort

    · Shell Sort


  • algoritmos estáveis - MIB, homens de preto - merge, insert e bubble sort

    algoritmos instáveis - SSH Q, segurança - select, shell, heap e quick sort

  • Em Quicksort, a lista é dividida em parte esquerda e parte direita, sendo que os elementos da parte esquerda são todos menores do que os elementos da parte direita. Em seguida, as duas partes são ordenadas recursivamente.nao é linear pois seu desempenho é (n log n).

  • Força Guerreiro!!!!!!


ID
769351
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Caso os dados estejam fora de ordem, o uso do método de classificação por inserção é pouco eficiente, mas quanto mais ordenados os dados estiverem inicialmente, mais eficiente em termos de tempo de execução ele se torna.

Alternativas
Comentários
  • De acordo com Ziviani,
    O número mínimo de comparações e movimentos ocorre quando os itens estão originalmente em ordem.
    O número máximo ocorre quando os itens estão originalmente na ordem reversa.
  • 2016

    O algoritmo de ordenamento por inserção tem o menor número de trocas quando o vetor está ordenado de forma inversa à ordem do procedimento.

    Errada

     

    2012

    O método de ordenamento denominado inserção funciona por meio do seguinte processo: encontra-se o menor elemento, que é posicionado na primeira posição, depois posiciona-se o segundo menor elemento na segunda posição, e assim sucessivamente.

     

    Errada → selection

     

  • Força Guerreiro!!!!!!


ID
769357
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Com relação ao mapeamento lógico de dados, julgue os itens a seguir.



No mapeamento de uma entidade fraca, essa entidade será transformada em uma tabela cuja chave primária contém os atributos que compõem a chave primária da entidade da qual essa entidade fraca é dependente.

Alternativas
Comentários
  • No mapeamento de uma entidade fraca, essa entidade será transformada em uma tabela cuja chave primária contém os atributos que compõem a chave primária da entidade da qual essa entidade fraca é dependente.

    Gabarito está CORRETO, mas tenho uma ressalva.

    O conceito é o que está abaixo, mas pelo que eu entendi a questão afirma que a chave primária da entidade forte fará parte da chave primária na entidade fraca. Ela será FK, mas nem sempre essa FK faz parte da PK!


    Cada entidade fraca é uma tabela com os 
    atributos da entidade e a chave primária da 
    entidade da qual é dependente.

    Cada entidade forte é uma tabela com os 
    atributos da entidade.

    http://www.inf.puc-rio.br/~melissa/informatica/materias/bd1/material/bd1-modulo4b_MERRelacional.pdf
  • [Fonte: Sistemas de Banco de Dados - 6 Edição - Elmasri e Navathe - Página 190]

    [...]

    Mapeamento de tipos de entidade fraca.

    Para cada tipode de entidade fraca F no esquema ER com tipo de entidade proprietária E, crie uma relação R e inclua todos os atributos simpes (ou componentes simples dos atributos compostos) de F como atributos de R. Além disso, inclua como atributos de chave estrangeira de R os atributos de chave primária da(s) relação(ões) que corresponde(m) aos tipos de entidade proprietária. Isso consegue mapear o tipo de relacionamento de identificação de F. A chave primária de R é a combinação das chaves primárias dos proprietários e a chave parcial do tipo de entidade fraca F, se houver.

    [...]


    O gabarito é "Certo", pois a questão afirma que a entidade fraca será mapeada em uma tabela cuja chave primária irá conter os atributos de chave primária da tabela proprietária, ou seja, da tabela cuja entidade fraca possui uma relação de dependência.

  • CERTO

    Esse é o entendimento do CESPE. Várias questões com esse pensamento.

    #naobanqueoheroi

  • No mapeamento de uma entidade fraca, essa entidade será transformada em uma tabela cuja chave primária contém os atributos que compõem a chave primária da entidade da qual essa entidade fraca é dependente.



    O conceito é o que está abaixo, mas pelo que eu entendi a questão afirma que a chave primária da entidade forte fará parte da chave primária na entidade fraca. Ela será FK, mas nem sempre essa FK faz parte da PK!


    Cada entidade fraca é uma tabela com os 

    atributos da entidade e a chave primária da 

    entidade da qual é dependente.


    Cada entidade forte é uma tabela com os 

    atributos da entidade.


    http://www.inf.puc-rio.br/~melissa/informatica/materias/bd1/material/bd1-modulo4b_MERRelacional.pdf

  • Poderíamos afirmar, então, que entidade fraca tem chave primária??

    obs: não to discordando do gabarito


ID
769366
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Ao se mapear um modelo de dados conceitual em um modelo lógico relacional, verifica-se a correspondência um para um entre entidades conceituais e tabelas.

Alternativas
Comentários
  • Na maioria das vezes uma entidade conceitual se tornará uma tabela, mas podem haver casos que 2 ou mais entidades conceituais se tornarão uma única tabela no modelo logico.
  • Conforme o amigo acima escreveu, há caso em que uma entidade conceitual se transforma em mais de uma tabela.
  • Errei a questão pois pensei no caso das generalizações.

    Imagine la no modelo conceitual que você possui uma generalização. Quando você mapeá-lo para o modelo lógico, você terá 3 opções de mapeamento:
    • Pode ser criada uma tabela para toda a hierarquia
    • Uma tabela para cada entidade da hierarquia
    • Ou uma tabela para cada entidade especializada
    Se alguém ver algum erro poste aí!


    abrasss!

  • De modo geral uma entidade vira uma tabela só. Acontece que depois pode haver um processo de normalização que gere uma decomposição de relações. Porém isso é abrangido pela teoria do modelo relacional e não tem haver com a conversão de um modelo para outro. Eu creio que a questão se refere ao modelo entidade relacionamento clássico original, por isso não deve ter sido considerado o caso da generalização, no qual uma entidade mais geral pode não ser mapeada como o Diego citou. Porém acho que essa dúvida que o Diego teve é bem pertinente visto que o modelo estendido é muito usado, de modo que a questão deveria ser mais explícita quanto a isso. Mas as bancas infelizmente são assim, de modo que caso apareça somente modelo conceitual ou modelo entidade relacionamento sem citar as extensões me parece boa ideia considerar implícito que se trata do modelo clássico e não o estendido.

  • Acho q o q torna a questão correta eh o "verifica-se". Vamos nos aprofundar mais sobre generalizaçaõ/especialização.

    Imagine a entidade Pessoa, com seus atributos Código, Nome e Endereço; posso especializa-la da seguinte forma:

    Pessoa Fisica, com todos os atributos de Pessoa mais o atributo CPF;

    Pessoa Jurífica com todos os atributos de Pessoa, mais o atributo CNPJ;

    As entidades Pessoa Física e Jurídica são especializações da entidade Pessoa. Posso representar isso no banco de dados de duas formas:

    1) Criar uma única tabela para todas as especializações e incluir um campo diferenciador: Ex:

    Pessoa: Código, TipoDePessoa, Nome, Endereço, Telefone, CPF, CNPJ;

    2) Criar uma tabela para cada especialização e definir mais um campo identificador. Ex:

    Pessoa: Código, Nome, Endereço;

    Pessoa_Fisica: CodPessoa, CPF;

    Pessoa_Juridica: CodPessoa, CNPJ.

    Como se nota, os dois tipos podem ser usados, ou seja, também ha a possibilidade de eu modelar uma entidade conceitual para mais de uma tabela, no caso da especialização(alias, essa é uma boa prática de projeto de BD).

    Como eu disse, acho q o "verifica-se", na visão do examinador, torna a questão correta; porem, acho mesmo q a questão deveria ser anulada por tambem ser possivel a modelagem 1:N, como citado.


  • @Nelson Piquet, ao ler esta questão, interpretei-a como sendo: "entre outros pontos, analisa-se a relação ... ", não seria por esta  linha? Note que a banca não diz: "verifica-se apenas..."

     

     

     

  • Acredito que a questão quis dizer é o seguinte, cada entidade realmente irá se tornar uma tabela, porém no modelo relacional poderemos ter a opção de normalizar uma tabela, o que pode resultar em mais de uma tabela.

  • Essa questão tem uma pegadinha ou foi mal elaborada. O problema está na compreensão do "verifica-se". Se pensarmos que o mapeamento do banco de dados da questão é uma opção entre outras, sim, podemos verificar a correspondência. Porém "verifica-se" pode ser interpretado como a única possibilidade de transformação entre modelos. Isso é incorreto. Por favor, vejam Projeto de banco de Dados, Carlos Alberto Heuser, capítulo 5.

     

    "Um determinado modelo ER pode ser implementado através de diversos modelos relacionais, que contém informações especificadas pelo diagrama ER. Cada um destes modelos relacionais alternativos pode ser considerado uma implementação correta do modelo ER considerado. Entretanto , estes diferentes modelos relacionais podem resultar em diferentes performances do sistema construído sobre o banco de dados."

     

    No caso da generalização/especialização, "há duas alternativas principais a considerar: (1) uso de uma tabela para cada entidade e (2) uso de uma única tabela para toda a hierarquia de generalização/especialização."

    No caso de relacionamentos, "a alternativa específica que deve ser usada na tradução de um relacionamento é determinada pelas cardinalidades mínima e máxima das entidades envolvidas nos relacionamentos."

     

    https://books.google.com.br/books?id=UKtB7_MnWQMC&lpg=PP1&dq=Projeto%20de%20banco%20de%20Dados%2C%20Carlos%20Alberto%20Heuser&hl=pt-BR&pg=PA135#v=onepage&q=Projeto%20de%20banco%20de%20Dados,%20Carlos%20Alberto%20Heuser&f=false

  • Segue uma questão que contesta esse gabarito...

     

    Ano: 2013 Banca: CESPE Órgão: Ministério das Comunicações - MC

    Em um banco de dados relacional, os dados são percebidos como tabelas que representam entidades, entretanto, nem todas as tabelas implementadas de fato representam entidades conceituais.

    Resposta: Certa

  • De modo geral uma entidade vira uma tabela só. Acontece que depois pode haver um processo de normalização que gere uma decomposição de relações. Porém isso é abrangido pela teoria do modelo relacional e não tem haver com a conversão de um modelo para outro. Eu creio que a questão se refere ao modelo entidade relacionamento clássico original, por isso não deve ter sido considerado o caso da generalização, no qual uma entidade mais geral pode não ser mapeada como o Diego citou. Porém acho que essa dúvida que o Diego teve é bem pertinente visto que o modelo estendido é muito usado, de modo que a questão deveria ser mais explícita quanto a isso. Mas as bancas infelizmente são assim, de modo que caso apareça somente modelo conceitual ou modelo entidade relacionamento sem citar as extensões me parece boa ideia considerar implícito que se trata do modelo clássico e não o estendido.

  • "correspondência um pra um"?? Nem sempre! Gabarito contestável

  • "Modelo Lógico é o modelo de dados que representa a estrutura de dados de um banco de dados conforme o paradigma que será utilizado. Nesse caso, o modelo pode ser baseado em: 

    Modelo Relacional organiza os dados em tabelas (relações).

    Modelo hierárquico organiza os dados como diretórios.

    Modelo orientado a objeto cria classes para descrever os objetos e é utilizado com base no modo de programação orientada a objetos. Nesse caso, uma classe é um conjunto de informações, características, relações, ações e atributos do objeto.

    Modelo em rede organiza os dados por ponteiros, um ligado ao outro, essas ligações são relações entre os registros e oferece maior segurança do que o hierárquico." 

    Gab: CERTO

  • Difícil...

    (CESPE-2010) Na construção de um banco de dados relacional, a vinculação entre as entidades conceituais e as tabelas implementadas no banco de dados é biunívoca, ou seja, cada entidade conceitual dá origem a uma única tabela. ERRADO

  • FALTOU RECURSO PRA ANULAR. ABRAÇOS!

  • Concordo com o Renan.

    FALTOU RECURSO PRA ANULAR. ABRAÇOS!

  • O comando deveria ser: De acordo com sua bola de cristal adivinhe a questão a seguir:


ID
769372
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de mapeamento físico de dados, julgue os itens seguintes.


Para cada atributo usado em operações de join, deve-se criar um índice.

Alternativas
Comentários
  • Geralmente indices são criados para campos muito utilizados em pesquisas nas tabelas, e como default temos indices em chaves primarias dessas tabelas.
  • Nas operacoes joins(em q vc faz consultas em duas ou mais tabelas - "juntando-as"), se fosse necessarios criar um indice pra cda atributo(traduzindo, para cada coluna), o uso do indice perderia sua vantagem.
    A vantagem em se usar indice esta justmamente no fato de se criar apenas para uma(geralmente a chave chave primaria), ou algumas colunas. Assim, em um join, digamos de duas tabelas, os indices das chaves primarias dessas 2 tabelas seriam necessarios para se obter o resultado, nao sendo necessario consultar todos os registros de todas as colunas.
  • Errado.
     
    Índice: é uma referência associada a uma chave, que é utilizada para fins de otimização, permitindo uma localização mais rápida de um registro quando efetuada uma consulta.
     
    Tomando como base a definição acima, podemos inferir que nem todo atributo de uma operação de JOIN poderá ser atribuído um índice, pois, geralmente, nem todos os atributos de uma tabela (relação) é uma chave.

    E o banco de dados precisa estar normalizado, pois se não estiver na 1FN, existirá atributos multivalorados, fazendo com que exista índices duplicados.
  • Marcelo Souza, o atributo não precisa ser chave da relação pra que tenha índice.

    O erro é só esse deve mesmo, porque não dá pra generalizar dessa forma em um projeto de banco de dados.

    Você vai criar um índice se precisar. Se não precisar, não cria.

    Se você tem um select com join que roda poucas vezes no sistema e as tabelas envolvidas não tem muitas linhas, não tem por que criar índice. Acho que o erro é esse.

  • A resposta esta na pergunta: A palavra deve-se tem sentido de obrigatoriedade, o que não esta correto.

  • https://www.devmedia.com.br/sql-join-entenda-como-funciona-o-retorno-dos-dados/31006


ID
769378
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Na seleção dos métodos de acesso a registros físicos, deve-se considerar a forma como os dados serão utilizados pelas diversas aplicações.

Alternativas
Comentários
  • Pelo menos em um deles temos que levar isso em consideração.
    Na busca binária:

    * o alto custo para manter a tabela ordenada: a cada  inserção na posição p da tabela implica no  deslocamento dos registros a partir da posição p para  as posições seguintes * Portanto, a pesquisa binária não deve ser usada em  aplicações muito dinâmicas

    fonte: http://homepages.dcc.ufmg.br/~cunha/teaching/20121/aeds2/searching.pdf

    bons estudos
  • Certo, pois o nível físico é dependente de arquitetura de hardware e software.

  • A decisão de incluir ou não um método de acesso como índice ou hashing a um determinado arquivo de dados pressupõe uma avaliação a respeito das operações que serão realizadas sobre a tabela armazenada.

    Se estamos falando de uma estrutura que é criada principalmente para a realização de consultas (extração de dados), faz sentido criarmos métodos de acesso alternativo. Já se estamos falando de tabelas frequentemente utilizadas para modificações (inserções e remoções de registros), os índices podem representar uma perda de performance significativa.

    Gabarito: C


ID
769384
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Em operação de junção (join), atinge-se maior eficiência quando os registros físicos estão ordenados pelo atributo usado na junção.

Alternativas
Comentários
  • Certo, pois se os índices são utilizados para realizar pesquisas mais rapidamente E o atributo utilizado no join está indexado, a pesquisa irá se tornar mais rápida.
    Acertiva correta!
  • Se forem utilizados índices, mas a questão não diz que foram utilizados. E nem é obrigatório.

    Uma questão da mesma prova diz que não é obrigatório:

    http://www.questoesdeconcursos.com.br/questoes/a4824ba4-ef

    Acho que o gabarito está errado.

  • Até onde sei, não é porque esta indexado que está ordenado!

  • registros físicos?


ID
769390
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Julgue os itens de 91 a 95, referentes a projeto de banco de dados.



Para que um projeto de banco de dados seja considerado robusto, é de vital importância que ele seja voltado para a aplicação na qual os dados serão usados, assegurando-se, dessa forma, que a aplicação será atendida em suas necessidades relacionadas a dados.

Alternativas
Comentários
  • Acredito que robusto está voltado mais a questões internas do SGDB como transações que precisam garantir consistência, atomicidade, independência e durabilidade, além da recuperação em caso de falhas.
  • Acredito que o erro está em dizer que está voltado para a aplicação, creio que seja independente da aplicação.
  • A robustez do projeto de banco de dados está ligado à sua independência e resiliência, o que leva a pensar também no seu ciclo de vida: quanto mais longo, mais robusto, que significa dizer que ele continua útil com o passar do tempo, sem a necessidade remodelação em função das mudanças das aplicações a que serve. É um aspecto de baixo acoplamento.
  • Para que um projeto de banco de dados seja considerado robusto, é de vital importância que ele seja voltado para a aplicação na qual os dados serão usados (1º ERRO):

    Se a questão especificasse "projeto físico de banco de dados" esta parte poderia está correta, mas como ela generalizou "projeto de banco de dados" deixou essa parte incorreta porque durante o processo geral de projeto e implementaçaõ de banco de dados nós temos duas fases entre as seis que são: 2. Projeto Conceitual do banco de dados; 5. Projeto Físico do Banco de dados. Na fase 2 citada anteriormente nós vamos produzir um esquema conceitual (Modelo E/R) e que seja independente de SGBD específico, no momento isso não é interessante para o usuário.

     

    assegurando-se, dessa forma, que a aplicação será atendida em suas necessidades relacionadas a dados (2º ERRO):

    quer dizer que se eu escolher a aplicação (SGBD) em que os dados serão manipulados isso vai me garantir que vai atender as necessidades relacionadas ao dados? Não faz o menor sentido, porque na fase de levantamento e análise de requisitos, basta que 1 dado seja levantado errado para que não seja atendindo as necessidades. 

     

    Gab: ERRADO

     

     

  • Para que um projeto de banco de dados seja considerado robusto, é de vital importância que ele seja voltado para a aplicação na qual os dados serão usados, assegurando-se, dessa forma, que a aplicação será atendida em suas necessidades relacionadas a dados.

    Não é necessáriamente voltado para aplicação, pode ser que seja ou não.

  • "Segundo Navathe, são quatro as principais características da abordagem de banco de dados que o fazem sobressair em relação às abordagens de processamento de arquivo:

    1 - natureza de autodescrição (dicionário)

    2 - isolamento entre programas e dados (abstração de dados)

    3 - suporte a múltipla visões de dados

    4 - compartilhamento de dados e processamento de transação multiusuário."

    fonte: estrategia

     

    Assim, não há que se falar de aplicação para garantir a robustez  de um Banco de dados.

     

     

  • Robusto != válido para clientes

    Questão errada

  • Complementando:

    Segundo Navathe,

    No processamento tradicional de arquivosa estrutura do arquivo de dados está embutida no programa da aplicação, sendo assim, qualquer mudança na estrutura de um arquivo pode exigir alterações de todos os programas que acessam esse arquivo. Ao contrário, os programas para acesso ao SGBD não exigem essas alterações na maioria dos casos. A estrutura dos arquivos de dados é armazenada no catálogo do SGDB separadamente do programa de acesso. Denominaremos essa propriedade independência programa-dados.

  • Para que um projeto de banco de dados seja considerado robusto, é de vital importância que ele seja voltado para a aplicação na qual os dados serão usados, assegurando-se, dessa forma, que a aplicação será atendida em suas necessidades relacionadas a dados.

    Bom, tive que ler várias vezes para entender, então vamos lá, pois a questão induz mesmo ao erro.

    O projeto de BD ao qual a questão está se referindo está relacionado ao modelo conceitual de BD, traduzindo, aquela parte que não depende do SGBD, sendo feito apenas um esposo/layout de como será tudo!

    Por conseguinte, na teoria em si essa parte **** para a implementação, mas na prática é outros quinhentos.

    AVANTE


ID
769399
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

O processo de normalização é reversível em virtude de preservar as informações das variáveis de relação ao longo do processo de substituição dessas variáveis.

Alternativas
Comentários
  • O processo de normalização não perde informações, ou seja, é reversível. Se estamos na forma 3FN podemos facilmente voltar para a forma 2FN, já que não perdemos dados.
  • Que questão horrorosa....

  • (Q290920) Ano: 2012 Banca: CESPE Órgão: TJ-AC Prova: Analista Judiciário - Análise de Sistemas

    A normalização corresponde a um processo passo a passo reversível de substituição de uma dada coleção de relações por sucessivas coleções de relações, as quais possuem uma estrutura progressivamente mais simples e mais regular. (C)


ID
769405
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Na desnormalização de tabelas, representa-se a inclusão de redundância de dados e se afeta a terceira forma normal, provocando-se, dessa forma, a inconsistência dos dados e a diminuição do desempenho no acesso aos dados.

Alternativas
Comentários
  • O erro está em "provocando-se, dessa forma, a inconsistência dos dados e a diminuição do desempenho no acesso aos dados.". A inclusão de redundância não provoca a inconsistência dos dados, apesar de aumentar o risco de ocorrerem. A consistência dos dados deve ser garantida por outros meios. O desempenho no acesso aos dados pode aumentar ou diminuir, dependendo da maneira como os dados são acessados, ou seja, da aplicação. Normalmente, ao se desnormalizar, são consideradas aplicações que tiraram proveito disso, como é o caso de modelagens multidimensionais.
  • Verdade mesmo é que ela pode ser utilizada como uma ferramenta aumentar a performance. Não é possível afirmar que sempre vai performático desnormalizar.
  • Uma forma de aumentar o desempenho sem perder a consistência:

    Em um caso onde existe uma tabela que é muito grande, e tem muitos acessos, mas poucas inserções (exemplo: a tabela de consulta de CEP/Endereço no webservice dos correios). É possível desnormalizar para melhorar o desempenho e deixar tudo (Ex.: CEP, endereço, cidade, estado) em uma mesma tabela, e para evitar inconsistência, acrescentar triggers para update/delete/insert para verificar, a cada inserção, se os dados foram atualizados em todas as tabelas necessárias.


ID
769411
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A decomposição de uma variável de relação, que esteja na primeira forma normal em relações, na segunda forma normal consiste um procedimento eficaz para eliminar completamente as anomalias de inserção.

Alternativas
Comentários
  • A 2FN não elimina completamente a anomalia de inserção. Não sei dizer se a 3FN elimina completamente, mas é possível que sim.
    A anomalia de inserção ocorre na inserção de dados novos. O melhor jeito de entender é com um exemplo. Digamos um funcionário A, que trabalha na sede Limeira de uma empresa, e no banco de dados está ('A', 'Limeira'). A anomalia ocorre se um funcionário B que trabalhe na mesma sede insira um dado errado, como 'Limera' (sem o i), ou seja, ('B','Limera'),  o que causa inconsistência no BD, pois ambos trabalham no mesmo lugar, mas uma consulta pode não indicar isso devido ao erro.
    Voltando à questão, se as relações não estão na 3FN, há dependências transitivas, portanto, possibilidade de haver inconsistências dentro do registro. Qualquer das colunas que estiverem na depedência transitiva pode ferar a inconsistência, pois os valores delas não estão definidos em outra relação, mas diretamente no registro.
  • Complementando os comentários do Yuri Maia, em nenhuma forma normal temos a completa eliminação das anomalias e redundâncias. O que acontece é que a cada passsagem ( 1FN -> 2FN , 2FN -> 3FN ) as anomalias e redundâncias vão diminuindo. No meu entendimento também torna errada questão "variável de relação" ao invés de atributo de relação. 

  • Para o DATE, váriavel  de relação = tabela.


ID
769417
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

O projeto físico de banco de dados consiste na criação de tabelas que representam a implementação do modelo lógico, preservando todos os atributos e entidades.

Alternativas
Comentários
  • O projeto físico de banco de dados consiste na criação de tabelas que representam a implementação do modelo lógico, preservando todos os atributos e entidades.

    Não é sempre que serão preservardos todos os atributos e entidades. Após o processo de normalização alguns atributos podem ser alterados.
  • Acredito que o erro esteja no uso da palavra "banco de dados" de uma forma genérica, pois ai encaixa, BDs relacional, OO, hierarquico, em rede, que nem sempre consiste na criação de tabelas para representarem a implementação do modelo lógico.
  • Sobre o colega com dúvida sobre a normatização no modelos lógicos:

    Para que o BD seja implementado fisicamente ele deve estar normatizado de modo a corrigir eventuais incoscistências e demais erros. Ou seja: "só será possível" fazer um bom projeto físico com um banco de dados corretamente modelado logicamente. 
  • O projeto físico não seria as estruturas de dados e metadados utilizados pelo SGBD?

  • Gente tabelas é sinônimo de relação no modelo relacional, sendo assim elas aparecem no modelo logico e não no fisico, onde o existe é o que o Bruno falou

  • Só complementando: No modelo lógico deve-se eliminar atributos derivados ou calculados, ou seja, não é recomendado armazenar o resultado de cálculos nas tabelas. O correto é que o cálculo seja gerado sob demanda, normalmente em uma consulta. E toda entidade no modelo conceitual vira uma tabela no modelo lógico, mas nem todo modelo lógico de dados é a cópia fiel do modelo conceitual de dados.

    Podemos concluir então que a última etapa depois do projeto lógico, no caso o projeto físico, não irá preservar todos os atributos que foram descritos inicialmente para o projeto de banco de dados.

    http://www.devmedia.com.br/artigo-sql-magazine-32-mais-de-90-dicas-de-modelagem-de-dados/7832

  • Se a normalização ocorre no modelo lógico, isso significa que ao passar para o físico este representará exatamente como ficou definido no nível lógico. Portanto não acredito que o erro da questão esteja nesse ponto.


    Acho que o problema é como o Tiago Melquiades falou, trata-se de uma questão de paradigma de BD pois apenas o relacional produzirá tabelas.

  • Não é sempre que serão preservados TODOS os atributos e entidades. Após a normalização alguns atributos podem ser alterados.

  • O projeto físico não é a representação do modelo físico de dados? Ou seja, escolha do paradigma do SGBD? Se no modelo lógico fazemos a normalização e depois mapeamos para o modelo físico, os atributos e entidades não seriam preservados? Em que situação não haveria essa preservação?

  • Acho que sempre que ocorre uma normalização no banco, as estruturas são preservadas são, pois chegamos a um estado equivalente; entretanto, como o Tanelo disse, um atributo derivado pode ser calculado durante a consulta, não tendo a menor necessidade de modelá-lo como arquivo físico. Outro exemplo também são as entidades associativas, as quais se originam do relacionamento entre duas tabelas, mas que nem sempre estão modeladas fisícamente.

  • O projeto físico é uma atividade na qual o objetivo não é apenas obter uma estrutura de dados apropriada para armazenamento, mas desenvolvê-lo de maneira que garanta um bom desempenho. Para um dado esquema conceitual, há muitas alternativas de projeto físico em um determinado SGBD. Não é possível tomar decisões de projeto físico e realizar análises de desempenho significativas até que conheçamos as consultas, as transações e as aplicações que são esperadas para ser executadas no banco de dados.

    <.....>

    O objetivo final durante a normalização é separar em tabelas os atributos logicamente relacionados para minimizar redundâncias e, desse modo, evitar as anomalias de atualização que levam a uma sobrecarga adicional de processamento para manter a consistência do banco de dados.
    Esse objetivo às vezes é sacrificado em função de uma execução mais rápida de consultas e transações que ocorrem frequentemente. O processo de armazenar o projeto lógico do banco de dados (o qual pode estar em FNBC ou 4FN) em uma forma normal mais fraca, digamos 2FN ou IFN, é chamado de desnormalização. Normalmente o projetista adiciona a uma tabela os atributos que são necessários para responder a consultas ou produzir relatórios, de forma que uma junção comum a outra tabela, a qual contém o atributo recém-adicionado, seja evitada.

    Fonte: Elmasri Navathe, 2005


    Considerando os trechos acima, acho que NEM TODOS atributos e entidades são mantidos, devido a aplicação da normalização ou da desnormalização.

  • Galera, acho o enunciado muito vago, dando margens para várias interpretações.

    O projeto físico de banco de dados consiste na criação de tabelas que representam a implementação do modelo lógico, preservando todos os atributos e entidades.

    Não mensiona se está normalizado. Realmente o modelo físico é a implementação do modelo lógico. A questão está tão vaga que a gente pensa: e as demais coisas do modelo físico como: esquema, etc? E  a normalização? Marquei como certo, mas observando novamente, vi a palavra "representação". Acho que ela também invalida o item pois não é uma representação duma implementação, mas sim a própria implementação.

    Alguém me corrige se eu estiver equivocado.

  • Para quem não entende os comentários sem o gabarito e não tem acesso a resposta.

    Gaba: ERRADO

     

     

    O projeto físico corresponde à criação de índices, organização e estrutura 
    dos dados, caminhos de acesso, tipos de arquivos sendo utilizados, arquivos 
    de tamanho fixo ou de tamanho variável, dentre outros argumentos. O projeto 
    lógico, que é o mapeamento conceitual para o relacional, corresponde à 
    criação de tabelas utilizando uma linguagem de definição de dados (DDL), 
    geralmente a SQL. Há um outro erro no enunciado. Vou corrigir e verá mais 
    claramente. 


    O projeto lógico de banco de dados consiste na criação de tabelas que 
    representam a implementação do modelo conceitual, preservando todos os 
    atributos e entidades. 

  • Projeto físico do banco de dados (Fase 5).

    Durante essa fase, projetamos as especifica-

    ções para o banco de dados armazenado em

    matéria das estruturas físicas de armazenamento de arquivo, posicionamento de registros e índices. Isso corresponde ao projeto do

    esquema interno na terminologia da arquitetura de SGBD em três níveis ====> NAVATHE .

  • pqp, essas respostas grande! TNC...

  • Errado. O modelo relacional de banco de dados consiste na criação de tabelas que representam a implementação do modelo lógico, preservando todos os atributos e entidades.

  • ORDEM DOS MODELOSCLF

    Conceitual

    Lógico

    Físico


ID
769423
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Engenharia de Software
Assuntos

Julgue os próximos itens, relativos à eficiência na administração de dados.


A área de administração de dados deve ser atuante durante o desenvolvimento de softwares, mesmo quando forem aplicadas metodologias de desenvolvimento rápido de softwares.

Alternativas
Comentários
  • Resposta: C

    Não existe relação entre a administração de dados e a metodologia de desenvolvimento de software


ID
769429
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Sempre que houver a necessidade de se melhorar o acesso ao banco de dados, as adaptações aos modelos de dados, com essa finalidade, serão de responsabilidade da equipe responsável pela administração de dados.

Alternativas
Comentários
  • Acredito que essa é uma atividade de responsabilidade do DBA e não do AD.
  • O DBA se preocupa com o acesso físico e a integração SGBD e Hardware (espaço em disco, consumo de memória). O DA é responsável pelo modelo lógico apenas, ou seja, ele está preocupado em materializar em termos de tabela ou views os requisitos extraídos do usuário final. Questões como performance não são inerentes a este profissional.  
  • Questão cobra a diferença de AD e ABD

     

     

    ABD - A administração de base de dados visa à instalação, manutenção e utilização otimizada dos SGBD’s para atenderem a requisitos predefinidos, ou seja, visa a implantação de estruturas de dados em plataformas de hardware e software, com as configurações adequadas ao melhor desempenho dos sistemas de processamento nestes ambientes. É de sua responsabilidade desenvolver soluções técnicas de implantação, acesso e segurança físicos para os dados abrangidos pelas aplicações, conforme os modelos elaborados e/ou validados pela administração de dados nas diversas tecnologias e plataformas oferecidas pelo mercado.


    AD - Já a administração de dados tem como missão manter atualizados os modelos de dados corporativos, bem como harmonizar as setorizações decorrentes da interpretação dos mesmos de forma a manter os modelos, as estruturas lógicas e físicas dos dados, mantendo-os consistentes de acordo com as regras de negócio definidas pela organização, independente da tecnologia e da plataforma a ser utilizada. Cabe ainda a administração de dados, garantir a qualidade da informação considerando a utilidade da mesma para os diversos setores da empresa, bem como, participar da avaliação de soluções de automação sempre que isto interfira na produção e na utilização da informação, monitorando a implementação dos modelos e conferindo a qualidade do conteúdo das bases de dados, garantindo assim a adequação das mesmas aos objetivos da organização.

     

    Fonte:  http://www.devmedia.com.br/administracao-de-dados-x-administracao-de-base-de-dados/4658

  • Para quem não entende os comentários sem o gabarito como eu e não tem acesso a resposta.

    Gaba: ERRADO

     

    ABD - A administração de base de dados visa à instalação, manutenção e utilização otimizada dos SGBD’s para atenderem a requisitos predefinidos, ou seja, visa a implantação de estruturas de dados em plataformas de hardware e software, com as configurações adequadas ao melhor desempenho dos sistemas de processamento nestes ambientes. É de sua responsabilidade desenvolver soluções técnicas de implantação, acesso e segurança físicos para os dados abrangidos pelas aplicações, conforme os modelos elaborados e/ou validados pela administração de dados nas diversas tecnologias e plataformas oferecidas pelo mercado.


    AD - Já a administração de dados tem como missão manter atualizados os modelos de dados corporativos, bem como harmonizar as setorizações decorrentes da interpretação dos mesmos de forma a manter os modelos, as estruturas lógicas e físicas dos dados, mantendo-os consistentes de acordo com as regras de negócio definidas pela organização, independente da tecnologia e da plataforma a ser utilizada. Cabe ainda a administração de dados, garantir a qualidade da informação considerando a utilidade da mesma para os diversos setores da empresa, bem como, participar da avaliação de soluções de automação sempre que isto interfira na produção e na utilização da informação, monitorando a implementação dos modelos e conferindo a qualidade do conteúdo das bases de dados, garantindo assim a adequação das mesmas aos objetivos da organização.

     

    Fonte:  http://www.devmedia.com.br/administracao-de-dados-x-administracao-de-base-de-dados/4658

     

  • ERRADO

    É DE RESPONSABILIDADE DA ADMINISTRAÇÃO DE BASE DE DADOS.

    ABD - A administração de base de dados É de sua responsabilidade desenvolver soluções técnicas de implantação, acesso e segurança físicos para os dados abrangidos pelas aplicações, conforme os modelos elaborados e/ou validados pela administração de dados nas diversas tecnologias e plataformas oferecidas pelo mercado.

    .

    .

    AD - Já a administração de dados Cabe a administração de dados, garantir a qualidade da informação considerando a utilidade da mesma para os diversos setores da empresa, bem como, participar da avaliação de soluções de automação sempre que isto interfira na produção e na utilização da informação, monitorando a implementação dos modelos e conferindo a qualidade do conteúdo das bases de dados, garantindo assim a adequação das mesmas aos objetivos da organização.

    .

    outra questão:

    - Ano: 2012 Banca:  Órgão:  Prova: - Em uma empresa em que as funções da administração de dados e da administração de banco de dados estejam bem definidas, a administração de dados responsabiliza-se pelos dados em si e a administração de banco de dados responsabiliza-se pelas questões referentes ao armazenamento e às necessidades de acesso. CERTO

    Bons estudos!! ☠️

  • ERRADO

    É DE RESPONSABILIDADE DA ADMINISTRAÇÃO DE BASE DE DADOS.

    ABD - A administração de base de dados É de sua responsabilidade desenvolver soluções técnicas de implantação, acesso e segurança físicos para os dados abrangidos pelas aplicações, conforme os modelos elaborados e/ou validados pela administração de dados nas diversas tecnologias e plataformas oferecidas pelo mercado.

    .

    .

    AD - Já a administração de dados Cabe a administração de dados, garantir a qualidade da informação considerando a utilidade da mesma para os diversos setores da empresa, bem como, participar da avaliação de soluções de automação sempre que isto interfira na produção e na utilização da informação, monitorando a implementação dos modelos e conferindo a qualidade do conteúdo das bases de dados, garantindo assim a adequação das mesmas aos objetivos da organização.

    .

    outra questão:

    Ano: 2012 Banca:  Órgão:  Prova: - Em uma empresa em que as funções da administração de dados e da administração de banco de dados estejam bem definidas, a administração de dados responsabiliza-se pelos dados em si e a administração de banco de dados responsabiliza-se pelas questões referentes ao armazenamento e às necessidades de acesso. CERTO

  • Olá, queridos alunos(as)!

    Gabarito: Errado. (Essa função é do ADMINISTRADOR DE BANDO DE DADOS, por isso está errada).

    Quais são as diferenças entre ADMINISTRADOR DE BANDO DE DADOS / ADMINISTRADOR DE DADOS?

    ADMINISTRADOR DE BANDO DE DADOS (DBA):

    RESPONSÁVEL POR:

    1-    instalar o Sistema de Gerenciamento de Banco de Dados (SGBD);

    2-    autorizar o acesso ao Banco de Dados;

    3-    coordenar e monitorar sua perfomance;

    4-    adquirir recursos de software e hardware;

    5-    é o profissional mais técnico.

    ADMINISTRADOR DE DADOS (AD):

    1-    aqui ele está preocupado com os dados;

    2-    busca: planejar, documentar, gerenciar e integrar os recursos de informações corporativos;

    3-    é o profissional mais gerencial.

    Bons Estudos!


ID
769438
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Departamentos diferentes de uma mesma empresa podem empregar nomes diferentes e tamanhos de campos diferentes para um mesmo item de dado. Por essa razão, uma das funções da administração de dados consiste em estabelecer padrões para que distintos departamentos da empresa possam fazer uma interpretação comum dos significados dos dados.

Alternativas
Comentários
  • Administração de dados é a função responsável por desenvolver e administrar de modo centralizado as estratégias, procedimentos e práticas para o processo de gerência dos recursos de dados e aplicativos, incluindo planos para sua definição, padronização, organização, proteção e utilização.

    Competências

    Cabe à administração de dados — guiada por certos princípios e através de atividades de planejamento, organização e controle dos dados corporativos — gerenciar os dados como recursos de uso comum da empresa, promovendo-lhes os valores de autenticidade, autoridade, precisão, acessibilidade, seguridade e inteligibilidade.

    Tem como missão o planejamento central, a documentação e o gerenciamento dos dados a partir da perspectiva de seus significados e valores para a organização como um todo.

     

  • Para quem não entende os comentários sem o gabarito como eu e não tem acesso a resposta.

    Gaba: CERTO

     

    os dados devem ser padronizados, caso contrário a consulta a essas informaçõe snão será precisa, imagine que o setor de RH cadastre o endereço de um funcionario de qualquer maneira, e o setor de comunicação cadastre o endereço atualizado do mesmo funcionario, e esta informação não seja passada para o setor de RH, e quando for enviado um comunicado pelo RH este não receberá carta, já se o setor de comunicação enviar propaganda para o funcionario ai sim chegará... aí vem aquele pensamento "se fosse coisa importante não chegava, mas como é propaganda, chega!"

     

     

     

    o que a questão quer dizer que mesmo a "linguagem" interna de um setor deve ser padronizada para que todos os outros setores entendam.

     


ID
769444
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A validação de modelos de dados quanto à aplicação correta de técnicas de modelagem é função da administração de dados. Contudo, é de responsabilidade da área de desenvolvimento a tradução de requisitos e informação da organização.

Alternativas
Comentários
  • Foram trocados os papéis.
  • A validação de modelos de dados quanto à aplicação correta de técnicas de modelagem é função da administração de dados. (errado)
    Contudo, é de responsabilidade da área de desenvolvimento a tradução de requisitos e informação da organização. (errado)
  • A validação de modelos de dados quanto à aplicação correta de técnicas de modelagem é função da administração de dados.  A modelagem dos dados é função da equipe de projeto e desenvolvimento do sistema. Os administradores de dados tem um papel de manutenção do banco de dados.

    Contudo, é de responsabilidade da área de desenvolvimento a tradução de requisitos e informação da organização. É de responsabilidade da área de analise e projeto do sistema a tradução dos requistios e informação da organização em diagramas de classe, entidade relacionamento, etc. A tomada de requistos e coleta de informação da organização é feita pela equipe de especialistas em analise de requisitos.
  • Essa questão não é bem de Banco de Dados, vou responder ela baseada no RUP:


    "A validação de modelos de dados quanto à aplicação correta de técnicas de modelagem é função da administração de dados. (...)": Errado! No RUP o artefato Modelo de Dados é produzido pelo Designer de Banco de Dados e revisado pelo Revisor de Design. O Administrador de Dados (DBA) tipicamente não mexe no modelo de dados.


    "(...) Contudo, é de responsabilidade da área de desenvolvimento a tradução de requisitos e informação da organização.": Errado! É de responsabilidade dos Analistas de Sistemas e Especificadores de Requisitos!


  • A validação de modelos de dados quanto à aplicação correta de técnicas de modelagem é função da administração de dados. Contudo, é de responsabilidade da área de desenvolvimento a tradução de requisitos e informação da organização.
     

    Ao meu ver a administração de dados (corporativos?) seria função do projetista de banco de dados, aquele cara que auxilia os desenvolvedores na criação do modelo conceitual, verificando se já existe no BD uma tabela igual àquela que está sendo modelada, verficando se a lógica do BD está de acordo com aquilo que foi modelado, orientando os desenvolvedores sobre a melhor forma para criar um campo ou tabela de forma que ele coexista harmonicamente com o restante do bd, etc

    A primeira oração parece ser função do projetista pra mim =\


ID
769450
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A validação de modelos de dados destinados a assegurar sua aderência a um modelo corporativo tem por objetivos a redução de redundância de dados e o compartilhamento de dados corporativos das empresas.

Alternativas
Comentários
  • A validação de modelos de dados tem por objetivos:
    1. A redução de redundância de dados (certo)
    2. O compartilhamento de dados corporativos das empresas. (certo)
  • Redução de redundância? UM BD jamais pode ter redundância

  • Em que parte da literatura posso buscar essa definição?

  • Segundo Navathe, a abordagem de banco de dados oferece 4 características:

    1- Natureza de autodescrição de um sistema de BD.

    2- Isolamento entre programas e dados.

    3- Suporte a múltiplas visões de dados.

    4- Compartilhamento de dados e processamento de transações a multiusuários.

     

    Ainda de acordo com Navathe, o uso de SGBDs oferece:

    1- CONTROLE a redundância.

    2- Restrição de acesso não autorizado.

    3- Estrutura de armazenamento e técnicas de pesquisa.

    4- Sistema de backup.

    5- Múltiplas visões a usuários.

    6- Gerenciamento dos relacionamentos.

    7- Restrições de integridade.

    Etc...

  • Conforme citado por nosso colega Juliothecesar, a questão está correta.

    A normalização e documentação do Banco de Dados é um dos objetivos da modelagem de dados. E a normalização visa a redução de dependências.

    Podemos entender por compartilhamento de dados das empresas, como a observância do relacionamento dos objetos, que também é um dos objetivos da normalização.


    fonte: http://www.macoratti.net/cbmd1.htm


    Bons estudos.


ID
769459
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Em uma empresa em que as funções da administração de dados e da administração de banco de dados estejam bem definidas, a administração de dados responsabiliza-se pelos dados em si e a administração de banco de dados responsabiliza-se pelas questões referentes ao armazenamento e às necessidades de acesso.

Alternativas
Comentários
  • O DBA preocupa-se com o acesso físico e a integração SGBD e Hardware (espaço em disco, consumo de memória...). O DA é responsável pelo modelo lógico, ou seja, ele está preocupado em materializar em termos de tabela, views e procedures os requisitos extraídos do usuário final.

    Gabarito: C
  • Mas quem define os requisitos de acesso é o DA ou o DBA? Errei por julgar que as necessidades de acesso seriam tarefa do DA.
  • Os requisitos de acesso quem define é o DBA.

  • Errei por achar que o DA é reponsável pelo modelo de dados, e que dados seriam de responsabilidade do DBA...

  • Questão cobra a diferença de AD e ABD

     

     

    ABD - A administração de base de dados visa à instalação, manutenção e utilização otimizada dos SGBD’s para atenderem a requisitos predefinidos, ou seja, visa a implantação de estruturas de dados em plataformas de hardware e software, com as configurações adequadas ao melhor desempenho dos sistemas de processamento nestes ambientes. É de sua responsabilidade desenvolver soluções técnicas de implantação, acesso e segurança físicos para os dados abrangidos pelas aplicações, conforme os modelos elaborados e/ou validados pela administração de dados nas diversas tecnologias e plataformas oferecidas pelo mercado.


    AD - Já a administração de dados tem como missão manter atualizados os modelos de dados corporativos, bem como harmonizar as setorizações decorrentes da interpretação dos mesmos de forma a manter os modelos, as estruturas lógicas e físicas dos dados, mantendo-os consistentes de acordo com as regras de negócio definidas pela organização, independente da tecnologia e da plataforma a ser utilizada. Cabe ainda a administração de dados, garantir a qualidade da informação considerando a utilidade da mesma para os diversos setores da empresa, bem como, participar da avaliação de soluções de automação sempre que isto interfira na produção e na utilização da informação, monitorando a implementação dos modelos e conferindo a qualidade do conteúdo das bases de dados, garantindo assim a adequação das mesmas aos objetivos da organização.

     

    Fonte:  http://www.devmedia.com.br/administracao-de-dados-x-administracao-de-base-de-dados/4658


ID
769465
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

De acordo com os preceitos estabelecidos pela área de administração de dados para a elaboração e a execução dos planos de manutenção, julgue os itens que se seguem.


No plano de manutenção de uma base de dados, devem estar compreendidas a reorganização e a reconstrução de índices, a fim de se garantir consistência geral à referida base de dados.

Alternativas
Comentários
  • Reorganização e reconstrução de indices são usados muitas vezes para tornar validos novamente objetos que possuem dependencias desses. O que acontece no oracle, voce tem que usar comando alter index index_name rebuild para reconstrui-lo pois muitas vezes as VIEWs que usam esse index nao estão validas e consistentes. Por esse ponto de vista estaria CERTO.
  • Índices são usados para performance e não consistência do banco de dados. 
  • Quando se trabalha com tablespace, pode-se fisicamente organizar ou reorganizar onde ficarão os índices.
    O comando REINDEX faz a reconstrução de um índice utilizando os dados guardados na tabela do mesmo e substitui a cópia antiga do índice. O comando REINDEX é utilizado nas seguintes situações:
    • Índice corrompido e não contém mais dados válidos. Embora teoricamente isso nunca deva acontecer, na prática os índices podem se corromper devido a erros de programação ou falhas de hardware. O comando REINDEX fornece um método de recuperação.
    • Índice “dilatado”. Contém muitas páginas vazias ou quase vazias. Tal situação pode acontecer com índices BTree sob usos fora do comum. O comando REINDEX fornece uma maneira para diminuir o consumo de espaço do índice através da escrita de uma nova versão sem as páginas mortas.
    As operação de reconstrução e reorganização de índices estão ligadas a performance do Banco e não a consistência.

    Gabarito: Errado
  • No meu entender, o erro maior é afirmar que a reorganização e a reconstrução de indices devem fazer parte do plano de manutenção de uma base de dados.
    Teoricamente, os inidices sempre são (ou deveriam ser) integros, portanto, não faz sentido tem esse item no plano de manutenção de uma base de dados.
  • lucas, quando dados vão sendo inseridos, removidos ou alterados em uma tabela, essa tabela vai ficando fragmentada, ou seja, os dados vão ficando espalhados pelo disco, o que torna o acesso mais lento.

    A reconstrução dos índices é possível e extremamente recomendada. Em alguns SGBDs, e a depender do projeto, pode ser necessário re-fazer em períodos relativamente curtos (Ex.: toda semana) a fim de melhorar o desempenho.

  • No plano de manutenção de uma base de dados, devem estar compreendidas a reorganização e a reconstrução de índices, a fim de se garantir MELHOR PERFORMANCE geral à referida base de dados.


ID
769471
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Engenharia de Software
Assuntos

É possível que sejam definidos vários planos de manutenção a serem executados em momentos distintos, em virtude da duração das tarefas que compõem tais planos.

Alternativas
Comentários
  • Certinha a questão, eu posso agendar uma operação de vacuum e analyze (do postgres) em um horário e uma de backup em outro. Não seria uma boa prática eu fazê-las no mesmo horário, pois estaria diminuindo a performance do Banco de Dados.
  • Tudo é possível.


ID
769477
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A criação de um histórico de backups pode ser feita por meio da realização do backup do banco de dados e do arquivo de log de transações, retendo-os por um período especificado.

Alternativas
Comentários
  • Resposta: C

    O backup/restauração do log de transações é recomendado quando o sistema não tolera nenhum tipo de perda de dados. Exemplo: em um supermercado com 200 lojas, onde todas acessam ao mesmo servidor de banco de dados, é feito um backup completo à meia noite, e um backup incremental ao meio dia. E se às 10 da manhã ocorrer perda de dados, os dados entre meia noite e 10 da manhã serão perdidos?

    Com o log de transação, é possível restaurar todos os dados desse período, para que não haja nenhuma perda.

  • Pode, não quer dizer que seja feita dessa maneira sempre. Estilo CESPE de ser.


ID
769483
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Caso seja verificada falha na integridade de um banco de dados, deve-se dispensar tratamento específico ao conjunto de atividades previstas no plano de manutenção.

Alternativas
Comentários
  • é necessário fazer exatamente o oposto, garantir o tratamento das atividades previstas no plano de manutenção quando se verificar a falta de integridade no banco de dados.
  • Errei por ler rápido. Troquei dispensar por despender. Não façam como eu.

  • Interpretei "dispensar" no sentido de "conceder, conferir", muito usado nas aulas de Direito, acho que acostumei... Segundo dicionário do google, existe essa possibilidade, quando é bitransitivo: 

    dispensar (verbo)

    5. bitransitivo

    conceder, conferir.

    "d. atenção aos amigos"


ID
769489
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Com relação a tuning em banco de dados, julgue os itens subsecutivos.


Em um banco de dados, a despeito de a normalização reduzir a replicação de dados, ela nem sempre proporciona o bom desempenho das operações de acesso a esses dados.

Alternativas
Comentários
  • Boa tarde,
    Questao correta. Para melhorar a performance nos acessos a BD, muitas vezes é mais prático e garante melhor performance replicar dados para as tabelas mais acessadas, o que "desnormaliza" o banco mas garante melhor desempenho.
    Obrigado.
  • A normalização de Banco de Dados reduz a redundância ou replicação dos dados e consequentemente reduz a performance do banco, pois terão muitos JOINS. Por outro lado se for feita uma boa administração do banco com tarefas do tunning pode ser melhorada a performance.

    Gabarito: correto
  • Em um banco altamente normalizado, normalmente as consultas precisam utilizar muitas junções de tabelas, o que aumenta consideravelmente o tempo de acesso das operações
  • Questão bem objetiva. A normalização tem como objetivo reduzir a quantidade de redundâncias no modelo. Ao fazer isso, ela termina contribuindo com o aumento da complexidade desse modelo, resultando na construção de mais tabelas. Essa quantidade maior de tabelas faz com que sejam necessárias mais junções nas consultas SQL, o que diminui o desempenho do acesso aos dados para leitura. Correta.

    Gabarito: C

  • A normalização realmente analisa relações (tabelas) baseado em dependências e chaves primárias para minimizar redundâncias e anomalias de inserção, exclusão e atualização. Além disso, é verdadeiro que cada dependência funcional se torne uma nova relação após a decomposição pela normalização (Correto).

    Estratégia


ID
769498
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

No tuning de banco de dados, a reestruturação de índices mediante a criação de novos índices em tabelas em que o número de acessos é elevado consiste em uma ação que torna mais eficiente a realização de operações nessa tabela.

Alternativas
Comentários
  • Errado. 
    Se a operação for de atualização não haverá melhora no desempenho.
  • O excesso de índice prejudicari tb se o acesso a tabela for para inserção e exclusão.
  • Pergunta amb´igua, permite as duas respostas dependendo do tipo de acesso, se for leitura, a resposta estaria correta, se for escrita estaria errada.
    como eles nao especificaram o tipo de acesso, eles jugam da maneira deles.
  • Muitas exclusões e inserções podem impactar na manutenção do arquivo de índices. 
  • Como os próprios colegas pontuaram, o termo operações permitem-nos deduzir que sejam updates, inserts e deletes. Então a pergunta está mal formulada, pois algumas operações melhoram a performance e outras não.
    Questão deveria ser anulada.
  • Levando em conta o padrão de questões do CESPE, que são interdisciplinares, e como o tipo de operação não foi informado, conclui-se que o examinador referiu-se a qualquer operação.
    Portanto, a questão realmente está errada.
  • Questão sem resposta.
    Conforme já citado, depende do tipo de operação realizada na tabela. Se considerarmos operações de consulta a questão esta CORRETA, se consideramos operações de escrita (update / insert) a questão esta ERRADA. Tipica questão cesp que a resposta é oque o avaliador quiser.
  • 4.1.1 Reestruture os índices

    Reestruturação de índices é um bom ponto de começo, porque ela tem mais impacto na aplicação que a reestruturação do comando ou dos dados.

    Analise a eficiência dos índices usando Explain Plan. Veja que índices são usados para pesquisas comuns e exclua qualquer um que não esteja sendo usado. Muitos índices em uma tabela podem causar uma sobrecarga, pois todos os índices precisam ser atualizados na atualização da tabela.

    Remova índices não seletivos, crie índices para caminhos de acesso com performance crítica e considere outros tipos de índices.
     
  • Amigos, a questão fala que criando novos índices em tabelas com grande acesso, vai tornar mais eficiente a realização de operações nessa tabela. Não interessando as operações, criar novos índices, não necessariamente irá melhorar a eficiência, pois todos os vários acessos a essa tabela podem estar sendo feitos pelos índices que já existem. Não precisa criar outros. Entenderam?

  • André, pertinente seu comentário. Eu entendi que a questão queria levar a discussão pro lado do custo x benefício dos índices. Ela fala que criando mais índices pra tabelas com elevado acesso, fazendo rebuild/reorganize nos que já existem, melhora o desempenho das operações. Criar mais índices pra tabelas, fora os que já existem, exige um certo cuidado, pois pode degradar o desempenho.

     Fora isso, o fato de fazer rebuild/reorganize gera espaços ociosos nos BD's, implicando em degradação de outras operações. Então, antes de fazer isso é preciso um cuidadoso estudo no uso que os índices estão tendo e na necessidade de criá-los.

     Em resumo, a questão trata de um tema bem complexo, com muitos pormenores que precisam ser analisados. Ela é totalmente falsa.

  • Depende do tipo de operação. Se for apenas uma recuperação/consulta de dados, há maior eficiência. Se houver inserção, deleção, modificação, há perda de desempenho: os indices terão de ser recalculados a cada modificação realizada.

  • Crazy question
  • ERRADA.

    Para operações de escrita piora o desmpenho.

    Simples e sem complicação

  • Primeira coisa que veio a minha cabeça: escrita piora.

    Então fui ler o texto da questão, que não especifica "todas as operações", mas apenas:

    "torna mais eficiente a realização de operações nessa tabela"

    A CESPE precisa definir um critério, ela adora fazer pegadinhas de "todo e parte". Dando apenas parte da definição de conceitos

    mas considerando como certo. Considerando a lógica não podemos dizer que essas pegadinhas estão erradas. O problema é que deveria usar esse conceito em todas as questões. Se não tem especificando "toda operação", então ficamos com "alguma operação" e certamente alguma operação se torna mais eficiente. (as operações de leitura)

  • Bem, a questão é um pouco ambígua. O termo acesso comporta tanto a definição no sentido de leitura quanto escrita de dados. Caso os acessos sejam para leitura, a alternativa estará correta. Caso sejam para escrita, ela estará falsa.

    Entendo que se tratou de um deslize do examinador, então creio que seria melhor anular a questão. No entanto, se tivesse que ter uma resposta, seria realmente errada, já que não se pode afirmar que o índice melhoraria a performance somente por haver muitos acessos (de tipo não especificado) na tabela.

    Gabarito: E

  • ERRADO

    "O desempenho das consultas depende em grande parte de quais índices ou esquemas de hashing existem para agilizar o processamento de seleções e junções. Além disso, durante as operações de inserção, exclusão ou atualização, a existência de índices aumenta o overhead."

    Fonte: Navathe

  • Recentemente, a CESPE elaborou uma questão que eu achei bem parecida. O termo "operações" não está especificado. P/consulta, a questão é verdadeira, mas outras manipulações, tal como a exclusão, a indexação torna mais lenta.

    Q1680455) Para o processamento de grandes quantidades de transações, de modo rápido e eficaz, é mais indicado o modelo relacional de bancos de dados do que os modelos orientados a objetos ou multidimensional.

    (Errado)

    Mesma situação: generalizou as operações.


ID
769504
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Entre os elementos que influenciam significativamente o desempenho de consultas a banco de dados, destaca-se a ordem em que são usados os joins na reestruturação de consultas SQL.

Alternativas
Comentários
  • Mas olha, apesar de ter acertado (questão Correta), tenho dúvidas. A "reestruturação" definida no texto fala da mudança que o otimizador vai fazer antes de processar a consulta ou da mudandança que o usuário faz no código SQL? Pois a primeira afeta sim o desempenho, mas a segunda não faz diferença já que é o otimizador que vai decidir qual a melhor ordem.

    Fonte: http://gustavomaiaaguiar.wordpress.com/2009/07/20/mitos-do-sql-server-%E2%80%93-a-ordem-das-tabelas-influencia-no-desempenho-de-uma-instrucao-select/
  • Breno, pelo que entendi, isso é do SQL Server, e no Oracle é possível "forçar" uma ordem:

    http://www.dba-oracle.com/t_table_join_order.htm

  • Vários fatores afetam o desempenho de um aplicativo. Os fatores a seguir afetam o desempenho:
    * Hardware (processador, memória, velocidade de entrada/saída (E/S) de disco;
    * Versão e configuração do sistema operacional;
    * Versão e configuração do SQL;
    * O projeto físico do banco de dados (posicionamento dos arquivos, configuração de banco de dados, índices, etc);
    * Projeto lógico do banco de dados
    * Rede (drivers, dispositivos, topologia, etc);
    * Aplicativo  cliente.

    Bibliografia: Microsoft SQL Server 2005 - Fundamentos de Banco de Dados, 2007, pg. 92.


ID
769510
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A inclusão de gatilhos (triggers) propicia melhor desempenho do banco de dados, em virtude de eliminar a necessidade de execução de algumas operações de acesso a esse banco de dados.

Alternativas
Comentários
  • acho q a questão esta certa...

    se X deve ser deletado no caso de Y ser deletado. Com um trigger isso seria feito através de uma chamada para deletar Y (um acesso?)

    alguem comenta?
  • Concordo com o colega acima. Considero a resposta como correta.
    Alguém poderia explicar melhor?
  • Marquei errado, pois no meu entedimento gatilhos (triggers) não são para melhorar o desempenho de um banco de dados, na verdade eles ajudam na proteção da integridade do mesmo. Logo está mais para questões de proteção dos dados e aplicação de regras para consistência deles do que melhora em desempenho.
  • Justamente por isto a questão estaria certa. Se as regras de integridade não forem verificadas no Banco, elas terão que serem verificadas na aplicação, o que aumentaria o número de acessos para validar as regras. Algúem me explica o erro?
  • Trigger melhora o desempenho do banco? Correto.
    Porém a questão afirma que isso ocorre em virtude de eliminar a necessidade de execução de operações de acesso. Isso está errado
  • Acredito que Trigger nao melhora a performance do banco, faz o contrario, imputa mais carga no acesso aos dados, CPU e cursores. Triggers melhoram a performance da aplicacao, pois parte do processamento que deveria ser feito pela aplicacao para manter a consistencia passou a ser feito pelo banco de dados, sobrecarregando assim o SGBD.
  • Nunca vi uma trigger melhorar a performance... Pode ser que em algum caso bem específico ela melhore (0.01%).
    Na verdade elas são uma verdadeira dor de cabeça para a performance. Quem já foi DBA sabe!
  • Triggers não melhoram o desempenho dos bancos de dados de modo geral, pois fazem que seja necessária um overhead de processamento a mais na hora de fazer atualizações, inserções ou deletar tuplas. Percebam que o sgbd fica mais sobrecarregado, principalmente se pensarmos que um servidor é recurso escasso (geralmente algumas maquinas fazem todo o trabalho), já cada cliente tem sua própria maquina. Por exemplo imaginem que queiramos fazer uma inserção de uma conta nova em um banco, e queiramos garantir que o saldo inicial seja maior ou igual a 0, poderíamos fazer isso em um trigger, porém é um overhead desnecessário, pois é algo facilmente verificável pelo cliente sem sobrecarregar o servidor com algo tao simples. É a mesma lógica de porque validação de campo de email em um web site é feito usando por exemplo javascript, uma linguagem que roda no cliente, e não no servidor. Triggers devem ser usados para manter consistência em situações mais complicadas, as vezes usando ate mais de uma relação, sendo que nesses casos pode haver uma melhora de desempenho para a aplicação por ela não ter que fazer consultas para o banco antes de fazer o update, perdendo tempo um tempo extra devido o proprio trafego dainformação pela rede. Mas veja o ganho é da aplicação não do bd

  • Vinícius, falar que a verificação de integridade será feita na aplicação está fora do escopo da questão.

  • Depois de analisar os comentários tive que pesquisar a respeito devido as controvérsias dos comentários, a maioria dos artigos que achei enfatizam que as triggers ajudam sim na performance.

    Segue:

    Uma trigger pode ser executada antes de atualizar um registro no banco, através do comando BEFORE UPDATE, após efetivar uma atualização para que ela seja garantida através do comando AFTER UPDATE. Antes de uma inclusão para testar valores,  restringindo a inclusão se não são de acordo com as regras da empresa, pois as triggers são feitas baseadas nestas, para isso se  usa o comando BEFORE INSERT e para garantir uma inclusão, por meio do comando AFTER INSERT. Também pode ser utilizada antes de uma exclusão, para que se possa confirmar a exclusão de um registro ou bloquear a mesma, através do comando BEFORE DELETE e depois de uma exclusão, com o comando AFTER DELETE, para garantir que o registro realmente foi excluído.

    Os cinco pontos que podem ser chamados de benefícios são:

    1. 1. Reduzir o tráfego na rede;
      2. Criar regras de negócios adaptadas a aplicação cliente,
    2. 3. Criar rotinas comuns que podem ser utilizadas para toda a empresa, reduzindo o tempo de desenvolvimento e manutenção.
    3. 4. Centralizar o processamento no servidor e reduzir os requisitos de hardware na estação cliente.
    4. 5. Aumentar a performance das aplicações.
    Enfim através das Stored procedures e das Triggers, todas as regras de negocio de uma empresa são realizadas, isto é centralizadas e executadas no servidor de banco de dados, por isso quando é realizado um evento ou uma ação na aplicação seja ela desktop ou web os comandos são enviados ao servidor de banco de dados, que vai interpretá-los, executa-los retornando apenas a resposta ao que foi solicitado, reduzindo assim a tráfego na rede, pois as informações já estarão "resumidas", ou seja, selecionadas de acordo com o solicitado pela aplicação.

    .

    Fonte: http://www.oficinadanet.com.br/artigo/banco_de_dados/dicas_triggers_e_procedures


    Espero ter ajudado.

    Só não conseguiu quem desistiu.
    Paz e força sempre.

  • Pessoal, 

    lembrem apenas que a questão fala explicitamente sobre melhor desempenho DO BANCO DE DADOS. Certamente, como vários colegas falaram,há uma melhoria de performance da aplicação com o uso de gatilhos e de procedures devido a uma série de fatores, inclusive o fato de preservar a consistência e integridade do banco. Mas para isso, há um overhead de operações no BD devido às operações dos triggers. Sendo assim, a performance do BD em si, não melhora.

  • Errado. O procedimento que melhora o desempenho são as store procedures, triggers não.


ID
769516
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

No processo de tuning de um banco de dados, devem ser consideradas questões relativas à otimização de índices e consultas, bem como à configuração de sistema operacional.

Alternativas
Comentários
  • Tuning não é só configuração do SGBD, algumas vezes requer configuração no sistema operacional ou otimizar as consultas realizadas nos bancos, e algumas configurações podem acarretar em problemas futuros ou até mesmo mau funcionamento do SGBD.

    A técnica de tuning de desempenho é uma prática feita em todos os SGBDs importantes com técnicas diferentes. É uma necessidade de toda grande empresa, e requer um grande nível de conhecimento e experiência sobre os processos e suas técnicas, pois nem sempre o problema será resolvido com uma ou duas alterações, às vezes é necessário uma mudança nas queries.



    Leia mais em: Técnicas de Tuning para Melhoria de Desempenho em Banco de Dados PostgreSQL http://www.devmedia.com.br/tecnicas-de-tuning-para-melhoria-de-desempenho-em-banco-de-dados-postgresql/13600#ixzz2t3hEG11k

  • A primeira coisa a se fazer para se tunar um banco de dados é otimizar as consultas, pois é em consultas mal feitas que geralmente mora o problema. Além de verificar o projeto de banco de dados é claro, como re-estruturação de tabelas, criação e exclusão de índices etc. O foco deve ser nas consultas mais demoradas do sistema (os próprios SGBDs podem fornecer essa informação através de logs).

    Depois que as consultas estiverem otimizadas, aí sim é que vai pro SGBD propriamente dito, e para o SO.

  • Questão interessante! Que o tuning leva em consideração questões relacionadas à otimização de índices e consultas, é claro. No final da afirmativa, no entanto, o examinador afirma que devem ser consideradas questões relativa à configuração do sistema operacional.

    Bem, o OS (sistema operacional) lida com gerenciamento de memória, sistema de arquivos e escalonamento de processo. Nesse sentido, um processo aprofundado de ajuste do SGBD vai sim envolver considerações a respeito desses fatores. Item correto.

    Gabarito: C


ID
769522
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Julgue os itens que se seguem, relativos aos procedimentos de backup de banco de dados.


A fim de que a recuperação de um banco de dados seja capaz de recompor todos os dados sem nenhuma perda em caso de falha, é necessário que seja realizado backup do log de transações ativas.

Alternativas
Comentários
  • Alguém comenta plz.
  • Quando ocorre uma falha que obriga realizar uma recuperação do banco de dados essa recuperação é feita restarando o último backup, porém do momento em que esse backup foi realizado até o momento em que a falha ocorreu, outras transações foram executadas. Para realizar a recuperação sem a perda de dados é necessário recuperar o último backup e aplicar todas as transações que ocorreram até o momento da falha, isso é feito através do log de transações.
    Bons estudos!
  • GAB: CERTO

    Se um banco de dados usar o  total ou log de transação em massa, você deverá fazer backup do log de transações com regularidade suficiente para proteger os dados e impedir que o . Isso trunca o log e oferece suporte à restauração do banco de dados para um período específico.

    Fonte: https://docs.microsoft.com/pt-br/sql/relational-databases/logs/troubleshoot-a-full-transaction-log-sql-server-error-9002?view=sql-server-ver15


ID
769531
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

O uso de backups diferenciais em conjunto com backups de log de transação reduz o tempo de restauração do banco de dados em caso de falha, comparando-se a situações em que os backups diferenciais não tenham sido criados.

Alternativas
Comentários
  • Backups diferencias tendem a diminuir o tempo de resutauração, em contra partida possuem um tamanho maior, ao contrário do bakcup incremental.

    Bakcup incremental: Ocupa menos espaço em disco, mas em contrapartida, sua resutauração é mais demorada.

    Backup diário: realiza o backup dos arquivos que foram alterados no dia.

    Backup normal (Global ou Total): realiza o backup de todos os arquivos.

    Backup cópia: igual ao backup normal, porém quando existe marcação da tag de backup por arquivo, este não desmarca.
  • Questionável esta questão (para não dizer ERRADA mesmo).
    Em uma restauração baseada em backups diferenciais, deve-se: a) Restaurar o último backup full b) Restaurar o último backup diferencial c) Restaurar TODOS os backup's de log feitos Depois do último backup diferencial.     Se a restauração for baseado em backups FULL (quando não se usa backup's diferenciais) , basta: a) Restaurar o último backup full b) restaurar TODOS os backups de log feitos após o último backup full.   Ou seja, a primeira opção NÃO REDUZ o tempo de restauração, pelo contrário, aumenta, pois sempre teremos que restaurar um backup a mais (o backup diferencial)
  • O uso de backups diferenciais em conjunto com backups de log de transação reduz o tempo de restauração do banco de dados em caso de falha, comparando-se a situações em que os backups diferenciais não tenham sido criados.

    Lendo em alguns sites vi que existem 3 tipos de backups mais utilizados nos Bancos de Dados: Backup Full, Backup Diferencial e Backup de Log de transações, este podendo ser utilizado em conjunto com os outros dois primeiros.

    "...o maior propósito de um backup diferencial é reduzir o numero de transactions log’s backups que precisam ser restaurados em um processo de restore..." [1]

    "...Caso seja feito um backup com as opções “default”(full) conforme abaixo, o tamanho do backup full será igual ao tamanho das páginas utilizadas dentro do espaço reservado para este banco, somado ao tamanho do log das transações que estavam ativas durante a execução do backup, que pode durar desde minutos até horas, para garantir a consistência dos dados armazenados, o arquivo de backup full contém esta porção do log de transações...'' [2]

    Logo se for utilizado apenas um Backup Full a quantidade de transactions log´s a ser recuperada será maior que no caso em que foi utilizado o backup diferencial, e pelo visto esses transactions log´s é o fator que pesa na hora de restaurar.
    Sendo assim, é mais rápido um restore de bkp diff + alguns logs transactions do que bkp full + logs transactions.
    OBS1 - Não encontrei nada que mencionasse explicitamente a existência de Backups incrementais...
    OBS2 - Eu pensaria nisso na hora da prova?? Nunca, nem sabia que funcionava assim.
    OBS3 - Eu acertarei da próxima vez? Agora sim !
    Links:
    [1] - http://marcosfreccia.wordpress.com/tag/backup/
    [2] - http://edvaldocastro.com/2012/02/11/bkps-full-diff-log/
  • certo

    Situações em que os backups diferenciais não tenham sido criados, são duas:

    1. Backup Full - Restore mais rápido mais rápido que o diferencial.

    2. Backup Incremental - Restore mais lento que o diferencial

  • A análise é a seguinte:

    I) A afirmativa diz: "O uso de backups diferenciais em conjunto com backups de log de transação reduz o tempo de restauração do banco de dados em caso de falha, comparando-se a situações em que os backups diferenciais não tenham sido criados."

    Quais as situações em que os backups diferenciais não tenham sido criados? É a situação em que apenas a "Política de becape Normal" tenha sido usado.

    II) Qual política de becape possui maior velocidade de restauração? É a "Política de becape Normal,Total ou Completa" pois não precisamos procurar o arquivo em diversos DISCOS. Apenas em 1. Então se a velocidade de restauração da Política Normal é maior, seu tempo é menor que a Política Diferencial. Então o tempo de restauração da Política Diferencial é maior que a Normal.

    III) A questão diz que "O uso de backups diferenciais em conjunto com backups de log de transação reduz o tempo de restauração" que é o oposto que o item II desta análise diz. Logo a questão está..... HOUSTON WE HAVE A PROBLEM...

    a) A questão não quer abordar o assunto de "Políticas de Becape" da matéria de "Suporte e Infraestrutura de Informação" e sim o assunto "Auditoria e Segurança de Banco de Dados" da matéria de "Bancos de Dados".

    b) Dessa forma, o que a questão realmente que saber é se o candidato é onisciente e sabe, de alguma forma por sorte ou obra do acaso, que em algum lugar há um autor que escreveu em algum livro em algum momento exatamente isso que a questão afirma.

    IV) Como Fulano de tal escreveu na página X do seu livro Pararapapá 3 edição exatamente isso que está escrito...

    V) Lie down

    VI) Try not to cry

    VII) Cry a lot

    VIII) Get over it

    IX) Stand up

    X) Stop waisting your precious time with this shit

    XI) Move on 

    XII) There are plenty fish in the ocean

  • Depois de muita leitura da Teoria, segue análise. Utilizei também conclusões do Henrique Vieira de 25 de Novembro de 2013 às 21:03.

    O uso associado de Backups de Log de Transação pode deixar o processo de restauração de becape mais lento ou mais rápido dependendo do tipo de restauração do becape que você for utilizar. De ante mão, já sabemos que o uso exclusivo da restauração de Becape Incremental é mais lento (usa o disco de becape Normal + todos os discos do Incremental) do que o da restauração de Becape Diferencial (só usa dois discos: o do Becape Total / Normal ou do último Becape Incremental e do uso último Becape Diferencial) e claro que a restauração do Becape Normal é mais rápido / eficiente (utiliza apenas um disco, no caso, o último criado).

    Agora, ao utilizar associando o uso de Backups de Log de Transação pode comprometer o tempo de a restauração do Banco de Dados:

    a) Na restauração do Becape Incremental (que é o mais lento) se tornaria mais lento ainda ao utilizar associando APENAS os Logs de Transações por ele gerado no Becape Incremental. Lembrando ainda que seria aplicado a todos os discos gerados no Becape Incremental;

    b) Na restauração do Becape Normal (que é o mais rápido) se tornaria mais lento que o Diferencial ao utilizar associando ao processamento de TODOS os Logs de Transações por ele gerado no Becape Normal;

    c) Na restauração do Becape Diferencial (que é o segundo mais rápido) se tornaria mais rápido que a restauração Normal, pois utilizaria associando APENAS os Logs de Transações por ele gerado no Becape Diferencial;

    Dessa forma a alternativa está CERTA.

    Obs. Vale ressaltar que tanto no Becape Incremental há necessidade de se fazer o Becape Normal antes. Destaca-se também que o Becape Diferencial pode ser iniciado também depois do Becape Incremental ou do Becape Normal.


ID
769537
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Mediante o uso de backups de log, é possível executar rollfoward do banco de dados em qualquer momento, minimizando a possibilidade de perda de dados em caso de falha.

Alternativas
Comentários
  • O modelo de recuperação completa usa backups de log para evitar a perda de dados no intervalo mais amplo de cenários com falhas e o backup e a restauração do log de transações (backups de log) são necessários. A vantagem de usar backups de log é que eles permitem que você restaure um banco de dados em qualquer ponto no tempo contido dentro de um backup de log (recuperação pontual). É possível usar uma série de backups de log para efetuar roll forward de banco de dados em qualquer momento determinado contido em um dos backups de log. Lembre-se de que para minimizar o tempo de restauração, você pode suplementar cada backup completo com uma série de backups diferenciais dos mesmos dados.

    Supondo que é possível fazer backup do log ativo após ocorrer um desastre, você pode restaurar o banco de dados até o ponto de falha sem perder os dados. As desvantagens de usar backups de log são que eles requerem espaço de armazenamento e aumentam o tempo e a complexidade da restauração.

    fonte:http://msdn.microsoft.com/pt-br/library/ms190217(v=sql.100).aspx

  • E o checkpoint?

  • Rollforward aqui é um conceito utilizado como o contrário de rollback, ou seja, refazer os efeitos daquelas transações que foram confirmadas no banco de dados. Assim, podemos ver que, com a utilização de um backup dos logs, pode-se protegê-los contra a ocorrência de falhas, possibilitando a restauração das transações ocorridas no banco de dados até a realização do backup.

    Gabarito: E


ID
769543
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Os procedimentos de recuperação de um banco de dados devem prever uma sequência de operações que se inicie com a restauração de um backup diferencial, quando ele existir.

Alternativas
Comentários
  • Assertiva errada.
    Existem basicamente cinco tipos de backup: cópia, diário, diferencial, incremental e normal. Não detalharei todas as diferenças entre eles, mas apenas o básico para o entendimento da questão. Seja um arquivo qualquer ou um registro no banco de dados, ambos possuem uma flag de backup. Se houver sido feita a cópia de segurança desse item em seu estado atual, ele terá sua flag atualizada para "backupados", ou seja, existe uma cópia para eles caso ocorra uma falha. Pois bem, o backup normal realiza uma cópia de todos os arquivos ou registros e altera a sua flag de backup, enquando que o diferencial realiza a cópia de todos os arquivos que não foram copiados desde o último backup normal ou incremental e não altera a sua flag.
    Agora que temos conhecimento suficiente, vamos responder a questão. O que você faria se ocorresse uma tragédia natural e seu servidor de banco de dados  fosse destruído? Obviamente não seria a restauração do backup diferencial, mas do normal. Se não há mais dados, deverão ser trazidos todos: backup normal. Esse é o início, recuperar o último backup normal e depois os diferenciais ou incrementais.
    Apenas para complementar, a diferença básica entre o backup incremental e o diferencial é que o primeiro altera a flag de backup o último não. A semelhança dos dois é que ambos realizam a cópia apenas dos arquivos ou registros que não estão marcados desde o último backup normal ou incremental.
  • Seria restauração a partir do backup FULL ou NORMAL.
  • A assertiva estaira correta da forma que se encontra abaixo:

    Os procedimentos de recuperação de um banco de dados devem prever uma sequência de operações que se inicie com a restauração de um backup completo e posterioremente os backups incrementais na ordem correta ou o backup diferencial, quando ele existir.
  • Os amigos citaram apenas a solução para falhas catastróficas ou problemas de disco. Mas existem outras falhas que o SGDB deve saber recuperar.

    As falhas mais conhecidas são:

    Falha de Sistema

    Erro de Transação

    Condições de Execeção detecados pela Transação ou Erros Locais

    Imposição de Controle e Concorrência

    Falha de Disco

    Problemas Físicos ou Catastróficos



    As quatro primeiras falhas normalmente são recuperadas através do Log do Sistema, não necessitando de restauração de backup total, diferencial.. etc.

  • Os backups diferenciais requerem que se restaure primeiro o backup completo associado. Como eles contêm somente as modificações que ocorreram desde o último backup completo, esses backups não podem ser restaurados primeiro nem de forma individual.

    Gabarito: E


ID
769549
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Julgue os itens seguintes, referentes à modelagem relacional de dados.


Considerando-se a propriedade da unicidade do conjunto de atributos que compõem uma tabela, é correto afirmar que toda tabela tem pelo menos uma chave candidata.

Alternativas
Comentários
  • A restrição de unicidade garante que os dados contidos na coluna, ou no grupo de colunas, é único em relação a todas as outras linhas da tabela.
  • Assertiva correta. O que torna um conjunto de atributos únicos, ou seja, todo elemento do conjunto possuir uma identidade inequívoca é a sua chave. Dessa forma, se essa unicidade está garantida, temos a certeza de que existe uma chave - chave candidata.
  • Calma aí, o conceito de tabela não está relacionado ao modelo relacional? Assim como o conceito de chave candidata está relacionado com o modelo entidade-relacionamento?

    Fiquei sem entender essa aí agora...

    abrasss
  • Se a unicidade está garantida, então, no máximo, a chave candidata corresponderia a todos os atributos da tabela.

    Portando, Correto.

  • e as entidades fracas que não possuem atributos que não possuem unicidade? ao meu ver, questão deveria ser anulada.

  • Em um banco de dados relacional prático, cada esquema da relação precisa ter uma chave primária . Uma chave candidata é arbitrariamente designada para ser a chave primária. Se nenhuma chave candidata for conhecida para uma relação, a relação inteira pode ser tratada como uma superchave padrão, portanto, toda tabela deve ter pelo menos uma chave candidata. No caso de entidades fracas, a relação inteira pode ser tratada como uma superchave padrão. 

  • A restrição de unicidade garante que os dados contidos na coluna, ou no grupo de colunas, é único em relação a todas as outras linhas da tabela.

  • chave primaria tudo bem , agr candidata??

  • Considerando-se a propriedade da unicidade...

    Abre o olho, Eduardo!!!

  • CERTO

    Uma  chave  é  definida  como  chave  candidata  quando  reúne todas  as características de uma chave que pode ser utilizada para identificar exclusivamente uma tupla dentro de uma tabela. Portanto, épossívelque a mesma tabela tenha mais de uma chave candidata. Uma dessas chaves candidata poderá se tornar uma chave primáriaos no modelo

  • Pensei assim, se toda tabela tem sua chave primária (PK), e a PK é derivada da chave candidata, então toda tabela tem pelo menos uma chave candidata.

    No mais, o conjunto de atributos que compõem uma tabela são únicos; pois, caso não fossem, geraria inconsistência no banco de dados (papel do SGBD evitar a redundância no BD).

    (comentário opinativo, qualquer erro, por favor comunicar)


ID
769555
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

O valor de uma chave estrangeira que apareça em uma tabela deve, necessariamente, ser considerado como chave primária de outra tabela.

Alternativas
Comentários
  •  Chave estrangeira ou Chave secundária em uso de banco de dados se refere ao tipo de relacionamento entre as tabelas de dados do banco de dados.

    Uma chave estrangeira é chamada quando há o relacionamento entre duas tabelas.

  • Para ser chave estrangeira ela deve ser chave primária em outra tabela. Qual o erro na questão?
  • Concordo com a colega acima. 
    Alguém pode mostrar o erro?
  • A chave estrangeira faz referência à chave candidata de outra tabela. Assim, o erro está em afirmar que uma chave estrangeira deve, necessariamente, ser considerada como chave primária de outra tabela, quando na verdade pode ser a chave alternada (chave candidata que não foi escolhida como chave primária). O certo seria afirmar que a chave estrangeira deve ser considerada como chave candidata de outra tabela. Outra forma seria tirar o "deve necessariamente" e colocar um "pode" no lugar.

  • O colega Tiago me mostrou algo que eu nunca havia me alertado: nem toda chave estrangeira é uma chave primária. Uma tabela cliente pode contar várias chaves candidatas: cpf, rg, matrícula etc. A sua chave primária pode ser a coluna cpf. No entanto, para ser chave estrangeira em outra tabela, não existe a necessidade de ser a coluna cpf, a chave primária. Esse papel pode ser assumidou por outra chave candidata como a coluna rg.
  • Tem mais um pequeno detalhe que os colegas acima não perceberam:

    no caso de um auto-relacionamento, por exemplo,  empregado - é gerenciado, teremos esse relacionamento usando apenas 1 tabela, o que invalida a questão
  • Acredito que o erro está em : "outra tabela". Porque a chave estrangeira pode referenciar a chave primária da própria tabela.

    http://www.gsigma.ufsc.br/~popov/aulas/bd1/abordagem_relacional.html

  • Acredito que o erro esteja em "deve, necessariamente, ser considerado como chave primária de outra tabela". 

    Estaria correta a questão se estivesse escrito "pode ser considerado como chave primária de outra tabela", pois como diz o texto abaixo "aponta para a chave primária de outra tabela ou da mesma tabela".

    "Uma chave estrangeira é um campo, que aponta para a chave primária de outra tabela ou da mesma tabela. Ou seja, passa a existir uma relação entre tuplas de duas tabelas ou de uma única tabela. A finalidade da chave estrangeira é garantir a integridade dos dados referenciais, pois apenas serão permitidos valores que supostamente vão aparecer na base de dados.

    Uma chave externa ou estrangeira é um atributo ou uma combinação de atributos numa relação, cujos valores são necessários para equivaler à chave primária de uma relação."

    http://pt.wikipedia.org/wiki/Chave_estrangeira

  • A palavra “estrangeira” usada para denominar este tipo de chave pode

    ser enganosa. Ela pode levar a crer que a chave estrangeira sempre referencia

    uma chave primária de outratabela. Entretanto, esta restrição não existe. Uma

    chave primária pode referenciar a chave primária da própria tabela

  • Uma chave estrangeira em uma tabela pode referenciar uma chave alternativa em outra tabela, não necessariamente uma chave primária

    Uma chave alternativa é uma chave candidata que não foi escolhida como chave primária

  • O termo chave estrangeira pode levar a crer que está sempre referenciada a uma chave primária de outra tabela, mas em certos casos ela pode estar referenciada a uma chave primária da MESMA TABELA.

     

    DominandoTI

  • Além de não ser necessariamente OUTRA tabela, também não precisa ser a chave primaria. Pode ser uma candidata, por exemplo, definida como unique.

  • Lembrando que uma chave primaria em uma tabela pode ser chave secundária em outra tabela(referênciando uma entidade dentro da tabela).

  • Q602237 - Um banco de dados permite à aplicação o armazenamento e a recuperação de dados com eficiência, o que garante segurança e integridade das informações. No caso de banco de dados relacional, os dados são armazenados em tabelas e os relacionamentos entre elas as tornam relacionais. A esse respeito, julgue o item que segue.

    Em um banco de dados relacional, a chave estrangeira que existe em uma tabela deve ser chave primária em outra tabela. C/E

    CORRETO

    E agora JOSÉ?!?!?!?!?

  • A forma correta é que o valor da chave estrangeira deve ser considerado chave candidata de outra tabela.Para o Cespe,esse valor deve ser chave primária (obrigatoriamente) na mesma ou em outra tabela.

  • "A chave estrangeira de uma tabela deve referenciar a chave primária ou qualquer chave candidata da outra tabela?

    Pessoal, essa é uma daquelas típicas divergências que costumam pegar na hora da prova e infelizmente não temos uma conclusão bem definida, pois as bancas costumam adotar ambos os posicionamentos.

    Como a chave primária é uma escolha (mais ou menos arbitrária) dentre as chaves candidatas, basta que a chave estrangeira referencie uma chave CANDIDATA de outra tabela e não necessariamente uma chave primária. Porém, várias são as questões que dão como correta a afirmação de que a chave candidata referencia ou deve referenciar a chave PRIMÁRIA da outra tabela.

    Vejamos uma questão que afirma a possibilidade de relacionamento com a chave candidata:

    (CESPE - 2008 - STF - Analista Judiciário - Tecnologia da Informação) Chaves estrangeiras podem ser definidas como sendo um conjunto de atributos pertencentes a um esquema de relação que constituem chaves primárias ou candidatas em outros esquemas independentes. Gabarito: Certo.

    E agora uma que fala apenas de chave primária:

    (CESPE - 2015 - TJ-DFT - Analista Judiciário - Analista de Sistemas) Em um banco de dados relacional, a chave estrangeira que existe em uma tabela deve ser chave primária em outra tabela. Gabarito: Certo.

    E para finalizar, uma questão que restringe à chave primária:

    (CESPE - 2010 - TRT - 21ª Região (RN) - Analista Judiciário - Tecnologia da Informação) Uma chave estrangeira é um atributo ou uma combinação de atributos em uma relação, cujos valores são necessários para equivaler somente à chave primária de outra relação. Gabarito: Errado.

    Sugiro os seguintes posicionamentos:

    ▪ Se a questão afirmar que a chave estrangeira pode referenciar a chave candidata, aceite como CORRETO.

    ▪ Se a questão afirmar que a chave estrangeira deve referenciar a chave primária ou deve fazer parte da chave primária, aceite como CORRETO.

    ▪ Se a questão for mais explícita e afirmar que a chave estrangeira referencia somente a chave primária ou indicar que não pode referenciar uma chave candidata, marque ERRADO"

    Fonte: Ramon Rocha (Exponencial)

  • Pelo visto, o entendimento do CESPE vem mudando.

    Questão de 2015: Q602237

    Em um banco de dados relacional, a chave estrangeira que existe em uma tabela deve ser chave primária em outra tabela. (GAB: CERTO)

  • Uma CHAVE ESTRANGEIRA: pode ser CHAVE PRIMÁRIA como também pode ser CHAVE CANDIDATA.

    *Não será necessariamente a chave primária de outra tabela.

  • O que deixa esse questão errada é a palavra: NECESSARIAMENTE. Podemos ter PK e FK em uma mesma tabela, ou seja, um autorrelacionamento!

  • ERRADO

    Chave Estrangeira (FK)

    • estabelece um relacionamento com a chave primária de outra tabela; ou dela mesmo (auto relacionamento)
  • sabendo a tendência da banca em considerar que FK referencia apenas PK e nao CK, acho que o erro da questão foi dizer no final " de outra tabela". Pois, a FK pode referenciar uma PK tanto da mesma tabela como de outra, contanto que as mesmas sejam do mesmo banco de dados.

    qualquer erro, por favor, avisem !

  • Se o CESPE restringir o entendimento de que a Chave Estrangeira faz referência SOMENTE a chave primária, então a questão torna-se errada...

    Mais uma questão que confirma isso:

    Ano: 2011 Banca: CESPE Órgão: MEC Prova: ANALISTA DE SISTEMAS.

    A relação entre linhas de tabelas de um banco de dados relacional é implementada por meio de chave. Em um banco de dados relacional, existem, no mínimo, dois tipos de chaves a considerar: a chave primária e a chave estrangeira. A chave primária é uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela, enquanto uma chave estrangeira é uma coluna ou uma combinação de colunas, cujos valores aparecem, necessariamente, na chave primária de outra tabela."

    Gabarito: ERRADO.

  • GAB.: E

    A chave estrangeira pode fazer referencia a PK ou Chave candidata, inclusive pode fazer referencia a mesma tabela

  • Esse era o entendimento do CESPE até cerca de 2014. Se essa questão fosse cobrada hoje provavelmente seria dada como certa, tendo o "necessariamente" ou não.


ID
769564
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Após definir-se uma visão, é disponibilizada para o usuário uma tabela virtual que não compõe o modelo lógico de dados, na qual o usuário tem plena liberdade para realizar operações de consulta, inclusão, exclusão ou alteração.

Alternativas
Comentários
  • Uma visão, ou vista (em inglêsview), no contexto dos bancos de dados é um objeto que não armazena dados, e não uma relação, composto dinamicamente por uma consulta que é previamente analisada e otimizada. Isso significa que, diferentemente de tabelas, visões não são objetos físicos, ou seja, não ocupam espaço em disco. Alterações nos dados de tabelas que são acessadas por visões, consequentemente alteram os resultados gerados pelas consultas armazenadas nessas visões.
  • Assertiva errada. Na verdade uma visão não compoem o modelo físico de dados. A diferença é que o modelo físico é composto por tabelas e o modelo lógico por várias outras coisas como as views.
  • Uma visão é sim uma tabale virtual que compõe o modelo lógico do BD. O erro na questão está em afirmar que não faz parte do modelo lógico. Uma visão não faz parte do modelo físico de dados.
  • Views não fazem parte do Modelo Lógico e o erro da questão é que o usuário não tem plena liberdade para realizar operações de consulta, inclusão, exclusão ou alteração, visto que se deve obedecer uma série de condições para alterar dados a partir de uma view (Ex: With Check Option, etc).

    Além disso, Silberchatz diz em [1]: "View é qualquer relação que não faça parte do modelo lógico, mas é visível para o usuário como uma relação virtual".

    Fonte: [1] Sistema de Banco de Dados, 3ª Edição, Pág. 99.

  • Diego, nesse caso vc pode ter uma view atualizável, que possui algumas retrições, mas vc poderá fazer essas operações.
    O erro da questão: é o que os colegas acima já mencionaram. A view não faz parte do modelo físico.

  • O erro está no ' tem plena liberdade'.
    Ex: Se no oracle uma view for criada sem os rowids das tabelas, então os usuários não terão plena liberadade de atualizar, inserir ou atualizar os dados das tabelas relacionadas.
  • Tem muita gnt comentando q o erro da questao ta em dizer q  "a view faz parte do modelo físico".
    Nao vi nada disso na questao. O q a questao diz eh o seguinte:  Após definir-se uma visão, é disponibilizada para o usuário uma tabela virtual que não compõe o modelo lógico de dados(ate aqui, certo), na qual o usuário tem plena liberdade para realizar operações de consulta, inclusão, exclusão ou alteração.
    Nao existe nenhuma mençao a modelo fisico.
    O erro da questao ta na ultima afirmaçao. O usuario nao tem essa plena liberdade.
    Silberchatz afirma q, normalmente uma view nao eh atualizavel(permite insert, update, delete etc), mas pode ser se todas essas condiçoes forem satisfeitas:
    - a clausula from possui apenas 1 relacao de BD;
    - a clausula select contem apenas nomes de atributo da relacao e nao possui quaisquer expressoes, agregadas ou especificação distinct
    - qqr atributo nao listado na clausula select pde ser definido em nulo;
    - a consulta nao possui uma clausula group by ou having.
    Alem disso, ha as restriçoes de acesso q pdem ser definidas na propria view para o usuario. Por exemplo, 1 view definida apenas com select significa q o usuario pde apenas consultar dados de determinados atributos especificados na criaçao da view.
    Ou seja, o usuaario nao possui a ampla liberdade pra fazer o q bem entender, como afirma a questao.
  • O primeiro trecho está correto :
    Após definir-se uma visão, é disponibilizada para o usuário uma tabela virtual que não compõe o modelo lógico de dados;
    Fundamento
    Conceitos segundo 
    SILBERCHATZ (pg 76):
    Nível Modelo Lógico é aquele em que consideramos que as relações na coleção que recebemos são as relações reais armazenadas no BD. 
    A SQL permite que uma Relação virtual  seja definida por uma consulta e a relação conceitualmente contenha o resultado da consulta. A relação virutal não é previamente calculada ou armazenada, mas é computada pela execução da consulta sempre que a relação virtual é usada. Qualquer relação desse tipo, que não faz parte do modelo lógico mas se torna visível a um usuário como uma relação virtual, é chamada de view(ou visão).


    Quanto ao segundo trecho :
    ... na qual o usuário tem plena liberdade para realizar operações de consulta, inclusão, exclusão ou alteração.
    O erro está em afirmar que o usuário tem plena liberdade para realizar as operações uma vez que nem todos os BDS implementam views materializadas. E ainda que implementasse views materializadas, algumas condições precisam ser satisfeitas para que inserções, atualizações ou exclusões funcionem. Ou seja, não existe a "plena liberdade".
  • Fazer update, insert ou delete em views é muito problemático e geralmente proibido.

  • errado- embora view seja uma tabela virtual para visualização dos dados e possa ser usado para formatação de dadosm obteção de info, segurança, view não concede ao usuario nenhum tipo de liberdade.

    View é uma tabela virtual baseada em consulta select.

  • Gab. ERRADO

    É possível inserir, excluir e atualizar registros diretamente em uma view desde que ela seja atualizável, isto é, a view que somente envolva uma única tabela

  • Q133321 - O uso de visão em banco de dados é uma forma de aumentar a sua segurança, pois impede o acesso direto aos dados de uma tabela, fornecendo somente os dados considerados necessários. CERTO

    Questão que ajuda.

  • Por ser uma tabela virtual, há uma limitação das possíveis operações de atualização que podem ser

    aplicadas às views, mas não há qualquer limitação à operação de consulta de uma view. Até é possível inserir, atualizar ou excluir dados de uma view – exceto quando a view não é atualizável.

    Fonte: Estratégia


ID
769570
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Uma tabela não pode ter valores de chaves estrangeiras nulos, em decorrência da regra de integridade referencial.

Alternativas
Comentários
  •  Chave estrangeira ou Chave secundária em uso de banco de dados se refere ao tipo de relacionamento entre as tabelas de dados do banco de dados.



    Uma chave estrangeira é chamada quando há o relacionamento entre duas tabelas.

  • Se os campos da chave estrangeira permitirem NULL na tabela, os mesmos podem ser NULL perfeitamente.
    Questão ERRADA.
    Dúvidas ler Elmasri & Navathe, 6a Ed., pág. 47.
    Valeu.
  • Apenas para complementar com o trecho do Navathe (4ed):
    "Um valor de FK em um tupla t1 do estado corrente r1(R1) ou ocorre como um valor de PK para alguma tupla t2 no estado corrente r2(R2) ou é null"
    Ou seja, ou a FK é um dos valores na outra tabela ou ela é null. Um exemplo para ver isso é pensar numa relação entre Criança e Escola, em que Criança refencia a Escola na qual ela estuda. Se a criança não estiver matriculada em uma Escola, o campo que faz a referência estará com null.
  • Um campo de chave estrangeira pode ser nulo por que para aquela tupla especifica aquele relacionamento não se aplica.

    Por exemplo imagina uma empresa em que um funcionário pode ter um carro corporativo para executar suas atividades, sendo no maximo um carro. Hora poderíamos ter como chave estrangeira na relação funcionário um atributo licença_carro que é especifica o carro em questão, mas pode haver funcionários que não precisem de um carro corporativo. Claro que há outras maneiras de representar isso sem usar o artificio dos atributos nulos mas é uma possibilidade.

  • FK pode ser nulo mesmo, o que deixa a questão duvidosa é a frase "em decorrência da regra de integridade referencial".

    Se aceitar NULO, a integridade deixa de existir

  • - Integridade de entidade: Os valores da chave primária não podem ser nulos.

    - Integridade referencial: Uma relação pode ter um conjunto de atributos que contém valores com mesmo domínio de um conjunto de atributos que forma a chave primária de uma outra relação (chave estrangeira), ou seja, o valor contido na chave estrangeira de uma relação (tabela) deve corresponder a um valor de chave primária na outra relação (tabela).

  • Se eu remover uma tupla da tabela A que é referenciada por uma tupla da tabela B, então estaria violando a integradide referencial. No entanto, se eu definir na tabela B que uma tupla x não se relaciona mais com a tabela a tupla y da tabela A e remover a tupla y. Não problema. OK?

  • No livro Sistema de Banco de Dados; Silberschatz, p.85


    "Valores null complicam a semântica das restrições de integridade referencial da SQL. Os atributos para chaves estrangeiras podem ser nulos, desde que não tenham sido declarados como não nulos. Se todas as colunas de uma chave estrangeira forem não nulas em uma determinada tupla, a definição comum das restrições de chave estrangeira é usada para essa tupla. Se qualquer uma das colunas de chave estrangeira for nula, a tupla é definida automaticamente para satisfazer a restrição."


    (...)


    "A SQL também permite que a cláusula FOREIGN KEY especifique ações diferentes de cascade se a restrição for violada: campo referenciador pode ser definido em nulo (usando SET NULL em vez de CASCADE)."

  • ERRADO: Se o a relação for OPCIONAL, ou seja, cardinalidade mínima 0, a chave estrangeira pode tranquilamente ser nula.
    É o exemplo da escola citado pelo colega YURI. Nem toda criança precisa estar matriculada em uma escola ( parênteses gigante:

    apesar de poder configurar o abandono intelectual do ECA: 

    Art. 246 - Deixar, sem justa causa, de prover à instrução primária de filho em idade escolar:

            Pena - detenção, de quinze dias a um mês, ou multa

    )

     

    Enfim, aqui era só uma questão de BD

    kkkkkkk
    Em frente!

  • Em um relacionamento identificado, a chave estrangeira faz parte da chave primária na mesma entidade. Nesse caso, não pode ser null.

    Em um relacionamento não identificado, a chave estrangeira não faz parte da chave primária na mesma entidade. Nesse caso, pode haver uma tupla na entidade que não corresponda a uma tupla na tabela da chave estrangeira. Nesse caso, esta será null.

     

     

  • Apenas para complementar com o trecho do Navathe (4ed):

    "Um valor de FK em um tupla t1 do estado corrente r1(R1) ou ocorre como um valor de PK para alguma tupla t2 no estado corrente r2(R2) ou é null"

    Ou seja, ou a FK é um dos valores na outra tabela ou ela é null. Um exemplo para ver isso é pensar numa relação entre Criança e Escola, em que Criança refencia a Escola na qual ela estuda. Se a criança não estiver matriculada em uma Escola, o campo que faz a referência estará com null.

  • - Integridade de entidade: Os 

    valores da chave primária não podem ser nulos.

    - Integridade referencial: Uma 

    relação pode ter um conjunto de atributos que contém valores com mesmo domínio 

    de um conjunto de atributos que forma a chave primária de uma outra relação 

    (chave estrangeira), ou seja, o valor contido na chave estrangeira de uma relação 

    (tabela) deve corresponder a um valor de chave primária na outra relação 

    (tabela).

  • Gabarito: Errado.

    Restrição de participação total admite uma cardinalidade 1:0. Com isso, invalidamos o item.

    Bons estudos!

  • ERRADO

    Uma tabela não pode ter elementos nulos quando se fala da chave primária , já quando se fala da chave estrangeira e dependendo da situação, pode ter valores nulos.

    chave primária----> not null

    chave estrangeira ----> null

    Diferentemente da chave primária, a chave estrangeira:

    1. Pode ser nula (NOT NULL);
    2. É um campo em uma tabela que faz referência a um campo que é chave primária em outra tabela;
    3. É possível ter mais de uma (ou nenhuma) em uma tabela.

  • Um compilado dos melhores comentários(selo de qualidade):

    [1]

    "Um valor de FK em um tupla t1 do estado corrente r1(R1) ou ocorre como um valor de PK para alguma tupla t2 no estado corrente r2(R2) ou é null"

    Ou seja, ou a FK é um dos valores na outra tabela ou ela é null. Um exemplo para ver isso é pensar numa relação entre Criança e Escola, em que Criança refencia a Escola na qual ela estuda. Se a criança não estiver matriculada em uma Escola, o campo que faz a referência estará com null.

    Se os campos da chave estrangeira permitirem NULL na tabela, os mesmos podem ser NULL perfeitamente.

    Apenas para complementar com o trecho do Navathe (4ed):

    "Um valor de FK em um tupla t1 do estado corrente r1(R1) ou ocorre como um valor de PK para alguma tupla t2 no estado corrente r2(R2) ou é null"

    Ou seja, ou a FK é um dos valores na outra tabela ou ela é null. Um exemplo para ver isso é pensar numa relação entre Criança e Escola, em que Criança refencia a Escola na qual ela estuda. Se a criança não estiver matriculada em uma Escola, o campo que faz a referência estará com null.

    [2]

    "Valores null complicam a semântica das restrições de integridade referencial da SQL. Os atributos para chaves estrangeiras podem ser nulos, desde que não tenham sido declarados como não nulos. Se todas as colunas de uma chave estrangeira forem não nulas em uma determinada tupla, a definição comum das restrições de chave estrangeira é usada para essa tupla. Se qualquer uma das colunas de chave estrangeira for nula, a tupla é definida automaticamente para satisfazer a restrição."

    Fonte:

    [1] Elmasri & Navathe, 6a Ed., pág. 47.

    [2] Sistema de Banco de Dados; Silberschatz, p.85

  • GABARITO ERRADO!

    .

    .

    Chave estrangeira:

    Pode ser nula (NOT NULL);

    É um campo em uma tabela que faz referência a um campo que é chave primária em outra tabela;

    É possível ter mais de uma (ou nenhuma) em uma tabela.

  • CHAVE ESTRANGEIRA/FOREIGN KEY (FK)

    Pode ser nula (NOT NULL);

    é um campo em uma tabela que faz referência a um campo que é chave primária em outra tabela;

    é possível ter mais de uma (ou nenhuma) em uma tabela;

    é uma cópia da chave primária de uma tabela, c/ o objetivo fazer o relacionamento entre a tabela principal (chave primária) e tabela relacionada (chave estrangeira); 

    somente se liga logicamente à chave primária de outra tabela (entendimento Cespe - o mais correto seria que ela se liga também as chaves candidatas);

    (só se a Cespe perguntar) uma tabela pode ter relação consigo própria e a relação c/ a chave estrangeira pode ser c/ uma chave candidata;

    Uma chave estrangeira é uma chave primária de outra tabela, ou seja, existe uma "ligação lógica".

    AVANTE

  • FK pode ter valor NULL.

    ERRADA.

  • ERRADO

    Chave estrangeira: Pode ter valor nulo – pode se repetir

    Chave primária: NÃO pode ter valor nulo – não pode repetir 

  • ERRADO

    Chave Estrangeira (FK) PODE ter valor nulo

  • a questão estaria correta se trocasse chave 'estrangeira' por chave 'primária', pois essa sim não pode receber valor NULL. como também trocasse a regra de integridade 'referencial' por regra de integridade de 'entidade'. desta forma: Uma tabela não pode ter valores de chaves primárias nulos, em decorrência da regra de integridade de entidade.

  • Integridade referencial assegura que uma chave estrangeira possua respectiva associação na tabela de origem.

    Obs: não é na mesma tabela, não é tabela de destino, cespe adora essas pegadinhas.

    A FK diferentemente da PK poderá ter valor nulo.

  • SET NULL, CASCADE, ACTION, RESTRICT

    (E)


ID
769576
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Considera-se banco de dados relacional como um conjunto de tabelas, em que cada uma dessas tabelas armazena os dados de uma entidade específica.

Alternativas
Comentários
  • O erro está em afirmar que uma tabela armazena os dados de uma entidade específica. Uma tabela armazena os dados das instãncias das entidades sendo os dados de uma entidade específica armazenada por uma linha da tabela.
  • Tabelas também são utilizadas para representar RELACIONAMENTO! Não apenas entidade. Ocorre, por exemplo, quando é mapeado um relacionamento N:M entre duas entidades.
  • É só perceber que uma tabela pode armazenar dados oriundos de várias tabelas distintas. Assim, a linha dessa tabela representa os dados específicos dela somente.

    Rod
  • Acredito que o erro esta quando ele fala "de uma entidade específica". Pois também existem tabelas que podem armazenar dados de duas entidades quando o relacionamento é de n:n.
  •  Alfran, tua resposta foi a melhor que eu vi aqui, no entanto para o CESPE, "as vezes" não vale a regra: 

    Ao se mapear um modelo de dados conceitual em um modelo lógico relacional, verifica-se a correspondência um para um entre entidades conceituais e tabelas.
    Gabarito: C


    http://www.questoesdeconcursos.com.br/questoes/a2f463c8-ef
  • Pessoal, quando temos duas entidades, E1 e E2,  com cardinallidade 1:1  no modelo conceitual, elas passam a existir apenas em uma tabela no modelo lógico, onde então deixarão de ser ENTIDADES e serão TABELAS.
    Dessa forma essa tabela no modelo lógico ira possuir os dados da entidade 1 e entidade 2, além de uma chave primária.
    Por esse motivo quando se fala em "armazena os dados de uma entidade específica." está ERRADO, pois neste caso a tabela conterá dados tanto de E1 quanto E2.
    Também errei a questão por não pensar nesse detalhe, antes aqui do que na prova.
  • Tabelas podem representar relacionamentos também

  • Essa questão é simples de se resolver, basta analisá-la com calma.

    Vejamos o seguinte trecho: "em que cada uma dessas tabelas armazena os dados de uma entidade específica."

    Não necessariamente, eu posso ter uma tabela que armazena informações de outra tabela.

    Exemplo: um cliente pode ter um endereço ou muitos endereços, por tanto, em um banco de dados normalizados teríamos uma tabela "ciente" e outra "endereço", com um relacionamento 1 para N.

    Onde na tabela de clientes teria um id da tabela de endereço, sendo assim invalidando o termo "específica".

  • Galera, tabela = entidade. O conjunto de tabelas armazena dados de uma tabela? não né? (:

  • Considera-se banco de dados relacional como um conjunto de tabelas (Certo).  Um modelo relacional representa o banco de dados como uma coleção de relações, uma relação é considerada uma tabela.


    em que cada uma dessas tabelas armazena os dados de uma entidade específica (Falso). Cada entidade mapeada no modelo conceitual, quando passadas para o modelo lógico (modelo relacional) pode haver a necessidade de 1 entidade se tornar uma ou mais tabelas e isso vai depender do resultado do processo de normalização a ser feito (1 FN, 2FN, 3FN, Boyce Code, etc..) então o final da questão esta errada porque nem sempre as tabelas armazena dados específicos de uma entidade. 


  • Galera, eu interpretei a questão desta maneira:

    Imaginemos a tabela Clientes.

    Para mim, na minha visão, um cliente na tabela Clientes é uma entidade, uma tupla, um registro.

    E como já sabemos, a tabela Clientes pode ter várias entidades, vários clientes, várias tuplas, vários registros, sendo todos estes que falei sinônimos. Portanto, as tabelas não armazenam dados de uma entidade específica, e sim de várias entidades. Espero ter ajudado.

    Gabarito: Errado

     

  • Para mim, a melhor resposta para explicar o erro da questão é o do colega Westley Jesus. Vale a pena conferir o seu comentário. Apenas uma dica.

  • Como o próprio nome do Banco de Dados diz, Relacional: se cada entidade armazenasse apenas atributos específicos não haveria como existir os relacionamentos entre as tabelas, o que realmente gera conhecimento sobre as transações de negócio. Reforçando o que foi dito de outra forma por João Leno e Yuri Maia!

  • Considera-se banco de dados relacional como um tipo de banco de dados que armazena e fornece acesso a pontos de dados relacionados entre si. Bancos de dados relacionais são baseados no modelo relacional, uma maneira intuitiva e direta de representar dados em tabelas.

  • Não existe essa relação um para um entre tabelas e entidades. Na verdade, uma tabela do modelo relacional pode armazenar dados de mais de uma entidade ou mesmo de relacionamentos entre entidades. Um banco de dados relacional utiliza as relações para representar tanto os dados quanto os relacionamentos entre estes dados.

    Gabarito: Errado

    (CESPE - 2012 - TJ-RO - Analista Judiciário - Analista de Sistemas Suporte - ADAPTADA) Na terminologia formal dos modelos relacionais, tupla corresponde a uma linha, e atributo, ao nome da coluna.

    Gabarito: Certo.

    O modelo relacional utiliza as tabelas para o armazenamento dos dados e relacionamentos.

    Em uma tabela, cada linha representa uma coleção de valores de dados relacionados. Uma linha representa um fato que normalmente corresponde a uma entidade ou relacionamento do mundo real. Na terminologia formal de banco de dados, uma linha é chamada tupla.

    Uma tabela é organizada em colunas, que servem para ajudar a interpretar o significado dos valores em cada linha. Formalmente, um cabeçalho da coluna é chamado de atributo.


ID
769582
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

As restrições de integridade classificadas como restrições de transição tanto podem referir-se a apenas uma tabela, como a um conjunto de tabelas. Nessa última situação, denominam-se restrições de transição de banco de dados.

Alternativas
Comentários
  • As restrições de integridade resguardam o Banco de Dados contra danos acidentais, assegurando que mudanças feitas por usuários autorizados não resultem na perda de consistência de dados.

    Restrições de domínio são a forma mais elementar de restrições de integridade. Estas testam valores inseridos no Banco de Dados, e testam (efetuam) consultas para assegurar que as comparações façam sentido.

    Integridade referencial assegura que um valor que aparece em uma relação (tabela) para um determinado conjunto de atributos apareça em outro
    conjunto de atributos em outra relação (tabela).

  • Restrição de transição existe??
  • Existe isso Arnaldo? Restrição de transição?
    Também nunca ouvi falar
  • Infelizmente, existe no livro do Date.

    http://books.google.com.br/books?id=xBeO9LSlK7UC&pg=PA232&lpg=PA232&dq=Restri%C3%A7%C3%A3o+de+transi%C3%A7%C3%A3o&source=bl&ots=x9RxiXvf6M&sig=jG1y9IOyg27L93B_l-KDXJmtXpI&hl=pt&sa=X&ei=FJgXUfTOA4rU9QSky4C4Ag&redir_esc=y#v=onepage&q=Restri%C3%A7%C3%A3o%20de%20transi%C3%A7%C3%A3o&f=false
  • Nossa, nunca tinha ouvido falar disso. Pesquisei no livro do Date, conforme citado pelo colega acima, e segue a desrição para conhecimento de todos:

    Restrição de transação é uma restrição sobre as transições legais que determinada variável em particular pode fazer de um valor para outro. Por exemplo, o estado civil de uma pessoa pode mudar de "nunca casado" para "casado", mas o inverso não pode ocorrer. Desde que tenhamos um meio de nos referir, dentro de uma expressão, o valor de uma variável antes de uma atualização qualquer e o valor dessa mesma variável depois dessa mesma atualização, então há um meio de formular qualquer "restrição de transição". Outro exemplo: "Nenhum status de fornecedor poderá diminuir". 
  • Está relacionado  as tabelas em quais os usuário pode interagir, inserir, apagar, ler, alterar alguma informação do banco de dados. Também que triggers podem ser considerado como uma transação, pois determinado acontecimento, pode pedir para alterar alguma informação do banco. Isso acontece desde o início da leitura até o final, a gravação dos dados e ter certeza se ocorreu tudo bem.