Universidade Federal de Goiás Ciências da Computação Sistemas Operacionais 2



Documentos relacionados
Principais Comandos SQL Usados no MySql

Engenharia de software 2011A. Trabalho sobre

Tarefa Orientada 16 Vistas

LINGUAGEM DE BANCO DE DADOS

Desenvolvendo Websites com PHP

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Comandos de Manipulação

AULA 4 Sistemas Operacionais

Orientação a Objetos

NOME SEXO CPF NASCIMENTO SALARIO

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Treinamento sobre SQL

Disciplina: Unidade V: Prof.: Período:

Oficina. Praça das Três Caixas d Água Porto Velho - RO

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )


Orientação a Objetos

Introdução a Banco de Dados


Prof. Daniela Barreiro Claro

AULA 16 - Sistema de Arquivos

David Hows Peter Membrey Eelco Plugge

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Sistemas Operacionais. Prof. André Y. Kusumoto

Persistência e Banco de Dados em Jogos Digitais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

FundamentosemInformática

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais

Sistema Operacional Correção - Exercício de Revisão

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Tutorial Sistema de Eventos de Certificação e Capacitação

Noções de. Microsoft SQL Server. Microsoft SQL Server

Nome: n.º WEB Série 2B 2C 2D 2E Barueri, 17/08/2009 2ª Postagem Disciplina: Gerenciamento e Estrutura de Banco de Dados Professor: Márcio

Tarefa Orientada 15 Manipulação de dados

CENTRO UNIVERSITÁRIO UNA DIRETORIA DE EDUCAÇÃO CONTINUADA, PESQUISA E EXTENSÃO CURSO DE PÓS GRADUAÇÃO ENGENHARIA DE SOFTWARE

Tarefa Orientada 14 Subconsultas

Memória de aula Semanas 15 e 16

Conceitos de relação de confiança

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Prof. Daniela Barreiro Claro

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS

Tarefa Orientada 13 Agrupamento e sumário de dados

Android e Bancos de Dados

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Desenvolvendo Websites com PHP

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Tutorial Sistema de Eventos de Certificação e Capacitação

ESTUDO DE CASO WINDOWS VISTA

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

FIREBIRD: UMA ANÁLISE DE PERFORMANCE

O que são Bancos de Dados?

O que é RAID? Tipos de RAID:

UNIVERSIDADE DE SÃO PAULO E S C O L A D E A R T E S, C I Ê N C I A S E H U M A N I D A D E

Projeto Integrador Projeto de Redes de Computadores

Administração de Sistemas de Informação Gerenciais

Docas do Pará - Guia de Instalação

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD.

Arquitetura de Rede de Computadores

Introdução ao Modelos de Duas Camadas Cliente Servidor

CAPÍTULO 2. Este capítulo tratará :

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam?

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Estrutura, Processos e Threads

Introdução a Informática. Prof.: Roberto Franciscatto

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

1

Sistemas Operacionais

Persistência de Dados

Projeto de Banco de Dados

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01

Ferramentas de Administração. PostgreSQL

Banco de Dados Geográficos

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

Armazenamento em nuvem é feito em serviços que poderão ser acessados de diferentes lugares, a qualquer momento e utilizando diferentes dispositivos,

Processos e Threads (partes I e II)

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Módulo 4. Construindo uma solução OLAP

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Informática - Prof. Frank Mattos

Sistemas Distribuídos

Tarefa Orientada 2 Criar uma base de dados

Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB

Dispositivos de Memória

SQL: Definição de tabelas, Modificações à Base de Dados

Backup.

Transcrição:

Universidade Federal de Goiás Ciências da Computação Sistemas Operacionais 2 MongoDB Diego Fraga - 083746 Gabriel Henrique - 083771 Lauro Henrique - 074259

O que é MongoDB? - MongoDB é uma ferramenta de banco de dados open source, escalável, de alto desempenho e escrita em C. - Mutio diferente dos bancos de dados relacionais, já que eles não armazenam dados em tabelas e sim na forma de documentos.

Para que serve o MongoDB? - Ele foi projetado para problemas que não são facilmente resolvidos por RDBMSs (sistema de gerenciamento de banco de dados relacional) tradicionais. - Ele gerencia coleções de documentos. Isso permite que muitas aplicações sejam mais naturais, pois os dados podem ser aninhados em hierarquias complexas.

Por que escolher um armazenamento sem esquemas? - Sob a perspectiva de um desenvolvedor, dados orientados a documento (ou sem esquema) são mais fáceis e muito mais flexíveis de se gerenciar do que os dados relacionais. Os documentos são gravados individualmente, contendo qualquer dado necessário. - Porém, o armazenamento sem esquemas não é apropriado para todo domínio.

