SlideShare ist ein Scribd-Unternehmen logo
1 von 43
SQL X NOSQL
    Charles Fortes
      16 de Maio de 2012




        @CharlesFortes
Avaliação da Palestra
http://tinyurl.com/infotechdia16
@CharlesFortes
Persistência
Logo após superar as dificuldades do   cartão
perfurado, o homem teve outro grande desafio
a sua frente!




Poder desligar o computador após horas de
processando uma informação sem perder
seus preciosos 300 Bytes de informação já
processadas.
Persistir os dados nada mais é do que guardar a informação
em um local não volátil ao qual possa ser recuperada
posteriormente.




                                     Por exemplo, gravar os dados em um cartão
                             perfurado, disquete (uma espécie de idade das trevas
                                            da persistencia), HD, ou FlashStorage
Com o aumento do volume de dados,
    veio a necessidade de organizar melhor a
informação salva em benefício da velocidade
                            de recuperação.
Imagine se o Facebook guardasse os dados em um TXT e todo vez que
você entrasse para pentelhar a vida dos outros, ele tivesse de percorrer o
 arquivo - com alguns pentabytes de tamanho - para encontrar todos os
                   dados que devem lhe ser exibidos.
A conclusão desta necessidade foi o aparecimento dos
                 bancos de dados.
