SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
Banco de Dados
 Open Source
 Brenno Ayres / Rodrigo Aurélio
             TBD
Sumário

1. Conceito Open Source

2. Banco de Dados Open Source

3. PostgreSQL

4. NoSQL
Open Source
                      Definição


● A definição de Open Source foi criada pela OSI (Open
   Source Iniciative) a partir do texto original Debian
   Free Software Guidelines (DFSG) e determina que
   um software de código aberto deve garantir;

● Distribuição livre, código fonte, trabalhos derivados,
   integridade do autor, não discriminar pessoas e áreas
   de atuação, distribuição da licença.
Open Source
                              Lincenças
General Public License (Licença Pública Geral): A GPL é a licença com maior
utilização por parte de projetos de software livre, em grande parte devido à sua
adoção para o projeto GNU e o sistema operacional GNU/Linux.

Licença Apache é uma licença para software livre (open source) de autoria da
Apache Software Foundation (ASF). Todo software produzido pela ASF ou
qualquer um dos seus projetos e sub-projetos é licenciado de acordo com os
termos da licença Apache.

BSD permite que o software distribuído sob a licença, seja incorporado a
produtos proprietários. Trabalhos baseados no material podem até ser
liberados com licença proprietária. Alguns exemplos notáveis são: o uso de
código do BSD (funções de rede de computadores) em produtos da Microsoft,
e o uso de muitos componentes do FreeBSD no sistema Mac OS X da Apple
Computer.
Banco de dados
 Open Source
MySQL
              História/Características


● Partindo da necessidade de usar o mSQL para
  conectar tabelas utilizando ISAM, e visto que isso
  não tinha performance considerável. Foi criado
  uma nova abordabem da API do mSQL, nascendo
  assim o MySQL;

● Consome poucos recursos de hardware, controle
  trasancional, triggers, stored procedures, cursors,
  muito utilizado em hospedagens, dentre outros
MySQL
Cases de Sucesso
Firebird
              História/Características




● O Código fonte do Interbase foi liberado pela
  Borland em 2000, dando assim subsídio para que a
  comunidade pudesse construir o firebird;

● Ele dá suporte à ACID, MVCC, triggers,
  procedures, dentre outros;
PostgreSQL
PostgreSQL
                              História
O PostgreSQL é um dos resultados de uma ampla evolução que se iniciou com
o projeto Ingres, desenvolvido na Universidade de Berkeley, Califórnia.

Stonebraker um dos pioneiros dos bancos de dados relacionais deixou a
faculdade em 1982 para vender o Ingres, porém retornou logo em seguida.

Em 1985 Stonebraker deu inicio ao projeto pós-Ingres patrocinado pela
DARPA(*Defense Advanced Research Projects Agency) e pelo ARO (Army
Research Office) construíram um banco que pudesse compreender tipos de
dados, que hoje nós conhecemos como objetos.

O projeto resultante, chamado Postgres, era orientado a introduzir a menor
quantidade possível de funcionalidades para completar o suporte a tipos.
PostgreSQL
                  Apresentação


● Utiliza a licença BSD;
● Suporte para os sistemas operacionais mais
  utilizados (Linux, Unix-Like e Windows);
● Implementa todos os conceitos de ACID
● Além dos tipos de dados do SQL também suporta
  objetos binários(Fotos, Vídeos...)
PostgreSQL
                   Apresentação


●   Banco de dados Objeto-Relacional
    ○   Herança;
    ○   Tipos de dados complexos;
    ○   Funções;
PostgreSQL
        Linguagem - Desenvolvimento
A principal liguagem utilizada para desenvolver o
PostgreSQL é o ANSI C, porem são utilizadas algumas
outras linguagens conforme podemos ver abaixo.
PostgreSQL
● Limites PostgreSQL
  ○   Banco de dados:       Ilimitado
  ○   Tabela:               32 TB
  ○   Linha:                1.6 TB
  ○   Campos:               1GB
  ○   Linhas por tabela:    Ilimitado
  ○   Colunas por tabela:   250 - 1600 (Conforme tipo)
  ○   Índices por tabela:   Ilimitado
