Aulas Do Módulo 02
Aulas Do Módulo 02
➢ Arquiteto de Software
➢ Arquiteto de Soluções
▪ Mentor de Carreira:
➢ Banco de Dados;
➢ Computação em Nuvem.
Atuação Profissional
▪ Database Tech Lead;
▪ Arquiteto Corporativo.
Certificações
www.linkedin.com/in/gustavoaagl
[email protected]
Próxima Aula
❑ Apresentação do Módulo “Introdução a Banco de Dados”.
Apresentação do Módulo
Nesta Aula
❑ Descrição do Módulo
❑ Objetivos de Ensino
❑ Estrutura do Módulo
❑ Materiais Didáticos
❑ Atividades dos Alunos
❑ Distribuição de Pontos
Descrição do Módulo
Este módulo tem o objetivo de apresentar os
conceitos iniciais para a construção do
conhecimento na área de banco de dados,
✓ Aulas gravadas
✓ Referências bibliográficas
Atividades dos Alunos
▪ Assistir às aulas gravadas;
Desafio + 40 pontos
Feedback + 5 pontos
Exemplo: 01102008
Metadado
▪ Prefixo “Meta” vem do grego e significa “além de”;
▪ Informação?
✓ Imagem de Zebra.
▪ Conhecimento?
✓ Zebra com machucado.
▪ Sabedoria?
✓ Acionar mecanismos do zoológico para direcionar a zebra para o
setor veterinário.
Pirâmide do Conhecimento
Próxima Aula
❑ Tipos de Dados.
Introdução ao Mundo dos Dados
Capítulo 1
e propriedades.
Dados Semiestruturados
▪ Não contém toda a rigidez requerida na definição dos tipos de dados
estruturados;
separados.
▪ Significa que não há restrições quanto aos tipos de dados que podem conter;
✓ Imagem JPEG
✓ Áudio MP3
✓ Vídeo MPEG
✓ Etc.
Dados na Era da Informação
▪ Início da “Era da Internet”:
✓ Volume de dados não muito significativo;
✓ Proliferação de soluções de Big Data para lidar com esse alto volume de
/ semiestruturados.
Dados na Era da Informação
▪ Era da Informação
Dados na Era da Informação
▪ Papel fundamental dos Profissionais da Área de Dados:
✓ Arquiteto de Dados / Administrador de Dados (AD)
✓ Analista de Dados
✓ Engenheiro de Dados
✓ Cientista de Dados
✓ Etc.
Próxima Aula
❑ Perfis de Profissionais da Área de Dados.
Introdução ao Mundo dos Dados
Capítulo 1
▪ Analista de Dados
▪ Cientista de Dados
▪ Modelos de dados;
✓ Bancos de dados;
✓ Repositórios / quotas.
▪ Aspectos operacionais:
✓ Tunning e troubleshoting;
✓ Transformação de dados;
✓ Machine Learning;
✓ Mineração de conhecimento.
de tempo;
executada.
Tipos de Workloads
Existem várias classificações, mas na área de dados, a mais comum é:
❖ Quanto à ANÁLISE:
▪ Batch ➔ análises complexas.
Capacidade Capacidade
Normal Janela de Processamento Batch Normal
Workloads x Escalabilidade
❖ STREAMING e OLTP: escalabilidade sobre demanda.
Próxima Aula
❑ Capítulo 2 - Introdução a Banco de Dados.
Introdução a Banco de Dados
Capítulo 2
✓ Nome ✓ Data
✓ Cor ✓ Local
15/01/1950
José da Silva
56
Amarelo 91
Guaxupé
Quadrado
Banco de Dados
➢ E agora?
Idade em anos
56
José da Silva
Nascimento
15/01/1950
Amarelo 91
Cor
Guaxupé predominante Quadrado
Banco de Dados
Banco de Dados
▪ “É uma coleção de dados inter-relacionados, representando
informações sobre um domínio específico.” (KORTH, 1994, p.1)
de Dados NewSQL.
Sistema de Banco de Dados
▪ Ecossistema formado pelo SGBD, o(s) banco(s) de dados, todos os dados
manipulados e armazenados, além das aplicações que usam o banco de
dados para inserir, alterar, excluir ou consultar dados.
Instância de Banco de Dados
▪ Processo do mecanismo de banco de dados (SGBD) executado como um
serviço do sistema operacional;
▪ Exemplo:
➢ Funcionario (nome, sexo, endereço)
▪ Exemplos de instâncias de
dados para o schema
NOME CARGO
E/20
CANDIDATO
SECAO NUMERO SECAO (FK)
NUMERO ZONA (FK) NUMERO CANDIDATO
NUMERO SECAO
NUMERO ZONA (FK) NUMERO CANDIDATO (FK) NUMERO PARTIDO (FK)
QUANTIDADE TOTAL VOTOS NOME CANDIDATO
DESCRICAO ENDERECO
CODIGO CARGO (FK)
ELEITOR PARTIDO
NUMERO TITULO ELEITOR NUMERO PARTIDO
NOME ELEITOR NOME PARTIDO
NUMERO SECAO (FK) SIGLA PARTIDO
NUMERO ZONA (FK)
Próxima Aula
❑ Data Warehouse, Data Lake e Big Data.
Introdução a Banco de Dados
Capítulo 2
▪ Depósito de dados orientado por assunto, integrado, não volátil, variável com
o tempo, para apoiar as decisões gerenciais; (Date, 2004)
(estruturados);
Muito importante !!
Projeto de Banco de Dados
▪ Visão geral do processo de projeto de banco de dados.
*Universo do
Discurso
1
Minimundo
▪ Definição da porção da realidade a ser analisada;
▪ Resultado:
✓ Descrição textual
ou
✓ Representação gráfica
Projeto de Banco de Dados
▪ Visão geral do processo de projeto de banco de dados.
*Universo do
Discurso
1 2
4
Projeto de Banco de Dados
Maior grau de abstração, sem
detalhes de modelagem e/ou
Minimundo tecnologia.
Detalhes da estrutura da
Modelo Conceitual informação, independente das
restrições.
Detalhes baseados na
Modelo Lógico abordagem (hierárquica, rede,
relacional e NOSQL).
Menor grau de abstração, com
Modelo Físico detalhes das estruturas internas
do banco de dados (arquivos /
Nível de tabelas / índices, etc.).
Abstração
Projeto de Banco de Dados
▪ Visão geral do processo de projeto de banco de dados.
*Universo do
Discurso
1 2
5
Próxima Aula
❑ Capítulo 3 - Sistemas Gerenciadores de Bancos de Dados.
Sistemas Ger. de Bancos de Dados
Capítulo 3
▪ Herman desenvolveu a
tecnologia de
processamento de
dados de cartão
perfurado para o
Censo dos EUA de
1890.
Sistema de Cartão Perfurado
▪ Armazenamento de dados mais simples e em menor volume;
restrições;
banco de dados;
tabelas, por exemplo) ou uma visão virtual dos dados (por exemplo,
com algumas colunas apenas da tabela ou parte dos dados).
Visão do
professor
Visão do
aluno Smith
Próxima Aula
❑ Arquitetura ANSI/SPARC e Independência de dados.
Sistemas Ger. de Bancos de Dados
Capítulo 3
(Korth, Henry)
Independência de Dados
✓ Independência de Dados Física: capacidade de modificar o esquema
físico sem precisar alterar a programação de acesso aos dados.
Roupa
SGBD Hierárquico
▪ Não havia independência entre os esquemas lógico e físico;
▪ Muito esforço de programação para usar banco de dados
hierárquico;
▪ Exemplos:
✓ CODASYL (Comitee for Data Systems Language)
✓ ADABAS (Adaptable DAta BAse System) da Software AG
✓ RDM (Raima Database Manager) / db_VISTA
SGBD Orientado a Objetos
▪ Dados são armazenados na forma de objetos, ou seja, utilizando a
estrutura de dados denominada orientação a objetos, a qual
permeia as linguagens modernas de programação;
▪ Exemplos:
✓ ORION
✓ GemStone
✓ Caché
SGBD Relacional
▪ Surgiu com a Teoria Relacional de Edgar Frank Codd, que se baseou
na Teoria de Conjuntos e Álgebra Relacional;
▪ http://nosql-database.org
SGBD NewSQL
▪ SGBDD Relacional que procura fornecer o mesmo desempenho
escalável de um SGBD NOSQL;
local.
▪ Desvantagens:
✓ Difícil de escalar ➔ somente verticalmente;
dados e vice-versa;
▪ Desvantagens:
✓ Introduz latência de comunicação entre a aplicação e o banco de dados;
Servidor de Aplicação
Servidor de
Banco de Dados
Arquitetura Centralizada
▪ Camada de banco de dados sem redundância ➔ dados
centralizados em um único sistema de armazenamento;
Public Network
Private Network
SQL Server SQL Server SQL Server SQL Server
Instance 1 Instance 1 Instance 1 Instance 1
Shared Storage
(SAN/SMB)
Arquitetura Centralizada
Clients
Cluster Failover
Public Network
Private Network
SQL Server SQL Server SQL Server SQL Server
Instance 1 Instance 1 Instance 1 Instance 1
Shared Storage
(SAN/SMB)
Arquitetura Centralizada
▪ Vantagens:
✓ Tolerância à falhas na camada dos servidores de banco de dados.
▪ Desvantagens:
✓ Sistema de armazenamento ainda continua único, sem tolerância à
Public Network
Private Network
SQL Server SQL Server SQL Server SQL Server
Instance 1 Instance 1 Instance 1 Instance 1
Shared Storage
(SAN/SMB)
Arquitetura Distribuída
▪ “Um sistema constituído por um conjunto de computadores
independentes, visto pelos utilizadores do sistema como sendo um
sistema coerente e único.” (Tanenbaum - Sistemas Distribuídos: Princípios e Paradigmas)
▪ Desvantagens:
✓ Necessidade de mais recursos (hardware, software) ➔ mais custos;
Banco de Dados
Servidor de Aplicação
Banco de Dados
Arquitetura Distribuída
❖ É possível eliminar 100% ???
❖ Gerenciador de Arquivos
❖ Processador de Consultas
na linguagem hospedeira;
❖ Compilador DDL
❖ Índices
5. O SGBD emite uma ordem ao sistema operacional para que ele faça a
leitura dos registros solicitados.
Funcionamento de um SGBD
TIPO_PRODUTO
COD_TIPO_PRODUTO: Number
DSC_TIPO_PRODUTO: String
Elementos do Modelo Relacional
▪ Chave Primária (Primary Key / PK): coluna(s) que identificam
unicamente uma linha (tupla) em uma tabela;
0,1:
1:
Elementos do Modelo Relacional
▪ Restrições de Integridade
✓ Regra que garante a consistência dos dados em um relacionamento
chamado CONSTRAINT;
✓ Restricit (R): não permite deletar um registro que seja chave estrangeira
FK_SERVICO_ITSOLSER_01
FK_CLIENTE_SOLISERV_01
FORNECEDOR
COD_FORNECEDOR: NUMBER(3)
NOM_FORNECEDOR: VARCHAR2(50)
ITEM_SOLICITACAO_SERVICO DSC_ENDERECO: VARCHAR2(100)
COD_ITEM_SOLICITACAO: NUMBER(5) NUM_TELEFONE: NUMBER(12)
NUM_SOLICITACAO_SERVICO: NUMBER(5) (FK)
COD_SERVICO: NUMBER(3) (FK)
FK_FORMAPAG_SERVICO_01
QTD_SERVICO: NUMBER(2)
VLR_TOTAL_ITEM: NUMBER(10,2) FORMA_PAGAMENTO
COD_FORMA_PAGAMENTO: NUMBER(2)
DSC_FORMA_PAGAMENTO: VARCHAR2(20)
FK_SOLISERV_ITSOLSER_01
FK_FORMAPAG_SOLISERV_01
SOLICITACAO_SERVICO
NUM_SOLICITACAO_SERVICO: NUMBER(5)
COD_CLIENTE: NUMBER(5) (FK)
COD_ATENDENTE: NUMBER(3) (FK) ATENDENTE
DAT_SOLICITACAO: DATE FK_ATEND_SOLISERV_01 COD_ATENDENTE: NUMBER(3)
VLR_TOTAL_SOLICITACAO: NUMBER(10,2) NOM_ATENDENTE: VARCHAR2(50)
IND_UNIFICACAO_FORMA_PAGAMENTO: CHAR(1)
COD_FORMA_PAGAMENTO: NUMBER(2) (FK)
Próxima Aula
❑ As Doze Regras de Codd.
Introd. a Banco de Dados Relacional
Capítulo 4
✓ Restrições de integridade;
✓ Autorização;
Transação 2
Transação3
Transação 1
Propriedades ACID
▪ Propriedades das transações em bancos de dados relacionais;
▪ Garantem a integridade e consistência dos dados.
Atomicidade
▪ A transação será executada totalmente ou não será executada;
✓ Transação atômica.
no hospital.
✓ PL/SQL da Oracle
✓ SQL PL da IBM
Dialetos
▪ Resultado: pequenas diferenças na sintaxe de implementação para
um mesmo tipo de comando SQL entre os diversos dialetos (SGBDs).
Data
Data Definition
Definition Language Data Manipulation Language Data Control Language Transaction Control Language
Classes de Instruções SQL
Comandos
SQL
Próxima Aula
❑ Uma “Sopa de Letrinhas”.
Introd. a Banco de Dados Relacional
Capítulo 4
▪ Linguagem declarativa;
▪ Possui todas as opções e instruções existentes no padrão ISO;
▪ Variáveis, loop, controle de fluxo e decisões, funções, etc.;
▪ Possui opções e instruções que não estão no padrão;
'vi’.
▪ Logo:
NoSQL x NOSQL
▪ Strozzi afirmava categoricamente que seu produto “nada tinha a ver
com o recém-nascido Movimento NOSQL”:
modelo relacional...”;
➢ “....deveria ter sido chamado de ‘NoREL’, .... , já que não ser baseado em
DynamoDB da Amazon.
NoSQL x NOSQL
▪ Desde então, termo NOSQL tem sido atribuído aos SGBDs não
relacionais (e não somente mais aos “não SQL”):
relacional se popularizou;
➢ CockroachDB, CosmosDB;
➢ Google Spanner;
Database
Database Engine
Engine Analytical Engine
Analytical Engine Report Engine
Report Engine ETL Engine
ETL Engine
Bancos OLTP
Bancos OLTP Bancos OLAP
Bancos OLAP Pastas
Pastas Catálogos
Catálogos
Cluster
Cluster Failover
Failover Cubos
Cubos Relatórios
Relatórios Pacotes
Pacotes
Snapshot
Snapshot Tabelas Fato
Tabelas Fato // Dashboards
Dashboards Extração
Extração
Database
Database Mirror
Mirror Dimensão
Dimensão Assinaturas
Assinaturas Transformação
Transformação
Replicação
Replicação Carga de
Carga de Dados
Dados
Always
Always On
On
SQL
SQL SSAS
SSAS SSRS
SSRS SSIS
SSIS
Produtos da Família SQL Server
https://learn.microsoft.com/pt-br/sql/relational-databases/polybase/polybase-guide?view=sql-server-ver16
Edições da Família SQL Server
https://learn.microsoft.com/pt-br/sql/sql-server/editions-and-components-of-sql-server-2019?view=sql-server-ver16
Próxima Aula
❑ Conceitos Básicos do SQL Server.
Introdução ao Microsoft SQL Server
Capítulo 5
Servidor
Instância
Banco de Dados / Pasta / Catálogo
Conceitos Básicos
▪ Um servidor pode conter 1 ou mais Instâncias SQL/SSAS/SSRS;
✓ Da mesma versão ou não;
https://go.microsoft.com/fwlink/?linkid=866662
Próxima Aula
❑ Capítulo 6 - Ferramentas Client.
Ferramentas Client
Capítulo 6
✓ https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-
studio-ssms?view=sql-server-2019
https://aka.ms/ssmsfullsetup
Próxima Aula
❑ Instalação e Overview do Azure Data Studio.
Ferramentas Client
Capítulo 6
https://go.microsoft.com/fwlink/?linkid=2135512
Próxima Aula
❑ Instalação e Overview do Banco de Dados de Exemplo
AdventureWorks.
Ferramentas Client
Capítulo 6
1 2
5
SGBDR
?
Script DDL
▪ Conjunto de várias instruções DDL.
Script DDL
1 2
5
SGBDR
Script
\DDL
Script DDL
▪ A maioria dos SGBDs fornece interface gráfica para implementação
do modelo de dados físico;
);
✓ Índices
✓ Visões
✓ Chaves estrangeiras
✓ Constraints
✓ Sequences
✓ Sinônimos, etc.
processamento.
A Instrução SELECT
▪ Pertencente à classe DML da Linguagem SQL;
▪ No padrão ODMG (SGBDO): classe DQL (Data Query Language);
▪ Utilizada para retornar (consultar) os dados armazenados no banco;
▪ Baseada na operação de Projeção da Álgebra Relacional;
FROM <tabela>
Alias de Coluna
▪ Nome alternativo (apelido) para colunas;
▪ Existentes apenas em tempo de execução (não é persistido);
▪ Criado usando-se a cláusula AS (ou espaço) após o nome da coluna ,
colocando-se o alias desejado em seguida.
FROM Production.Product;
Alias de Coluna
▪ Efeito prático: modificar o cabeçalho (label) da coluna que é exibido
no resultado da query.
Alias de Tabela
▪ Nome alternativo (apelido) para tabelas;
▪ Existentes apenas em tempo de execução (não é persistido);
✓ Diferente do sinônimo que é persistido (criado como objeto);
FROM Production.Product P;
Expressão CASE
▪ Pode ser utilizada na instrução SELECT para “tratamento” dos dados;
✓ Não altera os dados persistidos no BD, apenas na exibição da query.
CASE Expressão_de_Entrada
WHEN expressão_de_comparação THEN expressão_resultado [ ...n ]
[ ELSE expressão_resultado_else]
END
CASE
WHEN Expressão_BooleanaTHEN expressão_resultado [ ...n ]
[ ELSE expressão_resultado_else]
END
Próxima Aula
❑ Demonstração: Selecionando Dados.
Utilização Básica do SQL Server
Capítulo 7
FROM Person.Person
ORDER BY FirstName
Tipos de Ordenação
▪ Default: ordenação feita de forma ascendente (A à Z, 0 à 9);
FROM Person.Person
FROM Person.Person
ORDER BY FirstName ASC, LastName DESC
FROM Production.Product
FROM Production.Product
ORDER BY Name;
A Cláusula TOP
▪ Usada em conjunto com a cláusula SELECT para limitar a quantidade
de linhas retornadas;
FROM Production.Product
ORDER BY Nome_Produto;
A Cláusula DISTINCT
▪ Elimina os resultados repetidos retornados (tuplas / linhas
ORDER BY Cores_de_Produtos;
Operadores de Comparação
▪ Usados para comparar colunas ou expressões nas cláusulas de filtro
da Linguagem SQL;
OR Color = 'Silver'
ORDER BY Name;
Ordem de Avaliação dos Operadores
▪ Da mesma forma que as cláusulas da Linguagem SQL e os operadores
3º ➔AND
seguinte ordem (sequência) ➔ 4º ➔ ALL, ANY, BETWEEN, IN, LIKE, OR, SOME
Operadores de Comparação
▪ Pode-usar parênteses para determinar a ordem desejada de
-- Produtos com Nome que Iniciam com 'Chain' e que Sejam da Cor Preta ou Prata
SELECT Name,Color
FROM Production.Product
ORDER BY Name;
Alias de Coluna no WHERE
▪ Não é possível usar alias de coluna na cláusula WHERE;
▪ Possível utilizar uma consulta SELECT em outra tabela ou conjunto de tabelas para
UPDATE TAB2
DEFAULT_DATABASE = [BDIGTI];
Componentes de Segurança
▪ SECURABLES: objetos do SQL Server, no nível do servidor ou do
queries;
✓ Diária ✓ Mensal
✓ Semanal ✓ Etc.
Retenção
▪ Por quanto tempo cada backup que foi realizado é guardado, ou
✓ Um mês ✓ Indeterminadamente
✓ Um ano ✓ Etc.
Tipos de Backup
▪ FULL: backup completo do banco de dados (estruturas, dados,
log dos quais não foi feito backup em um backup de log anterior.
➢ Banco de dados precisa estar no recovery model full;
➢ Possibilita recovery-point-in-time.
RTO
▪ Recovery Time Objective;
--Backup de LOG
BACKUP LOG { database_name}
TO <backup_device>