Banco de dados relacional
Hoje quandopensamos em banco de dados, sempre nos
vem em mente os bancos de dados relacionais, como o
SQLServer, Oracle, MySQL, Postgree, MSAccess (há! #euri)
Apesar de   não ser o único modelo de banco de
dados possível, o modelo relacional é considerado o

                mais maduro.
"Os Bancos de Dados Relacionais foram desenvolvidos para prover
acesso facilitado aos dados, possibilitando que os usuários
utilizassem uma grande variedade de abordagens no tratamento das
informações"
O banco de dados relacional é composto a grosso
    modo de Relações e Relacionamentos.
Relações (banco de dados relacional) dizem respeito as relações
entre os domínio dos dados no sentido matemático (cada linha da
                    tabela é um elemento do conjunto relação).
Relacionamentos dizem respeito a como um registro está relacionado
a outro registro de outro domínio (Ex.: Um fabricante possui um ou
mais produtos)
Este é modelo que chamamos de Entidade Relacionamento (ou
         Entidade Relacional dependendo do autor)
Para acessar os dados e recuperar as informações da base, em uma
  das   várias abordagens que este modelo nos permitem,
   usamos comandos em uma linguagem de scripts chamada SQL
Com o advento dos bancos de dados relacionais, somados aos discos
de armazenamento realmente não voláteis (que exclui os disquetes e os HD's
       Western Caviar da década de 90), o mundo estava em paz...
...até que um dia uns garotos resolveram que iam catalogar
todas as páginas de todos os sites do mundo para que qualquer
        um pudesse pesquisar e encontrar o que quiser...
...o que não seria um problema não fosse a segunda ideia...



...retornar o resultado por ordem de relevância para o usuário,
      mesmo que ele digite errado, e em menos de 1 segundo
nos 1.000 primeiras páginas isso foi moleza, mas depois da nº
    1.000.000.000 isso começou a complicar um pouco...
NoSQL
A primeira vez registrada que o termpo NoSQL pode ser
   observada em 1998 quando Carlos Strozzi produziu um
trabalho falando sobre bancos de dados que não possuiam
                       interface SQL.
O modelo surgiu diante do aumento crescente de
dados não relacionais (fotos, logs, documentos,
capturas de sensores, etc.)
O termo NoSQL significa "Not Only SQL". Chamando
atenção justamente para a existencia destes dados que não
    são facilmente recuperados ou manupulados pelas
                 instruções relacionais.
Em 2004 a google começou a trabalhar em um sistema de
armazenamento de dados estruturados que fosse capaz de
armazenar seus petabytes de dados através de milhares
 de computadores, de forma que pudessem ser facilmente e
        rapidamente recuperados e escalados.
Estes bilhões de dados crescentes
     são chamados de BigData
Em 2006 foi exibido ao mundo o Google BigTable, o primeiro
grande sistema de armazenamento baseado em NoSQL colocado
em atividade para armazenagem e recuperação de BigData.
Quando usamos NoSQL?
Quando manipulamos grandes volumes de dados




Quando precisarmos de desempenho ao gravar grandes volumes de
dados




         Para ter rápido acesso a um dado "Chave/Valor"
Quando os dados não tem um esquema definido




Facilidade de Administração, Manutenção e Operação




                    Alta disponibilidade com balanceamento de carga




      Poder usar o melhor modelo de dados para seu problema
Com a evolução do conceito, temos hoje 4 grandes
modelos de bancos de dados NoSQL para atender
         as mais variadas necessidades

                                 Documento


                   Chave/Valor

       Tabular

                      Gráfos
Chave/Valor




     É o modelo mais simples, baseia-se em uma
    "tabela hash", onde cada chave é unica. Este
modelo é muito prático para se armazenar log por
                                       exemplo.
Documento




São muito similares ao modelo Chave/Valor, sendo um
próximo nível de complexidade do modelo,
armazenando coleções de chave/valor, permitindo
valores aninhados associados a cada chave. São muito
usados na Web e para a criação de CRUD
Tabular




Foram criadas para armazenar e para processar grandes
quantidades de dados distribuídos em muitas máquinas.
     As chaves apontam para múltiplas colunas
Gráfos




Um sistema de armazenamento baseado
em relacionamento entre os nós que
possuem flexibilidade de formato. Ideal
para uso em redes sociais e outros
problemas de grafos.
Persistência poliglota
Um SGBD convencional tem sua zona de conforto de escalabilidade
muito aquem dos bancos de dados NoSQL tipicos, porém os dados
estruturados, a maturidade do modelo e a consistencia da informação
são ainda diferenciais
Aplicações complexas tendem a ter diversas diferentes caracteristicas
de dados. Adaptando o modelo de Fowler, podemos ver que junção dos
diferentes modelos de armazenamento de dados pode ser usado para
benefício da aplicação.
Lista de Bancos de dados
NoSQL mais comuns
                           •   Documento
                                o  RavenDB
                                o  CouchDB
                                o  MongoDB
                                o  MarkLogic Server
                                o  BaseX
                                o  eXist
                           •   Chave/Valor (Key/Value)
                                o  Memcachedb
                                o  Project Voldemort
                                o  Redis
                                o  SimpleDB
                                o  Hbase
                           •   Tabular
                                o  Cassandra
                                o  Hypertable
                           •   Gráfos
                                o  Neo4j
                                o  DEX
Avaliação da Palestra
http://tinyurl.com/infotechdia16
@CharlesFortes
PERGUNTAS?
@CharlesFortes

Weitere ähnliche Inhalte

Was ist angesagt?

No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Criação de uma base de dados para gestão de uma biblioteca
Criação de uma base de dados para gestão de uma bibliotecaCriação de uma base de dados para gestão de uma biblioteca
Criação de uma base de dados para gestão de uma bibliotecaDavid Canjamba 2D
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBRodrigo Hjort
 
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
 
NoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dadosNoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dadosNicolas Ibanheiz
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbfabio perrella
 
BIBLIVRE: sistema de gerenciamento de bases
BIBLIVRE: sistema de gerenciamento de basesBIBLIVRE: sistema de gerenciamento de bases
BIBLIVRE: sistema de gerenciamento de basesUFSC
 
Servidores 02 - Sistemas de arquivos
Servidores 02 - Sistemas de arquivosServidores 02 - Sistemas de arquivos
Servidores 02 - Sistemas de arquivosManoel Afonso
 
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
 
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
 

Was ist angesagt? (20)

No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
O NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma AnáliseO NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma Análise
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
MAC5855 - NoSQL
MAC5855 - NoSQLMAC5855 - NoSQL
MAC5855 - NoSQL
 
Criação de uma base de dados para gestão de uma biblioteca
Criação de uma base de dados para gestão de uma bibliotecaCriação de uma base de dados para gestão de uma biblioteca
Criação de uma base de dados para gestão de uma biblioteca
 
Big Data
Big DataBig Data
Big Data
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDB
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 
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
 
NoSQL
NoSQLNoSQL
NoSQL
 
NoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dadosNoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dados
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodb
 
BIBLIVRE: sistema de gerenciamento de bases
BIBLIVRE: sistema de gerenciamento de basesBIBLIVRE: sistema de gerenciamento de bases
BIBLIVRE: sistema de gerenciamento de bases
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Servidores 02 - Sistemas de arquivos
Servidores 02 - Sistemas de arquivosServidores 02 - Sistemas de arquivos
Servidores 02 - Sistemas de arquivos
 
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
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
 

Andere mochten auch

PE2 - Funções e Structs
PE2 - Funções e StructsPE2 - Funções e Structs
PE2 - Funções e StructsCharles Fortes
 
Programação Genetica
Programação GeneticaProgramação Genetica
Programação GeneticaCharles Fortes
 
inteligência artificial - fuzzy - mineração
inteligência artificial - fuzzy - mineraçãointeligência artificial - fuzzy - mineração
inteligência artificial - fuzzy - mineraçãoCharles Fortes
 
Pitagoras - Introdução a Programação Orientada a Objetos - Revisão Final
Pitagoras - Introdução a Programação Orientada a Objetos - Revisão FinalPitagoras - Introdução a Programação Orientada a Objetos - Revisão Final
Pitagoras - Introdução a Programação Orientada a Objetos - Revisão FinalCharles Fortes
 
Pitagoras - Introdução a Programação Orientada a Objetos - Encapsulamento, Ac...
Pitagoras - Introdução a Programação Orientada a Objetos - Encapsulamento, Ac...Pitagoras - Introdução a Programação Orientada a Objetos - Encapsulamento, Ac...
Pitagoras - Introdução a Programação Orientada a Objetos - Encapsulamento, Ac...Charles Fortes
 
Conceitos – Do Homem à Máquina
Conceitos – Do Homem à MáquinaConceitos – Do Homem à Máquina
Conceitos – Do Homem à MáquinaCharles Fortes
 
Pitagoras - Introdução a Programação Orientada a Objetos - Conceitos
Pitagoras - Introdução a Programação Orientada a Objetos - ConceitosPitagoras - Introdução a Programação Orientada a Objetos - Conceitos
Pitagoras - Introdução a Programação Orientada a Objetos - ConceitosCharles Fortes
 
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)Charles Fortes
 
