Você está na página 1de 787

Fundamentos em Engenharia de Dados

Capítulo 1. Conceitos Fundamentais de Big Data

Profª. Fernanda Farinelli


Fundamentos em Engenharia de Dados
Aula 1.1. Dados, fontes de dados e tipos de dados

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o conceito de dado.

❑ Conhecer os diferentes tipo de dados.

❑ Conhecer as diferentes fontes de dados.


Dado

Representações de fatos sobre o mundo real.

Informação

Dados dotados de relevância e propósito.

Conhecimento

Informações contextualizadas pela experiência.


Tipos de dados

Estruturado Semiestruturado Não estruturado


Esquema heterogêneo e nem sempre
Estrutura homogênea e pré-definida. Sem esquema pré-definido.
pré-definido.

Estrutura prescritiva. Estrutura descritiva. Estrutura descritiva.

Estrutura de dados irregular nem


Estrutura independente dos dados. Estrutura embutida nos dados.
sempre presente.

Clara distinção entre estrutura e Distinção entre estrutura e dados Distinção entre estrutura e dados
dados. pouco clara. pouco clara.

Fortemente evolutiva, onde a Fortemente evolutiva, onde a


Fracamente evolutiva. estrutura sofre mudanças com estrutura sofre mudanças com
frequência. frequência.
Datificação ou dataficação

Dados Digitalização
Web de Bancos
dados e de
Internet LOD Dados Artigos
das coisas e
(IoT) jornais
Arquivos
Documentos
de oficiais
Integração
Fontes de
Dados Dados
Sistemas de
abertos
Informação

Áudio e
Planilhas
vídeo
Redes
sociais Websites
Conclusão
✔ Entendemos o conceito de dado, informação e conhecimento.

✔ Conhecemos os diferentes tipo de dados: Estruturados,

semiestruturados e não estruturados.

✔ Entendemos o que são fontes de dados e conhecemos

algumas destas fontes.


Próxima aula

❑ Entender o que o termo Big Data significa e


conhecer as características que envolvem este
termo.
Fundamentos em Engenharia de Dados
Aula 1.2. Conceito e características de Big Data

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o significado do termo Big Data.

❑ Discutir as principais características do Big Data.


Quantidade

Big data Massiva de


Dados
Big Data remete ao...

… problema ou desafio de…

processar volumes de dados cada vez maiores,

produzidos em múltiplos formatos (vídeo, imagem, texto etc.),

e em velocidades na casa dos segundos,

além de apresentar respostas em tempo real.


Características do Big Data
Características do Big Data

Variedade

Volume Velocidade

Veracidade Big Data Valor

Viscosidade Virulência

Visualização
Big Data versus Small Data

Dados gerados aleatoriamente

Fontes de dados desconhecidas

Dados não amigáveis

Validade ou veracidade questionável


O que Big Data não é

• Mas envolve hardwares (arquiteturas e plataformas) com capacidade de


Um produto de
processamento para dados massivos (escaláveis, paralelismo,
hardware
distribuídos etc.).

• Mas envolve diversas aplicações para coleta, armazenamento,


Um software
integração, análise e visualização dos dados.

• Mas requer práticas compatíveis com as perguntas e respostas que


Uma metodologia deseja-se obter, e está presente nos processos de desenvolvimento de
sistemas e soluções.
Conclusão
✔ Entendemos o que é e o que não é Big Data.

✔ Conhecemos as principais características do Big Data.

✔ Entendemos os desafios computacionais para lidar com

dados.
Próxima aula

❑ Entender o que é a Web de Dados.


Fundamentos em Engenharia de Dados
Aula 1.3. Web semântica

Profª. Fernanda Farinelli


Nesta aula

❑ Entender a evolução da World Wide Web.

❑ Explorar o que é a web semântica.


Evolução da World Wide Web

web unidirecional web colaborativa


“empurrada” tempo real

Web 1.0 Web 3.0

Web 2.0 Web 4.0


web bidirecional Web cognitiva
“compartilhada” (inteligência artificial,
aprendizado de máquina, …)
Web semântica

Semântica: representa o estudo do significado.

Conjunto de dados inter-relacionados


semanticamente.

Visa interligar os significados das palavras, tornando


perceptível tanto a humanos quanto a máquinas.
Tanque
Web Semântica
estrutura
significado
As camadas da Web Semântica

Semântica

Sintática
Uniform Resource Identifier (URI)
Identificador Uniforme de Recursos

Meio simples e extensível, formado por uma cadeia de


caracteres compacta, para identificar um recurso na internet.

Permite a interação com representações do recurso através da


internet (mundial), usando protocolos específicos como o
HTTP.

Exemplos:
ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.math.uio.no/faq/compression-faq/part1.html
mailto:mduerst@ifi.unizh.ch
RDF (Resource Description Framework)

Linguagem de representação de informação na internet..

Um modelo em RDF é um conjunto de declarações.

Sua representação segue o conceito de triplas.

predicado
sujeito objeto
RDF (Resource Description Framework)

declaração = (predicado, sujeito, objeto)

• Predicado é um recurso
• Sujeito é um recurso
• Objeto = Predicado (Sujeito)
• Objeto é ambos um recurso ou um literal

Um recurso pode ser qualquer coisa que tenha identidade.

Um recurso deve ser identificado por uma URI.


RDF (Resource Description Framework)
❑ Declaração = (predicado, sujeito, objeto).

<rdf:Statement>
<rdf:subject resource=“http://example.org/pessoa/25”>
<rdf:predicate resource=“http://xmlns.com/foaf.0.1/name”>
<rdf:object>Machado de Assis</rdf:object>
</rdf:Statement>

nam “Machado
Pessoa e de Assis”

1/n ame
f . 0 .
http://example.org/pessoa/25 o m/f oa “Machado
. c
// xmlns de Assis”
http:
Conclusão
✔ Entendemos o que é a Web Semântica e suas

principais características.

✔ Conhecemos alguns elementos da arquitetura da

web semântica.
Próxima aula

❑ Entender o que são dados abertos e dados


interligados.
Fundamentos em Engenharia de Dados
Aula 1.4. Dados abertos e dados interligados

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o que são dados abertos e dados interligados.

❑ Entender a relação dados abertos X dados interligados.


Dados abertos (open data)

Reutilização e redistribuição

Participação universal

Disponível para todos


Disponibilidade e acesso

Conteúdo aberto Disponível


Portais de dados abertos
❑ Portal Brasileiro de Dados Abertos: http://dados.gov.br

❑ Portal da Transparência:
http://www.portaltransparencia.gov.br/download-de-dados

❑ Portal Dados Abertos Dataprev:


https://dadosabertos.dataprev.gov.br/dataset

❑ Dados abertos DATASUS: http://www2.datasus.gov.br/DATASUS/index.php

❑ Portal Dados Abertos CVM: http://dados.cvm.gov.br/

❑ Global Open Data Index: https://index.okfn.org/dataset/.


Dados interligados (linked data)
Conjunto de práticas para publicar e conectar (interligar) dados na web de forma tão fácil
quanto o compartilhamento de documentos.

Ligar dados (semântica) e não documentos (estrutura).

Nasceu Itália
João Países da
comunidade
Conhece Visitou européia

Trabalha
Maria
Espanha
Dados abertos ligados (linked open data)

Projeto aberto comunitário mundial, iniciado em 2007, que


visa a publicação de vários conjuntos de dados (datasets) ,
de forma que as ligações sejam possíveis entre eles.

Construir uma rede de informações onde os nós (itens


de diferentes fontes de dados) estejam semanticamente
ligados, formando um grande grafo global.

Quanto mais um dado for interligado com outros dados,


maior é o seu valor e sua utilidade.
Nuvem do linked open data

Fonte: https://lod-cloud.net/
Linked open data
Linked open data (contexto brasileiro)
Conclusão
✔ Entendemos o que são dados abertos e dados interligados.

✔ Entendemos o que são os dados aberto interligados.

✔ Visualizamos alguns exemplos destes tipos dados.


Próxima aula

❑ Conhecer o que são ontologias.


Fundamentos em Engenharia de Dados
Aula 1.5.1. Ontologias (Parte 1)

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o que são ontologias.

❑ Conhecer os tipos de ontologias.


O que são ontologias?

Ontologia como disciplina Ontologia como artefato

▪ Sistemas de organização do
▪ “Filosofia Primeira" de Aristóteles.
conhecimento (CI e CC).
▪ Ciência do ser e das relações da
▪ Artefato de informação que visa
existência. (Ser/Ente é tudo o que é.)
representar algum domínio do
▪ Estudo da natureza e organização da
conhecimento.
realidade.
▪ Pela natureza filosófica, garante
▪ Objeto de pesquisa é o ser enquanto
significado semântico uniforme.
tal.
▪ As formais viabilizam as inferências.
Ontologias realistas e não realistas
❑ Não-realismo: representação de conceitos, interpretações ou
representações mentais das pessoas.

❑ Realismo: entidades da realidade e não interpretação ou


representações mentais das pessoas.

é um
Animal

é um é um
é
um
Universais e Particulares
Universais e Particulares

❑ Particulares ou indivíduos: ocorrências únicas de algo existente


na realidade.
Exemplo: Cada um de nós é uma única ocorrência ou indivíduo
de um "homo sapiens".

❑ Universais ou tipos: entidades reais que generalizam os


particulares existentes no mundo. Existe apenas se existir pelo
menos um particular desse universal.
Exemplo: "homo sapiens“ é uma entidade geral ou universal
referente aos particulares que cada um de nós é.
Classificação das ontologias
Classificação das ontologias
Classificação das ontologias

Amplo Canônico
Baixo Alta

Ontologia de alto nível


Acoplamento ao domínio

Propósito de representação
Escopo de uso
Reusabilidade

Ontologia de referência

Ontologia de domínio

Alto Específico
Restrito
Baixa
Classificação das ontologias
Domínio

entidade
neutro
Universais

objeto processo
Específico
Domínio

pessoa escultura esculpir


Particulares

Auguste Rodin La Danaïde de Auguste Rodin


Auguste Rodin (1889) esculpindo La Danaïde
Classificação de ontologias
Homo sapiens

Material entity organism

Viruses coronavirus
Independent
continuant
continuant

Immaterial medical
site injection site
entity intervention site

entity
diagnostic coronavirus disease
process diagnostic process

immune
occurrent process
response
coronavirus entry
to cell
coronaviral
process to host
coronavirus
replication inside
cell
Ontologia de alto nível

Ontologia de referência

Ontologia de domínio
Ontologia de alto-nível
Basic Formal Ontology - BFO v 2.0
Padrão internacional ISO/IEC 21838-2.3

Especificação completa: https://github.com/BFO-ontology/BFO/raw/master/docs/bfo2-reference/BFO2-Reference.pdf


Categorias básicas de modelagem

Entidade (Ente)

Continuante Ocorrente

Continuante independente Continuante dependente

Processo de
digestão da
maçã
Cor vermelha
da maçã
Conclusão
✔ Entendemos o que são ontologias e conhecemos os tipos

de ontologias.
Próxima aula

❑ Conhecer os elementos que fazem parte de uma


ontologia.
Fundamentos em Engenharia de Dados
Aula 1.5.2. Ontologias (Parte 2)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer os elementos que fazem parte de uma


ontologia.

❑ Visão geral da linguagem OWL.


Elementos de uma ontologia
Instância ou
Entidade Atributos Relacionamento Cardinalidade Axioma
indivíduos

IRI
Elementos de uma ontologia
Instância ou
Entidade Atributos Relacionamento Cardinalidade Axioma
indivíduos

rdfs:label
Elementos de uma ontologia
Instância ou
Entidade Atributos Relacionamento Cardinalidade Axioma
indivíduos
Representação gráfica

Predicado
Sujeito Objeto
Web ontology language - OWL
IRI
hierarquia

Atrib
u tos -
anot
açõe
s

o Parse OWL:
▪ Python → Owlready2
▪ Java → Jena ontology API

Atrib
s utos
axioma - ano
taçõ
es
Linguagem SPARQL
Linguagem SPARQL

Personal designates
name
patient
Buscadores de ontologias
❑ Buscadores de ontologias e termos (search engines):
Ontologias no domínio biomédico:
• Bioportal - https://bioportal.bioontology.org/
• Ontology Lookup Service - http://www.ebi.ac.uk/ols/index
• Ontobee - http://www.ontobee.org/ (OBO Foundry)
Ontologias em geral:
• Swoogle Semantic Web Search Engine - http://swoogle.umbc.edu/2006/
• Watson RDF search engine - http://watson.kmi.open.ac.uk/WatsonWUI/
• RDF vocabulary search and lookup - vocab.cc
Conclusão
✔ Conhecemos os elementos que fazem parte de uma ontologia.

✔ Visão geral da OWL e SPARQL.


Próxima aula

❑ Conhecer o pipeline de dados e as principais


atividades do profissional de Engenharia de Dados.
Fundamentos em Engenharia de Dados
Aula 1.6. Pipeline de dados em Big Data

Profª. Fernanda Farinelli


Nesta aula

❑ Entender as etapas básicas existentes no pipeline


de Big Data.

❑ Relação do pipeline de Big Data com a área de


Engenharia de Dados.
Metodologias de Data Mining

❑ KDD - Knowledge Discovery in Databases

❑ SEMMA (by SAS) - Sample, Explore, Modify, Model and Assess

❑ CRISP-DM - Cross Industry Standard Process for Data Mining


Coleta de dados

Modelagem de dados (design)

Armazenamento de dados

Pré-processamento

Integração de dados

Análise de dados (processamento)

Visualização de dados
Pipeline de Engenharia de Dados

Construir todo o pipeline de dados


(data flow): coleta/extração,
processamento/preparação,
armazenamento de dados.

Equipe de
Engenharia de Dados
Pipeline de Engenharia de Dados

Equipe de
Engenharia de
Dados

Dataflow
Coleta de dados

Fontes de dados Tipos de dados

SQL API’s Crawler Aplicações


Scraper

Data Data Data Data


collection extraction acquisition ingestion
Modelagem de dados

Criar um modelo que explique as características


de funcionamento e comportamento dos dados
em um determinado sistema ou aplicação.

O modelo de dados visa facilitar o entendimento


sobre os dados e o projeto de dados, ao
representarem suas características principais.
Armazenamento de dados

Distribuição,
escalabilidade,
armazenamento
Persistência na nuvem
poliglota
Data Warehouse,
SGBDs Data Lake

(SQL, NoSQL,
NewSQL)
Sistemas de
arquivos
distribuídos
Preparação de dados

Padronização e
Enriquecimento normalização

Limpeza Transformação

Integração Combinação
Conclusão
✔ Conhecemos alguns modelos de mineração de dados.

✔ Entendemos qual é o pipeline de dados e quais são os

processos e atividades do professional de Engenharia

de Dados.
Próxima aula

❑ Aprender a atividade de modelagem de dados.


Fundamentos em Engenharia de Dados
Capítulo 2. Modelagem de Dados

Profª. Fernanda Farinelli


Fundamentos em Engenharia de Dados
Aula 2.1. Fundamentos de Bancos de Dados

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o que são sistemas gerenciadores de


bancos de dados.

❑ Entender o que é modelagem de dados e abstração


de dados.
Banco de Conjunto de dados armazenados (persistidos) e inter-relacionados.
dados

Promove a abstração de dados e a independência dos dados em relação às


Sistemas de aplicações, à estratégia de acesso e à forma de armazenamento.
banco de
dados
Sistemas utilizados para gerir os bancos de dados: manter bases de dados e
Sistema dados; garantir a segurança de acesso aos dados, integridade de dados, controle
de concorrência, e tolerância a falhas.
Gerenciador
es de Banco
de Dados

Banco de dados

Usuários
Software e hardware
SGBD
Sistemas gerenciadores de banco de dados

Bancos de dados relacionais

Bancos de dados NoSQL

Bancos de dados NewSQL


Modelagem de dados
Criar um modelo que explique as características de
funcionamento e comportamento dos dados em um
determinado sistema ou aplicação.

Modelo 🡪 Abstração de um objeto ou evento da


realidade. Geralmente representados por diagramas

O modelo de dados visa facilitar o entendimento sobre


os dados e o projeto de dados, ao representarem suas
características principais.
Modelo de dados

•Artefato de representação para descrever


•dados
•relacionamentos entre dados
•semântica dos dados
•restrições impostas aos dados
Abstração de dados
❑ Abstração refere-se ao grau de detalhamento dos objetos ou conceitos
que são descritos no modelo.

Alto Modelo
conceitual
Abstração

Modelo
lógico

Modelo
físico
Baixo
Tipos de modelos

❑ Modelo lógico: descreve as estruturas que estarão contidas no


banco de dados, considerando o modelo de dados do Sistema
Gerenciador de Banco de Dados (SGBD), resultando em um
esquema lógico de dados.

❑ Modelo físico: descreve as estruturas físicas de


armazenamento de dados, tais como: tamanho dos campos,
índices, tipo de preenchimento destes campos etc.
Projeto de banco de dados
1

•Levantamento e
2
•análise de requisitos
•Definir o modelo conceitual
•Definir o modelo
•lógico 3
•Definir o modelo
•físico

4
Conclusão
✔ Entendemos o que são bancos de dados e sistemas

gerenciadores de bancos de dados.


✔ Entendemos a modelagem de dados no âmbito do

processo de concepção de banco de dados e


conhecemos os níveis de abstração de modelos de
dados.
Próxima aula

❑ Estudar o modelo conceitual de dados.


Fundamentos em Engenharia de Dados
Aula 2.2.1. Modelo Conceitual (Parte 1)

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o que é o modelo conceitual.

❑ Conhecer o modelo entidade-relacionamento e seus


principais elementos.
Modelo conceitual
Captura os requisitos de informação e regras de negócio sob o ponto de
vista do negócio ou do usuário.

Representa os conceitos importantes no domínio em análise, bem como as


associações entre esses conceitos.
Modelo entidade-relacionamento (MER)
Definido por Peter Chen em 1976 🡪 teoria relacional de E.F.Cood (1970) - teoria dos
conjuntos.

Uma dada realidade baseia-se no relacionamento entre conceitos desta, os quais


retratam os fatos que governam esta mesma realidade, e que cada conceito
(entidade ou relacionamento) pode possuir atributos (qualificadores desta
realidade).

Principais elementos do MER 🡪 Entidades, Relacionamentos e Atributos.


Entidade
❑ É uma representação concreta ou abstrata de um objeto, com
características semelhantes, do mundo real.

❑ Expressos por substantivos ou verbos substantivado.

Exemplo: Fornecedor, Pessoa, Imóvel, Curso, Faturamento e Venda.

•Entidade forte
•Sua existência independe de outra.

•Entidade fraca
•Sua existência depende da existência de outra entidade, uma entidade
forte.
Entidade
❑ Representação gráfica (Peter Chen):

Entidade Forte Entidade Fraca

Funcionário Dependente

Departamento Itens Pedido

Pedido
Atributo
❑ Propriedades que descrevem as entidades.
Exemplo: Nome da pessoa, data da venda, número da nota fiscal.