PostgreSQL
                          Arquitetura

O PostgreSql utiliza o modelo cliente/servidor e sua sessão
consiste nos seguintes processos cooperando entre si.
   ○   O primeiro processo fica ativo no servidor que por sua vez gerencia
       arquivos e aceita conexões do clientes e executa as ações em nome
       dos clientes.


   ○   O segundo processo é o aplicativo cliente do usuário (frontend) que
       deseja executar operações de banco de dados.
PostgreSQL
  Arquitetura
PostgreSQL
                        Administração
Existem várias ferramentas para administrar o PostgreSQl
que vão de aplicações multiplataforma, Linux e outras para
Windows.

● Multiplataforma
   ○   PGAccess, phpPGAdmin, PGAdmin III, OpenOffice.org, ...

● Linux
   ○   pgFouine, Red Hat, TOra, ...

● Windows
   ○   Embarcadero, PGExplorer, DBTools,Pg Manager, ...
PostgreSQL
 Administração
PostgreSQL
                         Administração

Backups

    Método SQL-Dump: gera um arquivo de texto contendo instruções SQL
para serem processadas pelo servidor para recriar o Banco conforme o
arquivo.

    Cópia de Segurança: copiar diretamente os arquivos que o PostgreSQL
usa para armazenar o Banco.

    Cópia de Segurança em linha: o PostgreSQL mantém o registro de escrita
prévia (WAL = write ahead log) no subdiretório pg_xlog do diretório de dados
do agrupamento.
PostgreSQL
                   Replicação

● Replicação
  ○ Hot Standby, Streaming Replication
PostgreSQL
                  Performance/Recursos


●   Two Phase Commit (2PC)
    ○ Surgiu para controlar e monitorar as atividades de commit e rollback
       das transações em ambientes de bases de dados distribuídos, ele
       garante a integridade entre as bases permitindo que a transação seja
       segura e íntegra.


●   Performance
    ○ Com um grande poder de processamento, o PostgreSQL é capaz de
       resolver consultas complexas em milisegundos;
    ○ Para tal, ele consome recursos computacionais consideráveis;
PostgreSQL
                    Performance/Recursos




●   MVCC (controle de concorrência de multi-versão);
    ○ Diferentemente dos sistemas gerenciadores de banco de dados
       tradicionais, que usam bloqueios para    realizar o controle de
       concorrência, o PostgreSQL mantém a      consistência dos dados
       utilizando o modelo MVCC. Este modelo   impede que a transação
       enxergue dados inconsistentes ou seja   a informação que estão
       aparecendo são de algum tempo atrás.
PostgreSQL
                    Triggers

● Triggers
  ○ Before/After
  ○ NEW
    ■ INSERT: Valores inseridos;
    ■ UPDATE: Novos valores;
  ○ OLD
    ■ DELETE: Dados que estão sendo excluídos;
    ■ UPDATE: Valores sobrescritos;
  ○ Existem várias liguagens para a implementação
    (PL/pgSQL, PL/Perl, PL/Python, PL/Java, entre
    outras);
PostgreSQL
                           Trigger - Implementação

CREATE FUNCTION valida_dados_funcionario() RETURNS TRIGGER AS $valida_dados_funcionario$
BEGIN
       IF NEW.NOME IS NULL THEN
           RAISE EXCEPTION 'Por Favor, digite o nome do funcionario!';
   END IF;


       IF NEW.IDADE IS NULL THEN
           RAISE EXCEPTION 'Por favor, informe a idade!';
    END IF;


       IF NEW.IDADE < 0 THEN
           RAISE EXCEPTION 'Desculpe, o funcionario não pode ter % anos', NEW.IDADE;
    END IF;


   RETURN NEW;
END;
$valida_dados_funcionario$
LANGUAGE plpgsql;
PostgreSQL
        Procedures - Implementação