Introdução a Desenvolvimento de Jogos HTML 5 para Windows 8 com Html5Quintus
Introdução a Desenvolvimento de Jogos HTML 5 para Windows 8 com Html5QuintusIntrodução a Desenvolvimento de Jogos HTML 5 para Windows 8 com Html5Quintus
Introdução a Desenvolvimento de Jogos HTML 5 para Windows 8 com Html5QuintusCharles Fortes
 
Programação Estruturada 2 - Apresentação do Professor
Programação Estruturada 2 - Apresentação do ProfessorProgramação Estruturada 2 - Apresentação do Professor
Programação Estruturada 2 - Apresentação do ProfessorCharles Fortes
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NETPedro Alves Jr.
 
LPC - Apresentação do Professor
LPC - Apresentação do ProfessorLPC - Apresentação do Professor
LPC - Apresentação do ProfessorCharles Fortes
 
Introdução a robótica
Introdução a robóticaIntrodução a robótica
Introdução a robóticaCharles Fortes
 
Sistemas Operacionais - Aula 5 - Concorrência
Sistemas Operacionais - Aula 5 - ConcorrênciaSistemas Operacionais - Aula 5 - Concorrência
Sistemas Operacionais - Aula 5 - ConcorrênciaCharles Fortes
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Charles Fortes
 
