ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS …...
Transcript of ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS …...
![Page 1: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/1.jpg)
EDUARDO C. DE ALMEIDA 1
ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS RELACIONAIS
UFPR LABORATÓRIO DE BANCO DE DADOS
![Page 2: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/2.jpg)
VISÃO GERAL DA APRESENTAÇÃO
▸ Entender como um banco de dados aparenta no nível lógico de armazenamento e como consultar os dados deste armazenamento
![Page 3: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/3.jpg)
(PRÉ 1958) … NO INÍCIO ERAM TREVAS …▸ Sem sistema operacional
▸ Sem sistema de arquivos
▸ Sem sistema de bancos de dados
▸ Sem sistema de comunicação
▸ Sem modelo de multi-programação
▸ Sem …
▸ Somente máquina crua e a necessidade de organizar os dados!!!
The Origin of the Integrated Data Store (IDS): The First Direct-Access DBMS C. Bachman IEEE, 2009
![Page 4: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/4.jpg)
1958/61 - INTEGRATED DATA STORE (IDS)
▸ Mensagens dos processos -> OLTP
▸ Diagrama de estruturas de dados
▸ Processamento “tupla-por-vez”
The Origin of the Integrated Data Store (IDS): The First Direct-Access DBMS C. Bachman IEEE, 2009
![Page 5: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/5.jpg)
1960 - IBM INFORMATION MANAGEMENT SYSTEM (IMS)▸ Gestão dos componentes do foguete da
missão Apollo da NASA
▸ Modelo Hierárquico de dados
▸ Implementação complexa
▸ Sem padrões de manipulação de dados
▸ Sem independência estrutural
![Page 6: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/6.jpg)
1970 - MODELO RELACIONALObjetivo: Evitar a manutenção dos programas observada no IMS/CODASYL (alterar programas após mudança no esquema)
▸ Armazenamento em estruturas relacionais
▸ Formas normais (evitar anomalias)
▸ Acesso via linguagem de alto nível
A relational model of data for large shared data banks E. Codd Comm. of the ACM, 1970
![Page 7: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/7.jpg)
1970 - MODELO RELACIONALPrimeiras implementações:
▸ IBM: System-R
▸ UC Berkeley: Ingres
▸ Oracle
![Page 8: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/8.jpg)
1980/90 - IMPLEMENTAÇÕES DO MODELO RELACIONAL▸ System-R -> DB2
▸ SQL como padrão de linguagem
▸ Oracle ganha mercado
▸ Várias empresas implementam o modelo
▸ “Fork” do Sybase pela Microsoft
![Page 9: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/9.jpg)
MODELO RELACIONAL
TUPLAS (LINHAS)
CPF Nome Email Idade
123 JOSE jose@ufpr 10/10/2000
234 MARIA NULL 10/03/1970
345 ROSA rosa@yahoo 01/01/1980
… … … …
#1 #2 #3 #4
#4
#3
#2
#1
ATRIBUTOS (COLUNAS)
CLIENTES (CPF, NOME, EMAIL, IDADE)
CONTAS (CPF, AGENCIA, CONTA)
![Page 10: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/10.jpg)
LAYOUT DE UMA TUPLA
345HEADER ROSA ROSA@YAHOO
TUPLAS (LINHAS)
CPF Nome Email Idade
123 JOSE jose@ufpr 10/10/2000
234 MARIA NULL 10/03/1970
345 ROSA rosa@yahoo 01/01/1980
… … … …
#1 #2 #3 #4
#4
#3
#2
#1
ATRIBUTOS (COLUNAS)
01/01/1980
▸ Tupla é uma sequencia de bits interpretados pelo BD
▸ Header mantém visibilidade e bitmap de NULLs
![Page 11: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/11.jpg)
LAYOUT DE UMA TUPLA
345HEADER ROSA ROSA@YAHOO
TUPLAS (LINHAS)
CPF Nome Email Idade
123 JOSE jose@ufpr 10/10/2000
234 MARIA NULL 10/03/1970
345 ROSA rosa@yahoo 01/01/1980
… … … …
#1 #2 #3 #4
#4
#3
#2
#1
ATRIBUTOS (COLUNAS)
01/01/1980
CREATE TABLE CLIENTES( CPF INT; NOME VARCHAR(50); EMAIL VARCHAR(50); IDADE DATE;
);
▸ Tupla é uma sequencia de bits interpretados pelo BD
▸ Header mantém visibilidade e bitmap de NULLs
▸ Atributos armazenados na ordem da definição
![Page 12: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/12.jpg)
LAYOUT DE UMA TUPLA
345HEADER ROSA ROSA@YAHOO
TUPLAS (LINHAS)
CPF Nome Email Idade
123 JOSE jose@ufpr 10/10/2000
234 MARIA NULL 10/03/1970
345 ROSA rosa@yahoo 01/01/1980
… … … …
#1 #2 #3 #4
#4
#3
#2
#1
ATRIBUTOS (COLUNAS)
01/01/1980
CREATE TABLE CLIENTES( CPF INT; NOME VARCHAR(50); EMAIL VARCHAR(50); IDADE DATE;
);
▸ Tupla é uma sequencia de bits interpretados pelo BD
▸ Header mantém visibilidade e bitmap de NULLs
▸ Atributos armazenados na ordem da definição
COMO OS SISTEMAS DE BANCO DE DADOS ARMAZENAM AS TUPLAS ?
![Page 13: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/13.jpg)
HIERARQUIA DE MEMÓRIA
![Page 14: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/14.jpg)
ARMAZENAMENTO REMOTO (CLOUD, HDFS)
DRAM
Memória Não-Volátil
HDD
SSD
CACHES DE CPU
REGISTRADORES DE CPU
Memória Volátil
![Page 15: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/15.jpg)
ARMAZENAMENTO REMOTO (CLOUD, HDFS)
DRAM
Memória Não-Volátil
HDD
SSD
CACHES DE CPU
REGISTRADORES DE CPU
Memória Volátil
Velo
cida
de
0.15 ms
100 ns
10 ns
< 1 ns
10 ms
30 ms
![Page 16: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/16.jpg)
ARMAZENAMENTO REMOTO (CLOUD, HDFS)
DRAM
Memória Não-Volátil
HDD
SSD
CACHES DE CPU
REGISTRADORES DE CPU
Memória Volátil
Velo
cida
de
30 ms
100 ns
10 ns
< 1 ns
10 ms
0.15 ms = 150,000 ns
0.15 ms
![Page 17: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/17.jpg)
ARMAZENAMENTO REMOTO (CLOUD, HDFS)
DRAM
Memória Não-Volátil
HDD
SSD
CACHES DE CPU
REGISTRADORES DE CPU
Memória Volátil
Velo
cida
de
30 ms
100 ns
10 ns
< 1 ns
10 ms
- Acesso aleatório- Endereçamento por byte
0.15 ms
![Page 18: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/18.jpg)
ARMAZENAMENTO REMOTO (CLOUD, HDFS)
DRAM
Memória Não-Volátil
HDD
SSD
CACHES DE CPU
REGISTRADORES DE CPU
Memória Volátil
Velo
cida
de
30 ms
100 ns
10 ns
< 1 ns
10 ms
- Acesso sequencial- Endereçamento por bloco
0.15 ms
![Page 19: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/19.jpg)
ARMAZENAMENTO REMOTO (CLOUD, HDFS)
DRAM
Memória Não-Volátil
HDD
SSD
CACHES DE CPU
REGISTRADORES DE CPU
Memória Volátil
Capacidade
Velo
cida
de
100 ns
10 ns
< 1 ns
10 ms
PB
GB
GB
MB
KB
TB
0.15 ms
30 ms
![Page 20: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/20.jpg)
ROW-STORES
![Page 21: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/21.jpg)
PAGINAS DE BANCO DE DADOS
Database Storage A. Pavlo CMU, 2017
▸ Bloco de dados de tamanho fixo (unidade minima de armazenamento)
▸ Contém: tuplas, metadados, indices, logs.
▸ Tamanhos de Página:
▸ de hardware: 4KB
▸ de SO: 4KB
▸ de BD: até 16KB
![Page 22: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/22.jpg)
PAGINAS DE BANCO DE DADOS
4
4 KB
8 KB
16 KB
Tamanho padrão
▸ Bloco de dados de tamanho fixo (unidade minima de armazenamento)
▸ Contém: tuplas, metadados, indices, logs.
▸ Tamanhos de Página:
▸ de hardware: 4KB
▸ de SO: 4KB
▸ de BD: até 16KB
![Page 23: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/23.jpg)
LAYOUT DE UMA PAGINA: N-ARY STORAGE MODEL (NSM)
4
▸ Unidade mínima de armazenamento
▸ Padrão: slotted page
▸ Header mantém numero de slots e offset dos slots
HEADER
Slot array
tuplas de tamanho variável
TUPLE #1TUPLE #2TUPLE #3TUPLE #4
![Page 24: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/24.jpg)
4
▸ Unidade mínima de armazenamento
▸ Padrão: slotted page
▸ Header mantém numero de slots e offset dos slots
▸ Página direciona slots para offsets
HEADER
TUPLE #1TUPLE #2TUPLE #3TUPLE #4
LAYOUT DE UMA PAGINA: N-ARY STORAGE MODEL (NSM)
![Page 25: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/25.jpg)
4
Vantagens:
▸ Inclusões, exclusões e atualizações rápidas
▸ Bom para consultas que trazem toda a tupla
Desvantagens:
‣ Grandes varreduras de dados
‣ Consulta de subconjuntos de atributos
N-ARY STORAGE MODEL (NSM) - ROW STORE
![Page 26: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/26.jpg)
OBJECT-STORES
![Page 27: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/27.jpg)
1990 - BD ORIENTADO A OBJETOBenefícios
▸ Suportam acesso direto aos objetos das linguagens de programação
▸ Converte automaticamente os tipos de objetos (evita mapeamento O-R)
▸ Ainda existem em outras formas (XML, JSON)
![Page 28: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/28.jpg)
MODELO ORIENTADO A OBJETO -> RELACIONAL
CLIENTES (CPF, NOME, EMAIL, IDADE)
CONTAS (CPF, AGENCIA, CONTA)
RELACIONAL
class Clientes{ int cpf; String nome; String email; Date idade; Contas cnt[ ];
};
APLICAÇÃO
![Page 29: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/29.jpg)
MODELO ORIENTADO A OBJETO -> RELACIONAL
CLIENTES (CPF, NOME, EMAIL, IDADE)
CONTAS (CPF, AGENCIA, CONTA)
RELACIONAL
class Clientes{ int cpf; String nome; String email; Date idade; Contas cnt[ ];
};
APLICAÇÃO
CPF Nome Email Idade
123 JOSE jose@ufpr 10/10/2000
CPF Agencia Conta
123 3200 123-45
123 3200 333-90
![Page 30: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/30.jpg)
MODELO ORIENTADO A OBJETO -> RELACIONAL
CLIENTES (CPF, NOME, EMAIL, IDADE)
CONTAS (CPF, AGENCIA, CONTA)
RELACIONAL
class Clientes{ int cpf; String nome; String email; Date idade; Contas cnt[ ];
};
APLICAÇÃO
CPF Nome Email Idade
123 JOSE jose@ufpr 10/10/2000
CPF Agencia Conta
123 3200 123-45
123 3200 333-90
![Page 31: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/31.jpg)
{“cpf”: 123,“nome”: “JOSE”, “email”: “jose@ufpr”, “idade”: 10/10/2000, “contas”: [
{ “agencia”: 3200, “conta”: 123-45,
}, {
“agencia”: 3200, “conta”: 333-90,
} ]
MODELO ORIENTADO A OBJETO
class Clientes{ int cpf; String nome; String email; Date idade; Contas cnt[ ];
};
APLICAÇÃOJSON
![Page 32: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/32.jpg)
{“cpf”: 123,“nome”: “JOSE”, “email”: “jose@ufpr”, “idade”: 10/10/2000, “contas”: [
{ “agencia”: 3200, “conta”: 123-45,
}, {
“agencia”: 3200, “conta”: 333-90,
} ]
MODELO ORIENTADO A OBJETO
class Clientes{ int cpf; String nome; String email; Date idade; Contas cnt[ ];
};
APLICAÇÃOJSON
![Page 33: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/33.jpg)
{“cpf”: 123,“nome”: “JOSE”, “email”: “jose@ufpr”, “idade”: 10/10/2000, “contas”: [
{ “agencia”: 3200, “conta”: 123-45,
}, {
“agencia”: 3200, “conta”: 333-90,
} ]
MODELO ORIENTADO A OBJETO
class Clientes{ int cpf; String nome; String email; Date idade; Contas cnt[ ];
};
APLICAÇÃOJSON
![Page 34: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/34.jpg)
RELACIONAL
{“cpf”: 123,“nome”: “JOSE”, “email”: “jose@ufpr”, “idade”: 10/10/2000, “contas”: [
{ “agencia”: 3200, “conta”: 123-45,
}, {
“agencia”: 3200, “conta”: 333-90,
} ]
JSON
CPF Nome Email Idade
123 JOSE jose@ufpr 10/10/2000
CPF Agencia Conta
123 3200 123-45
123 3200 333-90
CODIGO OBJETO EM ARMAZENAMENTO RELACIONAL
![Page 35: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/35.jpg)
RELACIONAL
{“cpf”: 123,“nome”: “JOSE”, “email”: “jose@ufpr”, “idade”: 10/10/2000, “contas”: [
{ “agencia”: 3200, “conta”: 123-45,
}, {
“agencia”: 3200, “conta”: 333-90,
} ]
JSON
CPF Nome Email Idade
123 JOSE jose@ufpr 10/10/2000
CPF Agencia Conta
123 3200 123-45
123 3200 333-90
SELECT AVG(IDADE) FROM CLIENTES;
![Page 36: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/36.jpg)
4
PERMITE VERSIONAMENTO DE OBJETOS
V1.1
{“cpf”: 123,“nome”: “JOSE”, “email”: “jose@ufpr”, “idade”: 10/10/2000 }
![Page 37: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/37.jpg)
4
PERMITE VERSIONAMENTO DE OBJETOS
V1.1
{“cpf”: 123,“nome”: “JOSE DA SILVA”, “email”: “jose@ufpr”, “idade”: 10/10/2000 }
V1.2
![Page 38: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/38.jpg)
4
PERMITE VERSIONAMENTO DE OBJETOS
V1.1
{“cpf”: 123,“nome”: “JOSE DA SILVA”, “email”: “josesilva@gmail”, “idade”: 10/10/2000 }
V1.2 V1.3
V2.1
![Page 39: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/39.jpg)
4
PERMITE VERSIONAMENTO DE OBJETOS
V1.1
{“cpf”: 123,“nome”: “JOSE DA SILVA”, “email”: “josesilva@gmail”, “idade”: 10/10/2000 }
V1.2 V1.3
V2.1
{“cpf”: 123,“nome”: “JOSE DA SILVA”, “email”: “josesilva@gmail”, “idade”: 10/10/2000, “fone”: [9999,9900,9898] }
![Page 40: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/40.jpg)
4
Vantagens:
▸ Evita problemas de conversão de tipos
▸ Armazena e acessa objetos diretamente
Desvantagens:
‣ Desenvolvimento complexo de consultas
‣ Sem API padrão de mercado
‣ Tipos complexos: video, audio, etc
BANCO DE DADOS ORIENTADO A OBJETO
![Page 41: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/41.jpg)
COLUMN-STORES
![Page 42: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/42.jpg)
2000 - DATA WAREHOUSE▸ Ascensão dos BDs OLAP
▸ Armazenamento contíguo de atributos de uma tabela (partic. vertical)
![Page 43: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/43.jpg)
4
The MonetDB Architecture M. Kersten CWI, 2008
CPF Nome Email Idade123 JOSE jose@ufpr 10/10/2000
234 MARIA NULL 10/03/1970
345 ROSA rosa@yahoo 01/01/1980
… … … …
SELECT AVG(IDADE) FROM CLIENTES;
DATA WAREHOUSE EM NSM
![Page 44: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/44.jpg)
4
The MonetDB Architecture M. Kersten CWI, 2008
CPF Nome Email Idade123 JOSE jose@ufpr 10/10/2000
234 MARIA NULL 10/03/1970
345 ROSA rosa@yahoo 01/01/1980
… … … …
SELECT AVG(IDADE) FROM CLIENTES;
DATA WAREHOUSE EM NSM
![Page 45: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/45.jpg)
4
The MonetDB Architecture M. Kersten CWI, 2008
CPF Nome Email Idade123 JOSE jose@ufpr 10/10/2000
234 MARIA NULL 10/03/1970
345 ROSA rosa@yahoo 01/01/1980
… … … …
SELECT AVG(IDADE) FROM CLIENTES;
DATA WAREHOUSE EM NSM
▸ Leitura de atributos desnecessários
▸ Difícil compressão de dados
![Page 46: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/46.jpg)
4
The MonetDB Architecture M. Kersten CWI, 2008
CPF Nome Email Idade123 JOSE jose@ufpr 10/10/2000
234 MARIA NULL 10/03/1970
345 ROSA rosa@yahoo 01/01/1980
… … … …
SELECT AVG(IDADE) FROM CLIENTES;
DECOMPOSITION STORAGE MODEL (DSM) - COLUMN STORE
OID CPF101 123
102 234
103 345
…
OID Nome101 JOSE
102 MARIA
103 ROSA
…
OID Idade101 10/10/2000
102 10/03/1970
103 01/01/1980
…
…
![Page 47: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/47.jpg)
4
The MonetDB Architecture M. Kersten CWI, 2008
CPF Nome Email Idade123 JOSE jose@ufpr 10/10/2000
234 MARIA NULL 10/03/1970
345 ROSA rosa@yahoo 01/01/1980
… … … …
SELECT AVG(IDADE) FROM CLIENTES;
DECOMPOSITION STORAGE MODEL (DSM) - COLUMN STORE
OID CPF101 123
102 234
103 345
…
OID Nome101 JOSE
102 MARIA
103 ROSA
…
OID Idade101 10/10/2000
102 10/03/1970
103 01/01/1980
…
…
![Page 48: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/48.jpg)
4
COLUMN-STORE VS. ROW-STORE
▸ Carregamento de 6.001.215 tuplas
▸ PostgreSQL 9.4.18
▸ MonetDB
▸ Debian Linux 3.16.39
![Page 49: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/49.jpg)
4
COLUMN-STORE VS. ROW-STORE
▸ TPC-H Q6: Previsão de alteração de receita (ultima de 5 execuções)
▸ Tabela lineitem: 16 colunas
SELECT SUM(L_EXTENDEDPRICE * L_DISCOUNT) AS REVENUE
FROM LINEITEM
WHERE L_SHIPDATE >= '1994-01-01' AND L_SHIPDATE < '1995-01-01' AND L_DISCOUNT BETWEEN 0.05 AND 0.07 AND L_QUANTITY < 24;
![Page 50: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/50.jpg)
4
Vantagens:
▸ Leitura somente dos atributos necessários
▸ Compressão (colunas de mesmo tipo)
Desvantagens:
‣ Lento para atualizações
‣ Lento para consultas pontuais (reconstrução da tupla)
DECOMPOSITION STORAGE MODEL (DSM) - COLUMN STORE
![Page 51: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/51.jpg)
VARIADOS
![Page 52: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/52.jpg)
2010 - NOSQL▸ Formato variado de
armazenamento (chave/valor, documento)
▸ Ideal para aplicações específicas (blog, email, proc. de texto)
▸ Cuidado com transações!!!
▸ Sem esquema
▸ Sem padrão de linguagem
![Page 53: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/53.jpg)
4
COLUMN-STORE VS. ROW-STORE VS. NOSQL
![Page 54: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/54.jpg)
4
COLUMN-STORE VS. ROW-STORE VS. NOSQL
SELECT SUM(L_EXTENDEDPRICE * L_DISCOUNT) AS REVENUE
FROM LINEITEM
WHERE L_SHIPDATE >= '1994-01-01' AND L_SHIPDATE < '1995-01-01' AND L_DISCOUNT BETWEEN 0.05 AND 0.07 AND L_QUANTITY < 24;
DB.LINEITEM.FIND( { "SHIPDATE":{ "$GTE": "1994-01-01", "$LT": "1995-01-01", }, …
![Page 55: ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS … · (PRÉ 1958) … NO INÍCIO ERAM TREVAS … Sem sistema operacional Sem sistema de arquivos Sem sistema de bancos de dados Sem](https://reader035.fdocuments.net/reader035/viewer/2022081612/5f22717684b88c2c6c2bfe34/html5/thumbnails/55.jpg)
▸ Sistemas híbridos (OLTP/OLAP)
▸ Embarcados
▸ Séries Temporais
▸ IoT
▸ Cloud
▸ …
2010
SNAPPY