Artigo

Prova da Semana – Comentário da prova da FUNPRESP – Especialista – Tecnologia da informação – BD e BI

Hoje vamos comentar a prova da FUNPRESP, mais especificamente as questões de banco de dados e BI. Sem perder tempo, vamos a elas:

funpresp

Acerca dos modelos de dados relacional e dimensional em engenharia de software, julgue os itens que se seguem.

63 Na modelagem dimensional, as tabelas dimensão estão menos sujeitas ao processo de desnormalização que as tabelas fato.

64 Em um modelo de dados relacional, a integridade referencial assegura que os valores dos campos presentes na chave estrangeira apareçam na chave primária da mesma tabela, a fim de garantir a integridade dos dados.

Comentário: Como de praxe vamos comentar cada uma das alternativas da questão.

63 Os modelos conhecidos nos projetos de DW são o star schema e o snowflake schema. No primeiro, as tabelas dimensões são desnormalizadas. No segundo, podemos optar pela normalização das dimensões até a terceira forma normal. Observem que em ambos os casos a tabela fato se mantem normalizada. Logo, a tabela fato é sempre menos sujeita a desnormalização e não o contrário. Logo a alternativa está incorreta.

64 Essa questão está com o texto um pouco esquisito. O CESPE considerou a alternativa correta, mas eu tenho algumas considerações que me deixaram com dúvida sobre o gabarito da questão. Vamos pensar no caso concreto, uma tabela aluno e outra tabela responsável. Para garantir a integridade entro os dois o CPF do responsável deve aparecer na tabela aluno como chave estrangeira. CPF é chave primária da relação responsável e chave estrangeira na relação aluno. Vejam que neste caso elas não são a mesma entidade.

Agora vamos analisar uma relação funcionário com um atributo gerente que é o CPF do funcionário que gerencia. Veja que a coluna GERENTE vai receber o valor do CPF de outro funcionário da mesma tabela. Neste caso temos uma chave estrangeira composta por um atributo da mesma relação. Que ficaria coerente com a questão.

Na minha humilde opinião o texto da questão pode ser facilmente derrotado com o contra exemplo do primeiro parágrafo do comentário. Por isso, deixei uma interrogação ao lado do gabarito.

Gabarito: E C(?)

Com relação à forma como os dados são armazenados e manipulados no desenvolvimento de aplicações, julgue os itens a seguir.

65 Na especificação de um pacote PL/SQL podem ser encontradas informações relativas à implementação dos programas do pacote necessárias ao uso adequado do pacote.

66 Um database cluster do PostgreSQL é acessível por apenas uma instância de um servidor de banco de dados em execução.

67 Na implementação de mineração de dados (data mining), a utilização da técnica de padrões sequenciais pode ser útil para a identificação de tendências.

68 Aplicações de data warehouse que usem um esquema floco de neve tendem a ter pior desempenho nas consultas do que as aplicações que usem o esquema estrela.

69 Em um banco de dados NoSQL do tipo grafo, cada arco é definido por um identificador único e expresso como um par chave/valor.

Comentários: Abaixo analisaremos cada uma das alternativas.

65 Um package é uma coleção de objetos PL/SQL agrupados logicamente sob o nome de pacote. Os packages podem incluir procedures, functions, cursores, declarações, tipos e também variáveis​​. Há inúmeras vantagens em coletar objetos em um package.

Os packages geralmente possuem duas partes, uma que se refere a spec e a segunda parte que é o body. A spec é o que chamamos de interface para o package. É nela que declaramos os tipos, variáveis, constantes, exceções, cursores e subprogramas que poderão ser referenciados a partir de partes externas ao package. Por outro lado, no body definimos as consultas para os cursores e o código para os subprogramas. Em alguns casos pode ser que não haja a necessidade de se ter um body.

Em outras palavras, Package PL/SQL é um grupo de funções relacionadas, procedimentos, tipos, cursores, dentre outros. Os packages são como uma biblioteca, pois uma vez escrito é armazenado no banco de dados Oracle e pode ser usado por muitas aplicações.

As definições sobre a forma de implementação dos programas estão definidas dentro dos próprios programas, o pacote se preocupa apenas com a interface ou assinatura dos programas. Veja, portanto, que a alternativa está incorreta.