PE1 - Comandos de Decisão
PE1 - Comandos de DecisãoPE1 - Comandos de Decisão
PE1 - Comandos de DecisãoCharles Fortes
 

Andere mochten auch (20)

PE2 - Funções e Structs
PE2 - Funções e StructsPE2 - Funções e Structs
PE2 - Funções e Structs
 
Programação Genetica
Programação GeneticaProgramação Genetica
Programação Genetica
 
inteligência artificial - fuzzy - mineração
inteligência artificial - fuzzy - mineraçãointeligência artificial - fuzzy - mineração
inteligência artificial - fuzzy - mineração
 
Pitagoras - Introdução a Programação Orientada a Objetos - Revisão Final
Pitagoras - Introdução a Programação Orientada a Objetos - Revisão FinalPitagoras - Introdução a Programação Orientada a Objetos - Revisão Final
Pitagoras - Introdução a Programação Orientada a Objetos - Revisão Final
 
Pitagoras - Introdução a Programação Orientada a Objetos - Encapsulamento, Ac...
Pitagoras - Introdução a Programação Orientada a Objetos - Encapsulamento, Ac...Pitagoras - Introdução a Programação Orientada a Objetos - Encapsulamento, Ac...
Pitagoras - Introdução a Programação Orientada a Objetos - Encapsulamento, Ac...
 
Conceitos – Do Homem à Máquina
Conceitos – Do Homem à MáquinaConceitos – Do Homem à Máquina
Conceitos – Do Homem à Máquina
 
Pitagoras - Introdução a Programação Orientada a Objetos - Conceitos
Pitagoras - Introdução a Programação Orientada a Objetos - ConceitosPitagoras - Introdução a Programação Orientada a Objetos - Conceitos
Pitagoras - Introdução a Programação Orientada a Objetos - Conceitos
 
Metodologias ageis
Metodologias ageisMetodologias ageis
Metodologias ageis
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Aula 1
Aula 1Aula 1
Aula 1
 
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
 
Introdução a Desenvolvimento de Jogos HTML 5 para Windows 8 com Html5Quintus
Introdução a Desenvolvimento de Jogos HTML 5 para Windows 8 com Html5QuintusIntrodução a Desenvolvimento de Jogos HTML 5 para Windows 8 com Html5Quintus
Introdução a Desenvolvimento de Jogos HTML 5 para Windows 8 com Html5Quintus
 
Programação Estruturada 2 - Apresentação do Professor
Programação Estruturada 2 - Apresentação do ProfessorProgramação Estruturada 2 - Apresentação do Professor
Programação Estruturada 2 - Apresentação do Professor
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NET
 
Lambda Expressions
Lambda ExpressionsLambda Expressions
Lambda Expressions
 
LPC - Apresentação do Professor
LPC - Apresentação do ProfessorLPC - Apresentação do Professor
LPC - Apresentação do Professor
 
Introdução a robótica
Introdução a robóticaIntrodução a robótica
Introdução a robótica
 
Sistemas Operacionais - Aula 5 - Concorrência
Sistemas Operacionais - Aula 5 - ConcorrênciaSistemas Operacionais - Aula 5 - Concorrência
Sistemas Operacionais - Aula 5 - Concorrência
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0
 
PE1 - Comandos de Decisão
PE1 - Comandos de DecisãoPE1 - Comandos de Decisão
PE1 - Comandos de Decisão
 

Ähnlich wie SQL vs NoSQL: Uma introdução à persistência de dados

NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisCarlo Pires
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Thiago de Azeredo
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosJoão Helis Bernardo
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptxacsme
 
Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)samlobo
 
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data FabricModernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data FabricDenodo
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosMozart Dornelles Claret
 
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big DataDeep Tech Brasil
 

Ähnlich wie SQL vs NoSQL: Uma introdução à persistência de dados (20)

Nosql
NosqlNosql
Nosql
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Artigo couchdb
Artigo couchdbArtigo couchdb
Artigo couchdb
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptx
 
