Você está na página 1de 43

ENGENHARIA ENGENHARIA

Engenharia de Dados
DE DADOS DE DADOS
Edison Andrade Martins Morais Edison Andrade Martins Morais

Você já deve ter ouvido falar na expressão “Era da Informação”. Também conheci-
da como era digital ou tecnológica, trata-se do período iniciado a partir dos anos
1980, caracterizado principalmente por diversas revoluções tecnológicas, como
as invenções dos computadores pessoais, das redes de comunicação, dos celula-
res, da internet, etc. Essas inovações mudaram o comportamento da sociedade,
influenciando a forma com que as pessoas se comunicam, aprendem, consomem,
se relacionam e vivem.
Além das inovações, um outro fator influenciou essas mudanças: a grande quantida-
de de dados disponíveis. Para se ter uma ideia, entre 2006 e 2010, o volume de dados
digitais gerados cresceu de 166 exabytes para 988 exabytes, sendo que este volume
passou a dobrar a cada dois anos e vem crescendo exponencialmente. O que fazer com
esta quantidade massiva de dados? Como processá-los? Como extrair informação útil
deste universo? Essas questões representam apenas alguns dos desafios atuais da
humanidade. O que nós, da área de tecnologia da informação, podemos fazer para
ajudar nesses desafios?

GRUPO SER EDUCACIONAL

gente criando o futuro

Engenharia de Dados.indd 1,3 20/08/2019 17:39:27


Presidente do Conselho de Administração Janguiê Diniz

Diretor-presidente Jânyo Diniz

Diretoria Executiva de Ensino Adriano Azevedo

Diretoria Executiva de Serviços Corporativos Joaldo Diniz

Diretoria de Ensino a Distância Enzo Moreira

Autoria Prof. Edison Andrade Martins Morais

Projeto Gráfico e Capa DP Content

DADOS DO FORNECEDOR

Análise de Qualidade, Edição de Texto, Design Instrucional,

Edição de Arte, Diagramação, Design Gráfico e Revisão.

© Ser Educacional 2019

Rua Treze de Maio, nº 254, Santo Amaro

Recife-PE – CEP 50100-160

*Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência.

Informamos que é de inteira responsabilidade da autoria a emissão de conceitos.

Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio

ou forma sem autorização.

A violação dos direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do

Código Penal.

Imagens de ícones/capa: © Shutterstock

Engenharia de dados - Unidade1_Formato A5_1.indd 2 15/07/19 14:44


Boxes

ASSISTA
Indicação de filmes, vídeos ou similares que trazem informações comple-
mentares ou aprofundadas sobre o conteúdo estudado.

CITANDO
Dados essenciais e pertinentes sobre a vida de uma determinada pessoa
relevante para o estudo do conteúdo abordado.

CONTEXTUALIZANDO
Dados que retratam onde e quando aconteceu determinado fato;
demonstra-se a situação histórica do assunto.

CURIOSIDADE
Informação que revela algo desconhecido e interessante sobre o assunto
tratado.

DICA
Um detalhe específico da informação, um breve conselho, um alerta, uma
informação privilegiada sobre o conteúdo trabalhado.

EXEMPLIFICANDO
Informação que retrata de forma objetiva determinado assunto.

EXPLICANDO
Explicação, elucidação sobre uma palavra ou expressão específica da
área de conhecimento trabalhada.

Engenharia de dados - Unidade1_Formato A5_1.indd 3 15/07/19 14:44


Sumário

Unidade 1 - Introdução à Engenharia de Dados


Objetivos da unidade............................................................................................................ 12

Introdução à Engenharia de Dados.................................................................................... 13


Tipos de dados.................................................................................................................. 15
Tipos de informações....................................................................................................... 16
Transformar dados em informações............................................................................. 17

Atributos de um engenheiro de dados.............................................................................. 18


Responsabilidades .......................................................................................................... 18
Habilidades (competências)........................................................................................... 19

Arquitetura de sistemas distribuídos............................................................................... 20


Elementos arquitetônicos............................................................................................. 23
Padrões arquitetônicos................................................................................................. 26
Plataformas de middleware......................................................................................... 27

Banco de dados distribuído............................................................................................... 28


Arquitetura centralizada............................................................................................... 29
Arquitetura cliente-servidor......................................................................................... 30
Conceitos e vantagens.................................................................................................. 32
Funcionamento............................................................................................................... 34

Confiabilidade, eficiência e a qualidade dos dados..................................................... 35


Política de segurança da informação......................................................................... 37
Controles gerais............................................................................................................. 38
Controles de aplicativos................................................................................................ 39
Controles de banco de dados...................................................................................... 39
Controle de redes........................................................................................................... 40

Sintetizando........................................................................................................................... XX
Referências bibliográficas................................................................................................. XX

Engenharia de dados - Unidade1_Formato A5_1.indd 4 15/07/19 14:44


Sumário

Unidade 2 - Extração, Transformação, Carregamento


Objetivos da unidade............................................................................................................ 45

Extração, Transformação e Carga (ETL) ........................................................................... 46


Inteligência de Negócios................................................................................................ 47
Mineração de Dados....................................................................................................... 48
Extração............................................................................................................................. 53
Transformação.................................................................................................................. 54
Carga.................................................................................................................................. 55

Modelagem de dados para Big Data................................................................................. 56


Seleção das fontes de dados ........................................................................................ 58
Carga e armazenamento................................................................................................. 59
Análise e processamento............................................................................................... 60
Visualização dos dados................................................................................................... 69

Sintetizando............................................................................................................................ 71
Referências bibliográficas.................................................................................................. 72

ENGENHARIA DE DADOS 5

Engenharia de dados - Unidade1_Formato A5_1.indd 5 15/07/19 14:44


Sumário

Unidade 3 - Integração de dados


Objetivos da unidade............................................................................................................ 75

Integrar diversas fontes de dados...................................................................................... 76


Abordagens para integração de dados........................................................................ 77
Arquiteturas para integração de dados....................................................................... 78
Middlewares para integração de dados...................................................................... 82
Leitura de dados estruturados, não estruturados e semiestruturados................... 84
Integração de dados........................................................................................................ 90

Pipelines................................................................................................................................. 94
Hardware........................................................................................................................... 95
Software............................................................................................................................. 95
Dados.................................................................................................................................. 98

Jobs.......................................................................................................................................... 99

Sintetizando.......................................................................................................................... 101
Referências bibliográficas................................................................................................ 102

ENGENHARIA DE DADOS 6

Engenharia de dados - Unidade1_Formato A5_1.indd 6 15/07/19 14:44


Sumário

Unidade 4 – Linguagem SQL


Objetivos da unidade.......................................................................................................... 106

Linguagem SQL avançada ................................................................................................ 107


Linguagem de Definição de Dados (DDL)................................................................... 111
Linguagem de Manipulação de Dados (DML)........................................................... 116

View....................................................................................................................................... 125
Programação de banco de dados..................................................................................... 126
Procedures........................................................................................................................... 128
Funções................................................................................................................................. 129
Triggers.................................................................................................................................. 132
Cursores................................................................................................................................ 133

Sintetizando.......................................................................................................................... 135
Referências bibliográficas................................................................................................ 136

ENGENHARIA DE DADOS 7

Engenharia de dados - Unidade1_Formato A5_1.indd 7 15/07/19 14:44


ENGENHARIA DE DADOS 8

Engenharia de dados - Unidade1_Formato A5_1.indd 8 15/07/19 14:44


Apresentação