❑ Classificação de atributos:

Atributo simples Atributo composto

Atributo chave Atributo opcional

Atributo monovalorado Atributo multivalorado

Atributo derivado
Classificação dos atributos
• Nome
Atributo completo,
idade,
Simples
• gênero,
Endereço,
estado
Nome( civil
Primeiro
Atributo nome,
composto sobrenome
), Telefone
(DDD,
Atributo • Telefones
número)
multivalorad (fixo,
cellular,
o comercial)

Atributo • CPF,
chave Matrícula

Atributo • Qtde. de
dependent
opcional es
• Idade 🡪
pode ser
Atributo obtido a
derivado partir da
data de
nascimento
Atributo
❑ Representação gráfica (Peter Chen):

Atributo simples
Atributo derivado

______ Atributo chave

Atributo composto

Atributo
multivalorado
Entidades e atributos
❑ Representação gráfica (Peter Chen):

parentesco

logradouro cep Dependente nome


número

endereço
código
matricula
Funcionário Departamento nome
nome
Conclusão

❑ Entendemos o que é o modelo conceitual e


conhecemos o modelo entidade-relacionamento e
seus principais elementos.

❑ Conhecemos alguns elementos da notação de


modelagem de Peter Chen.
Próxima aula
❑ Conhecer os relacionamentos entre as
entidades.
Fundamentos em Engenharia de Dados
Aula 2.2.2. Modelo Conceitual (Parte 2)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer os relacionamentos entre entidades.

❑ Entender o que é cardinalidade e obrigatoriedade de


um relacionamento.
Relacionamentos
❑ As entidades são conectadas/relacionadas umas às outras através de
relacionamentos.

❑ Responsável por definir as características das ligações entre as


entidades.

❑ Em geral é expresso por um verbo ou por uma locução verbal.

❑ Restrições dos relacionamentos:


Cardinalidade: 1:1, 1:N, N:1, N:N

Obrigatoriedade: 0 ou 1

Participação: Total ou Parcial


Cardinalidade 1:1 (1..1)
Funcionário Departamento

f1
*
d1
f2
f3 * d2
f4
f5 * d3
f6
f7 * d4
f8
d5
f9 *
Gerencia
Cardinalidade 1:N ou N:1 (1..*)

Fornecedor * Peça

f1 p1
f2
*
f3 * p2
f4
* p3
f5 p4
f6 * p5
Fornece
Cardinalidade N:N (*..*)

Funcionário *
Projeto
*
f1 * p1
f2
f3
* p2
p3
f4 *
p4
f5 *
f6 p5
*
É alocado
Cardinalidade do relacionamento
❑ Cardinalidade: é o número máximo e mínimo de ocorrências de uma entidade,
associada(s) à(s) ocorrência(s) de outra entidade que participa do relacionamento.
1..1 (um para um): cada uma das duas entidades envolvidas referenciam obrigatoriamente
apenas uma unidade da outra. Por exemplo, em um banco de dados de currículos, cada
usuário cadastrado pode possuir apenas um currículo na base, ao mesmo tempo em que
cada currículo só pertence a um único usuário cadastrado.
1..n ou 1..* (um para muitos): uma das entidades envolvidas pode referenciar várias
unidades da outra, porém, do outro lado cada uma das várias unidades referenciadas só
pode estar ligada a uma unidade da outra entidade. Por exemplo, em um sistema de plano
de saúde, um usuário pode ter vários dependentes, mas cada dependente só pode estar
ligado a um usuário principal. Note que temos apenas duas entidades envolvidas: usuário e
dependente. O que muda é a quantidade de unidades/exemplares envolvidas de cada lado.
n..n ou *..* (muitos para muitos): neste tipo de relacionamento cada entidade, de ambos
os lados, podem referenciar múltiplas unidades da outra. Por exemplo, em um sistema de
biblioteca, um título pode ser escrito por vários autores, ao mesmo tempo em que um autor
pode escrever vários títulos. Assim, um objeto do tipo autor pode referenciar múltiplos
objetos do tipo título, e vice-versa.
Relacionamento
❑ Representação gráfica (Peter Chen):
Cardinalidade 1:N ou N:1

possu
Item
Item pedido
pedido 1..N i 1..1
Pedido

Cardinalidade 1:1

1..1 geren 0..1 Departament


Funcionário
cia o

Cardinalidade N:N

0..N É 0..N
Funcionário aloca Projeto
do
Entidades, relacionamento e atributos
❑ Representação gráfica (Peter Chen):

parentesco

0..N
Dependente nome
logradouro cep
número

Possui
endereço
código
matrícula nome
1..1
É
Funcionário alocad Departamento
nome 1..N o 1

telefone
Data idade
nasc.
Conclusão
✔ Conhecer os fundamentos sobre modelo conceitual.
✔ Conhecemos o modelo entidade-relacionamento (MER)
e seus principais elementos.
✔ Conhecemos a notação de Peter Chen para construção
do diagrama entidade-relacionamento.
Próxima aula

✔ Conhecer novas características do modelo


entidade-relacionamento (MER).
Fundamentos em Engenharia de Dados
Aula 2.2.3. Modelo Conceitual (Parte 3)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer novas características do modelo entidade-relacionamento.


Entidades, relacionamento e atributos
❑ Representação gráfica (Peter Chen):

parentesco

0..N Dependente nome


logradouro cep
número

Possui
endereço
código
nome
matrícula
É
Funcionário 1..1 alocad Departamento
1..N o 1
nome
Auto-relacionamento
❑ Relacionamento entre ocorrências de uma mesma entidade
(relacionamento unário).
Gerencia
0..1

0..1 É cônjuge
Funcionário

Pessoa 0..N
É gerenciado
0..1 É cônjuge

0..N compõe

Material

1..N É composto
Grau do relacionamento

❑ Relacionamento binário é aquele envolve duas ocorrências de entidade.

❑ Relacionamento ternário é aquele envolve três conjuntos de entidades.


Entidade associativa
❑ As entidades associativas são o resultados de relacionamentos de
cardinalidade N:N.

0..N Consult 0..N


Médico Paciente
a

0..N É 0..N
Funcionário alocad Projeto
o
Entidade associativa
❑ Podem possuir atributos e relacionamentos próprios.

hora data
CRM nome cpf nome

0..N Consult 0..N


Médico Paciente
a

prescri
ção
nome

Medicamento Principio
ativo
Participação no relacionamento

❑ Especifica se a existência de uma entidade depende dela estar


relacionada com outra entidade através de um relacionamento.
Total: a entidade existe somente quando ela se relaciona com outra entidade

Parcial: a existência de uma entidade independe do fato dela estar


relacionada com outra.

1..1 1
Funcionário depende Dependente

Total Parcial
Generalização/Especialização
❑ Onde uma ou mais entidades possuem parte das características de uma
entidade mais genérica.
Total: para cada ocorrência da entidade genérica, existe sempre uma
ocorrência em uma das entidades especializadas.
Parcial: nem toda ocorrência da entidade genérica possui uma ocorrência
correspondente em uma entidade especializada.
nome
Código nome Matrícula

Cliente Funcionário
t (total) p (parcial)
cpf CRM
rg ISA ISA
cnpj CREFITO

Pessoa física Pessoa jurídica Medico Fisioterapeuta


Generalização/Especialização
❑ Múltipla: nem toda ocorrência da entidade genérica possui uma
ocorrência correspondente em uma entidade especializada.
Exemplos

Matríc
ano ula

Telefone Aluno Endereço


Notação James Martin
Departamento Funcionário
Notação Heuser
Conclusão
✔ Conhecemos mais características do modelo

entidade-relacionamento (MER).

✔ Conhecemos a notações alternativas a de Peter Chen.


Próxima aula
❑ Conhecer o passo a passo para a construir um MER.
Fundamentos em Engenharia de Dados
Aula 2.3.1. Construção do MER (Parte 1)

Profª. Fernanda Farinelli


Nesta aula

❑ Aprender quais as etapas para construir um modelo


entidade-relacionamento.
Construção de um MER

Identifique as possíveis entidade e atributos,


1 substantivos e verbos substantivados

Determine os tipos de cada atributo (chaves,


2 simples, composto, multivalorados, etc.)

Identifique e estabeleça os relacionamentos entre


3 as entidades, verbos ou locuções verbais

Defina as restrições do relacionamentos


4 (cardinalidade, opcionalidade, participação)
Construção de um MER
❑ Companhia de seguros de automóveis: Cada cliente possui um CPF, nome,
sexo, endereço e telefones de contato (celular e fixo). Os carros possuem uma
placa, marca, modelo, ano, chassi e cor. Cada carro tem um número de sinistros
de acidentes associados a ele, sabendo que pode ter ocorrido múltiplos acidentes
ou nenhum. Já os sinistros devem ser identificados por um código único, a data e
hora da ocorrência, local de ocorrência, condutor que pode ou não ser o titular da
apólice. Um cliente pode ter várias apólices (no mínimo uma) vigentes ou não, e
cada apólice de seguro só pertence a um cliente e apenas um carro, e tem a data
de início e fim da vigência, valor total segurado, valor da franquia associadas a
ela. É importante saber que o carro pode ter vária apólices vinculadas a ele, mas
apenas uma vigente.
Identifique as possíveis entidade e atributos,
1 substantivos e verbos substantivados

❑ Companhia de seguros de automóveis: Cada cliente possui um CPF, nome,


sexo, endereço e telefones de contato (celular e fixo). Os carros possuem uma
placa, marca, modelo, ano, chassi e cor. Cada carro tem um número de sinistros
de acidentes associados a ele, sabendo que pode ter ocorrido múltiplos acidentes
ou nenhum. Já os sinistros devem ser identificados por um código único, a data e
hora da ocorrência, local de ocorrência, condutor que pode ou não ser o titular da
apólice. Um cliente pode possuir várias apólices (mínimo uma) vigentes ou não, e
cada apólice de seguro tem um identificador único e só pertence a um cliente e
apenas um carro, e tem a data de início e fim da vigência, valor total segurado,
valor da franquia associadas a ela. É importante saber que o carro pode ter várias
apólices vinculadas a ele, mas apenas uma vigente.
Determine os tipos de cada atributo (chaves,
2 simples, composto, multivalorados, etc.)

❑ Companhia de seguros de automóveis: Cada cliente possui um CPF, nome,


sexo, endereço e telefones de contato (celular e fixo). Os carros possuem uma
placa, marca, modelo, ano, chassi e cor. Cada carro tem um número de sinistros
de acidentes associados a ele, sabendo que pode ter ocorrido múltiplos acidentes
ou nenhum. Já os sinistros devem ser identificados por um código único, a data e
hora da ocorrência, local de ocorrência, condutor que pode ou não ser o titular da
apólice. Um cliente pode possuir várias apólices (mínimo uma) vigentes ou não, e
cada apólice de seguro tem um identificador único e só pertence a um cliente e
apenas um carro, e tem a data de início e fim da vigência, valor total segurado,
valor da franquia associadas a ela. É importante saber que o carro pode ter várias
apólices vinculadas a ele, mas apenas uma vigente.
Identifique e estabeleça os relacionamentos entre
3 as entidades, verbos ou locuções verbais

❑ Companhia de seguros de automóveis: Cada cliente possui um CPF, nome,


sexo, endereço e telefones de contato (celular e fixo). Os carros possuem uma
placa, marca, modelo, ano, chassi e cor. Cada carro tem um número de sinistros
de acidentes associados a ele, sabendo que pode ter ocorrido múltiplos acidentes
ou nenhum. Já os sinistros devem ser identificados por um código único, a data e
hora da ocorrência, local de ocorrência, condutor que pode ou não ser o titular da
apólice. Um cliente pode possuir várias apólices (mínimo uma) vigentes ou não, e
cada apólice de seguro tem um identificador único e só pertence a um cliente e
apenas um carro, e tem a data de início e fim da vigência, valor total segurado,
valor da franquia associadas a ela. É importante saber que o carro pode ter várias
apólices vinculadas a ele, mas apenas uma vigente.
Defina as restrições do relacionamentos
4 (cardinalidade, opcionalidade, participação)

❑ Companhia de seguros de automóveis: Cada cliente possui um CPF, nome,


sexo, endereço e telefones de contato (celular e fixo). Os carros possuem uma
placa, marca, modelo, ano, chassi e cor. Cada carro tem um número de sinistros
de acidentes associados a ele, sabendo que pode ter ocorrido múltiplos acidentes
ou nenhum. Já os sinistros devem ser identificados por um código único, a data e
hora da ocorrência, local de ocorrência, condutor que pode ou não ser o titular da
apólice. Um cliente pode possuir várias apólices (mínimo uma) vigentes ou não, e
cada apólice de seguro tem um identificador único e só pertence a um cliente e
apenas um carro, e tem a data de início e fim da vigência, valor total segurado,
valor da franquia associadas a ela. É importante saber que o carro pode ter várias
apólices vinculadas a ele, mas apenas uma vigente.
Conclusão
✔ Conhecemos as etapas para construir um modelo

entidade-relacionamento (MER).
Próxima aula
❑ Aprender a construir um MER utilizando o software brModelo.
Fundamentos em Engenharia de Dados
Aula 2.3.2. Construção do MER (Parte 2)

Profª. Fernanda Farinelli


Nesta aula

❑ Aprender a construir um modelo entidade-relacionamento


utilizando o software brModelo.
Ferramentas para modelagem
❑ Ferramentas Online:
https://creately.com/pt/lp/ferramenta-de-diagrama-er-online/

https://www.lucidchart.com/pages/pt/exemplos/diagrama-entidade-relacionamento-onlin
e

❑ Desktop: brModelo
Projeto brModelo 3.0 (atual v3.31)
❑ Ferramenta de código aberto e totalmente gratuita voltada para ensino de
modelagem de banco de dados relacionais.
Site do projeto: http://www.sis4.com/brModelo/

Download: http://www.sis4.com/brModelo/download.html
Construção de um MER
Demonstração prática
Conclusão

✔ Aprendemos a construir um MER utilizando o


software brModelo.
Próxima aula

❑ Conhecer o modelo lógico relacional.


Fundamentos em Engenharia de Dados
Aula 2.4.1. Modelo Relacional (Parte 1)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer o modelo lógico do paradigma tecnológico


de banco de dados relacional.

❑ Conhecer os principais elementos de um modelo


relacional de dados.
•Modelo lógico
•Modelo de rede
•Modelo hierárquico
•Modelo relacional
•Modelo orientado a objetos
•Modelo objeto-relacional Descreve a estrutura
•Modelo orientado a grafos do BD conforme um
paradigma tecnológico.
Modelo relacional

Definido por E. F. Codd em 1970, se tornou o modelo


mais usado a partir de meados da década de 1980.

Representa um banco de dados com base na teoria de


conjuntos e como os conjuntos se relacionam.

Em um banco de dados relacional os dados estão organizados


na forma de tabelas, também chamadas de relações
Elementos do modelo relacional
❑ Tabela (relação) é um conjunto não ordenado de linhas (tuplas).
❑ Cada linha é composta por uma série de campos (colunas ou atributos).
❑ Cada atributo é definido conforme um domínio específico.

Atributos, campos ou colunas


Relação ou tabela

Tuplas , linhas
ou registros

Domínio
Numérico Alfanumérico Data
Modelo relacional - Chaves

Chave Primária • Recupera uma única ocorrência do conjunto de dados.


PK Primary key
• Unicidade de valores na coluna que compõe a chave.
• Único e não nulo.

• Recupera uma única ocorrência do conjunto de


Chave única
UK Unique key
dados e pode receber valores nulos.
• Pode ser usada para definer um relacionamento.

• Atributo(s) chave de uma relação, cujos valores estão


Chave estrangeira
FK Foreign key
presente em outra relacionada a ela.
• Implementa o relacionamento entre tabelas.
Modelo relacional - Chaves

Cliente Chave
Única

Chave Alternativa
Chave Primária

Chaves candidatas
Modelo relacional - Chaves
Funcionário Departamento

PK Chave
Estrangeira PK

Funcionário 1..N
É 0.. 1 Departament
lotado o
Conclusão
✔ Conhecemos o modelo relacional de dados e alguns

de seus elementos.
✔ Entendemos o que são e quais são as chaves de um

modelo relacional.
Próxima aula

❑ Conhecer os tipos de restrições de integridade


existentes no modelo relacional.
Fundamentos em Engenharia de Dados
Aula 2.4.2. Modelo Relacional (Parte 2)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer os tipos de restrições de integridade


existentes no modelo relacional.
Restrições de Integridade

••Integridade de unicidade
••Integridade de chave primária

•Integridade semântica

•Integridade de domínio

•Integridade de valores padrão

•Integridade de valores vazios
••Integridade referencial
Restrições de Integridade - Chaves

Integridade de chave primária: Define que os valores da chave


primária e alternativa devem ser únicos e não nulos.
Exemplos: Na relação de funcionário, o ID é único e obrigatório
(Não nulos).

Integridade referencial (Chave estrangeira): Define que os


valores dos campos que aparecem numa chave estrangeira,
devem aparecer na chave primária da tabela referenciada.
Exemplo: Um funcionário só pode estar lotado em um
departamento existente.

Integridade de unicidade (Chave única): Define que o valor do


campo ou campos, são únicos, ou seja, não se repetem.
Exemplo: O CPF do funcionário deve ser único, ou seja, dois
funcionários distintos não podem ter o mesmo CPF.
Restrições de Integridade - Chaves

Funcionário Departamento

PK FK
PK
Integridade Referencial

•Como proceder na FK quando uma operação de atualização ou exclusão de


dados acontecer na PK?
•CASCATA (CASCADE): se alterar a o valor da PK, altera o valor da FK também.
•RESTRITO (RESTRICT): não pode alterar a PK enquanto tiver FK associada a ela.
•DEFINE COMO NULO (SET NULL): se alterar o valor da PK, altera o valor da FK para
NULO.
Integridade Referencial
❑ Restrições de atualização quando altera o dado: CASCATA.

Empregado Departamento
Código Nome
Matrícula CPF Nome codDepto

01035 70103426389 Maria 101 101 Compras

01036 12345678952 José 102 102 Vendas

❑ O código de departamento 101 foi alterado para 100 na tabela


departamento e em cascata, na tabela empregado.
Empregado Departamento
Código Nome
Matrícula CPF Nome codDepto

01035 70103426389 Maria 100 100 Compras

01036 12345678952 José 102 102 Vendas


Integridade Referencial

❑ Restrições de atualização quando altera o dado: RESTRITO.

Empregado Departamento
Código Nome
Matrícula CPF Nome codDepto

01035 70103426389 Maria 101 101 Compras

01036 12345678952 José 102 102 Vendas

❑ O código de departamento 101 não pode ser alterado, pois


existe na tabela Empregado, um empregado associado a este
departamento.
Integridade Referencial
❑ Restrições de atualização quando altera o dado: ALTERA PARA NULO.

Empregado Departamento
Código Nome
Matrícula CPF Nome codDepto