● Stored Procedures
  ○ Função que retonar um valor
  ○ Pode ser implementada em várias linguagens
  ○ Divide-se em:
     ■ Procedurais
     ■ Não procedurais
     ■ Linguagem específica
PostgreSQL
                   Stored Procedure

//Criar
create or replace function alunosAprovados()returns setof aluno
as

     select * from aluno where situacao = ''aprovado'';

language 'sql';

//Executar
    select alunosAprovados();
PostgreSQL
                            View - Implementação

CREATE VIEW vis_permanente_temporaria AS

  SELECT id_perm, nome_perm, nome_temp

  FROM tbl_permanente INNER JOIN tbl_temporaria ON (id_perm = id_temp);

INSERT INTO tbl_permanente VALUES (1,'nome permanente 1');
INSERT INTO tbl_permanente VALUES (2,'nome permanente 2');
INSERT INTO tbl_temporaria VALUES (1,'nome temporario 1');
INSERT INTO tbl_temporaria VALUES (2,'nome temporario 2');

pset border 2
pset title 'Visão juntando tabela permanente com temporária'

SELECT * FROM vis_permanente_temporaria;

  Visão juntando tabela permanente com temporária
+---------+-------------------+-------------------+
| id_perm |    nome_perm       |    nome_temp       |
+---------+-------------------+-------------------+
|     1 | nome permanente 1 | nome temporario 1 |
|     2 | nome permanente 2 | nome temporario 2 |
+---------+-------------------+-------------------+
(2 linhas)
PostgreSQL
 Patrocinadores
PostgreSQL
 Cases de Sucesso
Banco de dados OS
     NoSQL
NoSQL

A                                 B
C                                 A
I                                 S
D                                 E
                                Basic
                                     a
      icity                    Avaia lly
 Atom ency                           ble
     ist               Even Soft Stat
Cons tion                  tually      e
  Isola lity                      Cons
                                       isten
         bi                                  cy
  Dura
NoSQL
● Motivação
  ○ O fluxo gigantesco de dados em prazos mínimos de
    tempo, em um determinado contexto;
  ○ A crescente de serviços que necessitam de uma
    arquitetura que ofereça escalabilidade horizontal;
  ○ A necessidade de manusear ambiente semi-
    estruturados e até mesmo não estruturados;
● Modelos
  ○   Documento (Riak, MongoDB, CouchDB)
  ○   Chave-Valor (Amazon s3, Redis, Voldemort)
  ○   Colunas (Cassandra, HBase, Hyperbase)
  ○   Grafos (Neo4j, Titan, InfoGrid)
Document Based
● Principais caracteristicas
   ○   Comum a todas implementações é o conceito de "Document";


   ○   Document trata-se do encapsulamento e o encoding dos dados em
       arquivos de vários tipos (XML, JSON, BSON, até mesmo arquivos
       binários como PDF, DOC).


   ○   Em comparativo com o modelo relacional, internamente, um
       document pode ser tratado como uma tupla, porém de maneira mais
       flexível


   ○   A organização se dá de vários modos: Coleções, Tags, Hierarquias
       de diretórios, entre outras
Document Based
              Exemplo Mongo

darthVader = {
  nome: "Anakin Skywalker",
  politica: Sith,
  universo: "Star Wars",
  arma: "Estrela da morte"
}
db.starwars.save(darthVader)
Key - Value

● Conceito Básico

  ○ "O dados é geralmente consistido de uma string que
    representa a chave e o atual dado que é
    considerado o value";
  ○ O dados podem ser de tipos primitivos, como
    também objetos empacotados como utilizados na
    Orientação a Objetos;
Column Based

● Conceitos
  ○ Em face dos SGBDs row-oriented, que os dados
    são serializados em uma organização de linhas, o
    column based oferece tal organização em forma de
    colunas. Onde cada campo é armazenado em uma
    coluna;