Caro aluno(a), você já deve ter ouvido falar na expressão “Era da Informa-
ção”. Também conhecida como era digital ou tecnológica, trata-se do período
iniciado a partir dos anos 1980, caracterizado principalmente por diversas re-
voluções tecnológicas, como as invenções dos computadores pessoais, das re-
des de comunicação, dos celulares, da internet, etc. Essas inovações mudaram
o comportamento da sociedade, influenciando a forma com que as pessoas se
comunicam, aprendem, consomem, se relacionam e vivem.
Além das inovações, um outro fator influenciou essas mudanças: a grande
quantidade de dados disponíveis. Para se ter uma ideia, entre 2006 e 2010, o
volume de dados digitais gerados cresceu de 166 exabytes para 988 exabytes,
sendo que este volume passou a dobrar a cada dois anos e vem crescendo
exponencialmente. O que fazer com esta quantidade massiva de dados? Como
processá-los? Como extrair informação útil deste universo? Essas questões re-
presentam apenas alguns dos desafios atuais da humanidade. O que nós, da
área de tecnologia da informação, podemos fazer para ajudar nesses desafios?

ENGENHARIA DE DADOS 9

Engenharia de dados - Unidade1_Formato A5_1.indd 9 15/07/19 14:44


O Autor

O Professor Edison Andrade Martins


Morais é analista de sistemas (1997)
e leciona na área de Tecnologia da In-
formação desde 2003. Possui MBA em
Governança nas Tecnologias da Infor-
mação pelo IPOG (2014), mestrado em
Ciência da Computação pela UFG (2007)
e especialização em Análise e Projeto
de Sistemas de Informação pela UFG
(2003). Suas principais áreas de atuação
profissional e acadêmica são: gestão em
TI, governança em TI, gerenciamento de
serviços de TI, gestão de processos de
negócio (BPM), engenharia de software,
qualidade de software, análise e proje-
to de sistemas de informação, banco de
dados e desenvolvimento de software.

Currículo Lattes:
http://lattes.cnpq.
br/5385798087351636

Dedico esta obra a todas as pessoas que, de maneira direta ou indireta,


ajudaram na minha formação: professores, colegas de trabalho, amigos e
principalmente minha família.

ENGENHARIA DE DADOS 10

Engenharia de dados - Unidade1_Formato A5_1.indd 10 15/07/19 14:45


UNIDADE

1 INTRODUÇÃO À
ENGENHARIA DE DADOS

Engenharia de dados - Unidade1_Formato A5_1.indd 11 15/07/19 14:46


Objetivos da unidade
Apresentar uma introdução ao tema engenharia de dados;

Mostrar quais são os atributos de um engenheiro de dados;

Mostrar como funciona a arquitetura dos sistemas distribuídos;

Apresentar o funcionamento dos bancos de dados distribuídos;

Apresentar os principais conceitos relacionados à confiabilidade, à eficiência e


à qualidade dos dados.

Tópicos de estudo
Introdução à Engenharia de Banco de dados distribuído
Dados Arquitetura centralizada
Tipos de dados Arquitetura cliente-servidor
Tipos de informações Conceitos e vantagens
Transformar dados em infor- Funcionamento
mações
Confiabilidade, eficiência e a qua-
Atributos de um engenheiro de lidade dos dados
dados Política de segurança da infor-
Responsabilidades mação
Habilidades (competências) Controles gerais
Controles de aplicativos
Arquitetura de sistemas distri- Controles de banco de dados
buídos Controles de redes
Elementos arquitetônicos
Padrões arquitetônicos
Plataformas de middleware

ENGENHARIA DE DADOS 12

Engenharia de dados - Unidade1_Formato A5_1.indd 12 15/07/19 14:46


Introdução à Engenharia de Dados
Antes de entender o que é a Engenharia de Dados, vamos entender o con-
ceito de dado. Dado é qualquer símbolo com significado próprio. O dado em si,
fora de um contexto, tem pouca ou nenhuma utilidade.
Para que o dado possa ser útil ele deve possuir algum significado, ou seja,
representar uma informação. Ao contrário dos dados, as informações geram
algum tipo de conhecimento útil, que pode servir para diferentes finalidades,
especialmente a tomada de decisão.
Uma vez contextualizada e interpretada, a informação pode se tornar co-
nhecimento, que é a informação processada e transformada em experiência
pelo indivíduo. A Tabela 1 mostra o comparativo entre os conceitos de dado,
informação e conhecimento.

TABELA 1. DADO, INFORMAÇÃO E CONHECIMENTO

Dado Informação Conhecimento

- Informação valiosa da
- Simples observação do
- Dados dotados de relevância mente humana;
estado do mundo;
e propósito; - Inclui reflexão, sintaxe,
- Facilmente estruturável;
- Requer unidade de análise; contexto;
- Facilmente obtido por
- Exige consenso em relação - De difícil estruturação;
máquinas;
ao significado; - De difícil captura de
- Frequentemente quanti-
- Exige necessariamente a me- máquinas;
ficado;
diação humana. - Frequentemente tácito;
- Facilmente transferível.
- De difícil transferência.

Fonte: DAVENPORT; PRUSAC, 1998, p. 5. (Adaptado).

Engenharia de dados é a área responsável por encontrar, a partir de


conjuntos de dados, informações, conhecimento e tendências úteis para
tomada de decisão nas organizações. Sob responsabilidade do engenheiro
de dados, seu trabalho envolve basicamente o desenvolvimento de algo-
ritmos de mineração.
Trata-se de uma área diretamente relacionada à ciência de dados (do inglês,
Data Science), que é a ciência que envolve princípios, processos e técnicas para com-

ENGENHARIA DE DADOS 13

Engenharia de dados - Unidade1_Formato A5_1.indd 13 15/07/19 14:46


preender fenômenos por meio da análise automatizada de dados (PROVOST;
FAWCETT, 2016).
O principal objetivo da ciência de dados é fornecer informações que podem
contribuir com o aprimoramento do processo de tomada de decisão orientada
a dados (DOD), que é a prática de analisar dados para basear a tomada de deci-
são, ao invés de fazê-lo de forma apenas intuitiva ou com base em experiência.
A Fig. 1 posiciona a ciência de dados em relação à área de engenharia de
dados e mostra a relação entre as duas.

Tomada de decisão
orientada por dados
(na empresa)

DOD automatizada

Data Science

Engenharia e processamento
de dados
(incluindo tecnologias “Big Data”)

Outros efeitos positivos do processamento


de dados (por exemplo, processamento
mais rápido de transações)

Figura 1. Engenharia e ciência de dados. Fonte: PROVOST; FAWCETT, 2016, p. 607. (Adaptado).

Ao analisar a Fig. 1, podemos observar que, enquanto engenharia de da-


dos está relacionada às tecnologias necessárias para tratamentos dos dados,
a ciência de dados é a base do processo de tomada de decisão, fornecendo
mecanismos de análise automatizada de dados.

ENGENHARIA DE DADOS 14

Engenharia de dados - Unidade1_Formato A5_1.indd 14 15/07/19 14:46


CONTEXTUALIZANDO
Estudos realizados por Brynjolfsson et al. (2011) demonstram que, estatis-
ticamente, o aumento na produtividade das empresas está diretamente
relacionado à orientação por dados, na ordem de 4% a 6% a mais. Nos
anos 1990 o processo de tomada de decisão automatizada orientada a da-
dos vinha sendo utilizado por diversos segmentos, tais como instituições
bancárias em análises de concessão de crédito, empresas de telecomu-
nicações para detecção de fraudes, varejo em decisões comerciais como
recomendações automatizadas de compras, por exemplo.

Em outras palavras, podemos dizer que engenheiros de dados cons-


troem formas de converter dados em formatos que os cientistas de dados
possam trabalhar. Vale ressaltar que os engenheiros de dados são tão im-
portantes quanto os cientistas de dados, mas tendem a ser menos visíveis
porque geralmente estão mais longe do produto final resultado da análise
dos dados.
Mas que tipo de dado deve ser tratado? Que tipo de informação e co-
nhecimento deve ser gerado? Transformar dados em informações requer, em
primeiro lugar, o entendimento do tipo de dado a ser tratado.