66 Antes que você possa fazer qualquer coisa em um banco de dados PostreSQL, você deve inicializar uma área de armazenamento no disco. Chamamos isso de um cluster de banco de dados. Um cluster é uma coleção de bancos de dados que é gerido por uma única instância de um servidor de banco de dados em execução. Após a inicialização, um cluster de banco de dados irá conter um banco de dados chamado Postgres, o que é usado como um banco de dados padrão para uso por serviços públicos, usuários e aplicativos de terceiros. O servidor de banco de dados em si não exige que o banco de dados Postgres exista, mas muitos programas utilitários externos assumem que ele existe. Outro banco de dados criado dentro de cada cluster durante a inicialização é chamado template1. Como o nome sugere, este vai ser utilizado como um molde para bases de dados criadas posteriormente. Conforma destaco em negrito, a alternativa encontra-se correta.

67  Algoritmos de padrões sequenciais identificam tipos de padrões sequenciais em restrições mínimas especificadas pelo usuário. Esta técnica procura por compras ou eventos que ocorrem em uma sequência através do tempo. Por exemplo, uma loja pode descobrir que consumidores que compram TVs tendem também a comprar filmadoras de 8mm em 60% das vezes. Ou seja, pode identificar uma tendências de compras, sendo assim, a alternativa está correta.

68 O desempenho das aplicações que usam o modelo floco de neve tende a ser prior do que as que utilizam o modelo estrela devido a necessidade de junção da primeira. Logo, a alternativa encontra-se correta.

69 A alternativa vai exigir conhecimento sobre os modelos de armazenamento utilizados por bancos de dados NoSQL. Quando tratamos de bases de dados NoSQL podemos classifica-las em quatro diferentes tipos, dois deles são citados na questão:

Chave/valor (Key/Value): conhecidos como tabelas de hash distribuídas. Armazenam objetos indexados por chaves, e facilita a busca por esses objetos a partir de suas chaves.

Orientado a Grafos: diferente de outros bancos de dados NoSQL, esse está diretamente relacionado a um modelo de dados estabelecido, o modelo de grafos. A ideia desse modelo é representar os dados e/ou o esquema dos dados como grafos dirigidos, ou como estruturas que generalizem a noção de grafos.O modelo de grafos é aplicável quando “informações sobre a interconectividade ou a topologia dos dados são mais importantes, ou tão importante quanto os dados propriamente ditos”. Possui três componentes básicos: os nós (são os vértices do grafo), os relacionamentos (são as arestas) e as propriedades (ou atributos) dos nós e relacionamentos.

Vejam que a questão mistura os dois conceitos o que torna a alternativa incorreta.

Gabarito: E C C C E

Considerando os possíveis níveis de configuração de RAID em um storage de dados, julgue os itens a seguir.

88 O nível de RAID 1 permite que os dados sejam espelhados e requer o mínimo de três discos para ser implementado e funcionar corretamente.

89 O nível de RAID 5 provê redundância de dados e requer um mínimo de três discos para seu correto funcionamento.

Comentários: Vamos tratar das características dos dois níveis.

RAID 1 é uma configuração de tolerância a falhas conhecida como espelhamento de disco (disk mirroring). Com RAID 1, os dados são copiados sem problemas e, simultaneamente, a partir de um disco para outro, criando uma réplica, ou o espelho. Se um disco fica inativo, o outro pode continuar trabalhando. É a maneira mais simples de implementar a tolerância a falhas e possui um custo relativamente baixo.

A desvantagem é que RAID 1 provoca uma pequena perda no desempenho. RAID 1 pode ser implementada através de software ou hardware. Um mínimo de dois discos é necessário para implementações RAID 1 de hardware. Com o software RAID 1, em vez de dois discos físicos, os dados podem ser espelhados entre os volumes em um único disco. Um ponto adicional a lembrar é que RAID 1 corta a capacidade total do disco pela metade: Se um servidor com dois drives de 1 TB é configurado com RAID 1, então a capacidade total de armazenamento será de 1 TB não 2TB.

RAID 5 é, de longe, a configuração RAID mais comum para servidores de negócios e dispositivos empresariais NAS. Este nível de RAID proporciona um melhor desempenho do que o espelhamento, bem como na tolerância a falhas. Com o RAID 5, os dados e a paridade (que são dados adicionais utilizados para recuperação) são distribuídos entre três ou mais discos. Se um disco recebe um erro ou começa a falhar, os dados são recriados a partir destes dados distribuídos e paridade de forma integrada e automática. Essencialmente, o sistema ainda está operacional, mesmo quando um disco falha até que você possa substituir a unidade que falhou. Outro benefício do RAID 5 é que ele permite que muitos NAS e unidades de servidor sejam “hot-swappable”, significa que no caso de uma unidade falhar, ela pode ser trocada por uma nova unidade sem desligar o servidor e sem interromper o acesso dos usuários.