01035 70103426389 Maria 101 101 Compras

01036 12345678952 José 102 102 Vendas

❑ O código de departamento 101 foi alterado para 100 na tabela departamento, e o


correspondente na tabela empregado foi alterado para NULO.
Empregado Departamento
Código Nome
Matrícula CPF Nome codDepto

01035 70103426389 Maria 100 Compras

01036 12345678952 José 102 102 Vendas


Integridade de domínio
❑ Define os valores que podem ser assumidos pelos campos de uma coluna.

Numérico Numérico
Estrutural Alfanumérico Data decimal inteiro, > 0
Integridade de domínio
❑ Define os valores que podem ser assumidos pelos campos de uma coluna.

Solteiro, Casado, Separado


judicialmente, Divorciado,
Viúvo, União estável
FeM
Integridade de vazio
❑ Especifica se os campos de uma coluna podem ou não serem vazios
(nulos).

Obrigatório ou Não nulo Opcional ou Nulo


NOT NULL NULL
Integrigade de valor padrão (default)

❑ Quando o valor do campo não for informado, este campo assume um


valor padrão predeterminado.

Data da abertura
Nacionalidade
do chamado

Se não informada Se não informada


assumir que é “a assumir que é
data de hoje” “Brasileira”
Integridade semântica

❑ Integridade definida pelo usuário: Restrições definidas conforme os


requisitos que delimitam o valor dos dados.

Data Salário

• Data de nascimento, • Nunca pode ser


ou data de cadastro, inferior ao mínimo.
não pode ser • Não pode ser
superior a data de abaixado o salário de
hoje. um funcionário.
Conclusão
✔ Conhecemos os diversos tipos de restrições de

integridade.
− Integridade de unicidade.

− Integridade de chave primária

− Integridade referencial.

− Integridade de domínio.

− Integridade de valores vazios.

− Integridade semântica.

− Integridade de valores padrão.


Próxima aula

❑ Aprender a criar um modelo relacional de dados.


Fundamentos em Engenharia de Dados
Aula 2.4.3. Modelo Relacional (Parte 3)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer os passos para criar um modelo


relacional de dados.
Processo de modelagem
01 Identifique as relações.

Identifique as características que


02 descreve as relações (atributos).

Identifique os atributos-chave e determine


03 os domínio dos atributos.

Determine como as relações se


04 relacionam entre elas (cardinalidade).

05 Identifique as demais restrições de


integridade existentes.
Processo de modelagem
❑ Exemplo de requisito:
Um funcionário pode ser designado para trabalhar em apenas um departamento,
durante a vigência de seu contrato.
Um departamento pode alocar vários funcionários.
Um departamento é supervisionado por apenas um funcionário.
Os funcionários podem ser alocados em múltiplos projetos, com definição de
número de horas de dedicação.
Alguns funcionários podem gerenciar um departamento, mas apenas um.
Cada projeto é de responsabilidade de um único departamento, entretanto, ele
pode ter funcionários de diversos departamentos trabalhando.
Um funcionário pode ser o gerente de um único projeto.
Deve-se saber o nome, sexo, data de nascimento, estado civil, endereço complete
e telefones (fixo e celular) de cada funcionário.
Processo de modelagem
❑ Exemplo de requisito:
Identifique as relações.
Um funcionário pode ser designado para trabalhar em apenas um departamento,
durante a vigência de seu contrato.
Um departamento pode alocar vários funcionários.
Um departamento é supervisionado por apenas um funcionário.
Os funcionários podem ser alocados em múltiplos projetos, com definição de número de
horas de dedicação.
Alguns funcionários podem gerenciar um departamento, mas apenas um.
Cada projeto é de responsabilidade de um único departamento, entretanto, ele pode
ter funcionários de diversos departamentos trabalhando.
Um funcionário pode ser o gerente de um único projeto.
Deve-se saber o nome, sexo, data de nascimento, estado civil, endereço complete e
telefones (fixo e celular) de cada funcionário.
Processo de modelagem
Identifique as
Determine os domínio
características que
de valores dos atributos.
descreve as relações.

❑ Funcionário: Nome (alfanumérico), matrícula (alfanumérico), salário


(numérico decimal), data nascimento (data), departamento etc.

❑ Departamentos: Nome (alfanumérico), código (alfanumérico),


gerente (alfanumérico) etc.
❑ Projeto: Nome (alfanumérico), código (alfanumérico), gerente
(alfanumérico), gerente, funcionários alocados, horas de alocação,
etc.
Processo de modelagem
Identifique os
atributos-chave (chave
primária).

❑ Funcionário: Nome (alfanumérico), matrícula (alfanumérico), salário


(numérico decimal), data nascimento (data), departamento etc.

❑ Departamentos: Nome (alfanumérico), código (alfanumérico), gerente


(alfanumérico) etc.
❑ Projeto: Nome (alfanumérico), código (alfanumérico), gerente
(alfanumérico), gerente, funcionários alocados, horas de alocação, etc.
Processo de modelagem
Determine como as
relações se relacionam
entre elas
(cardinalidade, FK).

Funcionário trabalha em apenas um departamento e um departamento pode


alocar vários funcionários. 🡪 (1:N) e FK ( PK depto em Func).
Departamento é supervisionado um funcionário e Funcionário gerencia
apenas um departamento. 🡪 (1:N) e FK ( PK Func em depto).
Funcionários alocados em múltiplos projetos e projeto tem diversos
funcionários trabalhando. 🡪 (N:N)
Projeto de responsabilidade de um departamento. (1:1)
Processo de modelagem
MER 🡪
Determine como
as relações se
relacionam entre
elas.
0..N 0..N
Alocaçã
Funcionário o Projeto

0..N 1 0..1

designa
gerencia
do
0..1
1

É
Departamento responsá
1 vel
Processo de modelagem
Identifique as
restrições de
integridade
existentes.
❑ Unicidade: matrícula e CPF de funcionário, código do departamento e
do projeto.

❑ Vazio: nome de funcionário e departamento são obrigatórios.

❑ Semântica: a data de nascimento não pode ser superior à data atual.


Conclusão
✔ Aprendemos quais são as etapas necessárias para

criar um modelo relacional de dados.


Próxima aula

❑ Aprender a criar um modelo relacional de dados


utilizando a ferramenta brModelo.
Fundamentos em Engenharia de Dados
Aula 2.4.4. Modelo Relacional (Parte 4)

Profª. Fernanda Farinelli


Nesta aula

❑ Criar um modelo relacional de dados no brModelo.


Demonstração prática
Conclusão

✔ Aprendemos como construir um modelo relacional de dados

utilizando a ferramenta brModelo.


Próxima aula

❑ Entender o que é um sistema gerenciador de banco


de dados do paradigma relacional.
Fundamentos em Engenharia de Dados
Aula 2.5. Sistemas gerenciadores de banco de dados relacionais

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer as principais características de um


sistema gerenciador de banco de dados do
paradigma relacional.
Sistemas gerenciadores de banco de dados

Bancos de dados relacionais

Bancos de dados NoSQL

Bancos de dados NewSQL


SGBDs Relacionais
Fundamentado na teoria de conjuntos e nas relações
entre os conjuntos: Operações de junção, união e
seleção.

Implementa o modelo relacional de dados.

Principal SGBD para persistência de dados


estruturados.
SGBDs Relacionais
❑ Principal linguagem de acesso e manipulação é o SQL.

❑ Quatro categorias de operações de dados: Criação, Leitura, Atualização


ou Exclusão (em inglês, Create, Read, Update, Delete – CRUD).

❑ Commit e Rollback: Operações de confirmação das operações CRUD e


de retorno ao estado anterior.

❑ Implementa os elementos:
Tabelas, colunas, chaves (PK, FK, UK), relacionamentos (FK), índices, visões.

Triggers, Stored procedures (procedimentos), Funções.


SGBDs Relacionais
❑ Conceito de transação: unidade de trabalho executada dentro de um
SGBD.
Exemplo: Transação bancário de transferência de valores entre contas.
Onde será transferido R$ 100 da conta B para a conta A.

Conta A Conta B
Conta A Conta B
R$ 50,00 R$
R$ 50 R$ 300
300,00
+ R$ 100 - R$100
R$ 150 R$ 200

R$ 100
Propriedades de transação ACID
Transação é
Atomi uma unidade Ou se faz
cidad atómica de tudo,
processament ou nada.
e o.
Uma
Os dados
Consi estarão
transação leva
de um estado
stênci sempre
consistente a
consistentes e
a completos.
outro estado
consistente.
Uma
Cada
Isola transação
transação é
começa após
mento realizada de
o término da
forma isolada.
outra.
As alterações O dado deve
Durab causadas por durar, estar
uma transação salvo, ele não
ilidade devem ser deve ser
persistidas. perdido.
SGBDs Relacionais
Conclusão
✔ Conhecemos as principais características de um SGBD do paradigma

relacional.
Próxima aula

❑ Entender o que é um modelo físico.

❑ Conhecer detalhes do modelo de dados relacional físico.


Fundamentos em Engenharia de Dados
Aula 2.6. Modelo de Dados Físico

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o que é um modelo físico.

❑ Conhecer detalhes do modelo de dados relacional


físico, considerando o SGBD MySQL.
Modelo físico

Descreve, por meio de alguma linguagem, como


será feita a armazenagem no banco.

Considera o SGBD que será usado, levando em


consideração o paradigma tecnológico.

Detalha os componentes da estrutura física do


banco, como tabelas, campos, tipos de valores,
índices, visões, etc.
Modelo físico

• Modelo hierárquico
• IMS e Adabas (IBM)
• DMSII (Unisys)

• Modelo relacional
• Oracle
• SQL Server
• DB2
• MySQL

• Modelo orientado a objetos


• Caché
• Jasmine.

• Modelo de grafos (ontologias)


• Neo4j
Modelo relacional físico
❑ Em geral, é descrito por um script escrito utilizando a linguagem SQL (Structured Query
Language).

❑ Define objetos como:


Tabelas, índices, visões (views)

Relacionamentos

Colunas (atributos) 🡪 Tipos de dados

Chaves e restrições de integridade

❑ Incorpora as especificidades de cada SGBD


Exemplo de objetos de dados:
• Materialized view 🡪 Existe apenas no Oracle, PostgreSQL e SQL Server.

• Auto-incremento 🡪 Não existe no Oracle, é feito via SEQUENCE..


Diferenças entre tipos de dados

MySQL
SQL Server
Conclusão
✔ Entendemos o que é um modelo físico.
Próxima aula

❑ Conhecer a ferramenta case MySQL Workbench.


Fundamentos em Engenharia de Dados
Aula 2.7. Instalação do MySQL Workbench e MySQL Server

Profª. Fernanda Farinelli


Nesta aula

❑ Aprender a instalar a ferramenta case MySQL Workbench e o


MySQL Server no Windows 10.
Ferramentas CASE
❑ CASE (do inglês Computer-Aided Software Engineering).

❑ Ferramentas que auxiliam atividades de engenharia de software.