Tipos de dados
No contexto da engenharia de dados, os dados podem ser classificados como
estruturados e não estruturados.
Um dado estruturado é aquele
dado que possui formato bem defi -
nido e um metadado associado, ou
seja, uma explicação sobre o conteú-
do do dado. Um exemplo de dado es-
truturado é uma tabela em um banco
de dados. As linhas contêm os dados
propriamente ditos, enquanto as
colunas contêm a informação sobre
o que aquele campo da tabela está
armazenando. A Tabela 2 ilustra um
exemplo de dado estruturado.

ENGENHARIA DE DADOS 15

Engenharia de dados - Unidade1_Formato A5_1.indd 15 15/07/19 14:46


TABELA 2. EXEMPLOS DE DADO ESTRUTURADO

sigla_uf [PK] character nome_uf character varying (20)

1 AC Acre

2 SP São Paulo

3 RJ Rio de Janeiro

4 GO Goiás

Ao analisar a Tabela 2, é possível observar que existem duas colunas: si-


gla_uf e nome_uf. Essas colunas representam que tipo de informação está
armazenado na tabela. Dessa forma, sabemos que sigla_uf representa a sigla
do estado, enquanto nome_uf representa no nome do estado. Já as linhas
contêm os dados armazenados em suas respectivas colunas.
Já os dados não estruturados são aqueles livres de formato padrão de ar-
mazenamento. Podem ser textos em diferentes formatos, páginas web, ima-
gens, vídeos, comentários em redes sociais, dados gerados por sensores ou
qualquer dado que não tenha metadado associado.
Análise de dados armazenados em formato não estruturado
pode ser considerada uma atividade mais complexa, se compa-
rada a análise de dados estruturados, justamente pelo fato de
os dados possuírem a característica da não estruturação (MO-
RAIS, 2007, p. 44).
Independentemente do formato do dado, o objetivo é gerar informações
que, assim como os dados, podem ser classificadas em diferentes tipos.

Tipos de informações
Dentre as classificações mais comuns para os tipos de informações, Rezen-
de (2016) propõe uma taxonomia baseada na seguinte classificação: informa-
ções operacionais, informações gerenciais e informações estratégicas.
Informações operacionais, ou analíticas, são aquelas armazenadas em
nível de detalhe, contemplando características específicas de um dado, de uma
tarefa ou de uma atividade.

ENGENHARIA DE DADOS 16

Engenharia de dados - Unidade1_Formato A5_1.indd 16 15/07/19 14:46


EXEMPLIFICANDO
Um exemplo de informação operacional seria o armazenamento da quanti-
dade vendida de um determinado produto em uma loja de varejo.

Informações gerenciais, ou táticas, são aquelas agrupadas, sintetizadas,


que geralmente contemplam a junção de um conjunto de informações opera-
cionais a respeito de fatos que ocorreram no passado.

EXEMPLIFICANDO
Como exemplo de informações gerenciais, podemos citar a média de ven-
da por produto ou o total de recebido de comissão por um vendedor.

Informações estratégicas são aquelas informações em nível macro, co-


mumente preditivas, que contemplam o meio interno e externo na organiza-
ção e, geralmente, indicam algum tipo de comportamento futuro em relação
a algum fato.

EXEMPLIFICANDO
A tendência de vendas por produto e região nos próximos meses é um
exemplo de informação estratégica.

Mas como gerar essas informações? Quais processos devem ser utilizados?

Transformar dados em informações


Existem diversas estratégias de transformação de dados em informa-
ções. Para transformação de dados estruturados, uma das técnicas mais utili-
zadas é a mineração de dados (do inglês, Data Mining).
Mineração de dados é o processo de extração de informação útil e não ób-
via em grandes volumes de dados. A partir deste processo, podem ser obtidos
padrões válidos, novos, potencialmente úteis e compreensíveis a respeito dos
dados (MORAIS, 2007).
Já para processamento de dados não estruturados, podemos citar a téc-
nica de mineração de textos (do inglês, Text Mining), expressão que se refere

ENGENHARIA DE DADOS 17

Engenharia de dados - Unidade1_Formato A5_1.indd 17 15/07/19 14:46


ao processo de extração de conhecimento ou padrões interessantes e não tri-
viais a partir de documentos em formato não estruturado.
Ambas abordagens podem ser utilizadas como apoio a outras áreas. A Mine-
ração de Dados, por exemplo, faz parte da estrutura de funcionamento da área
de Inteligência de Negócios (do inglês, Business Intelligence), enquanto a minera-
ção de textos pode fazer parte de um mecanismo maior de análise de Big Data.
Todo o trabalho de mineração de dados, estruturados ou não, é realizado
pelo profissional chamado de engenheiro de dados, cujas atribuições serão
apresentadas na próxima seção.

Atributos de um engenheiro de dados


Gerenciar e organizar dados, visando a encontrar tendências, informações
não óbvias ou inconsistências que afetarão as metas de negócios. Essas são as
principais atribuições dos engenheiros de dados.
Exige conhecimento e experiência, principalmente nas áreas de progra-
mação, matemática e ciência da computação. Devem possuir habilidade
de comunicação, uma vez que precisam se comunicar com outras áreas da
organização, tanto em relação às tendências coletadas quanto ao uso dos
dados coletados.

Responsabilidades
A seguir, são descritas algumas das principais atribuições (ou responsabili-
dades) dos engenheiros de dados (CIO-IDG, 2018; Dataquest, 2019):
• Desenvolver, construir, testar e manter arquiteturas;
• Alinhar arquiteturas com requisitos de negócios;
• Cuidar da aquisição dos dados;
• Desenvolver processos de conjunto de dados;
• Usar linguagem de programação e ferramentas;
• Identificar maneiras de melhorar a confiabilidade, a eficiência e a qualida-
de dos dados;
• Realizar pesquisas para questões industriais e de negócios;
• Usar grandes conjuntos de dados para resolver problemas de negócios;

ENGENHARIA DE DADOS 18

Engenharia de dados - Unidade1_Formato A5_1.indd 18 15/07/19 14:46


• Implantar programas analíticos sofisticados, Machine Learning e métodos
estatísticos;
• Preparar dados para modelagem preditiva e prescritiva;
• Encontrar padrões ocultos usando dados;
• Usar dados para descobrir tarefas que podem ser automatizadas;
• Entregar atualizações para as partes interessadas com base em análises;
• Arquitetar sistemas distribuídos;
• Criar formas confiáveis de converter dados;
• Combinar fontes de dados;
• Criar a arquitetura de soluções;
• Colaborar com a equipe de Data Science e construir as soluções certas
para essas equipes.

Habilidades (competências)
Além de suas atribuições, o engenheiro de dados deve dominar algumas
tecnologias, que tendem a afetar significativamente seus salários – em alguns
casos, na faixa de 10 ou 15% a mais. De acordo com dados do PayScale (2019),
o domínio das seguintes tecnologias está associado a um aumento significa-
tivo nos salários:

TABELA 3. TECNOLOGIAS QUE O ENGENHEIRO DE DADOS DEVE DOMINAR

Tecnologia Aumento

Scala 17%

Apache Spark 16%

Data Warehouse 14%

Java 13%

Modelagem de dados 12%

Apache Hadoop 11%

Linux 11%

ENGENHARIA DE DADOS 19

Engenharia de dados - Unidade1_Formato A5_1.indd 19 15/07/19 14:46


Tecnologia Aumento

Amazon Web Services (AWS) 10%

ETL (extração, transformação, carga) 7%

Análise de Big Data 6%

Desenvolvimento de software 2%
Fonte: PAYSCALE, 2019, p. 2.

Agora que já aprendemos sobre a engenharia de dados e as atribuições dos


engenheiros de dados, podemos inferir que existe um grande desafio, que é
realizar o processamento destes dados de forma que sejam geradas informa-
ções relevantes, não óbvias e de qualidade para tomada de decisão.
Para isso, devemos utilizar estrutura tecnológicas que deem suporte
e este processamento. Devido ao grande volume de dados existentes na
atualidade, uma das bases para criação destas estruturas vem da ideia da
computação distribuída, que é a base dos sistemas distribuídos, que iremos
estudar na próxima seção.