Pelo exposto acima, podemos concluir que a alternativa 88 e 89, estão, respectivamente, errada e certa.

Gabarito: E C

A respeito dos fundamentos e das principais tecnologias relacionadas à computação em nuvem, julgue os próximos itens.

90 Hadoop e Elasticsearch são exemplos de tecnologias que permitem a computação em nuvem.

91 A computação em nuvem permite o processamento de dados de maneira distribuída em máquinas com diferentes arquiteturas físicas.

Comentários: Vamos comentar cada uma das alternativas acima. Começando pela definição de Hadoop e ElasticSearch.

O Hadoop é uma implementação de código aberto do paradigma de programação Map-Reduce. Map-Reduce é um paradigma introduzido pelo Google para processar e analisar grandes conjuntos de dados. Os programas que são desenvolvidos nesse paradigma realizam o processamento paralelo de conjuntos de dados e podem, portanto, ser executados em diferentes servidores sem muito esforço. A razão para a escalabilidade desse paradigma é a natureza intrinsecamente distribuída do funcionamento da solução. Uma grande tarefa é dividida em várias pequenas tarefas que são então executadas em paralelo em máquinas diferentes e então combinadas para chegar à solução. Os exemplos de uso do Hadoop são analisar padrões de usuários em sites de e-commerce e sugerir novos produtos para os mesmos.

ElasticSearch é uma engine de busca open-source, amplamente distribuível, facilmente escalável para uso empresarial ou pessoal. Acessível através de uma API extensa e bem elaborada, o ElasticSearch pode acionar pesquisas extremamente rápidas que suportam diversos tipos de integração.

90 Também conhecida no Brasil como computação nas nuvens ou computação em nuvem, a cloud computing se refere, essencialmente, à noção de utilizarmos, em qualquer lugar e independente de plataforma, as mais variadas aplicações por meio da internet com a mesma facilidade de tê-las instaladas em computadores locais. Dentro deste contexto, tanto Hadoop quanto ElastichSearch são ferramentas que contribuem para a infraestrutura para provimento de serviços de computação na nuvem. Sendo assim alternativa encontra-se correta.

91 O uso das ferramentas citadas no item anterior vai permitir um grande paralelismo no processamento por meio da distribuição entre os diferentes nós ou hosts do sistema. Mais uma alternativa correta.

Gabarito: C C

Com relação ao controle de concorrência em sistemas gerenciadores de banco de dados relacionais, julgue os itens subsecutivos.

102 Cada transação possui uma sequência de leituras e(ou) escritas delimitada por comandos begin e commit, ou com o comando abort.

103 Uma transação é uma sequência de ações divisíveis de uma unidade de trabalho.

Comentários: Vamos então comentar cada uma das assertivas acima.

102 Dentro dos sistema gerenciadores de banco de dados uma das funcionalidades oferecida é um mecanismo de controle de transação. Uma transação é iniciada pela operação de begin transaction que a leva para o estado ativo. Neste estado as operações de leitura e escrita são executadas. Ao final das operações, caso todas sejam executadas com sucesso, a transação é então efetivada por meio do comando commit. Durante o estado ativo, caso aconteça algum erro, a transação sobre um abort e as operações já executadas sofrem rollback. Veja que é basicamente isso que a questão afirma. Ou a transação possui um begin e commit, caso ocorra um erro no meio da execução teremos o comando de abort. Concordo que o texto ficou um pouco confuso, mas a afirmativa está correta.

103 A afirmação fere ou desrespeita a definição de transação, basicamente é uma unidade atómica de trabalho que executa diversas operações sobre a base de dados. Ela possui as propriedades de atomicidade, consistência, isolamento e durabilidade. Desta forma alternativa está incorreta.

Gabarito: C E

Com isso terminamos o comentário das questões de BD e BI desta prova. Espero que tenham gostado. Qualquer dúvida podem mandar nos comentários.

Forte abraço,

Thiago

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Veja os comentários
  • Nenhum comentário enviado.