DBDesigner (Download: http://fabforce.eu/dbdesigner4/).
brModelo
MySQL Workbench (Download: https://dev.mysql.com/downloads/workbench/)
DBeaver (Download: https://dbeaver.io/download/ )
ER/Studio (Idera Software).
ERwin Data Modeler (CA Technologies).
Ferramentas on-line:
❑ www.lucidchart.com.
❑ https://creately.com/.
Demonstração prática
Conclusão
✔ Instalamos a ferramenta case MySQL Workbench e o MySQL

Server no Windows 10.

✔ Para instalação em outros sistemas operacionais veja o tutorial

disponibilizado no modulo.
Próxima aula

❑ Aprender a realizar a modelagem de dados utilizando a


ferramenta case MySQL Workbench e criar um esquema de
banco de dados.
Fundamentos em Engenharia de Dados
Aula 2.8.1. Modelagem de Dados No MySQL Workbench (Parte 1)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer o MySQL Workbench e sua funcionalidade para modelagem


de dados.

❑ Aprender a realizar a modelagem de dados utilizando a ferramenta


case MySQL Workbench.
Diagrama do modelo relacional
Demonstração prática
Conclusão
✔ Conhecemos o MySQL Workbench e sua funcionalidade para

modelagem de dados.

✔ Aprendemos a realizar a modelagem de dados utilizando a ferramenta

case MySQL Workbench.


Próxima aula

❑ Criar o banco de dados utilizando a ferramenta case


MySQL Workbench e o modelo que criamos.
Fundamentos em Engenharia de Dados
Aula 2.8.2. Modelagem de Dados No MySQL Workbench (Parte 2)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer a funcionalidade do MySQL Workbench para criar seu


banco de dados no SGBD MySQL Server.
Demonstração prática
Conclusão
✔ Aprendemos a criar o banco de dados a partir do modelo de dados

utilizando a ferramenta case MySQL Workbench.


Próxima aula

❑ Conhecer a linguagem SQL usada na manipulação


de dados de bases de dados relacionais.
Fundamentos em Engenharia de Dados
Capítulo 3. Linguagem SQL

Profª. Fernanda Farinelli


Fundamentos em Engenharia de Dados
Aula 3.1. Introdução à Linguagem SQL

Profª. Fernanda Farinelli


Nesta aula

❑ Apresentar a linguagem de consulta estruturada


usada na criação de bancos de dados e na
manipulação de dados.
Linguagem de consulta estruturada
• Structured Query Language (SQL).
• Linguagem comercial usada fundamentalmente em SGBDs
relacionais:
• Padrão ISO desde a década de 80.
• A razão do sucesso dos bancos de dados relacionais e da linguagem
SQL se deve ao fato de existir um modelo matemático formal, que
serviu de base para seu desenvolvimento.
• Sua base formal é a álgebra relacional e a teoria dos conjuntos.

• Não é apenas uma linguagem de consulta.


Data Definition Language CREATE

DDL ALTER

Data Query Language DROP


Structured Query
Language
DQL SELECT

INSERT
SQL
DML
UPDATE
Data Manipulation Language
DELETE

GRANT
DCL
REVOQUE
Data Control Language
• Linguagem de Definição de Dados:

DDL • É um conjunto de instruções usado para criar e modificar as estruturas


dos objetos armazenados no banco de dados.

• Linguagem de Consulta de Dados:

DQL • É um conjunto de instruções usado para consultar dados nas estruturas


dos objetos armazenados no banco de dados.

• Linguagem de Manipulação de Dados:

DML • É um conjunto de instruções usada nas consultas e modificações dos


dados armazenados nas tabelas do banco de dados.

• Linguagem de Controle de Dados:

DCL • São usados para controle de acesso e gerenciamento de permissões


para usuários em no banco de dados.

• Linguagem de Controle de Transações:

DTL • São usados para gerenciar as mudanças feitas por instruções DML.
• Permite as declarações serem agrupadas em transações lógicas.
Conclusão
✔ Visão geral da linguagem SQL.
Próxima aula

❑ Conhecer a linguagem de definição de dados.


Fundamentos em Engenharia de Dados
Aula 3.2.1. Linguagem de Definição de Dados (Parte 1)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer a linguagem de definição de dados do


SQL.
Linguagem de definição de dados

Data Definition Language (DDL)

Subconjunto de comandos para criação e manutenção de objetos


de banco de dados.

• Esquemas, tabelas, índices, chaves, colunas, visões, restrições de


integridade etc.
Linguagem de definição de dados
• CREATE objeto:
• Cria um objeto (uma Tabela, por exemplo) no banco de dados.

• ALTER objeto:
• Altera a estrutura ou a configuração de um objeto no banco de dados.

• DROP objeto:
• Exclui um objeto do banco de dados.

• Objetos podem ser:


• DATABASE, TABLE, INDEX, CONSTRAINT (PRIMARY KEY, FOREING KEY,
UNIQUE KEY), ROLE, USER, PROCEDURE, FUNCTION, TRIGGER e VIEW.

• Existem variações entre fabricantes de SGBDs.


Linguagem de definição de dados

CREATE ALTER DROP


objeto: objeto: objeto:
Altera a
Cria um objeto
estrutura ou a Exclui um
(uma Tabela,
configuração objeto do
por exemplo)
de um objeto banco de
no banco de
no banco de dados.
dados.
dados.
Linguagem de definição de dados
❑ Alguns comandos da DDL:

• CREATE TABLE
• ALTER TABLE TABELA
• DROP TABLE

• CREATE VIEW
• ALTER VIEW VISÃO
• DROP VIEW

• CREATE INDEX
• ALTER INDEX ÍNDICE
• DROP INDEX
• ...
Criar um banco de dados
❑ Criação de um BD 🡪 CREATE DATABASE <nome_BD>;

Exemplo: CREATE DATABASE empresa;

❑ Exclusão de um BD 🡪 DROP DATABASE <nome_BD>;

Exemplo: DROP DATABASE empresa;

• OBS: Exclui tudo, BD e todos os objetos de dados abaixo dele.


Cláusula IF NOT EXIST
❑ Não podemos criar bancos de dados com nomes iguais.

❑ Se tentarmos criar um banco de dado chamado ‘Exemplo’, que já exista,


será exibida a mensagem:
Can´t create databases ‘Exemplo’. Database exists.

Não é possível criar o banco de dados ‘Exemplo’. Banco de dados já


existente.

❑ Para evitar esse erro, usamos a cláusula IF NOT EXIST:

CREATE DATABASE IF NOT EXIST <nome_BD>;


Trabalhando com tabelas

01 CREATE TABLE 02 ALTER TABLE


Define a estrutura da
Permite modificar a
tabela, criando a tabela
definição da tabela.
vazia.

03 DROP TABLE
04 TRUNCATE TABLE
Elimina apenas os
Elimina a tabela, e
dados da tabela
seus dados.
(esvazia).
CREATE TABLE
❑ Criar uma tabela, definir colunas e restrições.

CREATE TABLE tabela (


atrib1 tipo [<restrições da coluna 1>],
atrib2 tipo [<restrições da coluna 2>],
....
atribn tipo [<restrições da coluna n>],

<restrições da tabela>
);
CREATE TABLE

Restrições de Restrições de
colunas tabela

• NOT NULL • PRIMARY KEY


• DEFAULT valor • UNIQUE
• CHECK(condição) • FOREIGN KEY
Tipos de dados básicos

❑ CHAR(tamanho): sequência de caracteres de tamanho fixo.

❑ VARCHAR(tamanho): sequência de caracteres de tamanho


variável.

❑ NUMBER(total, decimais): valores numéricos.

❑ DATE: data e hora.


Tipos de dados - MySQL
CREATE TABLE - Sintaxe
CREATE TABLE tabela (

atrib1 tipo [(tamanho)] [NOT NULL | DEFAULT valor]

[CHECK (condição)],

atrib2 tipo [(tamanho)] [NOT NULL | DEFAULT valor]

[CHECK (condição)],
...

[CONSTRAINT nome da restrição] PRIMARY KEY (<atributos chave primária>),

[CONSTRAINT nome da restrição] UNIQUE (< atributos chave candidata>),

[CONSTRAINT nome da restrição] FOREIGN KEY (<atributos chave estrangeira>)

REFERENCES tabelaRef [(<chave primária>)]


[ON DELETE CASCADE | SET NULL | SET DEFAULT]
[ON UPDATE CASCADE | SET NULL | SET DEFAULT],
[CONSTRAINT nome da restrição] CHECK (condição)
);
Exemplos DDL - MySQL
Exemplos DDL - MySQL
ALTER TABLE
❑ Incluir/alterar/remover definições de colunas e restrições.

ALTER TABLE tabela <ação>;


▪ Onde <ação>:
- ADD novoAtrib tipo [<restrições de coluna>]
- ADD [CONSTRAINT nome] <restrição de tabela>
- DROP atributo [CASCADE | RESTRICT]
- DROP CONSTRAINT nome
- ALTER atributo DROP DEFAULT;
- ALTER atributo SET DEFAULT <valor>;
ALTER TABLE
ALTER TABLE nome_tabela
ADD [COLUMN] nome_atributo_1 tipo_1 [{RIs}]
[{, nome_atributo_n tipo_n [{RIs}]}]
|
MODIFY [COLUMN] nome_atributo_1 tipo_1 [{RIs}]
[{, nome_atributo_n tipo_n [{RIs}]}]
|
DROP COLUMN nome_atributo_1
[{, nome_atributo_n }]
|
ADD CONSTRAINT nome_RI_1 def_RI_1
[{, nome_RI_n def_RI_n}]
|
DROP CONSTRAINT nome_RI_1
[{, nome_RI_n}]
|
[ADD|DROP] [PRIMARY KEY ...|FOREIGN KEY ...]
Exemplo no MySQL
Exemplos DDL - MySQL
TRUNCATE TABLE
❑ Exclui todas as linhas de uma tabela da base de dados, mantendo a
tabela vazia.
TRUNCATE TABLE <nome tabela>;
Considere a tabela cliente e seus dados, conforme imagem abaixo:

Tabela
Cliente

Para limpar os dados da tabela, execute: TRUNCATE TABLE


cliente;
▪ O resultado será a tabela vazia:
Tabela Cliente
Exemplos de DDL no MySQL
DROP TABLE
❑ Exclui uma tabela da base de dados.

DROP TABLE tabela [CASCADE | RESTRICT];

▪ Onde:
▪ CASCADE: todas as visões e restrições que referenciam a tabela, são
removidas automaticamente.
▪ RESTRICT: a tabela é removida somente se não for referenciada em
nenhuma restrição ou visão.

❑ Exemplo MYSQL
Trabalhando com índices
❑ Criar um índice:
CREATE INDEX <nome do índice>
ON tabela <coluna(s)>;

Exemplo no MySQL:
Trabalhando com índices
❑ Excluir um índice (varia conforme o SGBD):
MYSQL: ALTER TABLE table_name DROP INDEX index_name;

SQLServer: DROP INDEX table_name.index_name;

Oracle e DB2: DROP INDEX index_name;

❑ Exemplo no MySQL:
Trabalhando com visões
❑ Criar uma visão (view):

CREATE VIEW <nome da view> AS


<commando DQL>;

❑ Excluir uma visão (view):

DROP VIEW <nome da view>;


Conclusão
✔ Conhecemos a linguagem de definição de dados do

SQL e seus principais comandos.


✔ Aprendemos a criar, alterar e excluir objetos do

banco de dados.
Próxima aula

❑ Praticar os comandos DDL (CREATE, ALTER e


DROP) no MySQL, utilizando a ferramenta MySQL
Workbench.
Fundamentos em Engenharia de Dados
Aula 3.2.2. Linguagem de Definição de Dados (Parte 2)

Profª. Fernanda Farinelli


Nesta aula

❑ Praticar os comandos DDL (CREATE, ALTER e


DROP) no MySQL, utilizando a ferramenta MySQL
Workbench.
Aprender a criar tabelas e índices.

Aprender a alterar tabelas.

Aprender a excluir tabelas.


Criar modelo por engenharia reversa
Conclusão
✔ Realizar os comandos DDL no MySQL, utilizando a

ferramenta MySQL Workbench.


Próxima aula

❑ Aprender a manipular dados utilizando a linguagem


SQL.
Fundamentos em Engenharia de Dados
Aula 3.3.1. Linguagem de Manipulação de Dados (Parte 1)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer a linguagem de manipulação de dados do


SQL.

❑ Aprender como incluir, excluir e alterar dados nas


tabelas do banco de dados.
Linguagem de manipulação de dados

• Data manipulation language (DML).

• Parte da linguagem SQL que define operações de manipulação


de dados:
• Inclusão / inserção (INSERT).

• Alteração (UPDATE).

• Exclusão (DELETE).
Linguagem de manipulação de dados

❑ Inclusão ou inserção de dados:


INSERT INTO nome_tabela [(lista_atributos)]
VALUES (lista_valores_atributos)
[, (lista_valores_atributos)]
❑ Alteração de dados:
UPDATE nome_tabela
SET nome_atributo_1 = Valor
[{, nome_atributo_n = Valor}]
[WHERE condição]
❑ Exclusão de dados:
DELETE FROM nome_tabela [WHERE condição]
Linguagem de manipulação de dados
Inclusão ou inserção de dados:

• INSERT INTO nome_tabela [(lista_atributos)]


VALUES (lista_valores_atributos)[,
(lista_valores_atributos)]

Alteração de dados:

• UPDATE nome_tabela
• SET nome_atributo_1 = Valor
• [{, nome_atributo_n = Valor}]
• [WHERE condição]

Exclusão de dados:

• DELETE FROM nome_tabela [WHERE condição]


Linguagem de manipulação de dados
Inclusão ou inserção de dados:

INSERT INTO nome_tabela [(lista_atributos)]


VALUES (lista_valores_atributos)[,
(lista_valores_atributos)]

Alteração de dados:

UPDATE nome_tabela
SET nome_atributo_1 = Valor [{, nome_atributo_n = Valor}]
[WHERE condição]

Exclusão de dados:

DELETE FROM nome_tabela [WHERE condição]


Exemplos MySQL
Exemplos MySQL
Conclusão
✔ Conhecemos os comando da linguagem SQL para

incluir, excluir e alterar dados nas tabelas do banco


de dados.
Próxima aula

❑ Usar o MySQL Workbench para realizar alguns


comandos de manipulação de dados.
Fundamentos em Engenharia de Dados
Aula 3.3.2. Linguagem de Manipulação de Dados (Parte 2)

Profª. Fernanda Farinelli


Nesta aula

❑ Usar o MySQL Workbench para realizar alguns


comandos de criação de objetos e de manipulação
de dados.
Aula prática e expositiva
Conclusão
✔ Conhecemos as funcionalidades do MySQL

Workbench para manipular (incluir, alterar e excluir)


dados do banco de dados utilizando a linguagem
DML do SQL.
Próxima aula

❑ Conhecer a linguagem de consulta de dados.


Fundamentos em Engenharia de Dados
Aula 3.4. Linguagem de Controle de Acesso a Dados

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer a linguagem de controle de acesso a


dados.
Linguagem de Controle de Acesso a Dados

Data Control Language (DCL)

Manter a segurança interna do banco de dados e seus objetos de dados


protegendo contra acessos não autorizados.

Permite conceder e revogar permissões de acesso a objetos do banco de


dados para usuários.
Definindo papéis (roles)
❑ CREATE ROLE: Cria um novo papel.
CREATE ROLE <role>[,<lista de roles>];

❑ DROP ROLE: Exclui um papel.


DROP ROLE <role>[,<lista de roles>];
Definindo usuários
❑ CREATE USER: Cria um novo usuário.
CREATE USER <usuario>[@<hostname>]
IDENTIFIED BY PASSWORD(<senha>)];

❑ DROP USER: Exclui um usuário.

DROP USER <usuario>[@<hostname>];


Definindo permissões
❑ GRANT: concede privilégios para usuário/role.

GRANT <lista de privilegios> ON <objeto>


TO <lista de usuários/roles>
[WITH GRANT OPTION] [GRANTED BY grantor];

Onde:
▪ Lista de usuários/roles: pode ser um conjunto separado por vírgulas ou PUBLIC.
▪ O garantidor (grantor) é o usuário corrente (CURRENT_USER) ou o papel
(CURRENT_ROLE), é opcional no comando.
▪ WITH GRANT OPTION 🡪 Pode propagar a permissão.
Definindo permissões

• REVOKE: revoga privilégios para usuário/role.

REVOKE [GRANT OPTION FOR]


<lista de privilegios> ON objeto
FROM <usuários/roles> [RESTRICT|CASCADE] ;
Definindo permissões
❑ O proprietário de um objeto também tem todos os privilégios
em relação a esse objeto.

❑ Objetos:
TABLE
DOMAIN
COLLATION
CHARACTER SET
TRANSLATION
TYPE
SEQUENCE (no Oracle)
Definindo permissões
❑ Lista de privilégios:

ALL PRIVILEGES
SELECT
DELETE
INSERT [(column-name [, column-name]...)]
UPDATE [(column-name [, column-name]...)]
REFERENCES [(column-name [, column-name]...)]
EXECUTE
USAGE
UNDER
TRIGGER
Definindo permissões
❑ Algumas funções de gerenciamento de banco de dados:

INSERT, SELECT, UPDATE, DELETE (relacionada à DML)

REFERENCES: permissão do uso da integridade referencial.

EXECUTE: Permissão para executa funções e procedimentos.

USAGE: Permissão para domínios, conjuntos de caracteres, collations e


translations.

UNDER: Quando tratamos tipos definidos pelo usuário.

TRIGGER: autorização para executar uma trigger.


Exemplo no MySQL
Exemplo no MySQL
Conclusão
✔ Conhecemos os principais comandos da linguagem

de controle de acesso a dados.


Próxima aula

❑ Conhecer a ferramenta para administração, criação


e manipulação de SGBDs chamada DBeaver.
Fundamentos em Engenharia de Dados
Aula 3.5. Utilizando a Ferramenta DBeaver

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer a ferramenta para administração, criação


e manipulação de SGBDs chamada DBeaver.
Prática com a ferramenta DBeaver
Conclusão
✔ Conhecemos o DBeaver e suas possibilidades de

administração, criação e manipulação de SGBDs.


Próxima aula

❑ Construção e manipulação de bancos de dados na


nuvem.
Fundamentos em Engenharia de Dados
Aula 3.6. Trabalhando com Banco de Dados Relacional na Nuvem

Profª. Fernanda Farinelli


Nesta aula

❑ Construção e manipulação de bancos de dados na


nuvem.

❑ Criar um banco de dados relacional na Amazon


AWS.
Prática com AWS
Conclusão
✔ Criamos um banco de dados relacional na Amazon

AWS.
✔ Conectamos nossa ferramenta DBeaver para acessar

este banco de dados.


Próxima aula

❑ Conhecer a linguagem DQL para realizar consultas


nos bancos de dados relacionais.
Fundamentos em Engenharia de Dados
Capítulo 4. Linguagem de consulta de dados

Profª. Fernanda Farinelli


Fundamentos em Engenharia de Dados
Aula 4.1. Selecionando Dados

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer a Linguagem de Consulta de Dados.


Linguagem de Consulta de Dados
Data query language (DQL)

SELECT 🡪 Comando de consulta


• retorno ⇒ tabela resultado (multiconjunto – potencialmente um conjunto com repetições)

Sintaxe básica (consulta em uma única tabela):

SELECT <lista de atributos> ou SELECT * FROM <tabela>


FROM <tabela>

Significa que são todas


as colunas
Linguagem de Consulta de Dados

❑ Exemplo no MySQL:
❑ Listar os dados da tabela gênero.
Linguagem de Consulta de Dados

• Exemplo no MySQL:
• Listar a descrição da tabela gênero.
Linguagem de Consulta de dados

❑ Valores não duplicados (distintos)

❑ Valores ordenados
Linguagem de Consulta de dados
❑ Exemplo no MySQL: Listar as diferentes descrições existentes na
tabela gênero.
Linguagem de Consulta de dados
❑ Exemplo no MySQL: Listar ordenado.
Linguagem de Consulta de dados

• Operadores Aritméticos: São responsáveis pela execução de operações


matemáticas simples.
+ Adição
- Subtração
* Multiplicação
/ Divisão
Linguagem de Controle de dados

• Exemplo no MySQL:
Conclusão
✔ Conhecemos a sintaxe básica da linguagem de
consulta a dados.

✔ Aprendemos como selecionar dados não repetidos e


a ordenar os dados.
Próxima aula

❑ Filtrar os dados da consulta de acordo com os


valores de colunas.
Fundamentos em Engenharia de Dados
Aula 4.2. Filtrando Dados

Profª. Fernanda Farinelli


Nesta aula

❑ Filtrar os dados da consulta de acordo com os


valores de colunas.
Linguagem de Consulta de dados

❑ Filtros de seleção (condição)


Linguagem de Consulta de dados
❑ Exemplo no MySQL: Listar os dados apenas dos clientes que moram no
estado do Ceará.
Linguagem de Consulta de dados
❑ Exemplo no MySQL: Listar os dados apenas dos clientes que NÃO moram
no estado do Ceará.
Linguagem de Consulta de dados

❑ Filtros de valor nulo


Linguagem de Consulta de dados
❑ Exemplo no MySQL: Listar os dados apenas dos clientes cujo débito é
NULO ou ausente.
Linguagem de Consulta de dados
❑ Exemplo no MySQL: Listar os dados apenas dos clientes cujo débito
NÃO é NULO.
Linguagem de Consulta de dados

❑ Combinação de múltiplos filtros (condições)


❑ Utiliza combinações dos operadores AND e OR
Linguagem de Consulta de dados
❑ Listar apenas os clientes cujo débito não é nulo E moram no estado do
Ceará.

❑ Listar apenas os clientes cujo débito não é nulo OU moram no estado do


Ceará.
Linguagem de Consulta de dados
❑ Operador BETWEEN: seleciona valores dentro de um intervalo
de valores.
Exemplo no MySQL: Listar os clientes cujo débito esta entre 500 e
1000.
Linguagem de Consulta de dados
❑ Operador LIKE:
compara partes de uma sequência de caracteres

atributo LIKE ‘%string%’


• % compara qualquer substring (número arbitrário de caracteres)
atributo LIKE ‘_string_ _’
• _ compara qualquer caractere
comparação case-sensitive

❑ Observação: Alguns SGBDs usam * ao invés de %


Linguagem de Consulta de dados
❑ Exemplo no MySQL:
Listar os dados onde o nome da cidade que inicia com a letra ‘A’.

Listar os dados onde o nome do cliente termina com ‘Silva’.


Linguagem de Controle de dados

❑ Exemplo no MySQL:
Listar os dados onde no endereço exista a preposição ‘de’
Linguagem de Consulta de dados

❑ Operadores Relacionais: São utilizados quando precisamos fazer


comparações entre dois valores.

> Maior que


< Menor que
= Igual a
<> Diferente de
>= Maior ou igual a
<= Menor ou igual a
Conclusão
✔ Conhecemos a sintaxe básica da linguagem de
consulta a dados.

✔ Aprendemos como selecionar dados não repetidos e


ordenar os dados.
Próxima aula

❑ Filtrar os dados da consulta de acordo com os


valores de colunas.
Fundamentos em Engenharia de Dados
Aula 4.3. Funções de Agregação

Profª. Fernanda Farinelli


Nesta aula

❑ Filtrar os dados da consulta de acordo com os


valores de colunas.
Linguagem de Consulta de dados
❑ Funções de agregação
Mínimo Máximo

Contagem Média

Somatório
Linguagem de Consulta de dados

❑ Exemplo no MySQL:

1. Existem quantos clientes cadastrados?

2. Existem quantos clientes cadastrados onde o valor do débito foi


informado?

1 2
Linguagem de Consulta de dados
❑ Exemplo no MySQL:

Listar o valor do menor e maior débito, da média do débito e o somatório


do débito.
Linguagem de Consulta de dados

❑ Agrupamento e Filtros em funções de agrupamento


Linguagem de Consulta de dados

❑ Exemplo no MySQL:
Listar o estado, o valor máximo e o valor mínimo do débito para cada estado.
Linguagem de Consulta de dados
❑ Exemplo no MySQL:
1. Listar o estado, média do valor do débito, e o somatório do débito para cada
estado.

2. Em cada estado, existem quantos clientes cadastrados? Para quantos


clientes o valor do débito foi informado?

1 2
Linguagem de Consulta de dados
❑ Exemplo no MySQL:
1. Listar o estado e a média do valor do débito para cada estado.

2. Listar o estado e a média do valor do débito para cada estado quando esta
média for superior a 100.

1 2
Linguagem de Consulta de dados
❑ Exemplo no MySQL:
1. Listar o estado e o valor máximo do débito para cada estado onde este valor
máximo for inferior a 700.

2. Listar o estado e o valor mínimo do débito para cada estado onde este valor
mínimo for superior a 0.

1 2
Conclusão
✔ Conhecemos a Linguagem de Consulta de Dados.

✔ Aprendemos alguns dos principais parâmetros e


funções que podem ser usados para realizar a
consulta de dados nas tabelas do banco de dados.
Próxima aula

❑ Aprender a realizar consultas utilizando múltiplas


tabelas que possuem relacionamento entre elas.
Fundamentos em Engenharia de Dados
Aula 4.4. Consultas com múltiplas tabelas

Profª. Fernanda Farinelli


Nesta aula

❑ Aprender a realizar consultas em múltiplas tabelas


que possuem relacionamento entre elas.
Junções
Junções (joins, em inglês) são consultas SQL usadas para
recuperar dados de várias tabelas.

As operações de junção tomam duas relações e retornam como


resultado outra relação.

Esta relacionado ao conceito de FK, pois em geral, a junção se dá


por meio dela.
Junções
❑ Existem diferentes tipos de JOINs no SQL:
(INNER) JOIN: Retorna registros que possuem valores correspondentes nas
duas tabelas.
LEFT (OUTER) JOIN: Retorna todos os registros da tabela a esquerda e
registros correspondentes da tabela a direita.
RIGHT (OUTER) JOIN: Retorna todos os registros da tabela da direita e os
registros correspondentes da tabela da esquerda.
FULL (OUTER) JOIN: Retorna todos os registros quando houver uma
correspondência na tabela esquerda ou direita.
Junções
Junções
❑ Considere as tabelas a seguir:

DEPARTAMENTO FUNCIONARIO
(INNER) JOIN
❑ Retorna apenas as linhas em ambas as tabelas que possuam o campo de
relacionamento com o mesmo valor.

SELECT column_name(s)
FROM table1 INNER JOIN table2
ON table1.column_name = table2.column_name
(INNER) JOIN
LEFT (OUTER) JOIN

• Retorna todas as linhas da primeira tabela relacionada no join (esquerda).


Quando a linha listada não possuir equivalência na tabela a direita, tais colunas
aparecerão com valores nulos.

SELECT column_name(s)
FROM table1 LEFT JOIN table2
ON table1.column_name = table2.column_name
LEFT (OUTER) JOIN
RIGHT (OUTER) JOIN

• Retorna todas as linhas da tabela relacionada no join (direita). Quando a linha


listada não possuir equivalência na tabela a esquerda, tais colunas aparecerão
com valores nulos.

SELECT column_name(s)
FROM table1 RIGHT JOIN table2
ON table1.column_name = table2.column_name
RIGHT (OUTER) JOIN
FULL (OUTER) JOIN

• Retorna todas as linhas quando há uma correspondência nos registros da


tabela esquerda ou direita.

SELECT column_name(s)
FROM table1 FULL JOIN table2
ON table1.column_name = table2.column_name
FULL (OUTER) JOIN
Conclusão
✔ Aprendemos a realizar consultas em múltiplas
tabelas.

✔ Conhecemos os diferentes tipos de junções (JOINS).


Próxima aula

❑ Aprender a realizar consultas com tabelas


aninhadas.
Fundamentos em Engenharia de Dados
Aula 4.5. Consulta com tabelas aninhadas

Profª. Fernanda Farinelli


Nesta aula

❑ Aprender a realizar consultas aninhadas.


Consultas Aninhadas (Nested Queries)
❑ Não correlacionadas – independentes
Exemplo: selecionar nome e nusp dos alunos com a idade mais alta

select nome, nusp from aluno


where idade IN
(select max(idade)
from aluno)
Consultas Aninhadas
❑ Nested Queries

❑ Pode-se desenvolver comandos sofisticados a partir de comandos


simples, utilizando-se subconsulta (subqueries).

❑ Sintaxe:
SELECT <lista de colunas>
FROM <tabela ou lista de tabelas>
WHERE <coluna> operador subquery;
• Operadores: IN, NOT IN, EXISTs, NOT EXIST, ALL, SOME, ANY, e os
operadores aritméticos (>, <, =, etc.).
Consultas Aninhadas
❑ Considere as tabelas a seguir:

DEPARTAMENTO FUNCIONARIO
Consultas Aninhadas

• Exemplo no MySQL: Quais os departamentos que possuem funcionários


cadastrados?
Consultas Aninhadas

• Exemplo no MySQL: Quais os departamentos que não possuem


funcionários cadastrados?
Consultas Aninhadas

• Exemplo no MySQL: Quais os funcionário que possuem salário acima da


média do salário de todos os funcionários?
Conclusão
✔ Entendemos como podemos usar subconsultas ou
consultas aninhadas.
Próxima aula

❑ Realizar consultas na práticas utilizando o MySQL


Workbench.
Fundamentos em Engenharia de Dados
Aula 4.6. Prática DQL no MySQL Workbench

Profª. Fernanda Farinelli


Nesta aula

❑ Usar o MySQL Workbench para realizar alguns


comandos de consulta de dados.
Atividade prática
Conclusão
✔ Conhecemos as funcionalidades do MySQL
Workbench para consultar dados no banco de dados
utilizando a linguagem DQL do SQL.
Próxima aula

❑ Realizar consultas na práticas utilizando o DBeaver.


Fundamentos em Engenharia de Dados
Aula 4.7. Prática DQL no DBeaver

Profª. Fernanda Farinelli


Nesta aula

❑ Usar o Dbeaver para realizar alguns comandos de


consulta de dados.
Atividade prática
Conclusão
✔ Conhecemos as funcionalidades do MySQL
Workbench para consultar dados no banco de dados
utilizando a linguagem DQL do SQL.
Próxima aula

❑ Aprender o que é um Data warehouse e aprender a


realizar a modelagem dimensional.
Fundamentos em Engenharia de Dados
Capítulo 5. Data warehouse e modelagem dimensional

Profª. Fernanda Farinelli


Fundamentos em Engenharia de Dados
Aula 5.1. Dados e tipos de dados

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer o que é data warehouse.

❑ Conhecer o que é data mart.

❑ Entender o conceito de granularidade em data


warehouses.

❑ Entender o processo de extração, transformação e


carga.
Conclusão
✔ Conhecemos o que são data marts e data

warehouses.
✔ Entendemos o conceito de granularidade em data

warehouses.
✔ Entendemos o processo de extração, transformação

e carga
Próxima aula

❑ Conhecer o que é o processo de data warehousing


e seus componentes.
Fundamentos em Engenharia de Dados
Aula 5.2. Introdução ao data warehousing

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer o que é o processo de data warehousing


e seus componentes.
Nesta aula

❑ Entender o que é o processo de data warehousing.

❑ Entender o que é data warehouse e data mart.

❑ Entender o processo de extração, transformação e


carga.

❑ Entender o que é OLAP (Online Analytical


Processing).
Data warehouse

Orientado
por Integrado
assunto

Dados
Não volátil
históricos

(W.H. Inmon)
Data warehouse

É uma base de dados que facilita a execução de consultas de apoio à


decisão (W.H. Inmon).

Fornece uma imagem global da realidade do negócio a partir de suas


operações.

Exibe informações em níveis apropriados e variados de detalhes.

Otimizar o processamento de consultas complexas.


Data Mart

Visão setorial para tratar um assunto específico (área) ou diferentes


níveis de sumarização.

Atende às necessidades de informações de uma determinada


comunidade de usuários. (William Immon, 1992).
Data warehouse versus Data Mart

Data marts são subconjuntos departamentais focados em


assuntos selecionados.
Data warehouse versus Data Mart

Data marts são subconjuntos departamentais focados em


assuntos selecionados.
Data Warehousing
Data Warehousing é o processo de extrair dados de sistemas
transacionais e transformá-los em informação organizada em um
formato amigável.
Dados de Sistemas Data Warehouse Dados no
Operacionais Ambiente Analítico
(OLTP) (OLAP)
Extração, Transformação e Carga (ETC)

Fontes de dados ETC/ETL Data warehouse

ETL 🡪 Extract Transform Load


Extração, Transformação e Carga (ETC)

Extração Transformação Carga

Processo de
Processo de Processos de
carregamento ou
coleta ou padronização,
inclusão dos
aquisição dos limpeza,
dados nos
dados nas fontes enriquecimento,
respectivos
de dados combinação dos
repositórios de
disponíveis. dados
dados.
Componentes do Data Warehousing
Área de Área de
Ferramentas
Fontes
de Dados Preparação Armazenamento de Acesso

Staging
OLAP
Legado
ETL / ETC

Data
Warehouse
Externa
ODS

Operacional Data Marts

Repositório de Metadados
ETL, Staging e ODS
• ETL: Processo responsável pela conversão dos dados do ambiente operacional para o de
suporte à decisão, que realiza acesso, extração, transformação, validação e carga dos
dados.

• Staging Area: Chamada por Inmon como “camada de integração e transformação”, é uma
área de tratamento, padronização e transformação das informações operacionais para
carga na arquitetura de dados BI (DW, ODS, DM).

• Operational Datastore (ODS): (Armazenamento de dados operacional) É uma base de


dados integrada, volátil, de valores correntes, e que contém somente dados detalhados.
Também pode ser entendido como uma visão integrada do mundo operacional.
Normalmente sua construção adota bases de dados relacionais.
• Os dados são armazenados em um ODS através de ferramentas de softwares ETL, que
extraem dados de banco de dados de diversas origens e coloca no ODS, de forma
integrada.
OLTP versus OLAP

OLTP (Online Transaction OLAP (Online Analytical


Processing) Processing)

Finalidade é ajudar no
Finalidade é controlar e
planejamento, resolução de
executar tarefas
problemas e suporte à
empresariais fundamentais.
decisão.
Dados operacionais, atuais, Dados de consolidação,
refletem o presente. históricos.

São a fonte original dos Originários de vários bancos


dados. de dados OLTP.
Visão multidimensional
❑ Forma pela qual analistas de negócio, gerentes e executivos
analisam informações.
Conclusão
✔ Conhecemos o que é o processo de data

warehousing e seus componentes.


Próxima aula

❑ Entender o que é OLAP (Online Analytical


Processing).
Fundamentos em Engenharia de Dados
Aula 5.3. Online Analytical Processing

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o que é OLAP (Online Analytical


Processing).
A metáfora do cubo
❑ A razão de se utilizar um cubo é para transmitir a ideia de múltiplas
dimensões.
Qtde
Estado Ano vendida

Produto
o Qtde
An vendida

Desodorante
Produto

Banana
Arroz

Café
Estado

95 200 120 262


195 200 100 128
Produto

SP

RJ
Estado

MG

2014
ES 2015 o
2016 n
A
O cubo e o OLAP

Produto
Membros

Desodorante
Banana
Arroz Dimensões

Café
95 200 120 262
195 200 100 128

SP

Medidas
RJ
Estado

MG
2014
2015
ES
o

2016
An
Arquiteturas OLAP
• Relational On Line Analytical Processing
ROLAP • Utiliza BD relacional para armazenar seus dados e processar suas consultas.

• Multidimensional On Line Analytical Processing


MOLAP • Utiliza a tecnologia de BD Dimensional para armazenar seus dados e processar
suas consultas.

• Hybrid On Line Analytical Processing


HOLAP • São ferramentas hibridas (ROLAP e MOLAP), escalabilidade de ROLAP e o alto
desempenho do MOLAP.

• Desktop On Line Analytical Processing


DOLAP • Consulta origina no desktop para o servidor, que retorna um macro-cubo, para ser
analisado.

• Web On Line Analytical Processing


WOLAP • Consulta origina via um navegador web para o servidor, que retorna o cubo
processado, para ser analisado.
Conclusão
✔ Entendemos o que é OLAP (Online Analytical

Processing).
Próxima aula

❑ Conhecer os elementos do modelo dimensional de


dados.

❑ Aprender a criar um modelo dimensional.


Fundamentos em Engenharia de Dados
Aula 5.4.1. Modelo dimensional de dados (Parte 1)

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer o que é o modelo dimensional de dados e


seus componentes.
Modelagem dimensional

É uma das técnicas e conhecimentos mais utilizados e mais importantes para


modelar o Data Warehouse.

Técnica que busca apresentar os dados em um modelo padronizado e intuitivo, que


permita o entendimento por parte de usuários, bem como alto desempenho de
acesso. (Ralph Kimball)

Em geral, o modelo físico é implementado em SGBDs relacionais.

Forma de modelagem onde as informações se relacionam de maneira que podem ser


representadas metaforicamente como um cubo.
Visão de dimensões
Elementos do Modelo dimensional

Assuntos ou fatos que Variáveis ou


serão analisados dimensões de análise

Medidas a analisar
sobre o assunto
conforme as variáveis
Fato

ASSUNTO ou acontecimento de negócio que serão analisados.

É tudo aquilo que reflete a evolução dos negócios do dia a dia de uma
organização.

Acontecimento merecedor de análise e controle na organização.

• Exemplos de Fato: Vendas, Crimes,


Dimensão

Variáveis que exercem influência sobre um fato.

Os diferentes “pontos de vista” de análise de um acontecimento.

• Exemplos:
• QUEM é executou o acontecimento.

• ONDE acontece.

• QUANDO acontece.
Métricas
❑ São as medidas associadas a um determinado fato ou assunto.

❑ Exemplos de Fato e suas métricas:


Venda 🡪 valor total de vendas.

Venda 🡪 Quantidade de unidades de produtos vendidas.

Criminalidade 🡪 Número de crimes que acontecerem.

A quantidade de unidades em estoque.


Métricas
Exemplo
❑ Fato: Criminalidade
Um fato é evolutivo, ou seja, muda suas medidas com o tempo.

❑ Métrica: Quantidade de Ocorrências.

❑ Dimensões: Tipo de crime, ano da ocorrência


Um fato é analisado a partir de uma de um ponto de vista ou dimensão de análise.

Ocorrência 2017 2018 2019


“Os índices de
Assalto à mão armada 123 109 158
criminalidade aumentaram
nos últimos dois anos” Furtos em residências 75 90 101
Furtos de veículos 243 250 332
Assassinatos 89 77 167
Estupros 2 24 69
Granularidade em Data warehouse

Granularidade 🡪 Nível de detalhe (grão)

Nível de detalhe ou de resumo contido nas unidades de dados


existentes no fato em análise.
Granularidade em Data warehouse

Granularidade 🡪 Nível de detalhe (grão)

Maior Menor
granularidade granularidade

Menor detalhe Maior detalhe


Granularidade em Data warehouse
Alta

Menor Maior
detalhamento detalhamento
Exemplos: Exemplos:

•Vendas por mês •Vendas por dia/hora

•Faturamento anual •Faturamento mensal

Baixa
Exemplo - Granularidade
Ocorrência 2017 2018 2019
Assaltos à mão armada 123 109 158
Maior

Furtos em residências 75 90 101


Furtos de veículos 243 250 332
Assassinatos 89 77 167
Estupros 2 24 69

Ocorrência 1º sem 2º sem 1º sem 2º sem 1º sem 2º sem


2017 2017 2018 2018 2019 2019
Assaltos à mão armada 50 73 45 64 70 88
Furtos em residências 40 35 60 30 71 30
Furtos de veículos 121 123 120 130 165 167
Menor
Assassinatos 40 49 37 40 67 100
Estupros 2 0 14 10 30 39
Conclusão
✔ Conhecemos o que é o modelo dimensional de dados

e seus componentes.
Próxima aula

❑ Aprender a construir um modelo dimensional de


dados.
Fundamentos em Engenharia de Dados
Aula 5.4.2. Modelo dimensional de dados (Parte 2)

Profª. Fernanda Farinelli


Nesta aula

❑ Aprender a construir um modelo dimensional de


dados.
Componentes do Modelo Dimensional

o
ensã
Dim
Loja Métricas
Vendas
Temp
Loja Produto Und. $
o
Produto

Fato
Tempo
Esquema de representação

O quê?
Dimensões
de análise

Onde? FATO Quando?

Quem?
Esquema de representação

O quê?
Produto ❑ Compra é o fato em análise e as
dimensões de análise do fato são:
Tempo (Quando?)
Onde? Quando?
Filial Compra Tempo Filial(Onde?)
Cliente (Quem?)

Produto (O quê?)
Quem?
Cliente
Esquema Estrela ou Star Schema
Modelo Estrela
Esquema Flocos de Neve ou Snowflake
Ma
is
de
tal
he

e
ad
rid
ula
an
Gr
Me
no
sd
eta
lhe
Modelo floco de neve
Star Schema X Snow Flake

Star Schema Snow Flake

Performance + -

Armazenamento - +

Simplicidade + -
Etapas da modelagem dimensional
Entender os requisitos de análise.

Identificar os fatos ou assuntos que devem ser


analisados.

Identificar que métricas apoiam a análise do fato.

Definir o nível de detalhamento da análise


(granularidade).

Identificar quais as variáveis ou dimensões de


análise.
Descobrindo Fatos e Dimensões
❑ Que processo/acontecimento estamos modelando? (Fato)
❑ Emissão de Cartões.

❑ O que usamos para medir este processo? (Métrica)


❑ Ex.: Quantidade de cartões emitidos.

❑ A métrica será analisada POR qual perspectiva? (Dimensão)


❑ Região, Agencia, Mês.

❑ A que nível esta métrica é significativa? (Granularidade)


❑ Quantidade DIÁRIA ou MENSAL.
❑ Quantidade por região, estado ou cidade.
❑ Quantidade por agência ou banco.
Descobrindo Dimensões
❑ Geralmente as dimensões são derivadas das perguntas do usuário após
entendimento das métricas.
❑ Dado um Fato e uma métrica, a métrica é medida POR qual variável de
análise?

❑ Reescreva a pergunta do usuário utilizando as seguinte forma:


❑ Métrica POR dimensão POR dimensão...

❑ Exemplo:
❑ Quais foram as vendas no período de junho a julho deste ano na região sul?

❑ Valor das vendas POR período POR região.


Modelo lógico dimensional

Dimensão Fato Vendas Dimensão


Loja Produto
pk_tempo
pk_loja pk_produto pk_produto
nome_loja pk_loja nome_produto
preco_venda fabricante
endereço
unidades_venda
cidade preco_custo
estado
Conclusão
✔ Conhecemos os diferentes modelos dimensionais.

✔ Modelo estrela e modelo floco de neve.

✔ Entendemos como identificar fatos, métricas e

dimensões.
Próxima aula

❑ Construir um modelo dimensional.


Fundamentos em Engenharia de Dados
Aula 5.5. Prática: Modelo dimensional de dados

Profª. Fernanda Farinelli


Nesta aula

❑ Construir um modelo dimensional.


Atividade prática
❑ Instituto Nacional de Meteorologia.
O Instituto Nacional de Meteorologia tem cerca de 1000 estações meteorológicas,
que estão espalhadas por diferentes zonas em terra e no mar. Sabe-se que existe
pelo menos uma zona para cada região do país e cada região pode conter mais de
uma zona.
Cada estação meteorológica recolhe dados básicos sobre as condições
atmosféricas em cada hora, incluindo: pressão atmosférica, temperatura e
precipitação.
Normalmente, estas informações são pesquisadas tanto pelas zonas quanto pelas
regiões, com intervalos de tempo variados.
Conclusão
✔ Criamos um modelo de data warehouse (data mart)

utilizando o MySQL Workbench.


Próxima aula

❑ Conhecer as diferentes operações OLAP


(Online Analytical Processing).
Fundamentos em Engenharia de Dados
Aula 5.6. Operações OLAP

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer as operação OLAP (Online Analytical


Processing).
Drill down X Drill (Roll) Up

• alto nível 🡪 baixo nível


Drill down • ocorre quando o usuário aumenta o nível de
detalhe da informação, diminuindo o grau de
granularidade.

• baixo nível 🡪 alto nível


Roll up • ocorre quando o usuário diminui o nível de
detalhe da informação, aumentando o grau de
granularidade.
Drill down X Drill (Roll) Up

Roll Up

Drill Down
Drill down X Drill (Roll) Up
Roll up

Drill down
Drill down X Drill (Roll) Up
❑ A operação de roll up não é limitado pelo grão máximo. Os dados
podem ser agregados mesmo após se chegar a este limite superior.
❑ A operação de drill down é limitado pelo grão mínimo.

A partir de um ESTADO é possível


identificar a REGIÃO que ele pertence.

A partir de um ESTADO não é possível


identificar a CIDADE que ele pertence.
Drill Across e Drill Through

• Envolve mais do que uma tabela de fato ou


esquema.
Drill Across
• Devem existir dimensões compartilhadas entre
estes esquemas.

• Envolve um pesquisa em um nível mais baixo


do que o data mart permite, e que esta
Drill through
presente no seu modelo
operacional/transacional.
Drill Across e Drill Through

Drill Across

Drill through
Slice X Dice

• Análise de apenas uma fatia.

Slice Restringe os valores de uma


dimensão, mas não diminui a
cardinalidade do cubo.

• Reduz as dimensões ou a

Dice cardinalidade de um cubo por meio da


eliminação de uma ou mais
dimensões..
Slice X Dice

❑ Fatiar e Cortar o cubo separando partes de um cubo [INMOM,


1999].

❑ Seleciona partes específicas de um cubo.

❑ Consiste na rotação do cubo, possibilitando a combinação de


quaisquer dimensões.
Slice

❑ Slice: Corte do cubo e análise somente da fatia. (Plano)

❑ SELEÇÃO: WHERE estado = Rio Grande do Norte.


Dice
❑ Dice: Mudança da perspectiva (rotação do cubo).
Operações Analíticas
Conclusão
✔ Conhecemos as operação OLAP (Online Analytical

Processing).
Próxima aula

❑ Entender o que é um data hub e conhecer os


conceitos relacionados.
Fundamentos em Engenharia de Dados
Aula 5.7. Data hub, data lake, data pond

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o que são data hubs.

❑ Entender o que são data lakes, data swamps e data


ponds.

❑ Entender a diferença entre data lake, data swamp e


data pond.
Data hub

Repositório de dados organizado, governado, a fim de permitir distribuição e


compartilhamento destes dados.

O objetivo é integrar os diferentes silos de dados em uma única plataforma


arquitetural.
Repositórios de dados

Data
Data silo Data mart
warehouse

Data lake Data pond Data swamp


Data Lake (lago de dados)
Termo criado pelo CTO (Chief Technical Officer) do Pentaho, James
Dixon.

Descreve um repositório dos diversos dados da empresa, independente


do tipo de dados (estruturados, semiestruturados e não estruturados).

Data Lakes são “plataformas de gerenciamento de dados em toda a


empresa para analisar fontes de dados diferentes em seu formato nativo”
(Gartner).
Data Lake (lago de dados)

Os dados são armazenado no estado bruto, ou seja, sem


tratamento

Os dados são tratados quando usados e conforme a necessidade


do uso.

Os dados inseridos são atrelados a metadados (tags) para


identificação, localização e uso (análise).
Data lake
Data swamps
Data lakes não governados, gerenciados.

Os dados são de baixa qualidade e sem contexto.

Metadados ausentes ou mínimos.


Data pond

Uma série de repositórios isolados de dados brutos em seu


formato nativo.

Usados como um local intermediário temporário para


informações brutas importadas apenas.

Os dados são normalmente adicionados a um data lake.


Data river

Remete a ideia de fluxo de dados fluindo em tempo real.

Indica que a triagem e o monitoramento precisam ocorrer no


fluxo.

Dados que se “movimentam”, como por exemplo, streamings, ou


mesmo dados transacionais, onde as decisões são tomadas
durante o evento.
Data warehouse versus Data lake
ETC 🡪 DW versus Data lake

E E
T C
C T

Fonte: http://www.cienciaedados.com/data-lake-a-fonte-do-big-data/
Conclusão
✔ Conhecemos o que data hubs, data lakes, data

swamps e data ponds.


Próxima aula

❑ Conhecer o Amazon Redshift.


Fundamentos em Engenharia de Dados
Aula 5.7. Prática: Amazon Redshift

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer o Amazon Redshift.


Atividade prática
Conclusão
✔ Criamos um modelo de data warehouse (data mart)

utilizando o Amazon Redshift.


Próxima aula

❑ Conhecer os modelos de banco de dados NoSQL.


Fundamentos em Engenharia de Dados
Capítulo 6. Modelos de persistência NoSQL

Profª. Fernanda Farinelli


Fundamentos em Engenharia de Dados
Aula 6.1. Fundamentos dos SGBDs NoSQL

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o que são bancos de dados NoSQL.

❑ Conhecer algumas ferramentas disponíveis.


Motivação ao NoSQL

Escalabilidade de
armazenamento e
Volume processamento

Modelos flexíveis de
armazenamento
Variedade
Big
Data Elevado grau de
disponibilidade
Velocidade

Consulta com baixa latência


Bancos de dados NoSQL

NoSQL é um termo genérico que define bancos de dados não


relacionais.

Fornecem recursos eficientes para armazenamento de grandes volumes


de dados estruturados e não estruturados.
Características
Escalabilidade Horizontal

• Consiste em aumentar o número de máquinas disponíveis.


• Inviável em modelos relacionais devido a concorrência.
• Nos modelos NoSQL não existe bloqueios, esse tipo de escalabilidade é
a mais viável.

Esquema flexível

• Permite uma fácil aplicação da escalabilidade e também um aumento na


disponibilidade dos dados.
• Devido a essa ausência, não há garantia da integridade dos dados.
Características

Suporte a replicação

• Permitem a replicação de uma forma nativa o que provém uma


escalabilidade maior e também uma diminuição do tempo gasto para a
recuperação de informações.

Nem sempre consistentes

• Os bancos de dados NoSQL nem sempre conseguem se manter


consistentes.
Teorema CAP

Consistência
• Todos os clientes enxergam os mesmos dados.
(consistency)

Disponibilidade • Todos os clientes acessam alguma versão dos


(availability) dados.

Tolerância a Partição • O banco pode ser dividido em múltiplos


(partition tolerance) servidores.
Teorema CAP
❑ Não é impossível garantir essas três propriedades ao mesmo tempo.

❑ É possível garantir quaisquer duas dessas propriedades ao mesmo


tempo.

Consistência
(consistency)

Tolerância a
Partição Disponibilidade
(partition (availability)
tolerance)
Abordagem pessimista.
Sistemas que demandam forte É garantido o retorno do dado
consistência e baixa. mais atualizado/consistente
Exemplos: MongoDB, HBase, armazenado, logo após ter sido
Redis, BigTable, Memcache. escrito.

Consistência Abordagem otimista.


Sistemas que demandam forte
(Consistency) consistência e altíssima disponibilidade.
Exemplos: SQL Server, Oracle, Postgre,
MySQL e outros banco de dados
relacionais.
CP CA
NA
Tolerância a
Falhas Disponibilidade
(Partition PA (Availability) Todas as requisições recebem
Tolerance) uma resposta, mesmo que seja
inconsistente.

O sistema continua
operando, mesmo que Consistência Eventual.
aconteça alguma falha Sistemas que demandam alta disponibilidade,
(quebra de conectividade). escalabilidade e tolerância a falhas(particionamento).
Exemplos: Cassandra, Riak, CouchDB, DynamoDB.
Propriedades BASE
Basically Basicamente
Available Disponível

Estado Leve ou
Soft state flexível

Eventual Eventualmente
consistency Consistente

Uma aplicação funciona basicamente todo o tempo,


não tem de ser consistente todo o tempo
e o sistema torna-se consistente no momento devido.
ACID versus BASE
Relacional versus NoSQL

Fonte: http://datascienceacademy.com.br/blog/quando-utilizar-rdbms-ou-nosql/
Conclusão
✔ Entendemos o que é o SGBD NoSQL.

✔ Conhecemos as propriedades BASE (Basically

Available, Soft state, Eventual consistency) e o


teorema CAP (consistency, availability, partition
tolerance).
Próxima aula

❑ Conhecer os tipos ou categorias de SGBDs NoSQL.


Fundamentos em Engenharia de Dados
Aula 6.2. Categorias de SGBDs NoSQL

Profª. Fernanda Farinelli


Nesta aula

❑ Conhecer os tipos de SGBDs NoSQL.

❑ Conhecer algumas ferramentas disponíveis.


Categorias de Bancos de Dados NoSQL
Seu esquema não é orientados a

Chave-valor
Colunar
(key-value)
tabelas

Orientado a Orientados
documentos por grafos
Armazenamento por chave-valor
(key-value)

Armazenamento sem esquema definido

Dados não estruturados ou estruturados

Dado ou valor acessado por chave única


SGBDs NoSQL chave-valor
Armazenamento orientado a documentos

Estrutura de dados como coleções de documentos

Documentos são conjuntos de atributos e valores

São baseados em JSON ou XML.


Armazenamento orientado a documentos
❑ Modelo orientado a documentos.

DBIGTI
Esquema de Banco de
Dados (DBIGTI) Estado Usuário Filme

{ { {
Estado _id:123 _id:12325 _id:13258
Nome: São Paulo Nome: Fernanda Nome: Cinderela
Sigla: SP Estado: 45987 }
} Filmes
{ {
{ { _id:12345
_id:45987 Nome: Fargo
Usuário Filme: 12345
Nome: Minas Gostou: Sim Duracao: 2:55
Gerais } }
Sigla: MG {
} Filme: 17925 {
{ Gostou: Não _id:17925
_id:87789 } Nome: Tubarão
Filme
Nome: Bahia } Ano: 1975
} } }
SGBDs NoSQL orientado a documentos
Armazenamento em coluna ou colunar

Estrutura de dados como colunas pré-definidas

A chave aponta para um conjunto de colunas

Famílias de colunas e arrays de colunas


SGBDs NoSQL colunar
Armazenamento orientados por grafos

Estruturas de dados conforme a teoria dos grafos

Os nós armazena dados, as arestas armazenam


relacionamentos e ambos possuem atributos

Atributos formato chave-valor


Armazenamento orientados por grafos
SGBDs NoSQL orientados por grafos
Quando utilizar cada modelo?
Conclusão
✔ Conhecemos as diferentes categorias de SGBD

NoSQL e os SGBDs disponíveis para cada categoria.


Próxima aula

❑ Conhecer o SGBD NoSQL MongoDB que é


orientado a documentos.
Fundamentos em Engenharia de Dados
Aula 6.3. Instalando o MongoDB e o MongoDB Compass

Profª. Fernanda Farinelli


Nesta aula

❑ Instalar o MongoDB e o MongoDB Compass.

❑ Configurar o DBeaver para conectar no seu


MongoDB local.
Download

❑ Download instalador MongoDB.

❑ Download instalador MongoDB Compass.


MongoDB Server
❑ Download:
− https://www.mongodb.com/try/download/community

❑ Manual de instalação:
− https://docs.mongodb.com/manual/installation/
MongoDB Compass
❑ Gerenciador gráfico.

❑ Download e instalação:
− https://www.mongodb.com/products/compass
Conclusão
✔ Aprendemos a instalar o MongoDB e o MongoDB

Compass.
✔ Aprendemos a configurar o DBeaver para conectar

no seu MongoDB local.


Próxima aula

❑ Conhecer um ambiente em nuvem do MongoDB.


Fundamentos em Engenharia de Dados
Aula 6.4. Conhecer o MongoDB Atlas

Profª. Fernanda Farinelli


Nesta aula

❑ Vamos conhecer o ambiente do MongoDB Atlas,


ambiente de nuvem do MongoDB.
MongoDB Atlas

❑ MongoDB em nuvem
− https://www.mongodb.com/cloud

❑ Sugestão de leitura:
− https://medium.com/reprogramabr/conectando-no-banco-de-dados-cloud-mongodb-atl
as-bca63399693f#:~:text=Primeiro%20passo%20%C3%A9%20criar%20uma,%2C%2
0pois%20demora%20para%20carregar
Atividade prática
Conclusão
✔ Conhecemos o ambiente do MongoDB em nuvem.
Próxima aula

❑ Conhecer o MongoDB e suas funcionalidades.


Fundamentos em Engenharia de Dados
Aula 6.5.1. Conhecendo o MongoDB (Parte 1)

Profª. Fernanda Farinelli


Nesta aula

❑ Vamos conhecer o ambiente Shell do MongoDB.

❑ Aprender a importar e exportar dados com o


MongoDB.
Documentação MongoDB

❑ Documentação completa dos commando Shell:

− https://docs.mongodb.com/manual/reference/method/
Atividade prática
Import e Export

❑ Documentação completa do mongoimport:


− https://docs.mongodb.com/manual/reference/program/mongoimport/

❑ Documentação completa do mongoexport:


− https://docs.mongodb.com/manual/reference/program/mongoexport/
Importar coleções
❑ Clique no menu “Collection” (1º) e em seguida no submenu “Import
Data” (2º).
Exportar coleções
❑ Clique no menu “Collection” e em seguida no submenu “Export
Collection”.
Atividade prática
Importar um arquivo JSON via Shell

mongoimport --host=127.0.0.1 --db igtidb --collection students


--type json --file C:\DB\students.json
Atividade prática
Conclusão
✔ Conhecemos o ambiente do MongoDB Shell e

Compass.
✔ Aprendemos a importar e exportar dados no

MongoDB.
Próxima aula

❑ Configurar o MongoDB em nuvem.


Fundamentos em Engenharia de Dados
Aula 6.5.2. Conhecendo o MongoDB (Parte 2)

Profª. Fernanda Farinelli


Nesta aula

❑ Vamos conhecer os principais comandos CRUD do


MongoDB.
Documentação MongoDB

❑ Para conhecer todos os comandos CRUD acesse:


− https://docs.mongodb.com/manual/crud/

− CRUD (Create, Read, Update, Delete)


• Em português é Inserir, Consultar, Alterar e Excluir.

❑ Comparação comandos MongoDB X comandos SQL:


− https://docs.mongodb.com/manual/reference/sql-comparison/
Atividade prática
Conclusão
✔ Conhecemos os principais comandos CRUD do

MongoDB.
Próxima aula

❑ Exemplo prático de coleta de dados em bases de


dados NoSQL utilizando a linguagem Python e o
SGBD MongoDB.
Fundamentos em Engenharia de Dados
Aula 6.6. Exemplo utilizando a linguagem Python para manipular dados no MongoDB

Profª. Fernanda Farinelli


Nesta aula

❑ Exemplo prático de coleta de dados em bases de


dados NoSQL utilizando a linguagem Python e o
SGBD MongoDB.
MongoDB e Python
❑ Leitura e escrita de dados no SGBD MongoDB utilizando a linguagem
Python.
− Pacotes Python: pymongo
Instalação do pacote pymongo
❑ Instalar os pacotes via Anaconda (prompt) usando os comandos abaixo:
conda install -c wakari pymongo
Atividade prática
Conclusão
✔ Exemplo prático de coleta de dados em bases de

dados NoSQL utilizando a linguagem Python e o


SGBD MongoDB.
Próxima aula

❑ Conhecer os SGBDs NewSQL.


Fundamentos em Engenharia de Dados
Aula 6.7. Banco de Dados NewSQL

Profª. Fernanda Farinelli


Nesta aula

❑ Entender o que é banco de dados NewSQL.

❑ Conhecer algumas ferramentas disponíveis.


Bancos de Dados NewSQL

Estende o modelo relacional para arquiteturas distribuídas

Os dados são previamente definidos e em geral são estruturados

SQL é o principal mecanismo de interação de aplicativos

Mantém o suporte ACID para transações


Bancos de Dados NewSQL

Incorpora escalabilidade horizontal dos NoSQL

Adotam um mecanismo de controle de concorrência sem bloqueio para


maximizar a disponibilidade

Propiciam alto desempenho de consultas

Promovem mecanismos de replicação e particionamento


SGBDs NewSQL
Comparativo SQL, NoSQL e NewSQL

❑ ACID (atomicidade, consistência, isolamento, durabilidade), garantindo estabilidade, segurança


e integridade.
❑ BASE (Basically Available, Soft state, Eventual consistency - Basicamente disponível, estado
suave, consistência eventual) prioriza disponibilidade ao invés de consistência.
Conclusão
✔ Conhecemos algumas características dos SGBDs

NewSQL.
Próxima aula

❑ Conhecer algumas técnicas de Coleta de Dados.


Fundamentos em Engenharia de Dados
Capítulo 7. Modelos de persistência NoSQL

Profª. Fernanda Farinelli


Fundamentos em Engenharia de Dados
Aula 7.1. Visão geral dos principais tipos de análise de dados

Profª. Fernanda Farinelli


Nesta aula
❑ Entender os principais tipos de análise de dados.
Análise de Dados

Permite a extração de informações valiosas a partir dos dados.

Estuda os princípios, Visa encontrar uma


Identificar as
métodos e sistemas forma eficiente de
possibilidades de
computacionais para conhecimento (padrões)
converter dados brutos
extrair conhecimento de em (grandes) conjuntos
em conhecimento
dados (fluxos) de dados

Busca compreender o Busca identificar novas


comportamento de oportunidades de
pessoas negócio
Tipos de Análise de Dados

Análise Análise
descritiva diagnóstica

Análise Análise
preditiva prescritiva
Tipos de Análise de Dados

Análise Análise Análise Análise


descritiva diagnóstica preditiva prescritiva

Por que O que


O que aconteceu? O que devo fazer?
aconteceu? acontecerá?
Análise
prescritiva

ão
v i s
Pre Análise
preditiva
VALOR (ROI)

Futuro
ti v a
e c
s p Análise
t r o
Re diagnóstica

Análise
descritiva
Passado

COMPLEXIDADE
Conclusão
✔ Entendemos a importância da análise de dados.

✔ Conhecemos os principais tipos de análise de

dados.

− Análise descritiva;

− Análise diagnóstica;

− Análise preditiva;

− Análise prescritiva.
Próxima aula

❑ Entender o que é Web mining e Text mining.


Fundamentos em Engenharia de Dados
Aula 7.2. Visão geral: Web mining e Text mining

Profª. Fernanda Farinelli


Nesta aula
❑ Entender o que é Web mining e Text mining.
Web de dados

Documentos
sem
padronização
Enorme
quantidade de
informação
Distribuído e
em constante
evolução
Enorme volume
de acesso
Dados não
estruturado e
semiestruturado
Dados
Interligados
Web Mining

• Aplicação de técnicas de Mineração de Dados para descoberta


de padrões na Web.

• Motivações:
− Encontrar informação relevante;

− Gerar conhecimento a partir da informação disponível na Web;

− Personalizar a informação;

− Aprender sobre consumidores ou usuários individuais.


Web Mining

Aplicação de técnicas de Mineração de Dados para


descoberta de padrões na Web

Encontrar Aprender sobre


Gerar novos Personalizar a
informação comportamento
conhecimentos informação
relevante dos usuários
Taxonomia do Web Mining

Mineração de
dados na Web

Mineração Mineração Mineração


de Conteúdo da estrutura de uso da
da Web da Web Web

Mineração de Mineração de Mineração de Rastreamento


Conteúdo de Resultados da Padrão de de uso
Página da Web Pesquisa Acesso Geral personalizado
Taxonomia do Web Mining
Mineração de
Conteúdo de Página
da Web
Mineração de
Conteúdo da Web
Mineração de
Resultados da
Pesquisa
Mineração de Mineração da
dados na Web estrutura da Web
Mineração de Padrão
de Acesso Geral
Mineração de uso da
Web
Rastreamento de uso
personalizado
Abordagens de Web Mining

Extração de conhecimento do conteúdo de páginas e suas descrições


01
Mineração de conteúdo

Obtenção de conhecimento a partir da organização da web e da


referência cruzada de ligações
02
Mineração de estrutura

Geração de padrões interessantes com o uso dos registros de acesso

03 da web
Mineração de uso
Mineração de conteúdo

• Extração de conhecimento do conteúdo de páginas e suas


descrições.
− Inclui a Mineração de texto (text mining).

• Exemplos de aplicação:
− Máquinas de busca (Google, Bing, etc.);
− Classificação de textos;
− Detecção e acompanhamento de evento;
− Extração de regras.
Mineração de estrutura
• Tenta descobrir o modelo por trás da estrutura de links na web.

• Exemplo de informação extraída:

− Links apontando para um documento podem indicar sua popularidade;

− Links saindo de um documento podem indicar a riqueza ou variedade de tópicos


tratados pelo documento.

• Tenta descobrir o modelo por trás da estrutura de links na web.

• Informação coletada e analisada:

− Autoridade de uma página.

− Ranking de páginas.

− Número de exibições ou retorno em buscas.

− Links apontando para um documento (indicar sua popularidade).

− Links saindo de um documento (indicar a riqueza ou variedade de tópicos tratados


pelo documento).
Mineração de uso
• Visa descobrir padrões de uso a partir de registros de acesso à web.

• Fontes de dados para análises:

− Web server log

− Cookies

− Dados de consultas

− Dados do proxy

• Usado para:

− Extração de padrão geral de acesso: Analisa dados do web log file e outras fontes para
descobrir padrões e tendências de acesso.

− Aplicação:
• Localizar pontos para propaganda mais efetiva;

• Direcionar campanhas específicas para usuários específicos.

− Customização ou personalização: Analisa tendências de usuários individuais.

− Aplicação:
• Personalizar dinamicamente a cada usuário, com base no padrão de acesso ao longo do tempo.
Mineração de texto (text mining)

Extrair informação relevante de uma grande base de dados


textuais sem precisar de intervenção humana na leitura de
cada documento.
Mineração de texto
❑ Analisar dados não estruturados:

Conteúdo Redes
on-line sociais

Blogs e
Documentos Comentários
Microblogs
e-commerce
Tipos de abordagens

Análise Estatística Análise Semântica


Aprendizado estatístico a partir de Extração de conhecimento
dados, codificação dos dados, morfológico, sintático, semântico,
estimativa dos dados e modelos pragmático, do discurso e do
de representação. mundo.
Exemplo: New York Times
Exemplo Semântica
Exemplo Estatística

Menção: 10 vezes
His: 6
He: 1
Him: 1
Exemplo
❑ Considere o texto a seguir:
José da Silva é funcionário da Empresa XYZ, mora na Rua X,
número 31, tem 35 anos de idade, e ...

❑ Com a mineração é possível identificar os seguintes dados:

Nome Empresa Endereço Idade

José da Silva XYZ Rua X, 31 35 anos


28

Processo de descoberta de conhecimento


em textos

• knowledge discovery in texts (KDT)


Conclusão
✔ Entendemos o que é Web mining e quais são seus

subtipos.

✔ Entendemos o que é Text mining e algumas de

suas aplicações.
Próxima aula

❑ Visão geral: Análise de sentimentos.


Fundamentos em Engenharia de Dados
Aula 7.3. Visão geral: Análise de sentimentos

Profª. Fernanda Farinelli


Nesta aula
❑ Entender o que é Análise de sentimentos.
Análise de sentimentos

Mineração da opinião

Visa estudar opiniões, sentimentos, avaliações e emoções


que possam ser expressas em forma de texto.

Foco em relacionar as emoções ao assunto (ou tópico) de


que se trata o documento.
Por que saber a opinião das outras
pessoas?
Conhecer crenças,
valores, gostos, questões
culturais e políticas.

Entender o comportamento de
Conhecer a satisfação dos clientes um determinado grupo.
com o produtos/serviços adquiridos.
Análise de Sentimento
Positivo
•O produto X tem ótima qualidade.
•Eu adorei o filme.

Neutro
•Vou pesquisar sobre o produto X depois.
•Eu vi o trailer deste filme.

Negativo
•O produto X quebrou no primeiro uso.
•Este filme não representa a essência do livro.
Possui relação de
similaridade ou
diferença entre dois ou
Opinião
Opinião comum a mais alvos
um determinado alvo

Regular Comparativa

Prefiro usar calça do


que saia.
Direta Indireta

Comecei a coçar depois


O vestido é lindo!
que vesti o vestido
Desafios

❑ Subjetividades das opiniões e sentimentos.

❑ Palavras com sentido adverso dependendo do contexto.

❑ Palavras com duplo sentido.

❑ Abreviações, erros ortográficos e gramaticais.

❑ Linguagem informal, gírias, hashtags e emoticons.


Fluxo de Análise de sentimentos
Conclusão
✔ Entendemos o que é Análise de sentimentos e

seus principais objetivos e desafios.


Próxima aula

❑ Análise exploratória de dados


Fundamentos em Engenharia de Dados
Aula 7.4. Análise exploratória de dados

Profª. Fernanda Farinelli


Nesta aula
❑ Entender o que é a análise exploratória de dados.
O que fazer com os dados coletados?
Análise Exploratória de Dados
Analisar e entender um conjunto de dados.

• Interesse tanto no comportamento individual das variáveis quanto no


relacionamento entre variáveis.

Técnicas estatísticas para explorar dados


visando a compreensão da realidade estudada.

• Estatística descritiva: organização, apresentação e sintetização de


dados.
• Utilizam-se métodos numéricos, tabelas e gráficos para descrever as
variáveis de um conjunto de dados, as relações entre elas, procurar
alguma regularidade ou padrão nas observações.
População Amostra

• Qualquer conjunto de
• Universo do estudo.
elementos retirado da
• Conjunto de elementos que
população, não vazio e tenha
têm em comum determinada
um menor número de
característica.
elementos que a população.
• Conjunto global sobre o qual
• Subconjunto finito de uma
se deseja chegar a
população sobre o qual são
conclusões
feitas observações.
Variável
❑ Qualquer característica de interesse associada aos elementos de uma
população.

Discreta

Quantitativa
Contínua
Variável

Nominal

Qualitativa
Ordinal
Variável
Quantitativa Qualitativa
numéricos categóricos

Discreta Contínua Nominal Ordinal

Qualquer valor As categorias


Apenas As categorias
no intervalo não possuem
valores podem ser
dos números uma ordem
inteiros. ordenadas.
reais. natural.

Ex.: tamanho,
Ex.: número de
Ex.: peso, altura, Ex.: nomes, cores, classe social, grau
irmãos, número de
pressão sexo. de instrução,
passageiros
estado civil
Medidas de Posição Medidas de Dispersão
Central
Desvio Padrão, Variância,
Média, Mediana, Moda Amplitude, intervalo interquartil

Medidas

Assimetria da distribuição e grau de


Quartil, Percentil achatamento

Medidas de Posição Medidas de Assimetria e


Curtose
1. Medidas de Posição Central
Definição
Representam os fenômenos pelos seus valores médios, em torno dos quais tendem a
concentrar-se os dados.

Dentre todas as medidas de tendência central, veremos:


1.1. Média;

1.2. Mediana;

1.3. Moda.
3. Medida de Posição
Definição
São medidas que dividem a área de uma distribuição de frequências em regiões de áreas
iguais.

As principais medidas de posição são:


3.1 Quartil;

3.2 Percentil.
2. Medidas de Dispersão
Definição
É um valor que busca quantificar o quanto os valores da amostra estão afastados ou
dispersos relativos à média amostral;

As medidas utilizadas para representar dispersão são:


2.1 Amplitude Total;
2.2 Desvio Padrão;
2.3 Variância;
2.4 Amplitude Interquartílica.
4. Medida de Assimetria e Curtose
As medidas de assimetria possibilitam analisar uma distribuição de acordo com
as relações entre suas medidas de moda, média e mediana, quando
observadas graficamente ou analisando apenas os valores;

Uma distribuição é dita simétrica quando apresenta o mesmo valor para a moda, a média e
a mediana;

É dita assimétrica quando essa igualdade não ocorre.


4. Medida de Assimetria e Curtose

Análise Exploratória de Dados
▪ Quais seriam os valores representativos do conjunto de dados?
− Tendência central: média e mediana.

− Posição: quartis.
• Primeiro quartil, designa-se por Q1, e diz que: pelo menos 25% das
observações são iguais ou inferiores ao valor Q1.

• Segundo quartil, designa-se por Q2, e diz que: pelo menos 50% das
observações são iguais ou inferiores ao valor Q2. Também se designa
por mediana amostral.

• Terceiro quartil, designa-se por Q3, e diz que: pelo menos 75% das
observações são iguais ou inferiores ao valor Q3.

− Dispersão: variância, desvio padrão e coeficiente de variação.


Representação gráfica

• Gráficos de barras
Variáveis • Gráficos de setores (pizza)
qualitativas • Diagrama de Pareto

• Histograma
• Polígono de frequências
Variáveis • Polígono de frequências acumuladas
quantitativas • Gráficos de linhas ou segmento (séries temporais)
• Diagrama de dispersão (associação entre variáveis)
• Gráfico de caixas (intervalo interquartil)
Conclusão
✔ Entendemos o que é a análise exploratória de

dados.
Próxima aula

❑ Prática Python: Análise exploratória de dados


Fundamentos em Engenharia de Dados
Aula 7.5. Prática Python: Análise exploratória de dados

Profª. Fernanda Farinelli


Nesta aula
❑ Exemplo prático de análise exploratória de dados utilizando a linguagem
Python.
Demonstração prática
Conclusão
✔ Aprendemos como fazer uma análise exploratória

de dados utilizando a linguagem Python.


Próxima aula

❑ Análise descritiva: Classificação e Regressão


Fundamentos em Engenharia de Dados
Aula 7.6. Modelos de análise: Classificação e Regressão

Profª. Fernanda Farinelli


Nesta aula
❑ Conhecer os modelos de análise: Classificação e Regressão.
Análise de Dados (mineração)

• Um processo em duas etapas:


− Treinamento (construção do modelo)

− Teste (uso do modelo)


Classificação
Descritiva
Regressão
Análise
de Dados Clustering

Prescritiva Sumarização

Associação
Classificação
❑ Classifica dados (constrói um modelo) baseado em um conjunto de
treinamento previamente rotulado e usa o modelo para classificar novas
observações.
Determina a afetação a uma classe (rótulo de um atributo categórico).

Cada registro contém um conjunto de atributos, e um dos atributos é a


classe.

❑ Exemplos:
Classificação de clientes em baixo, médio ou alto risco de empréstimo
bancário.

Probabilidade de ocorrer um sinistro (veículo) de acordo com o perfil do


segurado.

Classificar se um tumor é benigno ou maligno.

Classificar transações de cartões de crédito como legítimas ou fraudulentas.


Exemplo Classificação: árvore de decisão
❑ Classificação de clientes como BOM ou MAU pagador.

Modelo: árvore de decisão Dados de treinamento


Classificação
❑ Classificação de clientes como BOM ou MAU pagador.
Regressão ou Previsão

É a tarefa de prever valores contínuos ou ordenados para uma


dada entrada.

Prediz o valor de uma variável contínua baseado no valor de


outras variáveis, considerando um modelo de dependência linear
ou não linear.

Semelhante à classificação, mas

• Na classificação, a variável a “explicar” é categórica;


• Na previsão, a variável a “explicar” é contínua.
Regressão ou Previsão

Exemplos:

• Prever o salário de colegas da graduação com 10 anos de experiência.


• Potencial de vendas de determinado produto dado seu preço.
• Prever a receita de um item com base em anos anteriores.
• Probabilidade do paciente sobreviver considerando seus exames.
• Previsão da quantidade de vendas de um novo produto baseado nos
gastos com propaganda
• Previsão da velocidade do vento em função da temperatura,
humidade, pressão atmosférica, etc.
• Previsão da evolução do índice de bolsa de valores.
Previsão ou Regressão
❑ Prever a receita de um item com base em anos anteriores.
Demonstração prática
Conclusão
✔ Conhecemos os modelos de análise: Classificação

e Regressão (Previsão).
Próxima aula

❑ Modelos de análise: Clustering, Sumarização,


Associação.
Fundamentos em Engenharia de Dados
Aula 7.7. Modelos de Análise: Clustering, Sumarização, Associação

Profª. Fernanda Farinelli


Nesta aula
❑ Entender o que são os modelos de análise: Clustering, Sumarização,
Associação.
Clustering

Clusterização, agrupamento, segmentação

Dado um conjunto de dados, cada um com um conjunto de atributos, e


uma medida de similaridade entre eles, encontre clusters (segmentos)
tais que:
• Dados de um segmento (grupo) são mais similares entre si que com dados
de outros grupos;

• Dados de grupos diferentes são menos similares entre si.


Demográficas

Sócio econômicas
Características
dos clientes
Geográficas

Psicológicas

Abordagens à
segmentação
Benefício

Utilização

Reações dos clientes Fidelização

Promoções

Pós-venda
Sumarização
Consiste em procurar identificar e indicar características comuns
entre conjuntos de dados.

Exemplos:

• Considere um banco de dados com informações sobre clientes que


assinam um determinado tipo de revista semanal.

• A sumarização busca por características que sejam comuns a boa


parte dos clientes.

− São assinantes da revista X, homens na faixa etária de 25 a 45


anos, com nível superior e que trabalham na área de finanças.
Associação

Achar padrões, associações, correlações frequentes entre itens de um


conjuntos de dados.

• Dado um conjunto de transações, cada transação é uma lista de itens que


compõe a transação.

• Busca-se encontrar as regras que correlacionam a presença de um conjunto de


itens com a presença de outro conjunto de itens em uma mesma transação.
Associação

Exemplo:

• 98% das pessoas que compram pneus e auto-acessórios, também fazem


algum serviço automotivo.

• 55% dos leitores do blog X também são leitores do blog Y.


• Encontrar produtos que sejam frequentemente vendidos de forma conjunta.

Associações descobertas:

{leite} --> {pão}


{queijo, leite} --> {pão}
{queijo} --> {leite}
Demonstração prática
Conclusão
✔ Conhecemos os modelos de análise: Clustering,

Sumarização, Associação.
Próxima aula

❑ Entender o processo de coleta de dados.


Knime Analytics Platform - Relatórios
Knime Analytics Platform
Fundamentos em Engenharia de Dados
Capítulo 8. Coleta e preparação de dados

Profª. Fernanda Farinelli


Fundamentos em Engenharia de Dados
Aula 8.1. Fundamentos em coleta e preparação de dados

Profª. Fernanda Farinelli


Nesta aula
❑ Entender os desafios das etapas de coleta e preparação de dados.
Coleta de dados
Extração dos dados de diversas fontes e carga no conjunto de dados a ser
analisado.

Conjunto de dados

Bancos de Data
Bancos de

Dados externos dados Warehouse /
Data Lake dados NoSQL
relacionais
Coleta de dados
Extração dos dados de diversas fontes e carga no conjunto de dados a ser
analisado.
Coleta de dados
Data acquisition, Data Ingestion, Data extraction (Aquisição, ingestão,
extração)

Coleta de dados em bases de dados (SQL e NoSQL)

Text mining (PLN)

Data Scraping, Data Crawling, APIs ( raspagem, rastreamento)


Preparação de dados
Consiste no processo limpar, enriquecer, normalizar, integrar e
combinar dados para análise.

Visa assegurar a qualidade dos dados coletados.

Conjunto de rotinas que visam transformar dados brutos em um


formato plausível para análise.
Preparação de dados
Limpeza e
Transformação Redução dos dados
enriquecimento

Tratar dados ausentes Normalização e Redução de


e inaplicáveis padronização dimensionalidade

Detecção de
Redução no volume
anomalias (ruído, Integração
de dados
outliers)

Resolver Discretização
inconsistências /categorização
Dados ausentes e inaplicáveis

Dados ausentes Dados inaplicáveis


Ausente no conjunto de dados, Um valor ausente e inexistente no
mas existente no contexto em que contexto em que a medida foi
a medida foi realizada. realizada.

Exemplo: Exemplo:
• Sexo = null ou NA • Sexo = Masculino e Número de
• Idade = -1 Partos = null
• Número de Partos = 0 • Sexo = Feminino e Número de
Partos = 0
Tratamento

Substituir com
a média
Substituir por
um valor
específico
Substituir com
a mediana
aproximada
Substituir com
a moda

Remover toda a
linha

Remover toda
a coluna
Limpeza de valores ausentes
❑ Substituir com a média:
• Calcula a média dos valores da coluna e utiliza este número para substituir os valores ausentes.

• Substituir por valor:


• Substitui todos os valores ausentes pelo valor determinado pelo usuário.

• Substituir com a mediana aproximada (10% da precisão relativa):


• Calcula a mediana e utiliza este número para substituir todos os valores ausentes.

• Substituir com a moda:


• Substitui todos os valores ausentes pelo valor que se repete com maior frequência.

• Remover toda a linha:


• Remove completamente a linha da base de dados que contenha um ou mais valores ausentes.

• Remover toda a coluna


• Remove completamente a coluna que contenha um ou mais valores ausentes.
Detecção de anomalias (ruído, outliers)

É uma observação, num conjunto de dados, que é suficientemente


dissimilar ou aberrante do restante dos dados para levantar suspeita de
ser causado por um mecanismo diferenciado.

Identificação Remoção
Clustering Alisamento (Suavização)

Os valores são organizados em grupos Suavizar um valor de dados de acordo com


seus vizinhos (mediana, média)
e os valores isolados podem ser
considerados aberrantes.
Regressão
Prevê o valor correto.
Tratamento de inconsistências

• Exemplo: CEP inexistente ou data de


Dados que não
nascimento futura
representam a realidade • Eliminação ou atualização

• Exemplo: CEP existente vinculado a um


Dados contraditórios município errado.
• Eliminação ou atualização

• Exemplo: Eleitor menor que 16 anos; sexo


Dados fora do domínio diferente de Feminino e Masculino.
• Eliminação ou atualização
Integração de Dados

Fusão de dados de fontes distintas em um único conjunto de dados

Diferença na estrutura
Diferença de dados
(metadados)

• Diferentes nomes para o mesmo • O domínio de um mesmo atributo


atributo. pode diferir.
Exemplo: id_cliente e mat_cliente Exemplo: Feminino e Masculino ou F e M
• Diferentes formas de • A escala de valor de um mesmo
armazenamento de um dado. atributo pode diferir.
Exemplo: Idade e data de nascimento. Exemplo: Peso (em libras ou em quilos)
Transformação de dados

Normalização Categorização
• Transforma valores numéricos para
• Valores muito variados são
categóricos ou discretos.
transformados em um intervalo.
• Exemplo: sexo (1 🡪 M; 0 🡪 F)
• As escalas de valores dos atributos
idade = 2, 10, 22, 35, 60, 75
para o mesmo intervalo : [-1 a 1]
[0 a 18] 🡪 infantil ; [19 a 99] 🡪 adulto

Conversão para numérico Geração de hierarquia


• Transformar de valores categóricos • Os atributos são convertidos para
em numéricos. um nível superior na hierarquia.
• Exemplo: Estado civil (1 🡪 casado; • Exemplo: “cidade” pode ser
2 🡪 solteiro, etc.) convertido em “estado” e/ou “país”
Transformação numérico 🡪 categórico
Mapeamento em intervalos (discretização): formas
Exemplo de idade = 2, 10, 14, 20, 22, 35, 60, 75

– Intervalos pré-definidos (depende do domínio da aplic.)


[0 a 18] 🡪 infantil [19 a 99] 🡪 adulto

– Intervalos de igual tamanho (conhecimento dos limites dos exemplos)


(maior – menor + 1) / nro intervalos
Exemplo para 2 intervalos: (75-2+1)/2 = 37
[2 a 38] e [39 a 75]

– Intervalos de igual frequência (mesmo número de exemplos)

Nro de exemplos / nro de intervalos

Exemplo para 2 intervalos: [2 a 20] e [21 a 75]


Redução de Dados

Criar um conjunto reduzido da série de dados que produz (quase) o


mesmo efeito nas análises.

Compressão de Dados
Redução da dimensionalidade
• obter novas variáveis a partir dos
• Eliminação de características atributos iniciais
(atributos) redundantes, escolha das
melhores características e seleção dos
principais componentes dos dados. Redução de casos
• Quanto mais dados, mais esparsa a
base de dados e mais difícil de • Redução do volume de dados ou
aprender casos que serão observados
(amostragem)
Conclusão
✔ Entendemos a importância da coleta e preparação

de dados e seus desafios.

✔ Conhecemos alguns exemplos de preparação de

dados.
Próxima aula

❑ Entender o que é Web mining e Text mining.


Fundamentos em Engenharia de Dados
Aula 8.2. Prática de coleta e preparação de dado: Exemplo usando ferramenta Weka

Profª. Fernanda Farinelli


Nesta aula
❑ Coletar dados em arquivo CSV.

❑ Executar alguns exemplos de preparação de dados.


Demonstração prática
Conclusão
✔ Exemplo de coleta e preparação de dados

utilizando o Weka.
Próxima aula

❑ APIs de coleta de dados.


Fundamentos em Engenharia de Dados
Aula 8.3. APIs de coleta de dados

Profª. Fernanda Farinelli


Nesta aula
❑ Entender o que são APIs e para que servem as API’s de coleta de
dados.

❑ Conhecer exemplos de API’s de coleta de dados.


O que são API’s?
❑ API – Application Programming Interface.

Interface de Programação de Aplicações.

❑ Pacote que consiste em um conjunto de definições e protocolos usado no


desenvolvimento e na integração de software de aplicações.

Sistema/Serviço

Requisição/Request API Requisição/Request

Sistema/App Resposta/Reply Resposta/Reply


Principais API’s para redes sociais

❑ Twitter - https://developer.twitter.com/en

❑ LinkedIn - https://www.linkedin.com/developers/apps

❑ Facebook -
https://developers.facebook.com/docs/graph-api?locale=pt_BR

❑ Instagram - https://www.instagram.com/developer/register/

❑ Necessário ter uma conta para criar aplicativos e chaves de acesso.


API’s Governo
❑ API de serviços do Portal da Transparência do Governo Federal:
http://api.portaldatransparencia.gov.br/swagger-ui.html

Cadastro de um e-mail:
❑ http://portaldatransparencia.gov.br/api-de-dados/cadastrar-email

❑ Conecta - APIs de Governo para Governo


https://www.gov.br/conecta/catalogo/

❑ APIs IBGE
https://servicodados.ibge.gov.br/api/docs/
API’s diversas
❑ The New York Times: https://developer.nytimes.com/
Exemplos de uso:
▪ https://code.tutsplus.com/pt/tutorials/using-the-new-york-times-api-to-scrape-metadat
a--cms-27894


https://towardsdatascience.com/collecting-data-from-the-new-york-times-over-any-pe
riod-of-time-3e365504004

❑ Google Data API - https://developers.google.com/gdata/docs/directory

❑ API do Portal Pubmed - https://www.ncbi.nlm.nih.gov/home/develop/api/


Conclusão
✔ Entendemos o que são APIs e conhecemos alguns

exemplos.
Próxima aula

❑ Conhecer como funciona a API do Twitter.


Fundamentos em Engenharia de Dados
Aula 8.4. APIs do Twitter

Profª. Fernanda Farinelli


Nesta aula
❑ Conhecer a API do Twitter.
Exemplo: API do Twitter

❑ Necessário ter uma conta no Twitter.


https://apps.twitter.com/

❑ Cadastrar como desenvolvedor (estudante).


https://developer.twitter.com/en

❑ Dashboard Twitter Dev


https://developer.twitter.com/en/portal/dashboard

Criar uma aplicação e obter as chaves de acesso.


Twitter API: Cadastro
https://developer.twitter.com/en

Leitura recomendada: Como criar Apps e obter os tokens necessários para coletar dados do Twitter, Instagram, Linkedin e Facebook
Disponível em:
https://medium.com/@marlessonsantana/como-criar-apps-e-obter-os-tokens-necess%C3%A1rios-para-coletar-dados-do-twitter-instagra
m-linkedin-e-8f36602ea92a - Acesso em: 12/04/2020
Twitter API: Dashboard Twitter Dev
https://developer.twitter.com/en/portal/dashboard
Twitter API: Criar app
Twitter API: Criar app
Twitter API: Criar app
Chaves de
acesso
(Salve estes
valores)
Twitter API: Criar app
Twitter API: Criar app
Twitter API: Dados de acesso

Se não salvou as
chaves, pode gerar
novamente.

Gere os tokens
de acesso
Conclusão
✔ Aprendemos como realizar o cadastro para utilizar

a API do Twitter.

✔ Aprendemos a gerar a aplicação do Twitter para

usarmos na nossa coleta de dados.


Próxima aula

❑ Prática de Coleta de dados no Twitter.


Fundamentos em Engenharia de Dados
Aula 8.5. Prática de Coleta de dados no Twitter: Exemplo usando biblioteca Tweepy da linguagem Python

Profª. Fernanda Farinelli


Nesta aula
❑ Prática de Coleta de dados no Twitter.
Demonstração prática
Conclusão
✔ Exemplo de coleta de dados no Twitter utilizando a

API e a biblioteca Tweepy da linguagem Python.


Próxima aula

❑ Web Crawler e web scraping.


Fundamentos em Engenharia de Dados
Aula 8.6. Web Crawler e web scraping

Profª. Fernanda Farinelli


Nesta aula
❑ Entender o que é Web Crawling e Web Scraping.
Web crawling
Web crawler, bot ou web spider

Programa de localização de informações na World Wide


Web (WWW)

Captura informações de cada um dos links que encontra


pela frente e indexa as palavras de um documento

e adiciona essas informações também ao banco de


dados.

Utilizado pelos mecanismos de busca a fim de criar uma


cópia atualizada de todas as páginas visitadas
Web Crawling
1. Comece com as “URLs” base.

2. Progressivamente busque e analise todos os


links nestas páginas.
a. Contrua uma lista de URLs rastreadas

b. Indexe as URLs (conteúdo).

c. Coloque as URLs obtidas em uma fila.

3. Busque cada URL da fila, e repita os passos


acima.

Fonte: http://prowebscraping.com/web-scraping-vs-web-crawling/
Web scraping (raspagem)

Web scraper, bot ou Web Data Extractor, Data Harvester


(Colheita de dados)

Programa capaz de recuperar informações específicas da


World Wide Web ou Websites (diferentes sites)

Processo de solicitar automaticamente um documento da


Web e coletar informações dele

Pode ser necessário realizar algum crawling na web para


navegar entre os sites.
Web Crawling versus Web Scraping
1. Comece com as “URLs” base.

2. Progressivamente colete os dados que


deseja nestas páginas.

3. Armazene os dados raspados.

4. Se necessário, para cada nova URL


database encontrada, e repita os passos acima.

CSV, JSON

Fonte: http://prowebscraping.com/web-scraping-vs-web-crawling/
Web Crawler e Web Scraper

❑ Programas que executam as tarefas de crawling (rastreamento)


ou scraping (raspagem), de forma autônoma:

Fonte da Imagem: https://www.rpollution.com/blog/scraper-cetesb/


Conclusão
✔ Entendemos o que é Web Crawling e Web

Scraping, e a diferença entre eles.


Próxima aula

❑ Prática: Conhecendo o XPATH.


Fundamentos em Engenharia de Dados
Aula 8.7. Prática: Conhecendo o XPATH

Profª. Fernanda Farinelli


Nesta aula
❑ Conhecer a estrutura por trás do Xpath.
Xpath - XML Path Language

Linguagem não-XML que tem como objetivo identificar (referenciar) partes


de um documento XML.

• XPath é uma sintaxe para definir partes de um documento XML


• XPath usa expressões de caminho para navegar em documentos XML
• XPath contém uma biblioteca de funções padrão
• XPath é o elemento principal em XSLT
• XPath é um padrão W3C

Conjunto de regras de sintaxe para definir partes de um documento XML.


comentário

Sub-nó

Nó raiz (root)
Sub-nó Nó ou
elemento

atributo

Texto ou
conteúdo
Nós XML

comentário
Sub-nó
Sub-nó

Nó raiz (root)
Nó ou
elemento

atributo

Texto ou
conteúdo
Demonstração prática

http://xpather.com/
Expressões XPath
❑ Seleciona o elemento RAIZ filmes: /filmes
❑ Seleciona todos os elementos filme do elemento filmes :
/filmes/filme ou //filme

❑ Seleciona todos os nós abaixo do elemento RAIZ filmes: /filmes/node()


Nota: Se o caminho começa com uma barra ( / ) ele representa um caminho absoluto para um
elemento.
Se o caminho começa com duas barras ( // ) então todos os elementos no documento que se encaixam no
critério serão selecionados.

❑ Seleciona todos os elementos elenco :


//elenco
//filme/elenco
/filmes/filme/elenco
/filmes//elenco

Fonte: http://www.w3big.com/pt/xpath/xpath-syntax.html
Expressões XPath

❑ Selecionar múltiplos nós: /filmes//titulo | //ano

❑ Para selecionar um determinado atributo, utiliza-se o símbolo '@'


precedendo o nome do atributo que se deseja selecionar:

Seleciona todos os elementos filme que tem um atributo id ou language:


//filme//@id

/filmes/filme/@id

/filmes/filme//@language

Fonte: http://www.w3big.com/pt/xpath/xpath-syntax.html
Expressões XPath

Seleciona todos os elementos titulo de filme que tem um atributo


language igual a inglês (“en”).
//filme//titulo[@language="en"]

//filme/titulo[@language="en"]

//titulo[@language="en"]

Seleciona todos os elementos titulo de filme que tem algum atributo


(desconhecido).
//titulo[@ *]

Fonte: http://www.w3big.com/pt/xpath/xpath-syntax.html
Fonte: http://www.w3big.com/pt/xpath/xpath-syntax.html
Expressões XPath
Seleciona todos os elementos do primeiro filme . Seleciona o último ator do último filme.

//filme[1] //filme[last()]//ator[last()]

Seleciona todos os elementos do último filme . Seleciona o penúltimo ator do último filme.
//filme[last()] //filme[last()]//ator[last()-1]

Seleciona o primeiro ator do último filme. Seleciona os dois primeiros atore do último filme.
//filme[last()]//ator[1] //filme[last()]//ator[position()<3]

Fonte: http://www.w3big.com/pt/xpath/xpath-syntax.html
Expressões XPath
Seleciona o conteúdo dos elementos.

//filme/titulo/text()

Fonte: http://www.w3big.com/pt/xpath/xpath-syntax.html e http://www.macoratti.net/vb_xpath.htm


Selecionando o Xpath
❑ XPath no Chrome: Instalar a Extensão do Chrome chamada XPath
Helper.
• https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl?hl=en

❑ Para usar essa extensão, após instalado:

1. Pressione Ctrl+Shift+x para ativá-lo na página da web.

2. Pressione Shift, mova o mouse, o console mostrará a expressão


XPath e o lado direito mostrará o resultado.
Demonstração prática

http://xpather.com/
Selecionando o Xpath
❑ XPath no Firefox: Instalar a Extensão xPath Finder.

• https://addons.mozilla.org/pt-BR/firefox/addon/xpath_finder/
Conclusão
✔ Entendemos o que é Xpath e como podemos obter

o caminho para os nós que queremos conhecer.


Próxima aula

❑ Web Scraping utilizando a linguagem Python.


Fundamentos em Engenharia de Dados
Aula 8.8.1. Web Scraping utilizando a linguagem Python (Parte I)

Profª. Fernanda Farinelli


Nesta aula
❑ Aprender a fazer Web Scraping com a biblioteca Scrapy da linguagem
Python via Scrapy Shell.
Web Scraping com Python
❑ Existem várias bibliotecas para isso:
Scrapy: https://docs.scrapy.org/en/latest/index.html

❑ Tutorial: https://docs.scrapy.org/en/0.18/intro/tutorial.html#intro-tutorial
Comandos básico no Scrapy Shell
❑ O Scrapy usa objetos de Request e Response para rastrear sites.
response.url
response.headers
response.body
❑ Para recuperar o elemento //title/ usando Xpath:
response.xpath('//title')
❑ Para recuperar o elemento <title> com seletor CSS
response.css('title')
❑ Para contar número de elementos <div>
len(response.css('div'))
Demonstração prática
Conclusão
✔ Entendemos como usar o Scrapy SHELL para

realizar a raspagem de páginas web.


Próxima aula

❑ Na próxima aula será mostrado outro exemplo


prático do scraping utilizando o Python.
Fundamentos em Engenharia de Dados
Aula 8.8.2. Web Scraping utilizando a linguagem Python (Parte II)

Profª. Fernanda Farinelli


Nesta aula
❑ Aprender a fazer Web Scraping com a biblioteca Scrapy da linguagem
Python via Scrapy Shell.
Scrapy Spider
❑ Scrapy spider é responsável por definir como seguir os links
“navegando” por um site (crawling) e como extrair as informações das
páginas em estruturas de dados Python (scraping).

❑ Sempre é necessário importar a biblioteca Scrapy.

❑ No prompt de comando, no seu diretório de trabalho python, o


comando para executar seu spider é:

scrapy runspider nome-do-seu-script


Demonstração prática
Spider Mínimo
❑ Salve seu script em um arquivo chamado “spiderMinimo.py”

❑ Execute com o seguinte comando:

scrapy runspider spiderMinimo.py


Spider Mínimo com start_request( )
❑ Salve seu script em um arquivo chamado “spiderMinimoIGTI.py”

❑ Execute: scrapy runspider spiderMinimoIGTI.py


❑ OBS: Script com ERRO, pois não existe a função de callback (parse).
Spider Mínimo com start_request( ) e
parse( )
❑ Salve seu script em um arquivo chamado “spiderMinimoIGTI.py”

❑ Execute: scrapy runspider spiderMinimoIGTI.py


Spider Mínimo Enxuto ( sem start_request(
))
❑ Salve seu script em um arquivo chamado “spiderMinimoEnxutoIGTI.py”

❑ Execute: scrapy runspider spiderMinimoEnxutoIGTI.py


Conclusão
✔ Exemplo prático de script de coleta de dados na

web utilizando a linguagem Python e a biblioteca


Scrapy para fazer uma raspagem (scraping).
Próxima aula

❑ Na próxima aula será mostrado um novo exemplo


prático de scraping utilizando o Python.
Fundamentos em Engenharia de Dados
Aula 8.8.3. Web Scraping utilizando a linguagem Python (Parte III)

Profª. Fernanda Farinelli


Nesta aula
❑ Aprender a fazer Web Scraping com a biblioteca Scrapy da linguagem
Python via Scrapy Shell.
Scraping IGTI Blog
❑ Página alvo: https://www.igti.com.br/blog/

❑ Raspar:
Para cada artigo da página:

▪ Categoria(s) do artigo e URL da categoria.


▪ Título e URL do artigo
▪ Data de postagem
▪ Número de comentários e visualizações.

❑ Execute:

scrapy runspider scrapingIGTIBlog.py –t json –o artigos.json


Scraping IGTI Blog – Estrutura de
raspagem
Demonstração prática
Conclusão
✔ Exemplo de script de coleta de dados na web

utilizando a linguagem Python e a biblioteca Scrapy


para fazer uma raspagem (scraping) na página
https://www.igti.com.br/blog/.
Próxima aula

❑ Exemplo prático para criar um projeto de


rastreamento e raspagem a partir do wizard do
framework Scrapy.
Fundamentos em Engenharia de Dados
Aula 8.8.4. Web Scraping utilizando a linguagem Python (Parte IV)

Profª. Fernanda Farinelli


Nesta aula
❑ Exemplo prático para criar um projeto de rastreamento e raspagem a
partir do wizard do framework Scrapy.
Projeto Scrapy
❑ O Framework Scrapy é composto por várias funcionalidades que
executam os processos de rastreamento e raspagem.

❑ Para criar um projeto Scrapy execute o comando abaixo no prompt de


comando:

scrapy startproject nome-do-projeto

Exemplo:
scrapy startproject crawlerIGTI
Projeto Scrapy – Estrutura padrão

❑ Seu projeto Scrapy é composto pela seguinte estrutura:

🡪 define algumas variáveis do projeto


Projeto Scrapy – Estrutura padrão
❑ Seu projeto Scrapy é composto pela seguinte estrutura:

🡪 arquivos de spiders, onde são definidos os sites que serão utilizados no crawler

🡪 são definidos as classes de representação da informação


🡪 é definido como a resposta http será processada e enviada para o spider

🡪 são definidos os pipelines para processamento de cada Item


🡪 configurações do seu projeto Scrapy
Projeto Scrapy – Criação do Spider
❑ Após a criação do projeto, deve-se criar o spider.

❑ Dentro da pasta do projeto, execute o comando abaixo no prompt de


comando:

scrapy genspider nome-do-spider url-alvo


❑ Exemplo:

scrapy genspider scrapingIGTIBlog www.igti.com.br/blog

scrapy genspider crawlingIGTIBlog www.igti.com.br/blog


❑ Obs.: o spider não pode ter o mesmo nome do projeto.
Execução do spider

❑ Execução do spider em desenvolvimento:

scrapy runspider crawlerIGTI\spiders\scrapingIGTIBlog.py

scrapy runspider crawlerIGTI\spiders\crawlingIGTIBlog.py


Demonstração prática
Conclusão
✔ Exemplo prático para criar um projeto de

rastreamento e raspagem a partir do


wizard/template do framework Scrapy.
Próxima aula

❑ Prática de coleta de dados na web utilizando a


plataforma Knime.
Fundamentos em Engenharia de Dados
Aula 8.9. Web Crawling: Exemplo utilizando a plataforma Knime

Profª. Fernanda Farinelli


Nesta aula
❑ Exemplo prático de coleta de dados na web utilizando a plataforma Knime.
Workflow de Scraping de Título IGTI Blog

❑ Página alvo: https://www.igti.com.br/blog/


Demonstração prática
Workflow de Scraping de Categorias IGTI
Blog
Demonstração prática
Conclusão
✔ Exemplo prático de coleta de dados na web

utilizando a a plataforma Knime.


Próxima aula

❑ Landscape do Big Data.

Você também pode gostar