Arquitetura de sistemas distribuídos


Imagine a seguinte situação: você faz uma pesquisa por um termo simples
no Google que devolve milhões de resultados, geralmente, em menos de 200
milissegundos (Google - PageSpeed Tools, 2019), ou seja, um tempo inferior a
0,2 segundos. Como esse tempo de resposta é possível?
Segundo o próprio Google, em
seu site Google Data Centers (2019),
a empresa possui ambientes com ser-
vidores e equipamentos de proces-
samento de dados, os data centers,
espalhados por todo mundo, visando
manter seus produtos em funciona-
mento 24 horas por dia, sete dias por
semana. A Fig. 2 mostra a localização
desses data centers.

ENGENHARIA DE DADOS 20

Engenharia de dados - Unidade1_Formato A5_1.indd 20 15/07/19 14:47


Figura 2. Data centers do Google. Fonte: Google - Data Centers, 2019.

Para que esses computadores se comuniquem, é necessário um mecanismo


de computação distribuída, que é aquele no qual os componentes de hardware
ou software, localizados em computadores interligados em redes, comunicam-se
e coordenam suas ações por meio do envio de mensagens entre si, independen-
temente da distância que se encontrem uns dos outros (COULOURIS et al., 2013).
Sistemas distribuídos consistem em vários elementos de processamento, não
necessariamente homogêneos, que são interconectados por uma rede de compu-
tadores e que cooperam na execução de certas tarefas. Como uma meta genérica,
os sistemas de computação distribuídos dividem um problema grande e intratável
em partes menores e os resolvem eficientemente de maneira coordenada.
A viabilidade econômica dessa abordagem provém de duas ra-
zões: (1) mais poder de computação é necessário para resolver
uma tarefa complexa, e (2) cada elemento de processamento
autônomo pode ser gerenciado independentemente e pode de-
senvolver suas próprias aplicações (ELMASRI et al., 2005, p. 579).
Uma das principais características que tornam a utilização desse sistema
necessária é a escalabilidade, que é a capacidade que um sistema possui de
manter níveis adequados de resposta quando há um aumento significativo no
número de recursos e requisições de usuários.

ENGENHARIA DE DADOS 21

Engenharia de dados - Unidade1_Formato A5_1.indd 21 15/07/19 14:47


Justamente pelo fato de serem escaláveis, sistemas em ambientes distribuí-
dos são a solução viável para realidade atual, uma vez que, em ambientes como
a internet, por exemplo, onde o volume de dados e requisições é muito grande,
a eficiência no tempo de resposta é algo imprescindível.
Os três principais desafios em ambientes distribuídos escaláveis estão rela-
cionados ao controle dos custos de utilização dos recursos físicos, da perda de
desempenho, dos recursos de software e tratamento dos gargalos.
Em relação ao custo dos recursos, na medida em que as requisições au-
mentam, deve ser possível ampliar, a custo viável, os sistemas físicos e lógico
necessários para atendê-las.

EXEMPLIFICANDO
Na medida em que o acesso aos arquivos disponíveis em uma intra-
net aumenta, em função do crescimento do número de usuários ou de
outros fatores, deve ser viável financeiramente ampliar a capacidade
do servidor atual ou adicionar novos, visando evitar uma perda de
desempenho.

Além do aumento das requisições, o aumento do volume de dados armaze-


nados por esses sistemas pode levar à perda de desempenho, ao esgotamento
da utilização dos recursos de software e ao surgimento de gargalos de desem-
penho. Todos esses fatores devem ser considerados e tratados em ambientes
distribuídos através de técnicas que vão da replicação dos dados até a distri-
buição dos servidores para execução das tarefas.
Agora que já conhecemos os principais conceitos relacionados aos sistemas
distribuídos, vamos aprender sobre sua arquitetura.
A arquitetura de um sistema distribuído é a sua estrutura em termos de
componentes especificados separadamente e suas inter-relações (COULOURIS
et al., 2013). Ao definir uma arquitetura, o objetivo é garantir que a estrutura
proposta para o sistema seja gerenciável e atenda às requisições atuais e futu-
ras de seus usuários, garantindo a confiabilidade, adaptabilidade e a rentabili-
dade do sistema.
Para entender as arquiteturas dos sistemas, vamos conhecer três con-
ceitos: elementos arquitetônicos, padrões arquitetônicos e as plataformas
de middleware.

ENGENHARIA DE DADOS 22

Engenharia de dados - Unidade1_Formato A5_1.indd 22 15/07/19 14:47


Elementos arquitetônicos
Elementos arquitetônicos são todos os componentes que constituem a
arquitetura de um sistema distribuído. São divididos em quatro estruturas
fundamentais: entidades de comunicação, paradigmas de comunicação, fun-
ções e responsabilidades e mapeamento de serviços em vários servidores.
Entidades de comunicação são todos os elementos que se comunicam
e como eles se comunicam, no sistema. Uma entidade em um sistema distri-
buído geralmente é um processo. Um processo é um ambiente de execução
junto a uma ou mais threads.

EXEMPLIFICANDO
Thread é uma atividade, ou uma tarefa, que um programa executa no
sistema operacional.

Paradigmas de comunicação envolvem a definição da forma pela qual


as entidades irão se comunicar. Pode ser vista sob três perspectivas: comu-
nicação entre processos, invocação remota e comunicação indireta;
• Comunicação entre processos se refere à forma pela qual os processos
se comunicam em seu nível mais baixo. Envolve a definição de primitivas de
envio de mensagens, acessos direto a protocolos de comunicação e suporte
a comunicação entre grupos de processos;
• Invocação remota é o método mais comum de comunicação entre enti-
dades. Baseia-se na troca bilateral de dados através de chamadas de opera-
ções, procedimentos ou métodos;
• Comunicação indireta ocorre por meio de um elemento intermediário,
visando a não gerar nenhum tipo de acoplamento direto entre as entidades
remetente e destinatária.

EXEMPLIFICANDO
As principais técnicas de comunicação indireta são: a comunicação em gru-
po, o sistema publicar-assinar (do inglês, Publish-Subscribe), os sistemas de
filas de mensagens, os espaços de tuplas, os sistemas de memória compar-
tilhada distribuída e as estratégias baseadas em memória duplicada.

ENGENHARIA DE DADOS 23

Engenharia de dados - Unidade1_Formato A5_1.indd 23 15/07/19 14:47


Em relação ao elemento funções e responsabilidades, é necessário pen-
sar na forma pela qual os processos interagem uns com os outros no sentido
de realizar alguma atividade útil. Essa visão da forma de interação define dois
estilos arquiteturais: cliente-servidor e peer-to-peer.
Na arquitetura cliente-servidor, os processos-clientes interagem com os
processos-servidores localizados em computadores hospedeiros (hosts), vi-
sando acessar recursos compartilhados que gerenciam. O Diagrama 1 mos-
tra o exemplo de funcionamento dessa arquitetura.

DIAGRAMA 1. ARQUITETURA CLIENTE-SERVIDOR

Chamada Chamada

Resultado Resultado
Servidor
Cliente

Servidor

Cliente
Fonte: COULOURIS et al., 2013, p. 47. (Adaptado).

Já na arquitetura peer-to-peer,
todos os processos envolvidos em uma tarefa ou atividade de-
sempenham funções semelhantes, interagindo cooperativamen-
te como pares (peers), sem distinção entre processos clientes e
servidores, nem entre os computadores em que são executados
(COULOURIS et al., 2013, p. 46).
O Diagrama 2 mostra o exemplo de funcionamento dessa arquitetura.

ENGENHARIA DE DADOS 24

Engenharia de dados - Unidade1_Formato A5_1.indd 24 15/07/19 14:47


