Olá pessoALL!
Você que está estudando para concursos da área Fiscal e Controle, como ISSs, SEFAZs e TCs, deve ter percebido o acréscimo de assuntos voltados para Análise Dados e Informações, algo intimamente ligado aos conceitos de Banco de Dados, além do mais, sendo cobrados como Conhecimentos Básicos para esses órgão e seus concursos, tanto FCC como CESPE.
Em outros artigos já tratamos sobre Dados Estruturados, Não-Estruturados e Dados Abertos. Neste artigo, vou trazer alguns conceitos e características que estão sempre caindo em provas sobre Bancos de Dados e suas principais características.
Introdução a Bancos de Dados
De acordo com Korth (2016), um banco de dados é uma coleção de dados inter-relacionados, representando informações sobre um domínio específico, ou seja, sempre que for possível agrupar informações que se relacionam, e tratam de um mesmo assunto, podemos dizer que temos um banco de dados.
Segundo Date (2004), um banco de dados, por si só, pode ser considerado como o equivalente eletrônico de um armário de arquivamento, ou seja, seria um repositório ou recipiente para uma coleção de arquivos de dados computadorizados.
Por exemplo, quando vamos ao banco para depositar ou retirar fundos, ou fazendo uma reserva de hotel ou de voo, ou procuramos uma referência bibliográfica, essas atividades, ou interações, costumam envolver um programa de computador que acessa a um banco de dados.
Navathe (2010) afirma que um banco de dados, deve possuir as seguintes propriedades implícitas:
- Um banco de dados deve representar algum aspecto do mundo real, o que chamamos de minimundo;
- Um banco de dados é uma coleção logicamente coerente de dados com algum significado inerente;
- Um banco de dados é projeto, construído e populado com dados para uma finalidade específica.
Natureza de Autodescrição
Um banco de dados não contém apenas o próprio banco de dados, ou seja, os dados em si, mas também conta com uma definição ou descrição completa de sua estrutura e restrições.
Essa definição é armazenada no catálogo do banco de dados, onde estarão armazenadas as informações a respeito da estrutura de cada arquivo, o tipo e o formato de cada item de dados, além de diversas restrições sobre os dados.
A informação armazenada no catálogo é chamada de metadados, e descreve a estrutura do banco de dados principal.
Isolamento entre Programas e Dados
A estrutura dos arquivos de dados é armazenada no catálogo do banco de dados, separadamente dos programas que acessam o banco de dados. Essa propriedade é conhecida como Independência de Dados do Programa.
As aplicações podem operar sobre os dados, invocando essas operações por meio de seus nomes e argumentos, independentemente de como as operações são implementadas. Essa propriedade é conhecida como Independência da Operação do Programa.
Abstração de Dados
A característica que permite a independência de dados do programa e a independência da operação do programa é chamada de Abstração de Dados.
Um banco de dados oferece aos usuários uma representação conceitual dos dados, que não irá incluir muitos detalhes de como os dados são armazenados, ou como as operações são implementadas.
De maneira informal, um modelo de dados é um tipo de abstração de dados usado para oferecer essa representação conceitual, onde são utilizados conceitos lógicos, como objetos, suas caracteristicas e propriedades, além dos seus inter-relacionamentos, facilitando o entendimento do usuário.
Os níveis de abstração de dados são:
- Nível Físico: é o nível mais baixo de abstração, descreve como os dados estão realmente armazenados;
- Nível Conceitual: descreve quais dados estão armazenados de fato no banco de dados e as relações que existem entre eles. Ainda não há necessidade de se preocupar com as complexas estruturas do nível físico;
- Nível de Visões: é o nível mais alto nível de abstração, descreve apenas parte do banco de dados. O nível de abstração das visões de dados procura simplificar a interação do usuário com o sistema, que pode fornecer muitas visões para o mesmo banco de dados;
Múltiplas Visões de Dados
Um banco de dados em geral, possui muitos usuários, onde cada um pode exigir uma visão diferente do banco de dados.
Uma visão (ou view) pode ser um subconjunto do banco de dados, que seria derivado dos arquivos do banco de dados, mas não estaria armazenado de forma explícita.
Compartilhamento de Dados
Um banco de dados precisa permitir que vários usuários possam acessar os dados de forma simultânea, algo que é essencial. Por exemplo, um dado pode ser acessado por múltiplas aplicações, mas ele está integrado e mantido em um único banco de dados.
É preciso incluir um software, ou ferramenta, que seja capaz de realizar o controle de concorrência entre esses acessos. Assim, os vários usuários que tentarem atualizar o mesmo dado, conseguiram fazer de uma maneira controlada, garantindo o resultado correto ao final.
Processamento de Transação de Multiusuário
Um banco de dados deve garantir que as transações operem de maneira correta e eficiente. Imagine o seguinte cenário, quando vários agentes de viagem tentam reservar um assento, em um voo de uma respectiva companhia área, precisamos garantir que cada assento só possa ser acessado por um único agente de cada vez, para que seja atribuído a um único passageiro.
Transação
Uma transação é um programa em execução, ou um processo, que inclui um ou mais acessos ao banco de dados, como a leitura ou atualização de seus registros. Uma transação deve seguir algumas propriedades que são definidas:
- Isolamento: garante que cada transação possa ser executada isoladamente das demais, independente se centenas de transações estão sendo executadas concorrentemente;
- Atomicidade: garante que todas as operações, em uma transação, sejam executadas, ou que nenhuma seja;
- Consistência: garante que a transação crie um estado válido dos dados, para que, em caso de falha, retorne todos os dados ao seu estado antes que a transação foi iniciada;
- Durabilidade: garante que os dados validados sejam registrados pelo banco de dados, de tal forma que, mesmo no caso de uma falha ou reinício do sistema, os dados estejam disponíveis em seu estado correto, tornando os dados de um banco de dados persistente.
Direto do Concurso
Questão 1 (CESPE/CGM de João Pessoa – PB/Auditor Municipal de Controle Interno – Desenvolvimento de Sistemas/2018)
A respeito de bancos de dados, julgue o item a seguir.
Um banco de dados é uma coleção de dados que são organizados de forma randômica, sem significado implícito e de tamanho variável, e projetados para atender a uma proposta específica de alta complexidade, de acordo com o interesse dos usuários.
Questão 2 (CESPE/TCE-PB/Auditor de Contas Públicas/2018)
A respeito de SGBDs, assinale a opção correta.
a) Um SGBD, por definição, não é flexível, dada a dificuldade de mudar a estrutura dos dados quando os requisitos mudam.
b) Um SGBD é um software que não prevê as funções de definição, recuperação e alteração de dados, sendo essa tarefa a função básica de um sistema de banco de dados.
c) A consistência de dados é o princípio que determina a manutenção de determinado dado em vários arquivos diferentes.
d) Conforme o princípio da atomicidade, caso ocorra erro em determinada transação, todo o conjunto a ela relacionado será desfeito até o retorno ao estado inicial, como se a transação nunca tivesse sido executada.
e) O controle de concorrência é o princípio que garante e permite a manipulação, no mesmo momento, de um mesmo dado por mais de uma pessoa ou um sistema.
Questão 3 (CESPE/TCE-PA/Auditor de Controle Externo – Área Informática – Administrador de Banco de Dados/2016)
Com relação a sistemas gerenciadores de bancos de dados (SGBD), julgue o próximo item.
O OLTP (online transaction processing) é utilizado para garantir concorrência nas transações de um SGBD, ao passo que a propriedade de isolamento permite que diversas transações sejam efetuadas simultaneamente.
Gabarito Comentado
Questão 1
Comentário: Conforme vimos em nosso artigo, um banco de dados deve possuir três propriedades que são implícitas. Um banco de dados deve representar aspectos do mundo real, algo que podemos chamar de minimundo. Os dados armazenados em um banco de dados devem ser logicamente coerentes, com algum significado inerente, ou seja, uma variedade aleatória de dados não pode ser chamada de banco de dados. Por fim, um banco de dados deve possuir uma finalidade específica.
Resposta Correta: Errado.
Questão 2
Comentário: Relembrando as propriedades de uma transação de um banco de dados que vimos em nosso artigo, a atomicidade garante que todas as operações em uma transação sejam executadas ou que nenhuma seja. A respeito da letra a, o SGBD possui o conceito de independência de dados, o que permite mudar a estrutura dos dados. Na letra b, o SGBD possui funções de definição de dados, recuperar e alteração de dados. Na letra c, a propriedade de consistência garante que a transação crie um estado válido dos dados ou em caso de falha, retorna todos os dados ao seu estado antes que a transação foi iniciada. Na letra e, o controle de concorrência deve garantir que vários usuários tentando atualizar o mesmo dado, façam isso de maneira controlada, de forma que o resultado dessas atualizações seja correto.
Resposta Correta: Letra d.
Questão 3
Comentário: Uma das características de banco de dados é o processamento de transação multiusuário. Um sistema é chamado de Processamento de Transação On-line, do inglês On-line Transaction Processing (OLTP), quando estamos nos referindo aos sistemas transacionais, ou seja, processamento de dados quem incluem inserções, atualizações, exclusões e consultas.
Resposta Correta: Certo.
Referências
[1] ELMASRI, R.; NAVATHE, S. B.. Sistemas de Banco de Dados. 4a ed., Pearson-Addison-Wesley, 2005.
[2] DATE, C. J.. Introdução a Sistemas de Banco de Dados. Elsevier Editora, 2004.