Fluência em Dados para Concursos Aula 1
Fluência em Dados para Concursos Aula 1
Fluência em Dados para Concursos Aula 1
Diego
Carvalho e Emannuelle
Gouveia)
ISS-Fortaleza - Fluência em Dados -
2023 (Pós-Edital)
Autor:
Diego Carvalho, Emannuelle
Gouveia Rolim, Equipe Informática
e TI, Renato da Costa, Raphael
Henrique Lacerda
03 de Abril de 2023
Índice
1) Análise de Informações - Banco de Dados
..............................................................................................................................................................................................3
APRESENTAÇÃO
Futuros colegas de serviço público, iniciamos aqui a nossa aula de conceitos básicos de banco de
dados. Galera, essa disciplina pode ser bastante extensa e complexa, por outro lado o nosso
objetivo aqui é simplesmente entender seus conceitos mais fundamentais. Fiquem relaxados que
ao final dessa aula vocês vão dizer: “Ahhhh... fácil demais, professor!”. É sério, assunto tranquilo e
interessante! Prometo que vocês vão curtir...
Galera, todos os tópicos da aula possuem Faixas de Incidência, que indicam se o assunto cai
muito ou pouco em prova. Diego, se cai pouco para que colocar em aula? Cair pouco não significa
que não cairá justamente na sua prova! A ideia aqui é: se você está com pouco tempo e precisa ver
somente aquilo que cai mais, você pode filtrar pelas incidências média, alta e altíssima; se você tem
tempo sobrando e quer ver tudo, vejam também as incidências baixas e baixíssimas. Fechado?
Além disso, essas faixas não são por banca – é baseado tanto na quantidade de vezes que caiu em
prova independentemente da banca e também em minhas avaliações sobre cada assunto...
BANCO DE DADOS
Conceitos Básicos
INCIDÊNCIA EM PROVA: baixíssima
Galera, agora vamos falar sobre Banco de Dados! Como nós sempre fazemos, vamos discutir o que
é o conceito e depois vamos entrar em detalhes. Primeiro, veremos a definição acadêmica:
Professor, essa definição é bastante genérica! É verdade! Se formos seguir essa definição, as palavras
que compõem este livro eletrônico podem ser consideradas dados relacionados e, portanto,
constituem um banco de dados. No entanto, o uso comum do termo banco de dados
normalmente é mais restrito e tem as seguintes propriedades implícitas:
Propriedade #1: um banco de dados representa algum aspecto do mundo real – algumas
vezes chamado de Minimundo ou Universo de Discurso. As mudanças no minimundo são
refletidas no banco de dados;
Propriedade #2: um banco de dados é uma coleção logicamente coerente de dados inter-
relacionados com algum significado inerente. Galera, se você tiver uma variedade aleatória de
dados, você não tem um banco de dados;
Propriedade #3: um banco de dados é projetado, construído e populado com dados para uma
finalidade específica. Possui um grupo definido de usuários e algumas aplicações específicas
nas quais esses usuários estão interessados.
A definição ficou mais clara agora? Um banco de dados representa algum aspecto do mundo real
por meio de dados logicamente relacionados para uma finalidade específica. Quando pensamos
em nosso dia-a-dia, é possível notar que interagimos com bancos de dados o tempo inteiro – desde
quando sacamos dinheiro em um caixa eletrônico até quando compramos um produto em uma loja
online ou visualizamos nossas redes sociais.
Nós podemos afirmar que – hoje em dia – os bancos de dados desempenham um papel crítico em
quase todas as áreas em que os computadores são usados, incluindo negócios, comércio
eletrônico, engenharia, medicina, genética, direito e até... concurso! De toda forma, estamos
avançando demais sem antes explicar um detalhe importante da nossa definição. Nós vimos que um
banco de dados é uma coleção de dados relacionados, mas o que são dados?
Dados são fatos conhecidos que poderiam ser registrados e que possuiriam significado
implícito. Como assim, professor? Nomes, números de telefone, endereços das pessoas que você
conhece! Você pode ter registrado esses dados em uma agenda ou, talvez, os tenha armazenado
em um disco rígido, usando um computador e um software como Microsoft Access ou Microsoft
Excel.
Agora olha a sacada: se o que você está registrando representam fatos e esses fatos possuem algum
significado implícito, você está armazenando... dados! Agora, muito cuidado! Alguns tratam
dados e informações como sinônimos, mas em nosso contexto são conceitos diferentes. Para
entender o que é um banco de dados, é muito importante saber a diferença entre essas duas
palavras: dados e informações.
Dados são fatos brutos, em sua forma primária – e, muitas vezes, os dados podem não fazer
sentido sozinhos;
Informações consiste no agrupamento de dados de forma organizada para fazer sentido e gerar
conhecimento.
Por exemplo: o número 75 isoladamente faz algum sentido? Não, isso é apenas um dado. No entanto,
se eu dissesse: “Prezados alunos, vocês sabem quantos quilos eu peso? 75!″? Agora faz sentido! Isso
não é apenas um dado, isso agora é uma informação [Obs: uma informação errada porque eu dei
uma engordada e não vou revelar meu peso real]. Podemos concluir que um banco de dados é uma
estrutura de dados organizada que permite a extração de informações.
Galera, nós podemos afirmar que um banco de dados pode ter qualquer tamanho e
complexidade. Querem ver uns exemplos? Em relação à complexidade, uma lista telefônica pode
ser considerada um banco de dados com uma estrutura bem simples. Em relação ao tamanho, o
catálogo computadorizado de uma grande biblioteca pode conter meio milhão de livros
organizados sob diferentes categorias.
Um banco de dados de tamanho e complexidade ainda maior é mantido pela Receita Federal
para monitorar formulários de imposto de renda preenchidos pelos contribuintes. Se
considerarmos que existem 100 milhões de contribuintes e que cada um deles preenche uma média
de cinco formulários com aproximadamente 400 caracteres cada um, teríamos um banco de dados
de 100 x 106 x 400 x 5 caracteres (bytes) de informação.
Outra característica importante de um banco de dados é que ele pode ser gerado e mantido
manualmente, ou pode ser computadorizado. Por exemplo: um fichário com as fichas de papel
dos alunos de uma academia é um banco de dados que pode ser criado e mantido manualmente.
Um banco de dados computadorizado pode ser criado e mantido por programas desenvolvidos
especificamente para essa tarefa ou por um sistema gerenciador de banco de dados.
Vamos resumir: um banco de dados é uma coleção de dados logicamente relacionados que
representam algum aspecto do mundo real, podendo ter qualquer tamanho e complexidade, e
podendo ser manual ou computadorizado. Aliás, quanto maior e mais complexo um banco de
dados, maior a necessidade de organizar e gerenciar as informações de modo que os usuários
possam consultar, recuperar e atualizar os dados quando necessário. Questões...
Pessoal, nos parágrafos anteriores, nós passamos direto por um conceito muito importante. Vocês
perceberam? Eu estou falando sobre o Sistema Gerenciador de Banco de Dados (SGBD)! O SGBD é
1. Definição: processo que envolve especificar os tipos, estruturas e restrições dos dados a serem
armazenados1;
2. Construção: processo que envolve armazenar os dados em algum meio controlado pelo sistema
gerenciador de banco de dados;
3. Manipulação: processo que inclui funções como consulta – para recuperar dados específicos;
atualização – para refletir mudanças no minimundo; e geração de relatórios;
5. Proteção: processo que inclui a proteção do sistema contra defeitos (ou falhas) de hardware ou
software, e proteção de segurança contra acesso não autorizado ou malicioso;
6. Manutenção: processo que permite a evolução à medida que os requisitos mudam com o
tempo, uma vez que um banco de dados pode ter um ciclo de vida de muitos anos.
APLICAÇÕES
APLICAÇÕES
APLICAÇÕES
APLICAÇÕES
1 Detalhe importante: a definição/descrição do banco de dados fica armazenada no próprio banco de dados na forma de um catálogo ou dicionário – esses dados sobre o banco de dados
são chamados de metadados.
Galera, nós já vimos o que é um Banco de Dados e o que é um Sistema Gerenciador de Banco de
Dados! Agora falta ver a parte de aplicações: as aplicações são sistemas, programas ou softwares
que enviam consultas ou solicitações a um SGBD, que por sua vez acessa um banco de dados.
Quer ver um exemplo? Suponha que você passou em um concurso maneiro e decidiu trocar de carro
(primeira coisa que eu fiz quando passei!).
Você sabe que não pode vender um carro com pendências de multas. Logo, você acessa a página
do DETRAN para verificar se há multas pendentes e, caso haja, buscar orientações sobre como
proceder para receber uma segunda via e efetuar o pagamento. Para resolver essa segunda parte,
você poderia acessar a página a seguir:
http://www.detran.df.gov.br/emissao-de-segunda-via-de-boleto-de-multa-para-pagamento
Sabe o que isso significa? Significa que essa página não possui nenhum processamento, ela é uma
página estática que fornece apenas informações sem exigir nenhuma entrada e que será sempre a
mesma para qualquer pessoa que acessá-la! Bacana, professor... até que está fácil até agora! Pois
é, agora vamos acrescentar algumas coisas. Você quer mesmo é visualizar se o seu carro possui
alguma multa e, não, informações genéricas. O que fazer? Você pode acessar outra página:
http://www.detran.df.gov.br/2-via-de-multas-html
http://getran.detran.df.gov.br/site/multas/consultas/filtroplacarenavam-consultaveiculo.jsp
Pois é, e agora vem a sacada para entender tudo! Quando você fornece entradas para a aplicação
(Ex: Placa e RENAVAM) e clica em consultar, ocorre um processamento! Que processamento seria
esse? A aplicação vai pegar os dados que você forneceu e vai acessar o SGBD! O SGBD fará uma
consulta no Banco de Dados a partir dos dados fornecidos e trará de volta a segunda via de
multas pendentes para o carro informado. É como se o SGBD conversasse com o Banco de Dados:
Nos dias atuais, nós utilizamos uma abordagem de banco de dados para salvaguarda e consulta de
dados, no entanto isso era feito por meio de arquivos antigamente. Arquivos? Sim! Imaginem
duas áreas que compõem uma escola: departamento financeiro e departamento pedagógico. O
primeiro cuida de mensalidades e pagamentos, e o segundo cuida das notas de provas, médias e
outras avaliações. Vocês sabem como era a abordagem de arquivos nesse caso?
O aluno Renato da Costa mentiu a idade na hora de se matricular na escola: disse que tinha 15 anos,
mas ele tinha na verdade 18 anos! Ele decide contar a verdade e pede que seus dados cadastrais
sejam atualizados. Nesse caso, ele terá que ir até o departamento pedagógico e pedir para ajustar
sua data de nascimento e depois ir até o departamento financeiro e pedir para ajustá-la também.
Ou seja, nós desperdiçamos espaço e reduzimos nossa eficiência.
Na abordagem de bancos de dados, os nomes ou rótulos de dados são definidos uma vez com o
mesmo nome, e utilizados repetidamente por consultas, transações e aplicações – nós vamos ver
isso com clareza mais à frente. Pessoal, vamos falar agora um pouquinho sobre as principais
características da abordagem de banco de dados versus a abordagem de processamento de
arquivos – são basicamente quatro:
A palavra “autodescrição” já dá a dica! Os bancos de dados não contêm apenas dados – eles
contêm também uma definição ou descrição completa da estrutura e restrições desses dados.
Então, se ele armazena uma tabela com dados sobre as notas de um aluno, ele também armazenará
os dados sobre essa tabela. Que dados, professor? Ele armazena qual o nome da tabela, o nome de
suas colunas, o tamanho de cada coluna, entre outros.
Vejam que a imagem acima não traz informações sobre os alunos, você não consegue ver nenhum
nome de aluno, nem idade, nada disso. A imagem acima traz informações sobre a tabela que
armazena dados de alunos. Os bancos de dados possuem um catálogo2 com informações de cada
tabela, sendo que as informações armazenadas no catálogo são chamadas de metadados, uma vez
que trazem dados sobre os dados.
Vocês se lembram da imagem de algumas páginas atrás em que nós definimos Aplicações, SGBD e
Banco de Dados? Pois é, tudo separado bonitinho! No processamento de arquivos, as aplicações
eram misturadas com a estrutura de arquivos. É por essa razão que dizemos que há um
isolamento entre programas e dados. Se você modifica suas aplicações, não interfere nos dados;
se você modifica seus dados, não interfere nas aplicações. Prosseguindo...
Vocês sabem o que quer dizer abstração? Essa é uma palavra muito comum na área de tecnologia da
informação e é bom que vocês saibam responder de bate-pronto: abstração é a subtração de
detalhes. Como consequência, podemos concluir que quanto mais abstrato, menos detalhes; e
quanto menos abstrato, mais detalhes. A seguir temos uma imagem aérea da Catedral de Brasília.
Pergunta: qual delas é mais abstrata? Da direita! Por que? Porque tem menos detalhes.
A abstração é a base para se conseguir o isolamento entre programas e dados. Por que? Porque a
aplicação não precisa de detalhes do SGBD – ela precisa apenas de uma interface. Pensando em
um exemplo mais grosseiro: quando você quer que os correios façam uma entrega para outra
pessoa, você não quer saber se eles vão enviar de carro, navio ou avião – você só precisa ter a
garantia de que a entrega seja realizada.
Pessoal, eu falei para vocês que o banco de dados funciona como um repositório central de dados –
diferente dos arquivos. Dessa forma, é possível que várias aplicações tentem acessá-lo e cada
uma pode ter uma necessidade diferente. Imagine que uma determinada aplicação não precise
visualizar toooodos os dados – pode ser que ela precise acessar apenas alguns. Logo, nós podemos
afirmar que aplicações diferentes exigem pontos de vista ou visões diferentes do banco.
Uma visão (ou view) é, em geral, um subconjunto do banco de dados. Dessa forma, se você deseja
visualizar apenas uma parte dos dados de uma tabela, você pode criar uma visão personalizada
apenas para a sua aplicação ou para um conjunto de usuários. Eu sei que isso pode não estar tão
claro agora, mas ficará mais claro quando prosseguirmos com a teoria. Guardem apenas que um
banco de dados oferece suporte a múltiplas visões de dados.
Um SGBD multiusuário é todo aquele SGBD que suporta que múltiplas aplicações – também
chamadas de usuários – acessem o banco de dados ao mesmo tempo. Galera, isso é essencial se o
dado para múltiplas aplicações estiver sendo mantido em um único banco de dados. O SGBD
precisa incluir um software de controle de concorrência para garantir que vários usuários
interajam simultaneamente com o banco de dados sem problemas.
Sabe por quê? Porque o SGBD possui um software de controle de concorrência para garantir que
vários usuários tentando atualizar o mesmo dado façam isso de uma maneira controlada, de modo
que o resultado dessas transações seja correto. Imagine você tentando reservar o assento na janela
em um voo internacional ao mesmo tempo que outra pessoa esteja tentando reservar o mesmo
assento. O SGBD garante que operações concorrentes operem de maneira correta!
De acordo com outro doutrinador (C. J. Date), uma abordagem de banco de dados possui os
seguintes benefícios: o dado pode ser compartilhado; a redundância pode ser reduzida;
inconsistências podem ser evitadas; pode-se utilizar o suporte a transações; a integridade pode ser
mantida; a segurança pode ser aperfeiçoada; requisitos conflitantes podem ser balanceados; e
padrões podem ser utilizados.
Galera, eu passei direto em uma palavrinha importantíssima no parágrafo anterior: transação. Uma
transação é um programa em execução ou processo que inclui um ou mais acessos ao banco de
dados, como fazer a leitura de dados ou inserir, excluir e atualizar dados do banco. Ela executa
um acesso logicamente correto a um banco de dados quando ela é executada de forma completa e
sem interferência de outras transações. Vejamos suas propriedades:
Atomicidade
Vocês se lembram que antigamente os químicos acreditavam que os átomos eram indivisíveis? A ideia
aqui é semelhante: uma transação é uma unidade de processamento atômica que deve ser
executada integralmente até o fim ou não deve ser executada de maneira alguma – é tudo ou
nada! Se, por qualquer razão que seja, uma transação não for completada, os efeitos da transação
no banco de dados devem ser retroagidos. Dá um exemplo aí, professor...
Imaginem que você está sacando uma grana em um caixa eletrônico. Você insere o cartão, digita a
sua senha, informa o valor e a máquina começa a processar a transação de saque do seu dinheiro.
No entanto, no momento exato do processamento, ocorre uma falha interna na máquina. Se após
isso ocorrer, só há duas possibilidades: ou o dinheiro não sai, mas também não debita da sua
conta; ou o dinheiro sai e também debita da sua conta. O que não pode acontecer?
Consistência
A execução de uma transação deve levar o banco de dados de um estado consistente a um outro
estado consistente. E o que seria um estado de consistente? É aquele que respeita todas as regras e
restrições de integridade dos dados. Imaginem, por exemplo, que nós temos uma tabela que guarda
o CPF dos alunos de uma escola! Pode haver dois alunos com o mesmo CPF? Não, se essa for uma
restrição do banco de dados, transações não podem desrespeitá-la. Entendido?
Isolamento
Trata-se de um conjunto de técnicas que tentam evitar que transações paralelas interfiram umas
nas outras, fazendo com que o resultado de várias transações em paralelo seja o mesmo resultado
que essas transações teriam caso fossem executadas sequencialmente (uma após a outra).
Operações exteriores a uma dada transação jamais verão esta transação em estados
intermediários.
De outra forma, podemos dizer que uma transação deve parecer executar independentemente
das demais, mesmo que diversas transações estejam sendo executadas concorrentemente. Em
sistemas multiusuários, várias transações podem tentar alterar simultaneamente o mesmo dado
em um banco de dados, o que pode ocasionar uma falha chamada deadlock (impasse). Exemplo:
exatamente no mesmo instante, dois usuários tentam pagar um mesmo boleto.
Durabilidade
Os efeitos de uma transação em caso de sucesso devem persistir3 no banco de dados mesmo
em casos de quedas de energia, travamentos ou erros. Essa propriedade garante que os
resultados de uma transação serão permanentes e estarão disponíveis em definitivo, podendo ser
desfeitos somente por outra transação subsequente. Para se defender contra a perda de energia,
as transações (ou seus efeitos) devem ser registradas em uma memória não volátil.
Vamos colocar tudo em um contexto agora! Vamos imaginar uma transação simples:
transferência de dinheiro de uma conta para outra. Nesse caso, temos que:
3 Persistir, professor? Sim, galera! Esse é o termo utilizado no contexto de banco de dados para o armazenamento de dados de modo que eles possam ser
recuperados ou lidos posteriormente – você grava os dados e eles persistem no mesmo local!
Personagens Principais
INCIDÊNCIA EM PROVA: baixíssima
Pessoal, vamos falar rapidamente sobre dois personagens importantes do contexto em que
estamos estudando: Administrador de Banco de Dados e Administrador de Dados! Eu gosto de
dar rosto e nome aos personagens porque assim vocês memorizam com mais facilidade. Dito isso,
em nosso contexto, o Administrador de Banco de Dados será o Neymar Júnior (famoso Cai-Cai) e o
Administrador de Dados será o Adenor Bachi (famoso Tite).
Antes de falar sobre as atribuições de cada um, é importante ressaltar que – em um pequeno banco
de dados pessoal – uma única pessoa pode exercer ambos os papeis e definir, construir e manipular
seu banco de dados. A partir do momento em que o banco de dados aumenta tamanho e
complexidade, e passa a ser compartilhado com outros bancos de dados e aplicações dentro de
uma empresa, torna-se necessário separar essas atribuições.
Em qualquer organização onde muitas pessoas utilizam os mesmos recursos, há uma necessidade
de um administrador principal para supervisionar e gerenciar tais recursos. De que recursos você está
falando, professor? Bem, o próprio Banco de Dados; o Sistema Gerenciador de Banco de Dados
(SGBD); e os softwares ou aplicações que utilizam esse banco de dados. Sabe quem faz tudo isso?
O Administrador de Banco de Dados (DBA – Data Base Administrator).
O DBA (Neymar Júnior) tem diversas responsabilidades! Ele é o responsável por instalar o SGBD;
por autorizar o acesso ao banco de dados; por coordenar e monitorar sua performance; por adquirir
recursos de software e hardware conforme a necessidade; por problemas, como falhas na
segurança e demora na execução; assegurar-se de que os backups apropriados estão sendo
feitos e estão íntegros; etc. Tudo isso na conta do Cai-Cai...
Administrador de Dados
Assim como o Administrador de Banco de Dados está mais preocupado com o Banco de Dados
em si, o Administrador de Dados está mais preocupado com os dados em si. O Administrador de
Dados (AD) busca planejar, documentar, gerenciar e integrar os recursos de informação
corporativos. Ele deve entender bem o contexto da organização de modo que ele conheça – se
possível – todos os dados armazenados.
O AD (Adenor Bachi) também teria diversas responsabilidades! Ele seria o responsável por
identificar os dados a serem armazenados; por escolher estruturas apropriadas para representar e
armazenar esses dados; por definir padrões, políticas e procedimentos; por desenvolver o projeto
e modelagem de banco de dados; manter atualizados os dados corporativos. Tudo isso na conta
do Tite...
Em suma: DBA é o cara mais técnico – ele não está nem aí para o significado dos dados, ele trata
das tarefas operacionais do dia-a-dia; cuida dos backups; concede ou retira permissões de acesso;
verifica o desempenho do sistema gerenciados de banco de dados; etc. AD é o cara mais gerencial
– ele trata das atividades estratégicas da organização; sabe o significado dos dados armazenados;
sabe quem os utiliza e quem os gerencia; trata eventuais redundâncias de dados; etc.
Agora deixa eu contar uma curiosidade para vocês: na teoria, essas atribuições são bem divididas e
separadas; na prática, muitas atribuições se misturam. Resultado? DBA e AD muitas vezes quase
saem no tapa nas organizações e órgãos por aí porque um acha que determinada atribuição é
do outro e vice-versa. É um relacionamento um pouco tenso, mas eles sabem que eles se
complementam e que um não vive sem o outro. Entendido, garotada? Então vamos seguir...
Vamos falar agora sobre a Arquitetura ANSI/SPARC – também conhecida como Arquitetura de
Três Esquemas! Pelo nome, eu já vi que é complicado! Que nada! Vem comigo...
Eu tenho certeza que o sonho de muitos de vocês após passar em um concurso público é se casar!
E, após essa etapa, construir uma casa ou um apartamento do jeito que vocês sempre imaginaram.
Estou mentindo? Pois é! Para construir uma casa, vocês podem contratar – por exemplo – uma
arquiteta! E qual é o papel de uma arquiteta? Basicamente arquitetos planejam, organizam e
projetam os espaços internos e externos de uma edificação! Tudo certo até aqui?
Agora vocês concordam comigo que a arquiteta pode fazer um projeto em diferentes níveis de
abstração? Por exemplo: ela pode fazer uma Planta Baixa ou uma Planta 3D!
Você gostaria de receber qual das duas? Acho que gostaria da Planta 3D, uma vez que ela apresenta
detalhes sobre a disposição dos cômodos, móveis, cores, texturas, entre outros. Por outro lado, se
você perguntar para um engenheiro, ele responderá com toda certeza que deseja receber a
Planta Baixa, uma vez que ela apresenta apenas o que é importante para ele: medidas, dados e
outros aspectos técnicos!
Da mesma forma que temos uma arquitetura para construção de edificações, nós também temos
uma arquitetura para construção de bancos de dados – ambas com diferentes níveis de abstração!
Em 1975, o instituto americano responsável pelo desenvolvimento de padrões de produtos,
serviços, processos e sistemas sugeriu a Arquitetura ANSI/SPARC para Sistemas Gerenciadores
de Banco de Dados (SGBD).
Antes de entrar em detalhes sobre esses níveis, falta definir o que é um esquema e o que é uma
instância! Falando de maneira bem simples, um esquema é uma descrição da estrutura de um
banco de dados. Imaginem que eu trabalho no MEC e desejo criar um banco de dados que guarde
dados das escolas brasileiras. Eu preciso descrever quais informações eu vou querer armazenar,
sobre quem, quando, como, entre outros – tudo isso é descrito em um esquema.
Voltando ao exemplo da casa dos sonhos: eu não sei se vocês sabem, mas – para construir uma casa
– não basta comprar um terreno e simplesmente começar a subir as paredes. Toda obra necessita
de um Memorial Descritivo! Vocês sabem o que é isso? Memorial Descritivo é um documento exigido
pela prefeitura que detalha todo o projeto a ser realizado, onde estão relacionados – um a um –
todos os itens da edificação a ser construída.
Galera, ele deve informar tudo que será realizado na obra: estruturas, acabamentos, instalações,
entre outros. De forma análoga, podemos dizer que o Esquema do Banco de Dados é como o
Memorial Descritivo da Obra! Ele descreve o projeto do banco de dados: estruturas, tabelas,
campos, visões, índices, funções, entre outros – antes que ele seja de fato implementado (ele
raramente é modificado). Já o conceito de instância de banco de dados é bem mais simples...
Nível Externo
Também conhecido como Nível de Visão ou Nível Lógico do Usuário, inclui uma série de visões
do usuário. Cada visão descreve a parte do banco de dados em que um grupo de usuários em
particular está interessado e oculta o restante do banco de dados do grupo de usuários. Trata-se do
nível mais próximo dos usuários, isto é, aquele que se ocupa de como os dados serão vistos por
usuários individuais. Vamos ver isso melhor...
Galera, imaginem um banco de dados de uma universidade que contém dados pessoais dos alunos,
remuneração dos professores, dentre outras informações sensíveis. Todos os funcionários devem
poder visualizar todos esses dados? Claro que não! Cada grupo de usuários possui suas
necessidades específicas e, via de regra, somente devem poder visualizar aqueles dados
estritamente necessários para o desempenho de suas funções.
Nível Conceitual
Também conhecido como Nível Lógico de Comunidade (ou apenas Nível Lógico), é um nível
indireto entre os níveis interno e externo. Trata-se de uma maneira de descrever a estrutura do
banco de dados inteiro para uma comunidade de usuários, isto é, quais dados são armazenados em
todo o banco de dados e como os dados estão inter-relacionados. Esse nível oculta os detalhes das
estruturas de armazenamento físico e se concentra na descrição de entidades.
Nível Interno
Também conhecido como Nível de Armazenamento ou Físico, é o meio mais próximo do meio
de armazenamento físico, isto é, aquele que se ocupa com o modo com os dados estão fisicamente
armazenados no banco de dados e no hardware do computador – além da definição das estruturas
físicas que permitem obter um desempenho satisfatório. Ele descreve os detalhes completos do
armazenamento de dados e dos caminhos de acesso para o banco de dados.
Galera, notem na imagem ao lado que o nível interno está mais longe
dos usuários e mais próximo do banco de dados – cuidando da
representação física em que os registros são armazenados. Em uma
analogia simples, o nível externo seria de responsabilidade do
arquiteto da casa; o nível conceitual seria de responsabilidade do
engenheiro da casa; e o nível interno seria de responsabilidade do
pedreiro em si. Por fim, notem que há um único esquema interno para
um único esquema conceitual para várias visões.
Algumas observações: a arquitetura de três esquemas é uma ferramenta que pode ser utilizada
pelos usuários para poder visualizar os níveis de esquema em um sistema de banco de dados. A
maioria dos SGBDs não separa os três níveis completa e explicitamente, mas dá suporte a eles de
alguma forma. Observem que os três esquemas são apenas descrições dos dados; os dados
armazenados que realmente existem estão apenas no nível físico.
Na imagem também passamos direto no conceito de mapeamento! Galera, sempre que tivermos
uma arquitetura de SGBD com vários níveis, devemos pensar em como esses níveis se
comunicam. Basicamente, isso é feito por meio de mapeamentos! Não entendi! Como assim,
professor? Bem, um esquema de nível superior pode ser mapeado para um esquema de nível
imediatamente inferior. Entendido?
Independência Lógica dos Dados: a independência lógica dos dados trata da capacidade de
alterar o esquema conceitual sem precisar modificar os esquemas externos ou
programas/aplicações. O mapeamento nível externo para o conceitual é a chave para a
independência lógica de dados.
Independência Física dos Dados: a independência física dos dados trata da capacidade de
alterar o esquema interno sem ter de alterar o esquema conceitual. Logo, os esquemas
externos também não precisam ser alterados. O mapeamento nível conceitual para o interno é
a chave para a independência física de dados.
Existem Tipos de SGBD (Relacional, Rede, etc) e Ferramentas de SGBD (Oracle, MySQL, etc).
Para fazer o Modelo Lógico, não é necessário saber qual ferramenta específica será utilizada, basta
saber seu tipo; já para fazer o Modelo Físico, é necessário saber tanto o seu tipo quanto a ferramenta
específica será utilizada. Infelizmente muitas questões ignoram essa diferença e afirmam que o
Modelo Lógico depende do software (sem especificar se trata do tipo ou da ferramenta específica).
comparativo
Arquitetura ansi/sparc PROJETO DE BANCO DE DADOS
NÍVEL EXTERNO MODELO conceitual
NÍVEL CONCEITUAL MODELO LÓGICO
NÍVEL INTERNO MODELO FÍSICO
a) isolamento.
b) atomicidade.
c) durabilidade.
d) prioridade.
e) individualidade.
Comentários:
Gabarito: Letra A
Estão corretos:
a) I e III.
b) I e IV.
c) I e II.
d) III e IV.
e) II e IV.
Comentários:
(I) Errado, ela divide a arquitetura em três níveis; (II) Errado, essa é uma função do nível externo; (III)
Correto, o nível lógico de fato oferece uma visão comunitária dos dados; (IV) Correto, o nível lógico
realmente compõe-se – em geral – de tabelas em um banco de dados relacional.
Gabarito: Letra D
Comentários:
Gabarito: Letra A
Comentários:
Gabarito: Letra E
5. (MOVENS / PREF MANAUS - 2010) Uma transação é uma unidade de execução de programa
que acessa e, possivelmente, atualiza itens de dados. Com base nesse assunto, assinale a opção
que apresenta uma propriedade das transações:
a) divergência
b) atomicidade
c) compartilhamento
d) Variabilidade
Comentários:
Gabarito: Letra B
6. (FCC / TCE-SP - 2010) A propriedade das transações de um SGBD que garante: “ou todas as
operações da transação são refletidas corretamente no banco de dados ou nenhuma o será” é
a:
a) Atomicidade.
b) Isolamento.
c) Consistência.
d) Integridade.
e) Durabilidade.
Comentários:
Gabarito: Letra A
Para que uma transação seja efetivada, todas as ações que compõem a respectiva unidade de
trabalho devem ser concluídas com sucesso. Caso contrário, a ação que constituiu falha e a
transação devem ser desfeitas.
a) Atomicidade.
b) Isolamento.
c) Durabilidade.
d) Consistência.
e) Efetividade.
Comentários:
A questão afirma que – para que uma transação seja efetivada, todas as ações que compõem a
respectiva unidade de trabalho devem ser concluídas com sucesso ou a ação que constituiu a falha
e a transação devem ser desfeitas. Trata-se, evidentemente, da propriedade de atomicidade – que
é a propriedade que mais cai em provas de banco de dados.
Gabarito: Letra A
8. (FCC / SEFAZ - SP - 2009) A arquitetura ANSI/SPARC aplicada aos bancos de dados divide-os
em níveis com as seguintes características:
Comentários:
Quem se ocupa com o modo como os dados são fisicamente armazenados é o nível... interno; quem
se ocupa com o modo como os dados são vistos por usuários individuais é o nível... externo; o nível
lógico de comunidade (ou apenas lógico) é também chamado de nível... conceitual.
Gabarito: Letra C
9. (COSEAC / DATAPREV - 2009) Uma transação acontece como um todo ou nada deve ser feito.
A esta propriedade dar-se o nome de:
a) durabilidade;
b) consistência;
c) isolamento;
d) atomicidade;
e) integridade.
Comentários:
Mais uma das dezenas de questões sobre... atomicidade! Propriedade que estabelece que uma
transação é uma unidade de processamento atômica que deve ser executada integralmente até o
fim ou não deve ser executada de maneira alguma.
Gabarito: Letra D
a) atomicidade.
b) isolamento.
c) durabilidade.
d) consistência.
e) unicidade.
Comentários:
A exigência é de que uma transação tenha todas as suas operações executadas, em caso de sucesso,
ou nenhum efeito sobre a base de dados, em caso de falha. Galera, essa é mais uma questão sobre
a propriedade de... atomicidade. Já viram que ela é importante, não é?
Gabarito: Letra A
11. (FUNIVERSA / IPHAN - 2009) O American National Standards Institute (ANSI), por meio do
Standards Planning and Requirements Committee (SPARC), estabeleceu um padrão para o
desenvolvimento de tecnologias de Banco de Dados (BD), definindo uma arquitetura de três
Comentários:
Gabarito: Letra C
Comentários:
(a) Errado, a atomicidade não possui qualquer relação com o tempo; (b) Errado, esse item trata da
execução de propriedade de isolamento; (c) Errado, esse item não faz o menor sentido; (d) Correto,
a atomicidade garante que a transação será executada até o fim com sucesso ou nenhuma operação
da transação terá efeito – é tudo ou nada; (e) Errado, esse item não faz o menor sentido.
Gabarito: Letra D
13. (NCE-UFRJ / UFRJ - 2008) A sigla ACID é usualmente empregada para evocar as propriedades
que as transações executadas num banco de dados devem possuir. Essas propriedades são:
Comentários:
Gabarito: Letra E
Comentários:
(a) Errado, esse item trata da propriedade de isolamento e, não, atomicidade; (b) Errado, não se
trata da operação, mas da transação em si – além disso, isso trata do isolamento e, não,
atomicidade; (c) Errado, não se trata de operações, mas de transações; (d) Errado, não se trata de
atributos, mas de uma transação; (e) Correto, todas as operações de uma mesma transação devem
ser executados ou nenhuma delas deve ser.
Gabarito: Letra E
15. (CESGRANRIO / DECEA - 2006) Que propriedade do modelo ACID garante que uma transação
é totalmente executada ou nenhum passo dela é executado?
a) atomicidade.
b) durabilidade.
c) consistência.
d) completude.
e) isolamento.
Comentários:
Gabarito: Letra A
16. (CESGRANRIO / DECEA - 2006) Segundo a arquitetura ANSI/SPARC, os três níveis de esquema
usados para separar o banco de dados físico das aplicações do usuário são:
Comentários:
Gabarito: Letra C
17. (CESGRANRIO / AL-TO - 2005) Um SGBD para manter a integridade dos dados deve apresentar
algumas propriedades para as transações. A propriedade que define "ou todas as operações da
transação são refletidas corretamente no banco de dados ou nenhuma deve ser refletida" é:
a) atomicidade.
b) consistência.
c) durabilidade.
d) isolamento.
e) polimorfismo.
Comentários:
Já cansaram? Porque eu já me cansei! Mais uma questão sobre... atomicidade: uma transação é
uma unidade de processamento atômica que deve ser executada integralmente até o fim ou não
deve ser executada de maneira alguma.
Gabarito: Letra A
18. (NCE-UFRJ / TRE-RJ - 2001) Uma vantagem da arquitetura de 3 níveis ANSI/ SPARC é prover
independência de dados. De acordo com esta arquitetura, é possível prover dois tipos de
independência de dados:
a) funcional e lógica;
b) cronológica e funcional;
c) física e lógica;
d) física e referencial;
e) cronológica e referencial.
Comentários:
Gabarito: Letra C
19. (NCE-UFRJ / TRE-RJ - 2001) De acordo com a arquitetura ANSI/SPARC um Sistema de Banco
de Dados divide-se em três níveis gerais: interno, conceitual e externo. É correto afirmar que:
Comentários:
(a) Errado, o nível conceitual é responsável pelo mapeamento entre os níveis externos e interno; (b)
Errado, o nível interno é o mais próximo ao armazenamento físico; (c) Errado, o nível externo é o
mais próximo do usuário; (d) Correto, o nível conceitual – de fato – esconde os detalhes sobre o
armazenamento físico dos dados, visto que ele se encontra um nível acima; (e) Errado, podem
existir diversas visões externas no nível externo.
Gabarito: Letra D
20. (CESPE / ME – 2020) Um esquema de banco de dados é um conjunto de regras que governa um
banco de dados ou todo o conjunto de objetos pertencentes a determinado usuário.
Comentários:
Gabarito: Correto
a) isolamento.
b) atomicidade.
c) durabilidade.
d) prioridade.
e) individualidade.
Estão corretos:
a) I e III.
b) I e IV.
c) I e II.
d) III e IV.
e) II e IV.
5. (MOVENS / PREF MANAUS - 2010) Uma transação é uma unidade de execução de programa
que acessa e, possivelmente, atualiza itens de dados. Com base nesse assunto, assinale a opção
que apresenta uma propriedade das transações:
a) divergência ==19d546==
b) atomicidade
c) compartilhamento
d) Variabilidade
6. (FCC / TCE-SP - 2010) A propriedade das transações de um SGBD que garante: “ou todas as
operações da transação são refletidas corretamente no banco de dados ou nenhuma o será” é
a:
a) Atomicidade.
b) Isolamento.
c) Consistência.
d) Integridade.
e) Durabilidade.
Para que uma transação seja efetivada, todas as ações que compõem a respectiva unidade de
trabalho devem ser concluídas com sucesso. Caso contrário, a ação que constituiu falha e a
transação devem ser desfeitas.
a) Atomicidade.
b) Isolamento.
c) Durabilidade.
d) Consistência.
e) Efetividade.
8. (FCC / SEFAZ - SP - 2009) A arquitetura ANSI/SPARC aplicada aos bancos de dados divide-os
em níveis com as seguintes características:
9. (COSEAC / DATAPREV - 2009) Uma transação acontece como um todo ou nada deve ser feito.
A esta propriedade dar-se o nome de:
a) durabilidade;
b) consistência;
c) isolamento;
d) atomicidade;
e) integridade.
a) atomicidade.
b) isolamento.
c) durabilidade.
d) consistência.
e) unicidade.
11. (FUNIVERSA / IPHAN - 2009) O American National Standards Institute (ANSI), por meio do
Standards Planning and Requirements Committee (SPARC), estabeleceu um padrão para o
desenvolvimento de tecnologias de Banco de Dados (BD), definindo uma arquitetura de três
níveis independentes. Assinale a alternativa que apresenta os três níveis da arquitetura
ANSI/SPARC para banco de dados:
13. (NCE-UFRJ / UFRJ - 2008) A sigla ACID é usualmente empregada para evocar as propriedades
que as transações executadas num banco de dados devem possuir. Essas propriedades são:
15. (CESGRANRIO / DECEA - 2006) Que propriedade do modelo ACID garante que uma transação
é totalmente executada ou nenhum passo dela é executado?
a) atomicidade.
b) durabilidade.
c) consistência.
d) completude.
e) isolamento.
16. (CESGRANRIO / DECEA - 2006) Segundo a arquitetura ANSI/SPARC, os três níveis de esquema
usados para separar o banco de dados físico das aplicações do usuário são:
17. (CESGRANRIO / AL-TO - 2005) Um SGBD para manter a integridade dos dados deve apresentar
algumas propriedades para as transações. A propriedade que define "ou todas as operações da
transação são refletidas corretamente no banco de dados ou nenhuma deve ser refletida" é:
a) atomicidade.
b) consistência.
c) durabilidade.
d) isolamento.
e) polimorfismo.
18. (NCE-UFRJ / TRE-RJ - 2001) Uma vantagem da arquitetura de 3 níveis ANSI/ SPARC é prover
independência de dados. De acordo com esta arquitetura, é possível prover dois tipos de
independência de dados:
a) funcional e lógica;
b) cronológica e funcional;
c) física e lógica;
d) física e referencial;
e) cronológica e referencial.
19. (NCE-UFRJ / TRE-RJ - 2001) De acordo com a arquitetura ANSI/SPARC um Sistema de Banco
de Dados divide-se em três níveis gerais: interno, conceitual e externo. É correto afirmar que:
20. (CESPE / ME – 2020) Um esquema de banco de dados é um conjunto de regras que governa um
banco de dados ou todo o conjunto de objetos pertencentes a determinado usuário.