DIAGRAMA 2. ARQUITETURA PEER-TO-PEER

Ponto 1 Ponto 2

Aplicativo Aplicativo

Objetos
compartilhados

Ponto 3

Aplicativo

Pontos 4 ... N

Fonte: COULOURIS et al., 2013, p. 48. (Adaptado).

Finalmente, em relação ao mapeamento de serviços em vários servido-


res, deve-se considerar que podem ser implementados como vários proces-
sos-servidores em hospedeiros diferentes, com o objetivo de fornecer serviços
para processos-clientes e interagir sempre que necessário. O Diagrama 3 mos-
tra o funcionamento desse mapeamento.

DIAGRAMA 3. SERVIÇOS FORNECIDOS POR VÁRIOS SERVIDORES

Servidor
Servidor

Cliente

Servidor

Cliente

Servidor

Fonte: COULOURIS et al., 2013, p. 48. (Adaptado).

ENGENHARIA DE DADOS 25

Engenharia de dados - Unidade1_Formato A5_1.indd 25 15/07/19 14:47


Agora que já conhecemos os elementos arquitetônicos, o próximo passo é
aprender sobre os padrões arquitetônicos existentes.

Padrões arquitetônicos
Os padrões arquitetônicos representam a organização lógica e física dos
elementos que compõem um sistema distribuído. As estruturas mais conhe-
cidas são aquelas organizadas em camadas lógicas e físicas.
A organização baseada em camadas lógicas é uma das estratégias mais
utilizadas para definição de padrões, na qual cada camada oferece uma
abstração de software. As camadas inferiores encapsulam os detalhes de
sua implementação, que se torna oculta para as camadas superiores. Nesse
tipo de organização, cada camada oferece um determinado serviço, que é
utilizado por suas camadas adjacentes. O Diagrama 4 mostra a organização
desse tipo de padrão arquitetural.

DIAGRAMA 4. CAMADAS LÓGICAS EM SISTEMAS DISTRIBUÍDOS

Aplicativos e Serviços

Middleware

Sistema Operacional
Plataforma
Computador
e Hardware de Rede
Fonte: COULOURIS et al., 2013, p. 48. (Adaptado).

Já a organização baseada em camadas físicas representa uma estrutura


complementar para dar suporte à estrutura de camadas lógicas, uma vez que
são as técnicas utilizadas para organizar a execução de determinada funcio-
nalidade da camada lógica no equipamento de hardware adequado.
Na prática, cada camada lógica é mapeada para um servidor físico que,
por sua vez, será responsável por executar as funcionalidades daquela ca-
mada. O Diagrama 5 mostra a organização desse tipo de padrão arquitetural.

ENGENHARIA DE DADOS 26

Engenharia de dados - Unidade1_Formato A5_1.indd 26 15/07/19 14:47


DIAGRAMA 5. CAMADAS LÓGICAS EM SISTEMAS DISTRIBUÍDOS

Computadores Servidos Servidor de


Pessoais ou de Banco de Dados
Dispositivos Móveis Aplicação

Visualização dos
Usuários
Lógica da
Aplicação
Gerenciador
de Banco
Lógica da de Dados
Aplicação
Visualização dos
Usuários

Camada Fisíca 1 Camada Fisíca 2 Camada Fisíca 3

Fonte: COULOURIS et al., 2013, p. 48. (Adaptado).

CURIOSIDADE
A Wikipédia, que é um projeto de enciclopédia multilíngue de licença livre,
baseado na web e escrito de maneira colaborativa, adota a arquitetura de
múltiplas camadas físicas para lidar com o volume de requisições de seus
mais de dois milhões de usuários.

Agora entendemos que na arquitetura distribuída existem elementos ar-


quitetônicos interagentes que são organizados em padrões (camadas). Mas
como essa interação ocorre na prática?

Plataformas de middleware
Middleware é o software responsável pela comunicação entre os elemen-
tos de cada camada e o processamento distribuído dos dados. Posicionado en-
tre as camadas, ele permite a comunicação e o gerenciamento de dados entre
os elementos.
Dentre os tipos mais comuns de middleware, podemos citar os de banco de
dados, de servidor de aplicativos, orientado a mensagens, web e monitores de

ENGENHARIA DE DADOS 27

Engenharia de dados - Unidade1_Formato A5_1.indd 27 15/07/19 14:47


processamento de transações. O funcionamento desses softwares geralmen-
te é baseado em serviços de trocas de mensagens que utilizam determinados
protocolos de comunicação, tais como SOAP, REST ou JSON.

EXPLICANDO
SOAP (protocolo simples de acesso a objetos; do inglês, Simple Object
Access Protocol) é um protocolo para troca de informações estruturadas
em ambientes distribuídos baseado na linguagem XML.
REST (transferência de estado representacional; do inglês, Representa-
tional State Transfer) é um protocolo, baseado em HTTP, que define um
conjunto de restrições e propriedades de comunicação.
JSON (notação de objeto javascript; do inglês, JavaScript Object Notation)
é um padrão aberto de troca de dados entre sistema baseado na lingua-
gem JavaScript.

A escolha do tipo de comunicação mais adequada deve levar em conside-


ração questões relacionadas à segurança, gerenciamento de transações, con-
sultas de mensagens, servidores de aplicativos, servidores da web e diretórios.
Mas como essa estrutura de processamento distribuído, que inclui ele-
mentos e padrões arquitetônicos e middleware, pode ser utilizada para lidar
com dados armazenados em banco de dados?

Banco de dados distribuído


Elmasri e Navate, duas das principais referências na área, definem banco de
dados distribuído (do inglês Distributed Database – BDD)
como uma coleção de múltiplos bancos de dados logicamente in-
ter-relacionados distribuídos por uma rede de computadores, e um
Sistema de Gerenciamento de Banco de Dados Distribuído (do inglês
Distributed Database Management System – SGBDD), que é um siste-
ma de software que gerencia um banco de dados distribuído enquan-
to torna a distribuição transparente para o usuário (2005, p. 579).
A partir dessa definição, podemos observar então que o BDD é um tipo de
banco de dados específico para ambientes de Sistemas Distribuídos.
Qual é a vantagem deste tipo de ambiente em relação a outras formas de
armazenamento dos dados? A resposta é simples: este tipo de arquitetura provê
maior poder de processamento.

ENGENHARIA DE DADOS 28

Engenharia de dados - Unidade1_Formato A5_1.indd 28 15/07/19 14:47


Então, antes de conhecer o conceito de Banco de Dados Distribuídos, suas
vantagens, funcionamento e tipos, vamos primeiramente entender quais são as
outras arquiteturas de Banco de Dados existentes: centralizada e cliente servidor.

Arquitetura centralizada
Os primeiros bancos de dados (BD) utilizavam uma arquitetura conhecida
como centralizada. Nesse tipo de arquitetura, eram utilizados computadores
centrais, conhecidos como mainframes, com grande poder de processamento
e capacidade de armazenamento, que eram responsáveis por todo processa-
mento de dados e execução de todas as aplicações que implementavam as
funcionalidades dos sistemas. A Fig. 3 representa esse tipo de arquitetura.

Processo Centralizado Terminal


Burro

Mainframe

Aplicação

Banco de dados

Figura 3. Arquitetura de banco de dados centralizada. (Adaptado).

Esse tipo de arquitetura era necessário porque os computadores utiliza-


dos para acessar esses dados, conhecidos como terminais burros, tinham
pouco poder de processamento, permitindo praticamente apenas a visuali-
zação dos dados na tela.

ENGENHARIA DE DADOS 29

Engenharia de dados - Unidade1_Formato A5_1.indd 29 15/07/19 14:47


Com o surgimento dos computadores pessoais (PC), com maior poder de
processamento e quantidade de memória, os sistemas passam a ser orga-
nizados com base em uma arquitetura conhecida com cliente-servidor (do
inglês, client-server).