Por que escolher um armazenamento sem esquemas? - Modelar um exemplo de uma Cartão de visitas em termos relacionais é possível, mas complicado. Um banco de dados relacional, acaba tendo muitos registros com um valor nulo em algumas colunas, para cada um ou dois registros que usam esse valor. Também é preciso especificar tipos de colunas em um sistema relacional, de modo que você possa ficar limitado, digamos, pelo tamanho do campo de endereço.

Características do MongoDB - Suporte multi-plataforma: os binários estão disponíveis para Windows, Linux, OS X e Solaris. - Suporta tipos ricos: datas, expressões regulares, códigos, dados binários, outros. - A velocidade é outra vantagem do Mongo DB, principalmente em relação a como ele trata as gravações: elas são armazenadas na memória e mais tarde, através de encadeamento de segundo plano, gravadas em disco.

Características do MongoDB - A API do MongoDB é uma mistura nativa de objetos JSON e funções de JavaScript. Os desenvolvedores interagem com o MongoDB através do programa de shell, que permite argumentos de linha de comandos. - Duas das principais características do MongoDB são as funções: MapReduce e Sharding.

MapReduce - A filosofia por trás do MapReduce é: Diferentemente de data-stores centrais, como um banco de dados, você não pode assumir que todos os dados residem em um lugar central portanto você não pode executar uma query e esperar obter os resultados em uma operação síncrona. Em vez disso, você precisa executar a query em cada fonte de dados simultaneamente. - O processo de mapear a requisição do originador para o data source é chamado de Map, e o processo de agregação do resultado em um resultado consolidado é chamado de Reduce.

Sharding - Sharding é uma técnica muito usada atualmente para lidar com escalabilidade de massas de dados, consiste basicamente em dividir os dados de uma aplicação entre vários bancos: por exemplo, numa aplicação com 1000 usuários o sharding faria com que os usuários com nomes de A a J ficassem em um servidor, e de K a Z em outro servidor. - Se você tem um monte de dados e você está no limite de disco e / ou falta de espaço, uma maneira de tratar isso utilizando sharding é ter os seus dados divididos entre várias máquinas.

Sharding

Contexto: qual é o estado deste tipo de tecnologia atualmente?

Quem utiliza/exemplos de possíveis utilizações Hoje é usado por pelo menos 40 sites de alto acesso e performance, incluindo sites como SourceForge, GitHub, EA e The New York Times, Google, Twitter

Query BasicDBObject doc = new BasicDBObject(); doc.put("name", "MongoDB");BasicDBObject info = new BasicDBObject(); info.put("x", 203); doc.put("info", info); coll.insert(doc);

Query query = new BasicDBObject(); query.put("i",... new BasicDBObject("$gt", 50)); cur = coll.find(query);while(cur.hasnext()) { } System.out.println(cur.next());

SQL x NoSQL (MongoDB) INSERT INTO USERS VALUES(1,1) db.users.insert({a:1,b:1}) UPDATE users SET a=1 WHERE b='q' db.users.update({b:'q'}, {$set:{a:1}}, false, true)

SQL x NoSQL (MongoDB) SELECT COUNT(*) FROM users db.users.count() SELECT a,b FROM usersdb.users.find({}, {a:1,b:1})

Demonstração http://www.mongodb. org/display/docs/tutorial http://hi.baidu. com/hxzon/blog/item/b827af771b90ac16b151 b95e.html

Demonstração Criando um Documento com vários campos: Kico = { nome: "Henrique Lobo Weissmann", apelido: "Kico (ou seria este o nome?)", cidade: "Belo Horizonte" } Armazenando num Banco de Dados cujo nome é: "kicodb" Cdb.kicodb.save(Kico)

Vantagens x Desvantagens Vantagens: Finalmente você se livrou de uma abordagem bidimensional e pode representar objetos do mundo real como realmente são: complexos e únicos. Caso no futuro surja algum caso no qual novos atributos apareçam, você pode aplicá-los somente aonde é necessário, e não em todos os casos, como no modelo relacional, aonde normalmente cria-se uma nova coluna na tabela relacionada

http://www.mongodb.org/ Bibliografia http://en.wikipedia.org/wiki/mongodb http://www.nosqlbr.com.br/ http://www.ibm.com/developerworks/br/java/library/j-javadev2-12/index.html http://core.eti.br/ http://www.zorched.net/2010/10/04/mongodb-mapreducefunctions-for-grouping/