Pesquisa sobre no sql
Pesquisa sobre no sqlPesquisa sobre no sql
Pesquisa sobre no sql
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)
 
No sql std
No sql stdNo sql std
No sql std
 
No sql o_que_e_isso.key
No sql o_que_e_isso.keyNo sql o_que_e_isso.key
No sql o_que_e_isso.key
 
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data FabricModernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
 
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
 

Mehr von Charles Fortes

Acesso a banco de dados com entity framework
Acesso a banco de dados com entity frameworkAcesso a banco de dados com entity framework
Acesso a banco de dados com entity frameworkCharles Fortes
 
Programação Estruturada 2 - Revisão C
Programação Estruturada 2 - Revisão CProgramação Estruturada 2 - Revisão C
Programação Estruturada 2 - Revisão CCharles Fortes
 
IA - Introdução Inteligência Artificial
IA - Introdução Inteligência ArtificialIA - Introdução Inteligência Artificial
IA - Introdução Inteligência ArtificialCharles Fortes
 
IA - Apresentação do Professor
IA - Apresentação do ProfessorIA - Apresentação do Professor
IA - Apresentação do ProfessorCharles Fortes
 
LPC - aula 1 - Introdução .NET
LPC  - aula 1 - Introdução .NETLPC  - aula 1 - Introdução .NET
LPC - aula 1 - Introdução .NETCharles Fortes
 
PE-I - Apresentação Professor
PE-I - Apresentação ProfessorPE-I - Apresentação Professor
PE-I - Apresentação ProfessorCharles Fortes
 
Sistemas Operacionais - Aula 9 - Gerencia de Recursos
Sistemas Operacionais - Aula 9 - Gerencia de RecursosSistemas Operacionais - Aula 9 - Gerencia de Recursos
Sistemas Operacionais - Aula 9 - Gerencia de RecursosCharles Fortes
 
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre ProcessosSistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre ProcessosCharles Fortes
 
Sistemas Operacionais - Aula 7 - Processos e Threads
Sistemas Operacionais - Aula 7 - Processos e ThreadsSistemas Operacionais - Aula 7 - Processos e Threads
Sistemas Operacionais - Aula 7 - Processos e ThreadsCharles Fortes
 
Economia global: França e Inglaterra
Economia global: França e InglaterraEconomia global: França e Inglaterra
Economia global: França e InglaterraCharles Fortes
 
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalSistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalCharles Fortes
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosCharles Fortes
 
Sistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e SoftwareSistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e SoftwareCharles Fortes
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisCharles Fortes
 
Sistemas Operacionais - Aula 1 - História e Introdução a SO
Sistemas Operacionais - Aula 1 - História e Introdução a SOSistemas Operacionais - Aula 1 - História e Introdução a SO
Sistemas Operacionais - Aula 1 - História e Introdução a SOCharles Fortes
 
Apresentação prof e materia
Apresentação prof e materiaApresentação prof e materia
Apresentação prof e materiaCharles Fortes
 

Mehr von Charles Fortes (17)

Acesso a banco de dados com entity framework
Acesso a banco de dados com entity frameworkAcesso a banco de dados com entity framework
Acesso a banco de dados com entity framework
 
Pdm -final
Pdm  -finalPdm  -final
Pdm -final
 
Programação Estruturada 2 - Revisão C
Programação Estruturada 2 - Revisão CProgramação Estruturada 2 - Revisão C
Programação Estruturada 2 - Revisão C
 
IA - Introdução Inteligência Artificial
IA - Introdução Inteligência ArtificialIA - Introdução Inteligência Artificial
IA - Introdução Inteligência Artificial
 
IA - Apresentação do Professor
IA - Apresentação do ProfessorIA - Apresentação do Professor
IA - Apresentação do Professor
 
LPC - aula 1 - Introdução .NET
LPC  - aula 1 - Introdução .NETLPC  - aula 1 - Introdução .NET
LPC - aula 1 - Introdução .NET
 