Arquitetura cliente-servidor
Nesta arquitetura, o cliente é, em geral, um computador capaz de realizar
processamento local. Quando o computador precisa acessar dados, este se
conecta a uma outra máquina, o servidor, que irá fornecê-los.
Já um servidor é uma máquina que pode fornecer serviços para as máquinas
clientes, como armazenamento ou acesso a um banco de dados. A Fig. 4 ilustra o
funcionamento dessa arquitetura.

Modelo Cliente / Servidor

Servidor

SGDB (Oracle, SQL, Server,


Inofmx, Skybase, etc)

Estações (Workstation)

Figura 4. Arquitetura cliente-servidor em duas camadas. (Adaptado).

Esse tipo de arquitetura permite organizar o sistema de informação


em camadas lógicas, geralmente duas ou três, o que oferece inúmeras
vantagens, tais como: separação das responsabilidades de cada camada,
implementação independente, com possibilidade de reutilização e inde-
pendência entre camadas, que permite a substituição de uma camada sem
afetar a outra.

ENGENHARIA DE DADOS 30

Engenharia de dados - Unidade1_Formato A5_1.indd 30 15/07/19 14:47


Na arquitetura cliente-servidor baseada em duas camadas, a camada
cliente normalmente é responsável por disponibilizar uma interface para
visualização dos dados e executar os programas compilados. Já a camada
servidor inclui o sistema de gerenciamento de banco de dados (do inglês
Database Management System – SGBD), que é o software responsável por
armazenar e permitir a manipulação dos dados, realizar o controle de con-
corrência para acessos simultâneos, o controle de transações, prover geren-
ciamento centralizado de segurança, dentre outras funções.
Esse tipo de arquitetura foi muito utilizado antes do surgimento dos
sistemas desenvolvidos especificamente para internet (aplicações web),
que passaram a utilizar uma terceira camada.
Na arquitetura baseada em três camadas, além das camadas cliente
e servidor de dados, existe ainda uma camada intermediária, conhecida
como camada de aplicação. A Fig. 5 mostra a organização de uma arquite-
tura baseada em três camadas.

Estação Estação Estação Estação

Rede de
Comunicação

Servidor de
Banco de Dados
Banco de Dados

Figura 5. Arquitetura em três camadas. (Adaptado).

A camada de aplicação desempenha um papel intermediário ar-


mazenando as regras de negócio (procedimentos ou restrições) que
são usadas para acessar os dados do servidor de banco de dados.
Também pode incrementar a segurança do banco de dados checan-
do as credenciais do cliente antes de enviar uma solicitação ao ser-
vidor de banco de dados” (ELMASRI et al., 2005, p. 31) (grifo nosso).

ENGENHARIA DE DADOS 31

Engenharia de dados - Unidade1_Formato A5_1.indd 31 15/07/19 14:47


Agora que conhecemos os outros tipos de arquiteturas, nosso próximo
passo é conhecer, com mais detalhes, o conceito de banco de dados distribuí-
dos, suas vantagens, funcionamento e tipos. Vamos lá?

Conceitos e vantagens
Como já sabemos, um banco de dados distribuído (BDD) é um conjunto de
bancos de dados logicamente inter-relacionados e distribuídos em uma rede
de computadores, gerenciados por um sistema de gerenciamento de banco de
dados distribuído (SGBDD). Ao contrário dos bancos de dados centralizados, os
BDDs têm seu processamento distribuído entres vários equipamentos físicos,
conforme pode ser visualizado na Fig. 6.

São Paulo Rio de Janeiro

Estação de Estação de
trabaho trabaho

Servidor Servidor

Dados Dados

Rede de Computadores
São José do
Campo Grande
Rio Preto

Servidor Servidor

Dados Dados

Estação de Estação de
trabaho trabaho

Figura 6. Banco de dados distribuídos. (Adaptado).

ENGENHARIA DE DADOS 32

Engenharia de dados - Unidade1_Formato A5_1.indd 32 15/07/19 14:47


O SGBDD é um software que tem capacidade de controlar o armazenamen-
to e o processamento de dados que se encontram relacionados de maneira
lógica, através de sistemas computacionais interconectados. Por estarem in-
terconectados, tanto os dados como as funções de processamento são distri-
buídos para locais os mais variados e diferentes entre si.
Em relação às principais vantagens da utilização de BDDs, podemos destacar:
transparência, dispersão, melhoria na confiabilidade e na disponibilidade, melhoria
de desempenho, expansão mais fácil. Essas vantagens são descritas na Tabela 4.

TABELA 4. VANTAGENS DOS BANCO DE DADOS DISTRIBUÍDOS

Vantagem Descrição

Transpar- Os usuários de uma BDD não precisam saber onde os dados estão localizados
ência fisicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012).

Os dados são armazenados de forma dispersa visando a atender com mais


Dispersão
eficiência às necessidades das aplicações e seus usuários.

Rapidez de
Usuários finais do BD podem acessar a apenas uma porção dos dados, que
acesso e
pode ser armazenada localmente. Já o processamento pode ter sua carga de
processa-
trabalho dividida entre vários locais.
mento

Capacidade
Podem ser adicionados novos locais de processamento sem interferir na op-
de ampli-
eração dos outros pontos da rede.
ação

Redução de O custo para adicionar novos pontos de processamento à rede geralmente é


custos menor que o a atualização de hardware de um computador centralizado.

O impacto negativo causado por uma falha em um dos pontos de rede


Menor risco
geralmente é menor, uma vez que o processamento é mantido pelas outras
de falha
estações.

Apesar de apresentar inúmeras vantagens quando comparado aos siste-


mas de banco de dados centralizados ou cliente-servidor, os BDDs apresentam
algumas desvantagens. As principais estão relacionadas à complexidade do
gerenciamento e controle sobre a distribuição dos dados e à probabilidade de
ocorrências relacionadas à segurança dos dados e custos de algumas configu-
rações de infraestrutura. A seguir, vamos entender como funcionam os BBDs.

ENGENHARIA DE DADOS 33

Engenharia de dados - Unidade1_Formato A5_1.indd 33 15/07/19 14:47


Funcionamento
No desempenho do processamento de dados distribuído, um banco de da-
dos fica armazenado em um único local acessível. No entanto, o processamen-
to lógico desses dados é compartilhado entre dois ou mais locais que se encon-
tram fisicamente independentes, mas conectados por uma rede.
Para que os dados sejam compartilhados, os BDDs se baseiam em técnicas
de fragmentação, replicação e alocação de dados.

EXPLICANDO
Fragmentar significa dividir os dados em unidades lógicas, chamadas de
fragmentos, que são armazenados e processados em locais físicos dife-
rentes. Replicar consiste em criar várias cópias idênticas dos dados em
vários pontos de processamento na rede. Alocar é o processo de definir o
local onde os dados serão posicionados para processamento.

O primeiro passo para fragmentação é a definição de quais unidades ló-


gicas serão criadas e distribuídas. Uma unidade lógica pode ser uma relação
(tabela) completa ou apenas parte dela. Podem ser criados fragmentos com
parte dos dados de uma relação. Essa técnica é chamada de fragmentação
horizontal e consiste na seleção de um subconjunto das tuplas de uma rela-
ção, agrupando subconjuntos de linhas com seu próprio significado lógico.
Quando os fragmentos são criados a partir da divisão dos atributos de uma
relação, a técnica é chamada de fragmentação vertical. Já a combinação en-
tre as duas técnicas de fragmentação é chamada de fragmentação mista, ou
híbrida. Uma vez fragmentado, o banco de dados é, então, distribuído para
processamento. O trabalho passa a ser o controle da junção dos fragmentos
para que as informações não sejam perdidas.
Entretanto, em alguns casos, é necessário duplicar algumas porções dos
dados para processamento. Essa duplicação é chamada de replicação, que se
torna necessária uma vez que melhora a disponibilidade dos dados, tornando
mais ágil seu processamento.
A replicação, apesar de vantajosa em alguns casos, deve ser utilizada com
cuidado, uma vez que pode tornar as técnicas de controle da concorrência e
de recuperação mais dispendiosas do que seriam se não houvesse replicação
(ELMASRI et al., 2005).

