Hoje em dia, fala-se muito sobre os bancos de dados NoSQL. Porém, poucos ainda conhecem esse conceito, que não é novo.
|
|
- Ana Clara de Sá Capistrano
- 8 Há anos
- Visualizações:
Transcrição
1 Introdução Hoje em dia, fala-se muito sobre os bancos de dados NoSQL. Porém, poucos ainda conhecem esse conceito, que não é novo. Neste curso, explicarei o que são esses bancos de dados tão falados ultimamente, onde usar e por que usá-los. O foco será em um banco de dados largamente utilizado, que é o MongoDB, e demonstrarei exemplos de sua utilização real com o PHP, outra linguagem para Web largamente utilizada. NOSQL O que é? Por que usar? Onde usar? Tipos de armazenamento Cases reais Por que usar? O termo NoSQL foi utilizado pela primeira vez em 1998 como nome de um banco de dados relacional de código aberto que não possuía um interface SQL. Seu autor, Carlo Strozzi, alega que o movimento NoSQL "é completamente distinto do modelo relacional e portanto deveria ser mais apropriadamente chamado "NoREL" ou algo que produzisse o mesmo efeito". Porém, o termo só voltou a ser assunto em 2009 por um funcionário do Rackspace, Eric Evans, quando Johan Oskarsson da Last.fm queria organizar um evento para discutir bancos de dados open source distribuídos.
2 NoSQL são diferentes sistemas de armazenamento que vieram para suprir necessidades nas quais os bancos de dados tradicionais (relacionais) são ineficazes. Muitas dessas bases apresentam características interessantes, como: alta performance, escalabilidade, replicação, suporte a dados estruturados, grafos e sub-colunas. O NoSQL surgiu da necessidade de uma performance superior e de alta escalabilidade. Os atuais bancos de dados relacionais são muito restritos a isso, sendo necessária a distribuição vertical de servidores, ou seja, quanto mais dados, de mais memória e de mais disco um servidor precisa. O NoSQL tem uma grande facilidade na distribuição horizontal, ou seja, mais dados, mais servidores, não necessariamente de alta performance. Um grande utilizador desse conceito é o Google, que usa computadores de pequeno e médio porte para a distribuição dos dados. Essa forma de utilização é muito mais eficiente e econômica. Além disso, os bancos de dados NoSQL são muito tolerantes a erros. No caso dos bancos NoSQL, toda a informação necessária estará agrupada no mesmo registro, ou seja, em vez de você ter o relacionamento entre várias tabelas para formar uma informação, ela estará em sua totalidade no mesmo registro. Onde usar? Atualmente, temos vários bancos NoSQL que podem resolver diversos problemas. De qualquer forma, eles não são a chave para TODOS os problemas. Ainda existem cenários em que os bancos relacionais são mais indicados, visto que eles possuem propriedades ACID. Logo, são melhores em cenários em que os dados são muitíssimo importantes e não pode haver nenhuma quebra de referência. Ou seja, não indicaria, ainda, algum banco NoSQL para sistemas de transações financeiras, por exemplo. Mas se o seu sistema é alguma rede social ou algum site que necessite de alta disponibilidade ou escalabilidade, com certeza lhe indicaria um banco NoSQL. Entretanto, não precisamos mudar todo o sistema para algum banco NoSQL. Podemos utilizar um banco NoSQL e um relacional em conjunto. Como muitos já fazem, mas nem percebem. Por exemplo: um sistema que utiliza cache com certeza está usando um banco NoSQL no cache, como o mais conhecido Memcached. A API Storage do HTML5 também
3 utiliza um sistema de banco NoSQL do tipo chave-valor. Tipo de armazenamento Existem diversos tipos de armazenamento, no qual cada um trata os dados de uma forma diferente e que pode ser mais específico para o objetivo desejado. Os tipo de armazenamento são: Wide Column Store/Column Families, Document Store, Key Value/Tuple Store, Eventually Consistent Key Value Store, Graph Databases, Object Databases, Grid Database Solutions, XML Databases. Lista retirada de Key/Value Store Esse é o tipo de banco de dados NoSQL mais simples. O conceito dele é uma chave e um valor para essa chave, mas ele é o que aguenta mais carga de dados. Estes tipos de bancos de dados são o que tem a maior escalabilidade: Berkeley DB Tokyo Cabinet Kyoto Cabinet Project Voldermort MemcacheDB SimpleBD Redis Riak Wide Columns Store Fortemente inspirados pelo BigTable do Google, suportam várias linhas e colunas, e também permitem subcolunas. Além do BigTable do Google, outros que usam essa tecnologia são: HBase(Apache)
4 HiperTable Cassandra(Apache) Document Store Baseados em documentos XML ou JSON, podem ser localizado pelo seu id único ou por qualquer registro que tenham no documento: CouchDB(Apache) MongoDB RavenDB Graph Store Com uma complexibilidade maior, esses bancos de dados guardam objetos, e não registros, como os outros tipos de NoSQL. A busca desses itens é feita pela navegação destes objetos: Neo4J InfoGrid HyperGraphDB Column Oriented Store Esses são bancos de dados relacionais que têm características do NoSQL. A principal diferença deles é que os dados são armazenados em colunas, ajudando na escalabilidade: Vertica MonetDB LucidDB Infobright Ingres/Vectorwise Na imagem abaixo, podemos ver um gráfico demonstrando a diferença entre o tamanho da base de dados e a complexidade dos seus dados. Assim, podemos perceber que os bancos do tipo chave-valor conseguem aguentar
5 mais dados, sendo que seus dados são mais simples, enquanto que os bancos do tipo grafo aguentam menos dados, e seus dados são mais complexos. Cases reais Um case real interessante é o da Netflix que utiliza 3 bancos NoSQL: SimpleDB, HBase e Cassandra. O SimpleDB é uma implementação NoSQL da Amazon, e por isso foi escolhido, já que a empresa utiliza o serviço AWS da Amazon. Ele escreve réplicas automáticas nas zonas disponíveis dentro de uma região. É altamente durável e também possui características, além de uma interface de chave-valor simples, como: vários atributos chave de linha, operações em lote, as leituras consistentes etc. O HBase é profundamente ligado ao Hadoop e pode escrever consultas em tempo real, apesar de sacrificar um pouco a disponibilidade pela consistência dos dados. Cassandra foi a escolhida pela escalabilidade e pelo poder de replicar dados assincronamente através de múltiplas regiões geográficas. Pode escalar dinamicamente adicionando mais servidores sem a necessidade de re-shard ou reiniciar. Como se pode ver, cada banco vem para suprir alguma necessidade específica. Esse foi um exemplo de como uma empresa pode utilizar vários bancos NoSQL para tratar de assuntos específicos. Porém, podemos usar facilmente apenas um para resolver nossos problemas.
6 O MongoDB, que será nosso banco de estudo, é usado pelas seguintes empresas em produção: Craigslist Shutterfly foursquare bit.ly SourceForge Disney MTV Networks GitHub Justin.tv CollegeHumor SugarCRM GrooveShark CartolaFC Podemos ver mais empresas utilizando-o emhttp:// Production+Deployments MongoDB - Introdução O MongoDB é um dos bancos NoSQL mais utilizados, pela sua facilidade de instalação, sua documentação e os diversos drivers para inúmeras linguagens de programação. Ele é um banco de dados orientado a documentos, escalável, livre de esquema, de alto desempenho e código aberto escrito em C++. Algumas funcionalidades interessantes do MongoDB são: orientação a documentos(json/bson) suporte a index replicação e alta disponibilidade
7 auto-sharding map/reduce GridFS suporte comercial da 10gen. Suas queries são simples e ricas. E seu map/reduce é bem flexível. Quando utilizamos, vemos a grande diferença de velocidade entre o MongoDb e os outros bancos relacionais. Isso acontece principalmente por ele guardar os dados na memória RAM, persistindo-o no disco rígido também. Por isso, é altamente aconselhável sempre usar um segundo nó de réplica para, caso o servidor desligue, você não perder seus dados. Para a maioria dos desenvolvedores que vem do mundo relacional, o MongoDB parecerá estranho, mas com o tempo é possível notar como ele é mais simples que a grande maioria dos SGBDs. A grande diferença, que para mim realmente é uma vantagem, é não possuir schema e não tentar representar um mundo n-dimensional com apenas 2 dimensões: coluna e linha. No MongoDB, o conjunto de dados não se chama tabelas, mas sim coleção. Essa coleção possui uma estrutura de JSON, como no seguinte exemplo: usuario{ nome: "Jean", apelido: "Suissa", idade: 26, telefone:{celular: , residencial: }} Como podemos ver nesse exemplo, além de possuir os campos nome, apelido e idade, o campo celular é uma lista de valores. Nossos documentos JSON podem conter outros documentos JSON dentro, e assim por diante. Você irá controlar tudo isso via programação. Isso se diferencia bastante do modelo relacional, no qual todos os registros necessariamente precisam ter os mesmos campos, mesmo que sejam NULOS. Já no MongoDB você apenas acrescentará campos nos registros que realmente precisam. E, como havia dito anteriormente, o programador tem que ter muito mais cuidado com esse tipo de coisa para depois não se perder em suas estruturas. Porém, não pense que esse modelo NOSQL serve para todos os casos. Os casos em que ele serve perfeitamente são: sistemas de logs, sistemas que não necessitam de controle de transação, que necessitam de alta escalabilidade e que não possuem dados críticos.
8 Uma dica que posso dar sobre como escolher o MongoDB para um projeto é pensar se o seu sistema terá muito mais leituras do que escritas concorrentes. Por exemplo: em um e-commerce, não haverá quase nenhum cliente escrevendo em cima de algum produto, porém haverá muitos clientes lendo esses registros. Esse é um caso clássico para se utilizar o MongoDb. Outro aspecto que pode modificar sua modelagem no MongoDB é pensar como suas informações serão lidas pela sua aplicação; nesse caso, você modelará seu banco pensando em agrupar suas informações para que sejam buscadas apenas uma vez e que o retorno dessas informações seja suficiente para a maioria das atividades executadas na aplicação. Instalação Windows Linux MacOS Windows Faça o download para o Windows em Quickstart+Windows Dezip o conteúdo do zip baixado em alguma pasta. Ex.: C:\mongo Crie 2 pastas no seu C:\, pois o MongoDB utiliza como padrão essas 2 pastas. C:\> mkdir \data C:\> mkdir \data\db Caso você queira utilizar pastas diferentes, use o atributo --dbpath quando iniciar o serviço do Mongo no seu console. Para você iniciar o seu Mongo, vá até o console e digite: cd mongo\bin mongod
9 Após iniciado o serviço, você pode abrir outro console e ir na mesma pasta bin e rodar: mongo Com isso, você estará rodando o cliente do MongoDB e já poderá testá-lo com seus comandos. Agora baixe a extensão do Mongo para PHP em Baixe a versão correta para seu Windows e coloque a dll na pasta das suas extensões de PHP. Após isso, abra o seu php.ini e adicione a seguinte linha: extension=php_mongo.dll Linux Para instalar "automagicamente" o MongoDB, basta instalá-lo via apt-get, mas antes precisamos atualizá-lo: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 Crie um arquivo /etc/apt/sources.list.d/10gen.list e adicione essa linha: deb dist 10gen Agora só atualizamos: sudo apt-get update Para instalar seguimos a velha fórmula: $ sudo apt-get install mongodb-10gen Agora instalaremos a extensão do Mongo para o PHP. $ sudo pecl install mongo Crie as 2 pastas padrão que o Mongo utiliza com os seguintes comandos:
10 $ sudo mkdir -p /data/db/ $ sudo chown `id -u` /data/db (caso não consiga. pode usar o chmod 777 -Rf na pasta / data, mas não é aconselhável) $ sudo pico /etc/php5/apache2/php.ini extension=mongo.so Adicione a seguinte linha ao seu php.ini: Reinicie seu Apache e confira se a extensão está rodando. $ sudo /etc/init.d/apache2 restart Para conferir se a extensão está rodando, crie um arquivo php com o seguinte conteúdo: <?php phpinfo();?> Procure por mongo e veja se ele está devidamente instalado. Caso não consiga instalar via apt-get, pode baixar diretamente do site em: Após a extração dos arquivos em uma pasta qualquer, você deve prestar atenção: quando você chama o binário mongo ou mongod, terá que fazer com a url completa da pasta. Para você rodar o serviço do Mongo, basta rodar o seguinte comando: mongod Em um outro terminal, você irá rodar o cliente do Mongo com o seguinte comando: mongo MacOS Para instalar "automagicamente" o MongoDB, basta instalá-lo via apt-get:
11 $ brew update $ brew install mongodb Ou se você usa ports: $ sudo port install mongodb Agora, instalaremos a extensão do Mongo para o PHP. $ sudo pecl install mongo Crie as 2 pastas padrão que o Mongo utiliza com os seguintes comandos: $ sudo mkdir -p /data/db/ $ sudo chown `id -u` /data/db (caso não consiga, pode usar o chmod 777 -Rf na pasta / data, mas não é aconselhável) $ sudo pico /etc/php5/apache2/php.ini (ou onde seu php.ini estiver) Adicione a seguinte linha ao seu php.ini: extension=mongo.so Reinicie seu Apache e confira se a extensão está rodando. $ sudo /etc/init.d/apache2 restart (ou restart via MAMP) Para conferir se a extensão está rodando, crie um arquivo php com o seguinte conteúdo: <?php phpinfo();?> Procure por mongo e veja se ele está devidamente instalado. Caso não consiga instalar via port ou brew, pode baixar diretamente do site em: Após a extração dos arquivos em uma pasta qualquer, você deve prestar atenção: quando você chama o binário mongo ou mongod, terá que fazer com a url completa da pasta. Para você rodar o serviço do Mongo, basta rodar o seguinte comando:
12 mongod Em um outro terminal, você irá rodar o cliente do Mongo com o seguinte comando: mongo Comandos Coleção Inserção Consulta Alteração Exclusão Mapeamento SQL para MongoDB Coleção Antes de criarmos uma coleção, precisamos criar uma Database e, para isso, usaremos o seguinte comando: use nome_database Caso a Database já exista, o Mongo apenas a setará como default. Para listarmos as databases criadas, usamos o seguinte comando: show dbs Para criarmos uma coleção, precisamos apenas usá-la: db.nome_colecao.insert({a:1}) Sempre usaremos, para cada comando, o início db, que será o atalho para a database que escolhemos inicialmente com o comando use. A coleção só existirá após algum dado ser inserido nela. Para listarmos as coleções, usamos o seguinte comando: show collections
13 Para deletarmos a coleção, usamos: db.nome_colecao.drop() Se quisermos apenas limpar a coleção sem apagá-la, usamos: db.nome_colecao.remove() Caso queiramos criar uma collection sem utilizá-la inicialmente, podemos usar o seguinte comando: db.createcollection("minha_collection") Inserção Para inserirmos algum dado, sempre utilizamos um documento no formato JSON. Usaremos o comando insert() da seguinte forma: db.professores.insert({nome:?jean?, idade:26, disciplinas:[?php?,? NOSQL?], sexo:?m?, created : new Date('12/21/2012')}) Ou também podemos criar um JSON com os dados e passá-lo como parâmetro para a função, como no exemplo a seguir: json = {nome:?jean?, idade:26, disciplinas:[?php?,?nosql?], sexo:?m?, created : new Date('12/21/2012')} db.professores.insert(json) Consulta Para fazermos consultas no MongoDB, utilizaremos 2 funções: find() findone() Possuímos a seguinte sintaxe para fazermos consultas: db.colecao.find({clausulas, campos})
14 E, para usarmos como WHERE, são necessários alguns operadores especiais que listo na próxima página. Caso seja necessária uma consulta por string mais complexa, podemos usar REGEX. db.professores.find( { nome : /J*/i } );<br />db.professores.find( { name : { $regex : 'J*'} } ); Agora veremos um paralelo entre algumas funções de seleção da SQL e sua alternativa para o Mongo: select count(*) from professores<br />db.professores.count() select count(*) from professores where idade > 30<br / >db.professores.count({idade:{$gt: 30}}) select nome from professores where idade < 18<br / >db.professores.find({idade: {$lt: 18}})) select nome, idade from professores<br />db.professores.find(null, {nome:1, idade:1} ) select nome, idade from professores where idade >= 18<br / >db.professores.find({idade:{$gte: 18}}, {nome:1, idade:1} ) select * from professores order by nome ASC <br / >db.professores.find().sort({nome:1}) select * from professores order by idade DESC <br / >db.professores.find().sort({idade:-1}) select * from professores order by nome ASC limit 0,2 <br / >db.professores.find().sort({nome:1}).limit(2) select * from professores limit 2 offset 10<br / >db.professores.find().limit(2).skip(10) Entretanto, qualquer seleção com find() irá retornar um cursor do MongoDB no qual você precisará iterar para retirar suas informações, enquanto que utilizando o findone() você retornará apenas 1 registro. select nome, idade from professores LIMIT 0,1<br / >db.professores.findone(null, {nome:1, idade:1} ) Operadores Condicionais No MongoDB, utilizamos operadores especiais para criar nossos critérios de busca. Abaixo, a lista desses operadores: < ou $lt <= ou $lte > ou $gt
15 >= ou $gte $all - retorna o objeto no qual todos os valores foram encontrados $exists - retorna o objeto caso uma chave exista $mod - retorna o objeto quando o módulo de um valor foi encontrado $ne- retorna o objeto no qual o valor não foi encontrado $in- retorna o objeto se o valor foi encontrado $nin- retorna o objeto se nenhum dos valores foi encontrado $nor- retorna o objeto caso a cláusula negação do OU for verdadeira $or- retorna o objeto caso a cláusula OU for verdadeira $and- retorna o objeto caso a cláusula E for verdadeira $size $type - retorna o objeto caso a chave seja do tipo especificado para conferir a lista dos tipos e seus valores. Acesse a lsta dos tipos e seus valores inserir bloco Ordenação Para ordenarmos uma consulta no MongoDB, precisamos apenas utilizar a função sort(), como no exemplo a seguir: db.professores.find({}).sort({ 1}); Utilizamos o valor 1 para ordenação ASCENDENTE e -1 para ordenação DESCENDENTE. Skip e Limit Para pularmos o início do retorno dos nossos registros, usamos a função skip() e, para limitarmos a quantidade de registros retornados, utilizamos a função limit(), como demonstrado abaixo: db.professores.find().skip(20).limit(10);
16 Cursores Qualquer busca feita com o find() irá retornar um cursor e, para retirarmos os valores dele, precisamos iterar nele como no exemplo abaixo: var cur = db.professores.find(); cur.foreach( function(x) { print(tojson(x))}); Alteração Para realizarmos alterações, podemos fazer uma consulta que irá retornar um JSON. Podemos manipulá-lo e mandar o Mongo para salvar o objeto com a modificação. Podemos fazer isso da seguinte forma: Para realizarmos uma alteração no MongoDB, podemos utilizar 2 funções: save() update() A diferença entre o save() e o update() é que a função save() irá criar o registro caso ele não encontre nenhum que bata com o seu critério de busca. Porém, isso também pode ser feito com o parâmetro upsert na função update(). A sintaxe para a função update() é a seguinte: db.collection.update( criterio, obj, upsert, multi ) criterio - query que irá selecionar o registro para alterar objnew - objeto modificado ou operadores de alteração upsert - caso o registro não exista, ele será inserido multi - caso encontre mais de um registro pelo criterio, ele atualiza todos esses registros Caso você não passe o parâmetro multi, ele só atualiza um único registro. Exemplo da diferença entre o update() e o save():
17 db.minhacollection.save(x); db.minhacollection.update( { _id: x._id }, x, /*upsert*/ true ) A forma mais simples de se alterar um registro é pesquisando-o com findone, editandoo e, após isso, salvando. Caso precise apenas salvar, simplesmente aconselho o uso da função save(), como a seguir: professor = db.professores.findone( { nome : "Jean" } );<br / >professor.idade = 28;<br />db.professores.save(professor); Mas também podemos alterar diretamente com o update: professor = db.professores.findone( { nome : "Jean" } );<br / >professor.idade = 27;<br />db.professores.update({ nome : "Jean" }, {$set: {idade: 28} }); Fora isso, podemos usar diversos operadores na query, exemplo: db.professores.update( { nome:"jean" }, { $inc: { visitas: 1 }, $set: { idade: 28 } } ); Operadores de Modificação Os operadores de modificação servem para que você possa alterar valores nos registros diretamente na query do MongoDB. Como vimos anteriormente, para atualizar minha idade de 27 para 28 anos, usamos o operador $set. $inc { $inc : { campo : valor } } Incrementa um valor no campo; caso o campo não exista, ele irá criar o campo e setar o valor. Para decrementar, basta passar um valor negativo. $set { $set : { campo : valor } } Seta o valor do campo. $unset
18 { $unset : { campo : 1} } Deleta o campo. $push { $push : { campo : valor } } Adiciona um valor ao campo se o campo for um array existente. Caso contrário, transforma o campo em um array com o valor como índice. Porém, se o campo existe e não for um array, irá retornar um erro. Arrays múltiplos podem ser alterados em uma única operação separando os pares de campo : valor por vírgula. { $push : { campo1 : valor, campo2 : valor2 } } $pushall { $pushall : { campo : valor_array } } Adiciona cada valor dentro de valor_array para o campo se o campo for um array existente. Caso contrário, seta o campo com o valor_array. Se o campo estiver presente mas não for um array, irá retornar um erro. $addtoset e $each { $addtoset : { campo : valor } } Adiciona um valor para um array somente se o valor ainda não estiver no array, caso o campo seja um array existente. Caso contrário, seta o campo para o array se o campo não existir. Se o campo estiver presente e não for array, irá retornar um erro. Para adicionar uma lista de vários valores, use o qualificador $each: { $addtoset : { a : { $each : [ 3, 5, 6 ] } } } $pop { $pop : { campo : 1 } } Remove o último elemento do array campo. $pull { $pull : { campo : _valor } }
19 Remove todas as ocorrências de _valor no campo se o campo for um array. Se o campo estiver presente mas não for array, irá retornar um erro. Para acertar um valor exato, você também pode usar expressões como essas: { $pull : { campo : {<criterio>} } } //remove elementos do array que batam com o seu critério { $pull : { campo : {campo2: valor} } } //remove os elementos do array com campo2 possuindo o valor { $pull : { campo : {$gt: 3} } } //remove elementos do array que forem maior que 3 $pullall { $pullall : { campo : valor_array } } Remove todas as ocorrências de cada valor no valor_array do campo se o campo for um array. Se o campo existir mas não for um array, irá retornar um erro. $rename { $rename : { nome_campo_antigo : nome_campo_novo } } Renomeia o nome_campo_antigo para nome_campo_novo. Exclusão Para excluir dados, utilizamos a mesma lógica, porém com a função remove(). db.professores.remove(); // exclui tudo<br / >db.professores.remove({nome: "Jean"}); // exclui todos os professores com nome = Jean O jeito mais eficiente de remover um documento é utilizando seu ObjectID, exemplo: professor = db.professores.findone({nome: "Jean"}) db.professores.remove({_id: professor._id}); Mapeamento SQL para MongoDB
20 Vamos ver alguns exemplos de SQL e sua tradução para o PHP usando MongoDB: INSERT INTO USERS VALUES(1,1) $db->users->insert(array("a" => 1, "b" => 1)); SELECT a,b FROM users $db->users->find(array(), array("a" => 1, "b" => 1)); SELECT * FROM users WHERE age=33 $db->users->find(array("age" => 33)); SELECT a,b FROM users WHERE age=33 $db->users->find(array("age" => 33), array("a" => 1, "b" => 1)); SELECT a,b FROM users WHERE age=33 $db->users->find(array("age" => 33), array("a" => 1, "b" => 1)); SELECT a,b FROM users WHERE age=33 ORDER BY name $db->users->find(array("age" => 33), array("a" => 1, "b" => 1))->sort(array("name" => 1)); SELECT * FROM users WHERE age>33 $db->users->find(array("age" => array('$gt' => 33))); SELECT * FROM users WHERE age<33 <br />$db->users->find(array("age" => array('$lt' => 33))); SELECT * FROM users WHERE name LIKE "%Joe%" $db->users->find(array("name" => new MongoRegex("/Joe/"))); SELECT * FROM users WHERE name LIKE "Joe%" $db->users->find(array("name" => new MongoRegex("/^Joe/"))); SELECT * FROM users WHERE age>33 AND age<=40 $db->users->find(array("age" => array('$gt' => 33, '$lte' => 40))); SELECT * FROM users ORDER BY name DESC $db->users->find()->sort(array("name" => -1)); CREATE INDEX myindexname ON users(name) $db->users->ensureindex(array("name" => 1));
21 CREATE INDEX myindexname ON users(name,ts DESC) $db->users->ensureindex(array("name" => 1, "ts" => -1)); SELECT * FROM users WHERE a=1 and b='q' $db->users->find(array("a" => 1, "b" => "q")); SELECT * FROM users LIMIT 10 SKIP 20 $db->users->find()->limit(10)->skip(20); SELECT * FROM users WHERE a=1 or b=2 $db->users->find(array('$or' => array(array("a" => 1), array("b" => 2)))); SELECT * FROM users LIMIT 1 $db->users->find()->limit(1); EXPLAIN SELECT * FROM users WHERE z=3 $db->users->find(array("z" => 3))->explain() SELECT DISTINCT last_name FROM users $db->command(array("distinct" => "users", "key" => "last_name")); SELECT COUNT(*) FROM users $db->users->count(); SELECT COUNT(*) FROM users where AGE > 30 $db->users->find(array("age" => array('$gt' => 30)))->count(); SELECT COUNT(AGE) from users $db->users->find(array("age" => array('$exists' => true)))->count(); UPDATE users SET a=1 WHERE b='q' $db->users->update(array("b" => "q"), array('$set' => array("a" => 1))); UPDATE users SET a=a+2 WHERE b='q' $db->users->update(array("b" => "q"), array('$inc => array("a" => 2))); DELETE FROM users WHERE z="abc" $db->users->remove(array("z" => "abc"));
22 Sharding O MongoDB suporta uma arquitetura automatizada sharding/partição, permitindo escalar horizontalmente em vários nós. Para aplicações que superam os recursos de um servidor de banco de dados único, o MongoDB pode converter para um cluster sharded, gerenciando automaticamente o failover e o balanceamento de nós, com poucas mudanças ou não para o código do aplicativo original. Sharding é o particionamento de dados entre vários computadores de uma forma de preservação da ordem. Para dar um exemplo, vamos imaginar sharding como uma coleção de usuários pelo seu estado de residência. Em uma visão simplista, se designar três máquinas como servidores de nossos cacos, os usuários podem ser divididos por máquina da seguinte forma: Dividindo a quantidade de estados existentes pelo número de shards existentes. Pensando na quantidade de dados existentes por estado para fazer um balanceamento correto. Nosso aplicativo se conectará ao cluster sharded através de um processo Mongos, que encaminha as operações para o(s) shard(s) apropriado(s). Dessa forma, o aglomerado MongoDB sharded se parecerá como um único servidor lógico para a nossa aplicação. Desde que nossos documentos estejam organizados em uma forma de preservação da ordem, todas as operações que especificam o estado de residência serão encaminhadas apenas para os nós que contêm esse estado. Como o nosso foco é trabalhar com PHP, não me aprofundarei nesta sessão, pois o assunto é muito extenso. Configuração Componentes Sharding Primeiro configuramos os fragmentos individuais (mongod's), depois os servidores de configuração e os processos Mongos.
23 Servidores Shard Um servidor de shard consiste em um processo de mongod ou em um conjunto de réplicas de processos mongod. Para a produção, vamos usar um conjunto de réplicas para cada fragmento de dados para segurança e failover automático. Para começar com um teste simples, podemos executar um único processo mongod por shard, como uma configuração de teste não exige failover automatizado. Servidores de configuração Vamos executar um mongod --configsvr para cada servidor de configuração. Se você está apenas testando, pode usar apenas um servidor de configuração. Para a produção, usar três pelo menos. A replicação dos dados para cada configuração do servidor é gerenciada pelo roteador (mongos), pois eles têm um protocolo de replicação síncrona otimizado para três máquinas. Não execute qualquer um dos servidores de configuração com - replset; pois a replicação entre eles é automática. Mongos Router Execute o processo mongos nos servidores de sua escolha. Especifique o parâmetro - configdb para indicar a localização da base de dados de configuração(s). Nota: não use os nomes de DNS, endereços, para o ip. Caso você use, quando mover os servidores de configuração mais tarde, será mais difícil. Note que cada Mongos vai ler o primeiro servidor de configuração na lista fornecida. Se você estiver executando servidores de configuração em mais de um centro de dados, você deve colocar os servidores mais próximos de configuração no início da lista. Exemplo Servidores Shard
24 Primeiramente precisamos criar os serviços de sharding. Esse exemplo é apenas didático e será rodado em apenas um servidor. mkdir /data/db/a /data/db/b mongod --shardsvr --dbpath /data/db/a --port > /tmp/sharda.log & cat /tmp/sharda.log mongod --shardsvr --dbpath /data/db/b --port > /tmp/shardb.log & cat /tmp/shardb.log Obs.: O cat serve apenas para verificarmos se o serviço subiu realmente e o & serve para rodar em background. Servidores de Configuração mkdir /data/db/config mongod --configsvr --dbpath /data/db/config --port > /tmp/ configdb.log & cat /tmp/configdb.log Mongos Router mongos --configdb localhost:20000 > /tmp/mongos.log & cat /tmp/mongos.log Precisamos dizer qual é a nossa database, collection e shard key. db.runcommand( { enablesharding : "test" } ) {"ok" : 1} db.runcommand( { shardcollection : "test.people", key : {name : 1} } ) { "collectionsharded" : "test.people", "ok" : 1 } GridFS GridFS é uma especificação para armazenar grandes arquivos, e ele provê um mecanismo transparente para a divisão dos arquivos em vários documentos. Então, podemos manipular os arquivos como se fossem documentos, ou seja, podemos pesquisar por seus metadados facilmente.
Universidade Federal de Goiás Ciências da Computação Sistemas Operacionais 2
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
Leia maisAndroid e Bancos de Dados
(Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do
Leia maisGuia de instalação para ambiente de Desenvolvimento LINUX
Guia de instalação para ambiente de Desenvolvimento LINUX Conteúdo deste manual Introdução O guia de instalação... 3 Capítulo 1 Instalando o servidor Web Apache... 4 Teste de instalação do Apache... 9
Leia maisIntrodução a Banco de Dados
Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05
Leia maisListando itens em ComboBox e gravando os dados no Banco de Dados MySQL.
Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no
Leia maisRevisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011
Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 5 SELECT * FROM Minha_memoria Revisando Sintaxes SQL e Criando programa de Pesquisa Ano:
Leia maisTrabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011
Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011
Leia maisLazarus pelo SVN Linux/Windows
Lazarus pelo SVN Linux/Windows Sei que não faltam artigos sobre como obter e compilar o Lazarus e o FPC pelo SVN, mas sei também que nunca é de mais divulgar um pouco mais e talvez escrever algo diferente.
Leia maisDesenvolvendo Websites com PHP
Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.
Leia maisPrincipais Comandos SQL Usados no MySql
Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)
Leia maisPersistência de Dados
Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD
Leia maisEngenharia de software 2011A. Trabalho sobre
Engenharia de software 2011A Trabalho sobre NOSQL Not only SQL NoSQL Not only SQL GRUPO - 9 Cléverton Heming Jardel Palagi Jonatam Gebing Marcos Wassem NOSQL O Termo NoSQL, foi utilizado pela primeira
Leia maisVocê pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site.
Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site. Foi necessário configurar esse segundo adaptador, porque talvez seja necessário fazer o download de alguma
Leia maisIntrodução à Engenharia da Computação. Banco de Dados Professor Machado
Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:
Leia maisCriando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011
Criando Banco de Dados, Tabelas e Campos através do HeidiSQL Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 2 Pedreiros da Informação Criando Banco de Dados, Tabelas e Campos através do HeidiSQL
Leia maishttp://www.multside.com.br CODE IGNITER INSTALAÇÃO & BANCO DE DADOS
CODE IGNITER INSTALAÇÃO & BANCO DE DADOS INSTALAÇÃO Instalar o code-igniter é muito simples, basta que você tenha um servidor que rode PHP 5 (para saber consulte a documentação PHP do seu servidor). Após
Leia maisGoogle Drive. Passos. Configurando o Google Drive
Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.
Leia maisMANUAL DO ANIMAIL 1.0.0.1142 Terti Software
O Animail é um software para criar campanhas de envio de email (email Marketing). Você pode criar diversas campanhas para públicos diferenciados. Tela Principal do sistema Para melhor apresentar o sistema,
Leia maisProgramação WEB. Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP
Programação WEB Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida Aula III Introdução PHP Introdução PHP PHP=Hypertext Pre-Processor Linguagem de script open
Leia mais2 echo "PHP e outros.";
PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento
Leia maisGoogle Drive: Acesse e organize seus arquivos
Google Drive: Acesse e organize seus arquivos Use o Google Drive para armazenar e acessar arquivos, pastas e documentos do Google Docs onde quer que você esteja. Quando você altera um arquivo na web, no
Leia maisProgramação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza
PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível
Leia maisNoções de. Microsoft SQL Server. Microsoft SQL Server
Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados
Leia maisManual de Instalação e Configuração do SQL Express
Manual de Instalação e Configuração do SQL Express Data alteração: 19/07/11 Pré Requisitos: Acesse o seguinte endereço e faça o download gratuito do SQL SRVER EXPRESS, conforme a sua plataforma x32 ou
Leia maisAJAX no GASweb. Mas e afinal, para que usamos o AJAX?
Nível - Avançado AJAX no GASweb Por: Pablo Hadler AJAX (Asynchronous Javascript and XML) foi criado com o princípio de ser uma maneira rápida e otimizada de podermos fazer requisições Web, sendo esta totalmente
Leia maisPHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006.
PHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006. Veja como montar um formulário para upload de múltiplos arquivos e como processá-lo com o PHP, usando
Leia maisArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02
ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO
Leia maisSTK (Start Kit DARUMA) Extensão PHP para DarumaFrameWork
STK (Start Kit DARUMA) Extensão PHP para DarumaFrameWork A DarumaFramework está com suas funções nativas ao programador PHP devido a extensão de aplicativo php_darumaframework. Para usar esta extensão,
Leia maisSensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com. Preparando o ambiente do Banco de dados Mysql
Criar database: Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com Preparando o ambiente do Banco de dados Mysql CREATE DATABASE `tempuino` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
Leia maisComandos de Manipulação
SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL
Leia maisLICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER
LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER V14 de BricsCAD vem com um novo sistema de licenciamento, com base na tecnologia de licenciamento de Reprise Software. Este novo sistema oferece um ambiente
Leia maisSQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.
SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]
Leia maisNesse artigo abordaremos os principais aspectos de instalação e uso do NTOP no Fedora Core 4.
Diego M. Rodrigues (diego@drsolutions.com.br) O NTOP é um programa muito simples de ser instalado e não requer quase nenhuma configuração. Ele é capaz de gerar excelentes gráficos de monitoramento das
Leia maisTreinamento sobre SQL
Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na
Leia maisEsse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.
Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5. Ele considera que você já tem o Joomla! instalado no seu computador. Caso você queira utilizá lo em um servidor na web,
Leia maisPHP INTEGRAÇÃO COM MYSQL PARTE 1
INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança
Leia maisBem- Vindo ao manual de instruções do ECO Editor de COnteúdo.
Manual de Instruções ECO Editor de Conteúdo Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. O ECO é um sistema amigável e intui?vo, mas abaixo você pode?rar eventuais dúvidas e aproveitar
Leia maisLABORATÓRIO WIRESHARK: DNS
LABORATÓRIO WIRESHARK: DNS Conforme descrito na seção 2.5 do livro, o Domain Name System (DNS) traduz nomes de hosts para endereços IP, cumprindo um papel fundamental na infra-estrutura da Internet. Neste
Leia maisArquitetura de Rede de Computadores
TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador
Leia maisOrganização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores
1 Pós Graduação em Projeto e Gerencia de Redes de Computadores Sistemas Operacionais de Redes I - Linux Prof.: Nelson Monnerat Instalação e Configuração 1 Sistemas Operacionais de Redes I - Linux Módulo
Leia maisMySQL Query Browser. Professor Victor Sotero SGD
MySQL Query Browser Professor Victor Sotero SGD 1 DEFINIÇÃO O MySQL Query Browser é uma ferramenta gráfica fornecida pela MySQL AB para criar, executar e otimizar solicitações SQL em um ambiente gráfico.
Leia maisDOCUMENTAÇÃO DO FRAMEWORK - versão 2.0
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando
Leia maisCRIANDO UM BANCO DE DADOS
CRIANDO UM BANCO DE DADOS Bem, antes de iniciarmos propriamente no delphi, devemos aprender a usar sua ferramentas, sendo uma das mais importantes o Database Desktop, pois é com esta que construímos nossos
Leia mais2 de maio de 2014. Remote Scan
2 de maio de 2014 Remote Scan 2014 Electronics For Imaging. As informações nesta publicação estão cobertas pelos termos dos Avisos de caráter legal deste produto. Conteúdo 3 Conteúdo...5 Acesso ao...5
Leia maisEntendendo como funciona o NAT
Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços
Leia maisInstalando o WordPress em localhost
Instalando o WordPress em localhost WordPress sem Mistério LEE ARAUJO htto://wordpresssemmisterio.com.br Sumário Instalando o WordPress em Localhost... 2 O Servidor web... 3 Iniciando o servidor... 6 Criação
Leia maisTrabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon
Trabalho de Sistema de Informações Aluno: Paulo Roberto Carvalho da Silva Instalação e configuração aplicativo Ocomon O trabalho tem como objetivo o estudo de caso,a instalação, configuração e funcionamento
Leia maisOmega Tecnologia Manual Omega Hosting
Omega Tecnologia Manual Omega Hosting 1 2 Índice Sobre o Omega Hosting... 3 1 Primeiro Acesso... 4 2 Tela Inicial...5 2.1 Área de menu... 5 2.2 Área de navegação... 7 3 Itens do painel de Controle... 8
Leia mais1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.
1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. Editando um Artigo 4.3. Excluindo um Artigo 4.4. Publicar
Leia maisVamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.
3.5 Páginas: Ao clicar em Páginas, são exibidas todas as páginas criadas para o Blog. No nosso exemplo já existirá uma página com o Título Página de Exemplo, criada quando o WorPress foi instalado. Ao
Leia maisUFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I
UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET Programação para Internet I Aula 10 PHP: Trabalhando com Banco de Dados leticia@cafw.ufsm.br Acessando
Leia maisOs dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.
MySQL 101 Recapitulando Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas. As bases de dados são úteis quando necessitamos
Leia mais02 - Usando o SiteMaster - Informações importantes
01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,
Leia maisNo Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:
Instalando o MySQL O MySQL é um banco de dados extremamente versátil, usado para os mais diversos fins. Você pode acessar o banco de dados a partir de um script em PHP, através de um aplicativo desenvolvido
Leia maisProgramação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL
Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre
Leia maisManual Captura S_Line
Sumário 1. Introdução... 2 2. Configuração Inicial... 2 2.1. Requisitos... 2 2.2. Downloads... 2 2.3. Instalação/Abrir... 3 3. Sistema... 4 3.1. Abrir Usuário... 4 3.2. Nova Senha... 4 3.3. Propriedades
Leia maisProgramação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza
Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem
Leia maisUNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA. Manual do Moodle- Sala virtual
UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA Manual do Moodle- Sala virtual UNIFAP MACAPÁ-AP 2012 S U M Á R I O 1 Tela de Login...3 2 Tela Meus
Leia maisAPOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL
1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)
Leia maisTransações Seguras em Bancos de Dados (MySQL)
Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o
Leia maisMódulo e-rede OpenCart v1.0. Manual de. Instalação do Módulo. estamos todos ligados
Módulo e-rede OpenCart v1.0 Manual de Instalação do Módulo estamos todos ligados ÍNDICE 01 02 03 04 Introdução 3 Versão 3 Requerimentos 3 Manual de instalação 4 05 06 4.1 vqmod 4 4.2 Instalação e ativação
Leia maisProcedimentos para Reinstalação do Sisloc
Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...
Leia maisFluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos
Este procedimento corresponde ao fluxo de trabalho de Indexação de código de barras e de separação de documentos no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se
Leia maisComo funcionam os comandos de SQL no Logic Basic Por Alan Oliveira
Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira www.linksinfo.com.br Tutorial versão 1.0 Sobre o Logic basic: Parte 1 Sobre o Logic Basic e o SQL O Logic Basic é uma linguagem de programação
Leia maisINTRODUÇÃO: 1 - Conectando na sua conta
INTRODUÇÃO: Com certeza a reação da maioria dos que lerem esse mini manual e utilizarem o servidor vão pensar: "mas porque eu tenho que usar um console se em casa eu tenho uma interface gráfica bonito
Leia maisDavid Hows Peter Membrey Eelco Plugge
David Hows Peter Membrey Eelco Plugge Novatec Original English language edition published by Apress, Copyright 2014 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2015 by Novatec Editora.
Leia maisPHP (Seções, Cookies e Banco de Dados)
PHP (Seções, Cookies e Banco de Dados) André Tavares da Silva andre.silva@udesc.br Seções Basicamente, as seções são métodos que preservam determinados dados ativos enquanto o navegador do cliente estiver
Leia maisFluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção
Este procedimento corresponde ao fluxo de trabalho de Indexação de OCR com separação de código de correção no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se na
Leia maisUNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG
UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG Página 1 de 26 Sumário Introdução...3 Layout do Webmail...4 Zimbra: Nível Intermediário...5 Fazer
Leia maisManipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015
Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações
Leia maisTutorial de Uso com o Java
Tutorial de Uso com o Java Criado por Fernando Anselmo Versão 1.0 em 18/08/2012 Seção 1 Nesta seção veremos: Histórico do MongoDB Como instalar o MongoDB Console de Comandos Usar o Java MongoDB (de "humongous
Leia maisProfº Aldo Rocha. Banco de Dados
Profº Aldo Rocha Banco de Dados HOJE! CREATE TABLE com uma Chave primária Primeiramente façam um SELECT na tabela pessoa. Percebam que não há NENHUMA CHAVE PRIMÁRIA. utilizem o comando SHOW CREATE TABLE
Leia maisManual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania
Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania Sumário Objetivos do Blog... 2 Log-in... 3 Esqueci minha senha... 4 Utilizando o Blog... 5 Encontrando seu Blog... 5 Conhecendo o
Leia maisPrograma EndNote. Download para teste no site: http://www.endnote.com/endemo.asp. (Atualmente o EndNote está na versão 5x)
Programa EndNote 1. Informações O EndNote é um gerenciador de referências bibliográficas desenvolvido pela Thomson Reuters. O software permite armazenar e organizar as referências encontradas nas buscas
Leia maisConceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)
Márcio Koch 1 Currículo Formado na FURB em Ciência da Computação Pós graduado em Tecnologias para o desenvolvimento de aplicações web Mestrando em Computação Gráfica na UDESC Arquiteto de software na Senior
Leia maisMDaemon GroupWare. Versão 1 Manual do Usuário. plugin para o Microsoft Outlook. Trabalhe em Equipe Usando o Outlook e o MDaemon
MDaemon GroupWare plugin para o Microsoft Outlook Trabalhe em Equipe Usando o Outlook e o MDaemon Versão 1 Manual do Usuário MDaemon GroupWare Plugin for Microsoft Outlook Conteúdo 2003 Alt-N Technologies.
Leia maisTUTORIAL PRÁTICO SOBRE Git. Versão 1.1
TUTORIAL PRÁTICO SOBRE Git por Djalma Oliveira Versão 1.1 "Git é um sistema de controle de revisão distribuida, rápido e escalável" (tradução rápida do manual). Basicamente é
Leia maisAULA 2 INTERAÇÃO COM O BANCO DE DADOS
AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,
Leia maisBarra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas
Microsoft Power Point 2003 No Microsoft PowerPoint 2003, você cria sua apresentação usando apenas um arquivo, ele contém tudo o que você precisa uma estrutura para sua apresentação, os slides, o material
Leia maisAmbiente Virtual de Aprendizagem Moodle
Ambiente Virtual de Aprendizagem Moodle No INSEP, o ambiente virtual de aprendizagem oferecido ao acadêmico é o MOODLE. A utilização dessa ferramenta é fundamental para o sucesso das atividades em EAD,
Leia maisMódulo e-rede OpenCart v1.0. Manual de. Instalação do Módulo. estamos todos ligados
Módulo e-rede OpenCart v1.0 Manual de Instalação do Módulo estamos todos ligados 01 02 03 04 Introdução 3 Versão 3 Requerimentos 3 Manual de instalação 4 05 06 4.1 vqmod 4 4.2 Instalação e ativação do
Leia mais1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)
Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:
Leia maisMANUAL DE UTILIZAÇÃO. HELP SUPORTE e HELP - REMOTO (Versão de usuário: 2.0)
MANUAL DE UTILIZAÇÃO HELP SUPORTE e HELP - REMOTO (Versão de usuário: 2.0) 1 Sumário 1 Introdução...3 2 O que é o HELP Suporte?...3 3 Cadastro no Help Suporte...3 4 Como Acessar e Utilizar o HELP SUPORTE...3
Leia maisManual de Instalação EDIÇÃO 1.0
Editor Rápido ipldk Manual de Instalação EDIÇÃO 1.0 HISTÓRICO DE REVISÃO Edição Data Descrição das Alterações Versão S/W Versão MPB Edição 1 Out/2006 Lançamento Inicial C.7Aa ~ C.7Aa - i - Conteúdo 1.
Leia maisHOW TO. Instalação do Firewall 6.1 Software
Introdução HOW TO Página: 1 de 14 Para fazer a migração/instalação do 6.1 Software, é necessária a instalação do Sistema Operacional Linux Fedora Core 8. Explicaremos passo a passo como formatar a máquina,
Leia maisINSTALANDO E CONFIGURANDO O MY SQL
INSTALANDO E CONFIGURANDO O MY SQL Este tutorial tem como objetivo mostrar como instalar o banco de dados My SQL em ambiente Windows e é destinado aqueles que ainda não tiveram um contato com a ferramenta.
Leia maisAUXÍLIO COMPUTACIONAL
AUXÍLIO COMPUTACIONAL Sumário 1 Introdução...1 2 Sistema Operacional...1 2.1 Usando o Linux - no seu PenDrive...2 2.2 Usando o Linux - instalado no seu HD...4 2.3 Instalando Softwares Diretamente...4 2.3.1
Leia maisComo instalar uma impressora?
Como instalar uma impressora? Antes de utilizar uma impressora para imprimir seus documentos, arquivos, fotos, etc. é necessário instalá-la e configurá-la no computador. Na instalação o computador se prepara
Leia maisPassos Preliminares: Acessando a máquina virtual via ssh.
CIn/UFPE Sistemas de Informação Redes de Computadores Professor: Kelvin Lopes Dias Monitor: Edson Adriano Maravalho Avelar {kld,eama@cin.ufpe.br Instalando o APACHE, PHP (PHPADMIN), MySQL. Este tutorial
Leia mais1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?
Exercícios sobre Linguagem PHP: 1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela? 2) Considere a linguagem de programação PHP e seus operadores. A execução da sentença:
Leia maisInstalando o Lazarus e outros sistemas de suporte. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011
Instalando o Lazarus e outros sistemas de suporte Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 1 Levante e ande - Instalando o Lazarus e outros sistemas de suporte. Ano: 02/2011 Nesta Edição
Leia maisProfessor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede
Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede O sistema de nome de domínio (DNS) é um sistema que nomeia computadores e serviços de rede e é organizado em uma hierarquia de domínios.
Leia maisAtualizaça o do Maker
Atualizaça o do Maker Prezados Clientes, Nós da Playlist Software Solutions empresa líder de mercado no desenvolvimento de software para automação de rádios - primamos pela qualidade de nossos produtos,
Leia maisOperador de Computador. Informática Básica
Operador de Computador Informática Básica Instalação de Software e Periféricos Podemos ter diversos tipos de software que nos auxiliam no desenvolvimento das nossas tarefas diárias, seja ela em casa, no
Leia maisLeonardo Gresta Paulino Murta leomurta@gmail.com
Leonardo Gresta Paulino Murta leomurta@gmail.com O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no
Leia maisCONSTRUÇÃO DE BLOG COM O BLOGGER
CONSTRUÇÃO DE BLOG COM O BLOGGER Blog é uma abreviação de weblog, qualquer registro frequênte de informações pode ser considerado um blog (últimas notícias de um jornal online por exemplo). A maioria das
Leia maisO que são Bancos de Dados?
SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados
Leia maiswww.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software
www.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software 2 Introdução Este manual foi elaborado para administradores, para entendimento do funcionamento do produto e administração
Leia mais