● Beneficios
  ○ Empacotamento de dados. Onde os dados
    semelhantes e de mesmo formato estão sendo
    armazenados próximo;
  ○ Melhor utilização em sistemas OLAP (On-LIne Analytical
     processing)
Column Based
   Exemplo
Graph

● Breve introdução
  ○ Estrutura baseada na teoria dos gráficos;
  ○ Emprega conceitos como "Vertices/Nodes", "Edges"
    e "Properties";
  ○ Nodes e propriedades assemelham-se ao conceito
    utilizados em POO;
  ○ Não depende de esquemas ou de uma estruturação
    nos dados;
Titan
●   Graph database
●   Suporta Milhares de usuários concorrentes
●   Escalabilidade linear
●   Multi-datacenter
●   Suporte ACID e consistência eventual
●   Persistência
    ○ Cassandra, HBase, Oracle BerkleyDB
● Produtos voltado para grafos
    ○ Gremlin, Rexster, Blueprints
Titan
Grafos dos Deuses
Titan
                Breve implementação

● Criando uma instância do banco
   gremlin> g = GraphOfTheGodsFactory.create('/tmp/titan')
   ==>titangraph[local:/tmp/titan]

● Consultas
gremlin>      saturn          =           g.V('name','saturn').next()
==>v[4]
gremlin>                                                 saturn.map()
==>name=saturn
==>age=10000
==>type=titan
gremlin>                          saturn.in('father').in('father').name
==>hercules
Query Methods

● Document Based
  ○ Dynamic Object-based, MapReduce, XQuery;
● Wide Columns
  ○ MapReduce, HQL;
● Key-Value
  ○ MR Inside Value, MapReduce, NewSQL;
● Graphs
  ○ SparQL, Gremlin, JRuby, Java, Web UI ;
Dúvidas!?

Contenu connexe

Tendances

Minicurso PostgreSQL
Minicurso PostgreSQLMinicurso PostgreSQL
Minicurso PostgreSQLDiogo Biazus
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLLeonardo Cezar
 
PostgreSQL Conceitos e aplicações - FSA
PostgreSQL  Conceitos e aplicações - FSAPostgreSQL  Conceitos e aplicações - FSA
PostgreSQL Conceitos e aplicações - FSAFabio Telles Rodriguez
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLpichiliani
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanJuliano Atanazio
 
Funcionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLFuncionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLMatheus Espanhol
 
GUO-RS - Junho/2005 - ASM 10g
GUO-RS - Junho/2005 - ASM 10gGUO-RS - Junho/2005 - ASM 10g
GUO-RS - Junho/2005 - ASM 10gDaniela Macedo
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPedro Fernandes Vieira
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosValdir Junior
 
Replicação de dados
Replicação de dadosReplicação de dados
Replicação de dadoselliando dias
 
Oracle Real Application Clusters
Oracle Real Application ClustersOracle Real Application Clusters
Oracle Real Application Clusters4Partner
 
Oracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & DatabaseOracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & DatabaseDouglas Paiva de Sousa
 
Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosJuliano Atanazio
 

Tendances (20)

PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Por que PostgreSQL?
Por que PostgreSQL?Por que PostgreSQL?
Por que PostgreSQL?
 
Minicurso PostgreSQL
Minicurso PostgreSQLMinicurso PostgreSQL
Minicurso PostgreSQL
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
 
PostgreSQL Conceitos e aplicações - FSA
PostgreSQL  Conceitos e aplicações - FSAPostgreSQL  Conceitos e aplicações - FSA
PostgreSQL Conceitos e aplicações - FSA
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQL
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarman
 
Funcionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLFuncionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQL
 
GUO-RS - Junho/2005 - ASM 10g
GUO-RS - Junho/2005 - ASM 10gGUO-RS - Junho/2005 - ASM 10g
GUO-RS - Junho/2005 - ASM 10g
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de Dados
 
Replicação de dados
Replicação de dadosReplicação de dados
Replicação de dados
 
Treinamento Data Guard
Treinamento Data GuardTreinamento Data Guard
Treinamento Data Guard
 