ENGENHARIA DE DADOS 34

Engenharia de dados - Unidade1_Formato A5_1.indd 34 15/07/19 14:47


Apesar dessa desvantagem, uma vez que a existência de cópias de frag-
mentos é capaz de aprimorar a disponibilidade de dados e o tempo de respos-
ta deles, elas tendem a contribuir com a redução de custos – principalmente
aqueles relacionados ao processamento de consultas. A replicação dos dados
não é obrigatória, mas, uma vez realizada, ela pode ser total ou parcial.
A replicação total ocorre quando todos os fragmentos do banco de dados
são replicados em vários locais. Já a parcial ocorre quando apenas alguns dos
fragmentos são copiados.
Geralmente, a replicação total não é viável, devido principalmente à quan-
tidade de carga imposta ao sistema. Para decidir qual a melhor estratégia de
replicação, devem ser considerados o tamanho de banco de dados, a frequên-
cia de utilização e os custos de desempenho, carga e gerenciamento dos dados.
Após replicados, os dados precisam ser alocados (posicionados) para pro-
cessamento. Existem basicamente três estratégias de alocação: centralizada,
particionada e replicada.
Na estratégia centralizada, todo o banco de dados é armazenado em um
único local físico; na particionada, o banco é dividido e armazenado em duas
ou mais partes separadas; já na replicada, são armazenadas cópias de um ou
mais fragmentos em vários locais.
Para definir qual a melhor estratégia de alocação, devem ser considerados
vários fatores, como: objetivo de desempenho, disponibilidade dos dados, ta-
manho do banco em quantidade linhas e colunas, tipos de transações mais
frequentes, dentre outros.
Agora que você já conhece a estrutura de funcionamento de um BDD, vamos
aprender um pouco sobre confiabilidade, eficiência e qualidade dos dados e como
essas características são importantes no contexto da engenharia de dados.

Confiabilidade, eficiência e a qualidade dos dados


Não basta ter dados disponíveis, estes dados têm de ser confiáveis, eficientes
e de qualidade.
Dados confiáveis são aqueles são aqueles que representam de forma cor-
reta uma determinada realidade, ou seja, não estão errados. Para que se man-
tenham neste estado, devem cumprir certas restrições.

ENGENHARIA DE DADOS 35

Engenharia de dados - Unidade1_Formato A5_1.indd 35 15/07/19 14:47


Eficiência diz respeito à disponibilidade do dado e o conjunto de métodos
utilizados para acessá-los. Neste contexto, iremos tratar a eficiência como si-
nônimo de disponibilidade.
Já a qualidade está relacionada à percepção de confiabilidade, que está re-
lacionada à combinação entre disponibilidade, confidencialidade e integridade,
que são características que os dados devem possuir.
Disponibilidade é a capacidade que o dado tem de estar acessível e utili-
zável sob demanda por alguém autorizado. Confidencialidade refere-se ao fato
de que a informação não está disponível ou não será revelada a indivíduos,
entidades ou processos não autorizados. Integridade é a propriedade de salva-
guarda da exatidão e completeza dos dados.
Para garantir essas propriedades, temos que recorrer a meca-
nismos de garantia da Segurança da Informação, que é a área de
conhecimento que tem por objetivo a garantia da proteção da in-
formação contra vários tipos de ameaças de forma a assegurar a
continuidade do negócio, minimizando danos comerciais e maximi-
zando o retorno sobre investimentos e oportunidades de negócios
(ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2005, p. 1).
Sua utilização busca, justamente, a preservação dos três atributos básicos
da informação: confidencialidade, integridade e disponibilidade.
A principal norma da área de segurança da informação é a ISO 27002 (AS-
SOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2013), que define um código
de prática para controles de segurança da informação. Publicada e vigente a
partir de 2013, esta norma é baseada na proposta de definição de um sistema
de gestão de segurança da informação (SGSI).
O SGSI é o resultado da aplicação planejada de objetivos, diretrizes, políti-
cas, procedimentos, modelos e outras medidas administrativas que, de forma
conjunta, definem como são reduzidos os riscos para segurança da informa-
ção. Ao implantar o SGSI, a empresa passa a cumprir tudo aquilo que foi defini-
do pela norma ISO 27002.
Na prática, esse documento define uma Política de Segurança de Informação
(PSI) e conjuntos de controles necessários para manutenção da confidencialidade,
integridade e disponibilidade dos dados. Em uma visão macro, estes controles são
divididos em controles gerais, de aplicativos, de banco de dados e de redes.

ENGENHARIA DE DADOS 36

Engenharia de dados - Unidade1_Formato A5_1.indd 36 15/07/19 14:47


Política de Segurança da Informação
“Uma Política de Segurança da Informação (PSI) é um documento cujo obje-
tivo é prover uma orientação e apoio da direção para a segurança da informação
de acordo com os requisitos do negócio e com as leis e regulamentações relevan-
tes” (ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2005, p. 8) (grifo nosso).
O Quadro 1 mostra os itens que devem estar contidos em uma PSI.

QUADRO 1. POLÍTICA DE SEGURANÇA DA INFORMAÇÃO

Definição do termo segurança da informação.

Declaração do comprometimento da alta direção da empresa.

Estrutura de objetivos de controle de segurança.

PSI
Explanação das políticas, princípios, normas e requisitos de conformidade
de segurança.

Definição das responsabilidades gerais e específicas na gestão da segu-


rança.

Referências a outros documentos que possam apoiar a política.

ASSISTA
Existem vários filmes e séries que tratam tanto da questão
da segurança da informação nos dias atuais quanto
da temática relacionada às questões de tecnologia da
informação. Seguem algumas indicações: A rede (1995);
Hackers – piratas de computador (1995); A rede social
(2010); Nós roubamos segredos: a história da WikiLeaks
(2013); Hacker Blackhat (2015); O jogo da imitação (2014);
Jobs (2013), e Mr. Robot (2015).

ENGENHARIA DE DADOS 37

Engenharia de dados - Unidade1_Formato A5_1.indd 37 15/07/19 14:47


Controles gerais
Em relação aos controles gerais de segurança dos dados, os seguintes
aspectos devem ser observados: controles organizacionais, programa geral de
segurança, gestão de continuidade do serviço, política de controles de acesso
e política de controles de software de sistema.
Os controles organizacionais estão relacionados à organização do depar-
tamento de tecnologia da informação com unidades organizacionais bem de-
finidas. Também devem ser estabelecidas políticas de segregação de funções
e controles de acesso, controle das atividades dos funcionários com políticas
claras de seleção, treinamento e avaliação de desempenho e gerenciamento
eficiente e econômico dos recursos computacionais.
Deve ser criado, divulgado, implantado e acompanhado um Programa Ge-
ral de Segurança, contendo princípios da gestão da segurança, avaliação de
riscos, definição da estrutura geral de segurança, de gerência de segurança
com atribuição clara de responsabilidades, políticas de segurança eficientes e
eficazes, além da supervisão do programa de segurança.
A gestão de continuidade do serviço envolve a avaliação da vulnerabilida-
de das operações computadorizadas, definição de procedimentos de backup,
controles de ambiente, treinamento do pessoal para responder a emergências,
medidas de prevenção de interrupções inesperadas, desenvolvimento de um
plano geral de contingência contendo alternativas de processamento de dados
e telecomunicação, teste periódico do plano de contingência e periodicidade de
realização dos ajustes apropriados no plano.
Deve ser definida uma Política de Controles de Acesso, contendo a classifi-
cação dos recursos de informação de acordo com sua importância e vulnerabi-
lidade e de uma lista atualizada de usuários autorizados e seu nível de acesso.
Nessa política, deve ser definida a forma de implantação de controles lógicos e
físicos para prevenção ou detecção de acesso não autorizado, configuração de
controles lógicos sobre arquivos de dados e programas de software, bases de
dados e acessos remotos, bem como a forma de supervisão do acesso, inves-
tigação de indícios de violação de segurança e adoção das medidas corretivas.
Por fim, deve ser definida uma Política de Controles de Software de Siste-
ma, contendo as políticas de gerenciamento de acesso limitado, gerenciamen-

