Escolar Documentos
Profissional Documentos
Cultura Documentos
Informação
Conhecimento
Clara distinção entre estrutura e Distinção entre estrutura e dados Distinção entre estrutura e dados
dados. pouco clara. pouco clara.
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.
Variedade
Volume Velocidade
Viscosidade Virulência
Visualização
Big Data versus Small Data
dados.
Próxima aula
Semântica
Sintática
Uniform Resource Identifier (URI)
Identificador Uniforme de Recursos
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)
predicado
sujeito objeto
RDF (Resource Description Framework)
• Predicado é um recurso
• Sujeito é um recurso
• Objeto = Predicado (Sujeito)
• Objeto é ambos um recurso ou um literal
<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.
web semântica.
Próxima aula
Reutilização e redistribuição
Participação universal
❑ Portal da Transparência:
http://www.portaltransparencia.gov.br/download-de-dados
Nasceu Itália
João Países da
comunidade
Conhece Visitou européia
Trabalha
Maria
Espanha
Dados abertos ligados (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.
▪ 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.
é um
Animal
é um é um
é
um
Universais e Particulares
Universais e Particulares
Amplo Canônico
Baixo Alta
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
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
Entidade (Ente)
Continuante Ocorrente
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
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.
Armazenamento de dados
Pré-processamento
Integração de dados
Visualização de dados
Pipeline de Engenharia de Dados
Equipe de
Engenharia de Dados
Pipeline de Engenharia de Dados
Equipe de
Engenharia de
Dados
Dataflow
Coleta 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.
de Dados.
Próxima aula
Banco de dados
Usuários
Software e hardware
SGBD
Sistemas gerenciadores de banco de dados
Alto Modelo
conceitual
Abstração
Modelo
lógico
Modelo
físico
Baixo
Tipos de modelos
•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
•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):
Funcionário Dependente
Pedido
Atributo
❑ Propriedades que descrevem as entidades.
Exemplo: Nome da pessoa, data da venda, número da nota fiscal.
❑ Classificação de atributos:
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 composto
Atributo
multivalorado
Entidades e atributos
❑ Representação gráfica (Peter Chen):
parentesco
endereço
código
matricula
Funcionário Departamento nome
nome
Conclusão
Obrigatoriedade: 0 ou 1
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
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
parentesco
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
0..N É 0..N
Funcionário alocad Projeto
o
Entidade associativa
❑ Podem possuir atributos e relacionamentos próprios.
hora data
CRM nome cpf nome
prescri
ção
nome
Medicamento Principio
ativo
Participação no relacionamento
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
Matríc
ano ula
entidade-relacionamento (MER).
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)
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
Tuplas , linhas
ou registros
Domínio
Numérico Alfanumérico Data
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
••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
Funcionário Departamento
PK FK
PK
Integridade Referencial
Empregado Departamento
Código Nome
Matrícula CPF Nome codDepto
Empregado Departamento
Código Nome
Matrícula CPF Nome codDepto
Empregado Departamento
Código Nome
Matrícula CPF Nome codDepto
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.
Data da abertura
Nacionalidade
do chamado
Data Salário
integridade.
− Integridade de unicidade.
− Integridade referencial.
− Integridade de domínio.
− Integridade semântica.
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.
❑ Implementa os elementos:
Tabelas, colunas, chaves (PK, FK, UK), relacionamentos (FK), índices, visões.
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
• Modelo hierárquico
• IMS e Adabas (IBM)
• DMSII (Unisys)
• Modelo relacional
• Oracle
• SQL Server
• DB2
• MySQL
Relacionamentos
MySQL
SQL Server
Conclusão
✔ Entendemos o que é um modelo físico.
Próxima aula
disponibilizado no modulo.
Próxima aula
modelagem de dados.
DDL ALTER
INSERT
SQL
DML
UPDATE
Data Manipulation Language
DELETE
GRANT
DCL
REVOQUE
Data Control Language
• Linguagem de Definição de Dados:
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
• 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.
• 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>;
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.
<restrições da tabela>
);
CREATE TABLE
Restrições de Restrições de
colunas tabela
[CHECK (condição)],
[CHECK (condição)],
...
Tabela
Cliente
▪ 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;
❑ Exemplo no MySQL:
Trabalhando com visões
❑ Criar uma visão (view):
banco de dados.
Próxima aula
• Alteração (UPDATE).
• Exclusão (DELETE).
Linguagem de manipulação de dados
Alteração de dados:
• UPDATE nome_tabela
• SET nome_atributo_1 = Valor
• [{, nome_atributo_n = Valor}]
• [WHERE condição]
Exclusão de dados:
Alteração de dados:
UPDATE nome_tabela
SET nome_atributo_1 = Valor [{, nome_atributo_n = Valor}]
[WHERE condição]
Exclusão de dados:
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
❑ 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:
AWS.
✔ Conectamos nossa ferramenta DBeaver para acessar
❑ 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 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
• Exemplo no MySQL:
Conclusão
✔ Conhecemos a sintaxe básica da linguagem de
consulta a dados.
❑ Exemplo no MySQL:
Listar os dados onde no endereço exista a preposição ‘de’
Linguagem de Consulta de dados
Contagem Média
Somatório
Linguagem de Consulta de dados
❑ Exemplo no MySQL:
1 2
Linguagem de Consulta de dados
❑ Exemplo no MySQL:
❑ 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.
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.
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
SELECT column_name(s)
FROM table1 LEFT JOIN table2
ON table1.column_name = table2.column_name
LEFT (OUTER) JOIN
RIGHT (OUTER) JOIN
SELECT column_name(s)
FROM table1 RIGHT JOIN table2
ON table1.column_name = table2.column_name
RIGHT (OUTER) JOIN
FULL (OUTER) JOIN
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.
❑ 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
warehouses.
✔ Entendemos o conceito de granularidade em data
warehouses.
✔ Entendemos o processo de extração, transformação
e carga
Próxima aula
Orientado
por Integrado
assunto
Dados
Não volátil
históricos
(W.H. Inmon)
Data warehouse
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
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).
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.
Produto
o Qtde
An vendida
Desodorante
Produto
Banana
Arroz
Café
Estado
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.
Processing).
Próxima aula
Medidas a analisar
sobre o assunto
conforme as variáveis
Fato
É tudo aquilo que reflete a evolução dos negócios do dia a dia de uma
organização.
• Exemplos:
• QUEM é executou o acontecimento.
• ONDE acontece.
• QUANDO acontece.
Métricas
❑ São as medidas associadas a um determinado fato ou assunto.
Maior Menor
granularidade granularidade
Menor Maior
detalhamento detalhamento
Exemplos: Exemplos:
Baixa
Exemplo - Granularidade
Ocorrência 2017 2018 2019
Assaltos à mão armada 123 109 158
Maior
e seus componentes.
Próxima aula
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
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
Performance + -
Armazenamento - +
Simplicidade + -
Etapas da modelagem dimensional
Entender os requisitos de análise.
❑ Exemplo:
❑ Quais foram as vendas no período de junho a julho deste ano na região sul?
dimensões.
Próxima aula
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.
Drill Across
Drill through
Slice X Dice
• Reduz as dimensões ou a
Processing).
Próxima aula
Data
Data silo Data mart
warehouse
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
Escalabilidade de
armazenamento e
Volume processamento
Modelos flexíveis de
armazenamento
Variedade
Big
Data Elevado grau de
disponibilidade
Velocidade
Esquema flexível
Suporte a replicação
Consistência
• Todos os clientes enxergam os mesmos dados.
(consistency)
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.
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
Fonte: http://datascienceacademy.com.br/blog/quando-utilizar-rdbms-ou-nosql/
Conclusão
✔ Entendemos o que é o SGBD NoSQL.
Chave-valor
Colunar
(key-value)
tabelas
Orientado a Orientados
documentos por grafos
Armazenamento por chave-valor
(key-value)
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
❑ 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
❑ 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
− https://docs.mongodb.com/manual/reference/method/
Atividade prática
Import e Export
Compass.
✔ Aprendemos a importar e exportar dados no
MongoDB.
Próxima aula
MongoDB.
Próxima aula
NewSQL.
Próxima aula
Análise Análise
descritiva diagnóstica
Análise Análise
preditiva prescritiva
Tipos de Análise de Dados
ã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.
dados.
− Análise descritiva;
− Análise diagnóstica;
− Análise preditiva;
− Análise prescritiva.
Próxima aula
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
• Motivações:
− Encontrar informação relevante;
− Personalizar a informação;
Mineração de
dados na Web
03 da web
Mineração de uso
Mineração de conteúdo
• 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.
− Ranking de páginas.
− 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;
− 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)
Conteúdo Redes
on-line sociais
Blogs e
Documentos Comentários
Microblogs
e-commerce
Tipos de abordagens
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 ...
subtipos.
suas aplicações.
Próxima aula
Mineração da opinião
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
• 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
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
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.
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;
Uma distribuição é dita simétrica quando apresenta o mesmo valor para a moda, a média e
a 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.
• 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
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).
❑ Exemplos:
Classificação de clientes em baixo, médio ou alto risco de empréstimo
bancário.
Exemplos:
e Regressão (Previsão).
Próxima aula
Sócio econômicas
Características
dos clientes
Geográficas
Psicológicas
Abordagens à
segmentação
Benefício
Utilização
Promoções
Pós-venda
Sumarização
Consiste em procurar identificar e indicar características comuns
entre conjuntos de dados.
Exemplos:
Exemplo:
Associações descobertas:
Sumarização, Associação.
Próxima aula
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)
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
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.
Identificação Remoção
Clustering Alisamento (Suavização)
Diferença na estrutura
Diferença de dados
(metadados)
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
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
dados.
Próxima aula
utilizando o Weka.
Próxima aula
Sistema/Serviço
❑ 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/
Cadastro de um e-mail:
❑ http://portaldatransparencia.gov.br/api-de-dados/cadastrar-email
❑ 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
exemplos.
Próxima aula
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.
Fonte: http://prowebscraping.com/web-scraping-vs-web-crawling/
Web scraping (raspagem)
CSV, JSON
Fonte: http://prowebscraping.com/web-scraping-vs-web-crawling/
Web Crawler e Web Scraper
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
Fonte: http://www.w3big.com/pt/xpath/xpath-syntax.html
Expressões XPath
/filmes/filme/@id
/filmes/filme//@language
Fonte: http://www.w3big.com/pt/xpath/xpath-syntax.html
Expressões XPath
//filme/titulo[@language="en"]
//titulo[@language="en"]
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()
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
❑ 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
❑ Raspar:
Para cada artigo da página:
❑ Execute:
Exemplo:
scrapy startproject crawlerIGTI
Projeto Scrapy – Estrutura padrão
🡪 arquivos de spiders, onde são definidos os sites que serão utilizados no crawler