PE-I - Apresentação Professor
PE-I - Apresentação ProfessorPE-I - Apresentação Professor
PE-I - Apresentação Professor
 
Sistemas Operacionais - Aula 9 - Gerencia de Recursos
Sistemas Operacionais - Aula 9 - Gerencia de RecursosSistemas Operacionais - Aula 9 - Gerencia de Recursos
Sistemas Operacionais - Aula 9 - Gerencia de Recursos
 
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre ProcessosSistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
 
Sistemas Operacionais - Aula 7 - Processos e Threads
Sistemas Operacionais - Aula 7 - Processos e ThreadsSistemas Operacionais - Aula 7 - Processos e Threads
Sistemas Operacionais - Aula 7 - Processos e Threads
 
Economia global: França e Inglaterra
Economia global: França e InglaterraEconomia global: França e Inglaterra
Economia global: França e Inglaterra
 
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalSistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 
Sistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e SoftwareSistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e Software
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
 
Sistemas Operacionais - Aula 1 - História e Introdução a SO
Sistemas Operacionais - Aula 1 - História e Introdução a SOSistemas Operacionais - Aula 1 - História e Introdução a SO
Sistemas Operacionais - Aula 1 - História e Introdução a SO
 
Apresentação prof e materia
Apresentação prof e materiaApresentação prof e materia
Apresentação prof e materia
 