Treinamento DBA Essential
Treinamento DBA EssentialTreinamento DBA Essential
Treinamento DBA Essential
 
Oracle Real Application Clusters
Oracle Real Application ClustersOracle Real Application Clusters
Oracle Real Application Clusters
 
Oracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & DatabaseOracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & Database
 
Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de Dados
 

En vedette

Integrando aplicações com redis
Integrando aplicações com redisIntegrando aplicações com redis
Integrando aplicações com redisFelipe Monteiro
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftGetup Cloud
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Otávio Santana
 
Redis – What, Why, When, How?
Redis – What, Why, When, How?Redis – What, Why, When, How?
Redis – What, Why, When, How?Kinn Julião
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQLEric Silva
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com RedisWaldyr Felix
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBPaulo Bischof
 
Deploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoDeploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoAllisson Azevedo
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valorKinn Julião
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Ismar Silveira
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisMauro Duarte
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 

En vedette (20)

Project Voldemort
Project VoldemortProject Voldemort
Project Voldemort
 
Voldemort
VoldemortVoldemort
Voldemort
 
Integrando aplicações com redis
Integrando aplicações com redisIntegrando aplicações com redis
Integrando aplicações com redis
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra)
 
Redis – What, Why, When, How?
Redis – What, Why, When, How?Redis – What, Why, When, How?
Redis – What, Why, When, How?
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQL
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com Redis
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
 
549891
549891549891
549891
 
Deploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoDeploy completo de uma aplicação Django
Deploy completo de uma aplicação Django
 
Docker + Django
Docker + DjangoDocker + Django
Docker + Django
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 

Similaire à Bancos de dados open source

Oracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTIOracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTIFernando Ike
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFabio Telles Rodriguez
 
Solisc2009 Migrando de Oracle para Postgresql
Solisc2009 Migrando de Oracle para PostgresqlSolisc2009 Migrando de Oracle para Postgresql
Solisc2009 Migrando de Oracle para PostgresqlLeonardo Medeiros Martins
 
Fazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISLFazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISLFabio Telles Rodriguez
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Jeronimo Zucco
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Jeronimo Zucco
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2Flávio Lisboa
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura OraclePablo Garcia
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionaisRoberto Oliveira
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalierGleicon Moraes
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfArleiEvaristo
 

Similaire à Bancos de dados open source (20)

Oracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTIOracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTI
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Solisc2009 Migrando de Oracle para Postgresql
Solisc2009 Migrando de Oracle para PostgresqlSolisc2009 Migrando de Oracle para Postgresql
Solisc2009 Migrando de Oracle para Postgresql
 
Fazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISLFazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISL
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Apostila oracle
Apostila oracleApostila oracle
Apostila oracle
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura Oracle
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdf
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 

Dernier

apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...SileideDaSilvaNascim
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...azulassessoria9
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdLeonardoDeOliveiraLu2
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubeladrianaguedesbatista
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptNathaliaFreitas32
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docPauloHenriqueGarciaM
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)Centro Jacques Delors
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPEli Gonçalves
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasrfmbrandao
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa paraAndreaPassosMascaren
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Centro Jacques Delors
 

Dernier (20)

apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 

