Comentário de prova – TJDFT – Cargo 4 – Suporte em TI – BD e SGBDs
Vamos comentar as questões referentes a banco de dados. Essa prova veio recheada de questões, algumas bem complicadas. Vamos tentar explicar cada uma delas, esperamos que ajude na fixação e entendimento do assunto.
A respeito da configuração e da administração de sistemas gerenciadores de bancos de dados (SGBD) e de produtos a eles relacionados, julgue os itens a seguir.
81 Apenas instalações autônomas de SQL Server permitem o uso de servidor de arquivos SMB como opção de armazenamento.
Comentário: Essa questão é de uma maldade sem tamanho. Provavelmente foi feita por um DBA experiente. Mas vamos digerir a questão por partes, ela nos oferece um conhecimento amplo sobre SQL Server.
Primeiro precisamos saber o que seria instalação autônomas (stand-alone). Instalações autônomas se contrapõe a instalações em rede (network). O ambiente Standalone consiste em uma situação em que o aplicativo é executado em um único computador. Este computador funciona como servidor e cliente, sendo responsável pelo processamento dos pedidos e por manter todos os dados. Como um computador autônomo lida com todos os dados e o aplicativo, ele deve ser um computador razoavelmente rápido com quantidade de memória adequada, e velocidade de processamento e espaço em disco. Neste ambiente, você só precisa instalar o mecanismo de banco de dados e o aplicativo no computador autônomo.
Agora vamos para o conceito de SMB. Server Message Block (SMB) é um protocolo de compartilhamento de arquivos de rede que permite aos aplicativos em um computador ler e gravar arquivos e solicitar serviços de programas no servidor em uma rede de computadores. O protocolo SMB pode ser usado na parte superior do protocolo TCP/IP ou outros protocolos de rede. Usando o protocolo SMB, um aplicativo (ou o usuário de um aplicativo) pode acessar arquivos ou outros recursos em um servidor remoto. Isso permite a aplicativos ler, criar e atualizar arquivos no servidor remoto.
Vejam que o uso do SMB na instalação autônoma não faz sentido. Logo a alternativa está incorreta.
82 No PostgreSQL, mesmo usando-se o parâmetro de configuração listen_address = ‘*’, é possível controlar os usuários que poderão se conectar ao banco de dados.
Comentário: O parâmetro listen_addresses especifica qual o range de endereços IP o banco pode escutar. Isso permite que você tenha mais de uma placa de rede (NICs) por sistema. Na maioria dos casos, nós queremos aceitar conexões em todas as NICs, por isso usamos “*”, que significa “todos os endereços IP”. Alternativa correta!
83 No PostgreSQL, mudanças nas configurações de memória compartilhada exigem que o banco de dados seja totalmente reiniciado.
Comentário: As configurações de memória compartilhada são importantes e devem ser feitas de forma correta, porque ela sempre exigirá uma reinicialização completo do banco de dados para efetuar alguma mudança na configuração. A memória do servidor não pode re-alocar dinamicamente memória compartilhada.Logo alternativa está correta.
84 A ocorrência de falha em uma instância do DB2 PureScale exige a interferência do administrador do banco de dados para que os recursos sejam reiniciados, devendo a forma de notificação da falha ser configurada pelo administrador.
Comentário: O DB2 pureScale do DB2 é uma tecnologia que trabalha em um ambiente de cluster e usa uma arquitetura de compartilhamento de dados. Esta arquitetura é ideal para escalabilidade e principalmente apropriada para o processamento de transações. Neste ambiente, os dados que estão sendo acessado são compartilhados por todos os servidores no cluster. Se houver uma falha em um dos servidores (instâncias), ou se ele necessita ficar off-line para fins de manutenção, o restante dos membros que continuam on-line no cluster assumem o trabalho, proporcionando assim uma alta disponibilidade transparente para os dados.Serviços de cluster do DB2 são usados para agrupar os componentes integrados em serviços de cluster que são usados para monitorar e automatizar a recuperação de falhas no sistema. Vejam que a alternativa apresenta-se incorreta, pois a arquitetura, após configurada, exige o mínimo de trabalho do BDA. Vejam também que os recurso permanecem no ar, mesmo com uma falha em um instância.
85 Na instalação do DB2 PureScale em Linux, se um usuário existente for selecionado como proprietário de instância do DB2, ele deverá existir com o mesmo UID em todos os hosts.
Comentário: Um ambiente do DB2 pureScale requer um ID do usuário para o proprietário da instância, um ID de usuário não raiz para usar um protocolo de rede de shell seguro (SSH) entre hosts, e outro para executar funções ou procedimentos definidos pelo usuário protegido. Se você usar o assistente de Configuração do DB2 para instalar o DB2 pureScale Feature, os usuários necessários serão criados como parte da instalação. Caso contrário, você deverá criar os usuários manualmente. Estes usuários são necessários em todos os servidores que hospedam um recurso de armazenamento em cache do cluster ou membro. Cada usuário deve ser configurado para ter as mesmas configurações de usuário e senha que o mesmo usuário em todos os outros servidores.
Para usar usuários existentes, ambos os usuários devem existir em todos os hosts com o mesmo ID do usuário (UID), ID do grupo ID (GID) e diretório HOME antes da instalação. Questão tirada da documentação, muito específica! Mas está correta.
86 Se, na modificação de determinada instância existente de SQL Server, for realizada a instalação de componentes de replicação, será necessário reiniciar o agente de SQL Server. C
Comentário:
Julgue os itens subsequentes, relativos a projetos de bancos de dados.
87 Durante a normalização de tabelas, devem ser priorizadas as decomposições sem perdas que levam a projeções independentes.
Comentário: A questão da junção sem perdes é um característica que estudamos quando tratamos da 5FN. Contudo a ideia permanece para as outras formas normais. Basicamente, quando tratamos de fazer projeções sobre a tabela, estamos separando seus atributos em diferentes relações. A ideia é que essas partes possam se junta por meio de junção para reconstruir a tabela original. Essa operação não deve gerar perdas nem tuplas espúrias. Esse objetivo deve ser perseguido durante todo o processo de normalização. Alternativa correta!
88 Qualquer atributo de uma tabela representada na terceira forma normal pode ser alterado sem que ocorra interferência nos demais atributos. E
Comentário: Se basearmos nossa análise nas dependências funcionais, sabemos que, se alterarmos um determinante, ou seja, o valor de uma chave primária, embora os valores dos demais atributos (determinados), não sejam alterados, a busca ou referência aos mesmos será feita de forma diferente. Sendo assim, a alternativa encontra-se incorreta.
No que se refere à organização de arquivos e métodos de acesso a bancos de dados, julgue os próximos itens.
89 O acesso direto a registros será eficiente ao se usar funções hash, visto que essas funções garantem uma relação unívoca entre o registro e a sua localização física.
Comentário: Realmente o acesso a registros usando funções hash torna a operação mais rápida, contudo não existe garantia de que existe uma relação unívoca entre o registro e sua localização. Tudo vai depender da existência ou não de colisões dentro da funcão hash e de como essas colisões são tratadas. Sendo assim alternativa está incorreta.
90 A utilização de árvores-B+ para implementar acesso indexado a registros é eficiente quando se trata de aplicação em que a operação predominante é a inclusão de novos registros.
Comentário: O texto da alternativa é estranho per si. O acesso indexado deve tratar de operações de consulta. Vamos aproveitar para falar um poucos sobre árvores B+.
A ideia inicial da árvore B+ é manter todas as chaves de busca em seus nós folha de maneira que o acesso sequencial ordenado das chaves de busca seja um processo mais eficiente do que em árvores B. Nesta estrutura, todas as chaves são mantidas em folhas, e algumas chaves são repetidas em nós não–folha para definir caminhos para localizar registros individuais.
As folhas são ligadas através de uma lista duplamente encadeada, de modo a oferecer um caminho sequencial para percorrer as chaves na árvore. Esta lista é chamada de Conjunto de Sequência (Sequence Set). A organização das páginas internas (index set) armazena cópias de chaves para referenciar as buscas, mas não contém as chaves em si. Vejam a figura abaixo:
91 As vantagens dos arquivos hash incluem a otimização no uso do espaço físico em disco.
Comentário: A grande vantagem do uso de funções hash é que você tem um tempo de busca muito rápido, contudo para evitar colisões da função de dispersão precisamos deixar um percentual da memória disponível vazio. Sendo assim o uso de arquivos hash não otimizam o uso do espaço físico. Alternativa incorreta.
A respeito de tipos de bancos de dados, julgue os itens que se seguem.
92 A capacidade de estender tipos de dados básicos é uma das características dos bancos de dados objeto relacional.
Comentário: È possível sim, criar seus próprios tipos de dados, conhecidos como User-defined Datatypes. Apenas para listar um exemplo, o Oracle permite a criação destes tipos específicos. (veja aqui). Alternativa correta.
93 Sistemas de bancos de dados classificados como NoSQL permitem a inserção de dados sem que haja um esquema predefinido.
Comentário: Uma das características de NoSQL é ser livre de esquema. Como não sabemos exatamente qual a estrutura das informações que vamos guardar no podemos fixar uma modelo padrão sobre o risco de termos uma incompatibilidade de tipo ou tamanho. Alternativa correta,
A respeito de tunning de bancos de dados, julgue os itens subsecutivos.
94 O uso de correlated subquery aumenta o desempenho na execução de consultas a bancos de dados.
Comentário: O uso de consultas aninhadas ou correlacionadas obriga o SGBD a manter cursores sobres as tabelas utilizadas na consulta. Isso acaba criando um overhead na administração da memória e possivelmente aumenta as operações de I/O se as consultas forem feitas em várias tabelas distintas que encontram-se em blocos de disco distintos. Logo, consultas correlacionadas geralmente são mais lentas e diminuem o desempenho do banco de dados. Alternativa incorreta.
95 Ao se realizar o tunning de um PostgreSQL, o valor atribuído à variável effective_cache_size pode influenciar o uso adequado de índices durante a execução de consultas.
Comentário: O PostgreSQL deverá ter a sua própria memória dedicada (shared_buffers), bem como pode utilizar o cache do sistema de arquivos. Em alguns casos, utilizamos as informações para tomada de decisões, por exemplo, se é mais eficiente usar um índice ou não, o banco de dados compara os tamanhos, calculando a soma de todos estes caches. Essa informação é o que se espera encontrar no parâmetro effective_cache_size. Alternativa correta.
Foi trabalhoso fazer esse comentário pois contempla uma quantidade relativamente grande de detalhes, mas espero que vocês tenham gostado.
Forte abraço,
Thiago
PS: Algumas das questões de Postgres foram retiradas do livro: PostgreSQL 9.0
High Performance.