SQL vs NoSQL: Uma introdução à persistência de dados

  • 1. SQL X NOSQL Charles Fortes 16 de Maio de 2012 @CharlesFortes
  • 4. Logo após superar as dificuldades do cartão perfurado, o homem teve outro grande desafio a sua frente! Poder desligar o computador após horas de processando uma informação sem perder seus preciosos 300 Bytes de informação já processadas.
  • 5. Persistir os dados nada mais é do que guardar a informação em um local não volátil ao qual possa ser recuperada posteriormente. Por exemplo, gravar os dados em um cartão perfurado, disquete (uma espécie de idade das trevas da persistencia), HD, ou FlashStorage
  • 6. Com o aumento do volume de dados, veio a necessidade de organizar melhor a informação salva em benefício da velocidade de recuperação.
  • 7. Imagine se o Facebook guardasse os dados em um TXT e todo vez que você entrasse para pentelhar a vida dos outros, ele tivesse de percorrer o arquivo - com alguns pentabytes de tamanho - para encontrar todos os dados que devem lhe ser exibidos.
  • 8. A conclusão desta necessidade foi o aparecimento dos bancos de dados.
  • 9. Banco de dados relacional
  • 10. Hoje quandopensamos em banco de dados, sempre nos vem em mente os bancos de dados relacionais, como o SQLServer, Oracle, MySQL, Postgree, MSAccess (há! #euri)
  • 11. Apesar de não ser o único modelo de banco de dados possível, o modelo relacional é considerado o mais maduro.
  • 12. "Os Bancos de Dados Relacionais foram desenvolvidos para prover acesso facilitado aos dados, possibilitando que os usuários utilizassem uma grande variedade de abordagens no tratamento das informações"
  • 13. O banco de dados relacional é composto a grosso modo de Relações e Relacionamentos.
  • 14. Relações (banco de dados relacional) dizem respeito as relações entre os domínio dos dados no sentido matemático (cada linha da tabela é um elemento do conjunto relação).
  • 15. Relacionamentos dizem respeito a como um registro está relacionado a outro registro de outro domínio (Ex.: Um fabricante possui um ou mais produtos)
  • 16. Este é modelo que chamamos de Entidade Relacionamento (ou Entidade Relacional dependendo do autor)
  • 17. Para acessar os dados e recuperar as informações da base, em uma das várias abordagens que este modelo nos permitem, usamos comandos em uma linguagem de scripts chamada SQL
  • 18. Com o advento dos bancos de dados relacionais, somados aos discos de armazenamento realmente não voláteis (que exclui os disquetes e os HD's Western Caviar da década de 90), o mundo estava em paz...
  • 19. ...até que um dia uns garotos resolveram que iam catalogar todas as páginas de todos os sites do mundo para que qualquer um pudesse pesquisar e encontrar o que quiser...
  • 20. ...o que não seria um problema não fosse a segunda ideia... ...retornar o resultado por ordem de relevância para o usuário, mesmo que ele digite errado, e em menos de 1 segundo
  • 21. nos 1.000 primeiras páginas isso foi moleza, mas depois da nº 1.000.000.000 isso começou a complicar um pouco...
  • 22. NoSQL
  • 23. A primeira vez registrada que o termpo NoSQL pode ser observada em 1998 quando Carlos Strozzi produziu um trabalho falando sobre bancos de dados que não possuiam interface SQL.
  • 24. O modelo surgiu diante do aumento crescente de dados não relacionais (fotos, logs, documentos, capturas de sensores, etc.)
  • 25. O termo NoSQL significa "Not Only SQL". Chamando atenção justamente para a existencia destes dados que não são facilmente recuperados ou manupulados pelas instruções relacionais.
  • 26. Em 2004 a google começou a trabalhar em um sistema de armazenamento de dados estruturados que fosse capaz de armazenar seus petabytes de dados através de milhares de computadores, de forma que pudessem ser facilmente e rapidamente recuperados e escalados.
  • 27. Estes bilhões de dados crescentes são chamados de BigData
  • 28. Em 2006 foi exibido ao mundo o Google BigTable, o primeiro grande sistema de armazenamento baseado em NoSQL colocado em atividade para armazenagem e recuperação de BigData.
  • 30. Quando manipulamos grandes volumes de dados Quando precisarmos de desempenho ao gravar grandes volumes de dados Para ter rápido acesso a um dado "Chave/Valor"
  • 31. Quando os dados não tem um esquema definido Facilidade de Administração, Manutenção e Operação Alta disponibilidade com balanceamento de carga Poder usar o melhor modelo de dados para seu problema
  • 32. Com a evolução do conceito, temos hoje 4 grandes modelos de bancos de dados NoSQL para atender as mais variadas necessidades Documento Chave/Valor Tabular Gráfos
  • 33. Chave/Valor É o modelo mais simples, baseia-se em uma "tabela hash", onde cada chave é unica. Este modelo é muito prático para se armazenar log por exemplo.
  • 34. Documento São muito similares ao modelo Chave/Valor, sendo um próximo nível de complexidade do modelo, armazenando coleções de chave/valor, permitindo valores aninhados associados a cada chave. São muito usados na Web e para a criação de CRUD
  • 35. Tabular Foram criadas para armazenar e para processar grandes quantidades de dados distribuídos em muitas máquinas. As chaves apontam para múltiplas colunas
  • 36. Gráfos Um sistema de armazenamento baseado em relacionamento entre os nós que possuem flexibilidade de formato. Ideal para uso em redes sociais e outros problemas de grafos.
  • 38. Um SGBD convencional tem sua zona de conforto de escalabilidade muito aquem dos bancos de dados NoSQL tipicos, porém os dados estruturados, a maturidade do modelo e a consistencia da informação são ainda diferenciais
  • 39. Aplicações complexas tendem a ter diversas diferentes caracteristicas de dados. Adaptando o modelo de Fowler, podemos ver que junção dos diferentes modelos de armazenamento de dados pode ser usado para benefício da aplicação.
  • 40. Lista de Bancos de dados NoSQL mais comuns • Documento o RavenDB o CouchDB o MongoDB o MarkLogic Server o BaseX o eXist • Chave/Valor (Key/Value) o Memcachedb o Project Voldemort o Redis o SimpleDB o Hbase • Tabular o Cassandra o Hypertable • Gráfos o Neo4j o DEX

Hinweis der Redaktion

  1. Microsoft Excelência em Engenharia Confidencial da Microsoft
  2. Microsoft Excelência em Engenharia Confidencial da Microsoft
  3. Microsoft Excelência em Engenharia Confidencial da Microsoft