ENGENHARIA DE DADOS 38

Engenharia de dados - Unidade1_Formato A5_1.indd 38 15/07/19 14:47


to dos caminhos de acesso e uso supervisionado, controle das alterações, ins-
talação, desenvolvimento e manutenção dos softwares, bibliotecas de controle
do software, identificação e inventário de programas, restrições de acesso à
biblioteca e controle do movimento de programas e dados entre bibliotecas.

Controles de aplicativos
O controle de aplicativos envolve os seguintes controles: dados de entrada,
processamento e dados de saída.
O controle dos dados de entrada é o controle dos documentos ou te-
las de entrada de dados, rotinas de
preparação dos dados, autorização
para entrada de dados, retenção de
documentos de entrada, validação
dos dados de entrada, tratamento de
erros e mecanismos de suporte para
entrada de dados.
O controle de processamento
visa verifi car a integridade do pro-
cessamento, sua validação e trata-
mento de erros.
O controle dos dados de saída
envolve a resposta das seguintes per-
guntas: os dados de saída são revisados? Os dados de saída são distribuídos de
forma correta? Os dados de saída são armazenados de forma segura?

Controles de banco de dados


Os controles de banco de dados são a verificação dos itens relacionados a
questões de segurança nas bases de dados, tais como: existência de um dicio-
nário de dados, verificação da forma de armazenamento, controles dos níveis
de acesso ao banco de dados, de ambientes de bancos de dados distribuídos,
da administração de banco de dados, da administração de dados e da disponi-
bilidade e recuperação do banco de dados.

ENGENHARIA DE DADOS 39

Engenharia de dados - Unidade1_Formato A5_1.indd 39 15/07/19 14:47


Controle de redes
Os controles de redes envolvem cuidados relacionados à atividade de ge-
rência de rede, segurança dos dados que trafegam na rede e da rede em si e
das atividades de operação de rede e dos softwares que nela executam.
Gerência de rede é a definição de procedimentos e políticas para auxiliar a
gerência do ambiente de rede e padrões definidos para controle do hardware
e do software envolvidos.
A segurança dos dados e da rede envolve mecanismos de controle de har-
dware e software que garantam a segurança e integridade dos dados mantidos
no ambiente de rede e de mecanismos de controle dos recursos físicos que a
compõem, bem como limitem e controlem o acesso a programas e dados.
Em relação à operação da rede, a organização deve oferecer condições
para uma operação eficiente, incluindo normas e procedimentos de treina-
mento de pessoal, execução de cópias de segurança, avaliação da eficiência do
serviço, rotinas de recuperação da rede após interrupções inesperadas.
Por fim, a gerência de rede deve monitorar e controlar o software de comu-
nicação e o sistema operacional instalado.

ENGENHARIA DE DADOS 40

Engenharia de dados - Unidade1_Formato A5_1.indd 40 15/07/19 14:47


Sintetizando
Caro(a) aluno(a)! Nesta unidade, você foi apresentado(a) ao tema engenha-
ria de dados. Você aprendeu os principais conceitos da área, os tipos de da-
dos e informações e como transformar dados em informações. Você também
aprendeu quais são os atributos de um engenheiro de dados, ou seja, suas
responsabilidades e habilidades.
Na sequência, você aprendeu sobre a arquitetura dos sistemas distribuídos e
dos bancos de dados distribuídos. Você foi apresentado(a) aos conceitos de ele-
mentos arquitetônicos, padrões arquitetônicos, plataformas de middleware, ar-
quitetura centralizada, arquitetura cliente-servidor, conceitos,vantagens e funcio-
namento desses elementos.
Finalmente, você foi apresentado(a) aos conceitos de confiabilidade, eficiência
e qualidade dos dados e aprendeu que essas características são garantidas atra-
vés da implantação de políticas de segurança da informação e seus controles.

ENGENHARIA DE DADOS 41

Engenharia de dados - Unidade1_Formato A5_1.indd 41 15/07/19 14:47


Referências bibliográficas
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 17799:2005. Tecnologia
da informação – Técnicas de segurança – Código de prática para a gestão da
segurança da informação. Rio de Janeiro, p. 1-8, 2005.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 27002:2013. Tecnologia
da informação – Técnicas de segurança – Código de prática para controles de
segurança da informação. Rio de Janeiro, n.p., 2005.
BRYNJOLFSSON, E.; HITT, L. M.; KIM, H. H. Strength in Numbers: How Does Da-
ta-Driven Decisionmaking Affect Firm Performance? SSRN, 22 de abr. de 2011.
Disponível em: <https://ssrn.com/abstract=1819486>. Acesso em: 06 jun. 2019.
CIO-IDG. O que é e o que faz um engenheiro de dados? Disponível em: <ht-
tps://cio.com.br/o-que-e-e-o-que-faz-um-engenheiro-de-dados/>. Acesso em:
06 jun. 2019.
COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas distribuídos
– conceitos e projeto. Porto Alegre: Bookman, 2013.
DATAQUEST. What Is a Data Engineer? Disponível em: <https://www.data-
quest.io/blog/what-is-a-data-engineer/>. Acesso em: 06 jun. 2019.
DAVENPORT, T.; H, PRUSAC, L. Working Knowledge – How Organizations Ma-
nage What They Know. USA: Harvard Business School Press, 1998.
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. São Paulo: Pearson
Addison Wesley, 2005.
GOOGLE - DATA CENTERS. Dentro de nossos data centers. Disponível em:
<https://www.google.com/about/datacenters/index.html>. Acesso em: 06 jun.
2019.
MORAIS, E. A. M. Contextualização de documentos em domínios represen-
tados por ontologias utilizando mineração de textos. Dissertação (Mestra-
do) – Universidade Federal de Goiás, Instituto de Informática, Goiânia, 2007.
Disponível em: <http://inf.ufg.br/sites/portal.inf.ufg.br.mestrado/files/ds_Edi-
son.pdf>. Acesso em: 06 jun. 2019.
_____________. Mineração de textos. Relatório técnico 005/07 – Universidade
Federal de Goiás, Instituto de Informática, Goiânia, 2007. Disponível em: <http://
www.inf.ufg.br/sites/default/files/uploads/relatorios-tecnicos/RT-INF_005-07.
pdf>. Acesso em: 06 jun. 2019.

ENGENHARIA DE DADOS 42

Engenharia de dados - Unidade1_Formato A5_1.indd 42 15/07/19 14:47


PAGESPEED TOOLS. Melhorar o tempo de resposta do servidor. Disponível
em <https://developers.google.com/speed/docs/insights/Server?hl=pt-br>.
Acesso em: 06 jun. 2019.
PAYSCALE. Average Data Engineer Salary. Disponível em: <https://www.pays-
cale.com/research/US/Job=Data_Engineer/Salary>. Acesso em: 06 jun. 2019.
PROVOST, F.; FAWCETT, T. Data Science para negócios. Rio de Janeiro: Alta
Books, 2016.
REZENDE, D. A. Planejamento de sistemas de informação e informática:
guia prático para planejar a tecnologia da informação integrada ao planeja-
mento estratégico das organizações. 5. ed. São Paulo: Atlas, 2016.
SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados.
Tradução da 6. ed. norte-americana. Rio de Janeiro: Elsevier, 2012.

ENGENHARIA DE DADOS 43

Engenharia de dados - Unidade1_Formato A5_1.indd 43 15/07/19 14:47

Você também pode gostar