Bancos de dados open source

  • 1. Banco de Dados Open Source Brenno Ayres / Rodrigo Aurélio TBD
  • 2. Sumário 1. Conceito Open Source 2. Banco de Dados Open Source 3. PostgreSQL 4. NoSQL
  • 3. Open Source Definição ● A definição de Open Source foi criada pela OSI (Open Source Iniciative) a partir do texto original Debian Free Software Guidelines (DFSG) e determina que um software de código aberto deve garantir; ● Distribuição livre, código fonte, trabalhos derivados, integridade do autor, não discriminar pessoas e áreas de atuação, distribuição da licença.
  • 4. Open Source Lincenças General Public License (Licença Pública Geral): A GPL é a licença com maior utilização por parte de projetos de software livre, em grande parte devido à sua adoção para o projeto GNU e o sistema operacional GNU/Linux. Licença Apache é uma licença para software livre (open source) de autoria da Apache Software Foundation (ASF). Todo software produzido pela ASF ou qualquer um dos seus projetos e sub-projetos é licenciado de acordo com os termos da licença Apache. BSD permite que o software distribuído sob a licença, seja incorporado a produtos proprietários. Trabalhos baseados no material podem até ser liberados com licença proprietária. Alguns exemplos notáveis são: o uso de código do BSD (funções de rede de computadores) em produtos da Microsoft, e o uso de muitos componentes do FreeBSD no sistema Mac OS X da Apple Computer.
  • 5. Banco de dados Open Source
  • 6. MySQL História/Características ● Partindo da necessidade de usar o mSQL para conectar tabelas utilizando ISAM, e visto que isso não tinha performance considerável. Foi criado uma nova abordabem da API do mSQL, nascendo assim o MySQL; ● Consome poucos recursos de hardware, controle trasancional, triggers, stored procedures, cursors, muito utilizado em hospedagens, dentre outros
  • 8. Firebird História/Características ● O Código fonte do Interbase foi liberado pela Borland em 2000, dando assim subsídio para que a comunidade pudesse construir o firebird; ● Ele dá suporte à ACID, MVCC, triggers, procedures, dentre outros;
  • 10. PostgreSQL História O PostgreSQL é um dos resultados de uma ampla evolução que se iniciou com o projeto Ingres, desenvolvido na Universidade de Berkeley, Califórnia. Stonebraker um dos pioneiros dos bancos de dados relacionais deixou a faculdade em 1982 para vender o Ingres, porém retornou logo em seguida. Em 1985 Stonebraker deu inicio ao projeto pós-Ingres patrocinado pela DARPA(*Defense Advanced Research Projects Agency) e pelo ARO (Army Research Office) construíram um banco que pudesse compreender tipos de dados, que hoje nós conhecemos como objetos. O projeto resultante, chamado Postgres, era orientado a introduzir a menor quantidade possível de funcionalidades para completar o suporte a tipos.
  • 11. PostgreSQL Apresentação ● Utiliza a licença BSD; ● Suporte para os sistemas operacionais mais utilizados (Linux, Unix-Like e Windows); ● Implementa todos os conceitos de ACID ● Além dos tipos de dados do SQL também suporta objetos binários(Fotos, Vídeos...)
  • 12. PostgreSQL Apresentação ● Banco de dados Objeto-Relacional ○ Herança; ○ Tipos de dados complexos; ○ Funções;
  • 13. PostgreSQL Linguagem - Desenvolvimento A principal liguagem utilizada para desenvolver o PostgreSQL é o ANSI C, porem são utilizadas algumas outras linguagens conforme podemos ver abaixo.
  • 14. PostgreSQL ● Limites PostgreSQL ○ Banco de dados: Ilimitado ○ Tabela: 32 TB ○ Linha: 1.6 TB ○ Campos: 1GB ○ Linhas por tabela: Ilimitado ○ Colunas por tabela: 250 - 1600 (Conforme tipo) ○ Índices por tabela: Ilimitado
  • 15. PostgreSQL Arquitetura O PostgreSql utiliza o modelo cliente/servidor e sua sessão consiste nos seguintes processos cooperando entre si. ○ O primeiro processo fica ativo no servidor que por sua vez gerencia arquivos e aceita conexões do clientes e executa as ações em nome dos clientes. ○ O segundo processo é o aplicativo cliente do usuário (frontend) que deseja executar operações de banco de dados.
  • 17. PostgreSQL Administração Existem várias ferramentas para administrar o PostgreSQl que vão de aplicações multiplataforma, Linux e outras para Windows. ● Multiplataforma ○ PGAccess, phpPGAdmin, PGAdmin III, OpenOffice.org, ... ● Linux ○ pgFouine, Red Hat, TOra, ... ● Windows ○ Embarcadero, PGExplorer, DBTools,Pg Manager, ...
  • 19. PostgreSQL Administração Backups Método SQL-Dump: gera um arquivo de texto contendo instruções SQL para serem processadas pelo servidor para recriar o Banco conforme o arquivo. Cópia de Segurança: copiar diretamente os arquivos que o PostgreSQL usa para armazenar o Banco. Cópia de Segurança em linha: o PostgreSQL mantém o registro de escrita prévia (WAL = write ahead log) no subdiretório pg_xlog do diretório de dados do agrupamento.
  • 20. PostgreSQL Replicação ● Replicação ○ Hot Standby, Streaming Replication
  • 21. PostgreSQL Performance/Recursos ● Two Phase Commit (2PC) ○ Surgiu para controlar e monitorar as atividades de commit e rollback das transações em ambientes de bases de dados distribuídos, ele garante a integridade entre as bases permitindo que a transação seja segura e íntegra. ● Performance ○ Com um grande poder de processamento, o PostgreSQL é capaz de resolver consultas complexas em milisegundos; ○ Para tal, ele consome recursos computacionais consideráveis;
  • 22. PostgreSQL Performance/Recursos ● MVCC (controle de concorrência de multi-versão); ○ Diferentemente dos sistemas gerenciadores de banco de dados tradicionais, que usam bloqueios para realizar o controle de concorrência, o PostgreSQL mantém a consistência dos dados utilizando o modelo MVCC. Este modelo impede que a transação enxergue dados inconsistentes ou seja a informação que estão aparecendo são de algum tempo atrás.
  • 23. PostgreSQL Triggers ● Triggers ○ Before/After ○ NEW ■ INSERT: Valores inseridos; ■ UPDATE: Novos valores; ○ OLD ■ DELETE: Dados que estão sendo excluídos; ■ UPDATE: Valores sobrescritos; ○ Existem várias liguagens para a implementação (PL/pgSQL, PL/Perl, PL/Python, PL/Java, entre outras);
  • 24. PostgreSQL Trigger - Implementação CREATE FUNCTION valida_dados_funcionario() RETURNS TRIGGER AS $valida_dados_funcionario$ BEGIN IF NEW.NOME IS NULL THEN RAISE EXCEPTION 'Por Favor, digite o nome do funcionario!'; END IF; IF NEW.IDADE IS NULL THEN RAISE EXCEPTION 'Por favor, informe a idade!'; END IF; IF NEW.IDADE < 0 THEN RAISE EXCEPTION 'Desculpe, o funcionario não pode ter % anos', NEW.IDADE; END IF; RETURN NEW; END; $valida_dados_funcionario$ LANGUAGE plpgsql;
  • 25. PostgreSQL Procedures - Implementação ● Stored Procedures ○ Função que retonar um valor ○ Pode ser implementada em várias linguagens ○ Divide-se em: ■ Procedurais ■ Não procedurais ■ Linguagem específica
  • 26. PostgreSQL Stored Procedure //Criar create or replace function alunosAprovados()returns setof aluno as select * from aluno where situacao = ''aprovado''; language 'sql'; //Executar select alunosAprovados();
  • 27. PostgreSQL View - Implementação CREATE VIEW vis_permanente_temporaria AS SELECT id_perm, nome_perm, nome_temp FROM tbl_permanente INNER JOIN tbl_temporaria ON (id_perm = id_temp); INSERT INTO tbl_permanente VALUES (1,'nome permanente 1'); INSERT INTO tbl_permanente VALUES (2,'nome permanente 2'); INSERT INTO tbl_temporaria VALUES (1,'nome temporario 1'); INSERT INTO tbl_temporaria VALUES (2,'nome temporario 2'); pset border 2 pset title 'Visão juntando tabela permanente com temporária' SELECT * FROM vis_permanente_temporaria; Visão juntando tabela permanente com temporária +---------+-------------------+-------------------+ | id_perm | nome_perm | nome_temp | +---------+-------------------+-------------------+ | 1 | nome permanente 1 | nome temporario 1 | | 2 | nome permanente 2 | nome temporario 2 | +---------+-------------------+-------------------+ (2 linhas)
  • 30. Banco de dados OS NoSQL
  • 31. NoSQL A B C A I S D E Basic a icity Avaia lly Atom ency ble ist Even Soft Stat Cons tion tually e Isola lity Cons isten bi cy Dura
  • 32. NoSQL ● Motivação ○ O fluxo gigantesco de dados em prazos mínimos de tempo, em um determinado contexto; ○ A crescente de serviços que necessitam de uma arquitetura que ofereça escalabilidade horizontal; ○ A necessidade de manusear ambiente semi- estruturados e até mesmo não estruturados; ● Modelos ○ Documento (Riak, MongoDB, CouchDB) ○ Chave-Valor (Amazon s3, Redis, Voldemort) ○ Colunas (Cassandra, HBase, Hyperbase) ○ Grafos (Neo4j, Titan, InfoGrid)
  • 33. Document Based ● Principais caracteristicas ○ Comum a todas implementações é o conceito de "Document"; ○ Document trata-se do encapsulamento e o encoding dos dados em arquivos de vários tipos (XML, JSON, BSON, até mesmo arquivos binários como PDF, DOC). ○ Em comparativo com o modelo relacional, internamente, um document pode ser tratado como uma tupla, porém de maneira mais flexível ○ A organização se dá de vários modos: Coleções, Tags, Hierarquias de diretórios, entre outras
  • 34. Document Based Exemplo Mongo darthVader = { nome: "Anakin Skywalker", politica: Sith, universo: "Star Wars", arma: "Estrela da morte" } db.starwars.save(darthVader)
  • 35. Key - Value ● Conceito Básico ○ "O dados é geralmente consistido de uma string que representa a chave e o atual dado que é considerado o value"; ○ O dados podem ser de tipos primitivos, como também objetos empacotados como utilizados na Orientação a Objetos;
  • 36. Column Based ● Conceitos ○ Em face dos SGBDs row-oriented, que os dados são serializados em uma organização de linhas, o column based oferece tal organização em forma de colunas. Onde cada campo é armazenado em uma coluna; ● Beneficios ○ Empacotamento de dados. Onde os dados semelhantes e de mesmo formato estão sendo armazenados próximo; ○ Melhor utilização em sistemas OLAP (On-LIne Analytical processing)
  • 37. Column Based Exemplo
  • 38. Graph ● Breve introdução ○ Estrutura baseada na teoria dos gráficos; ○ Emprega conceitos como "Vertices/Nodes", "Edges" e "Properties"; ○ Nodes e propriedades assemelham-se ao conceito utilizados em POO; ○ Não depende de esquemas ou de uma estruturação nos dados;
  • 39. Titan ● Graph database ● Suporta Milhares de usuários concorrentes ● Escalabilidade linear ● Multi-datacenter ● Suporte ACID e consistência eventual ● Persistência ○ Cassandra, HBase, Oracle BerkleyDB ● Produtos voltado para grafos ○ Gremlin, Rexster, Blueprints
  • 41. Titan Breve implementação ● Criando uma instância do banco gremlin> g = GraphOfTheGodsFactory.create('/tmp/titan') ==>titangraph[local:/tmp/titan] ● Consultas gremlin> saturn = g.V('name','saturn').next() ==>v[4] gremlin> saturn.map() ==>name=saturn ==>age=10000 ==>type=titan gremlin> saturn.in('father').in('father').name ==>hercules
  • 42. Query Methods ● Document Based ○ Dynamic Object-based, MapReduce, XQuery; ● Wide Columns ○ MapReduce, HQL; ● Key-Value ○ MR Inside Value, MapReduce, NewSQL; ● Graphs ○ SparQL, Gremlin, JRuby, Java, Web UI ;