Manual do Hacker Especial - Volume 2 (2019-07)

(Antfer) #1

38 | Manual do Hacker Especial


E


xistem alguns bancos de dados diferentes para Linux
(MySQL, MariaDB, Postgres, SQLite para citar alguns),
mas quase todos eles têm uma coisa em comum: SQL.
Structured Query Language tem sido a forma padrão de
obtenção de informações dentro e fora de bancos de dados
por mais de 20 anos. É simples, quase universal e qualquer
Sysadmin deve ser capaz de preparar uma consulta para
conseguir os dados de que necessitam. Ele se expande de
aplicativos para pequenos celulares à grande web, servindo
milhões de pessoas. No entanto, ele começa a lutar com os
gigantes conjuntos de dados que estão começando a emergir;
a chamada Big Data.
Embora não seja impossível conter esses vastos conjuntos
de dados em SQL, não é fácil. Este desafio tem gerado um
conjunto rival de bancos de dados que chamam a si mesmos
de NoSQL. Há um grande número destes disponíveis, e aqui
vamos focar em MongoDB, que é bastante típico da base de
dados NoSQL. É também o mais popular banco de dados
NoSQL (fonte: http://db-engines.com). Quando se utiliza
MongoDB (ou qualquer outro banco de dados NoSQL) o mais
importante é esquecer tudo o que você sabe sobre bancos de

dados. Mesas, teclas, seleção de x para y e assim por diante.
Em vez de armazenar dados como na forma em linhas de
dados em tabelas, MongoDB armazena dados em
documentos JavaScript Object Notation (JSON).
Ao invés de tentar explicar como isso funciona, vamos usar
um exemplo. Primeiro, você precisa instalar o MongoDB. Você
será capaz de instalá-lo a partir de sua própria distro, ou
encontrar a versão mais recentes em http://www.mongodb.
org/downloads. Selecione um de 32 ou 64 bits (conforme o
caso) e, em seguida, extraia o arquivo, usando:
tar zxvf <filename>
Você também vai precisar criar o diretório do banco de
dados. Digite:
mkdir -p /data/db
Com isso feito, você precisará digitar cd para o diretório bin

dentro do tarball mongodb que acabou de extrair:
cd ~/mongodb-linux-x86_64-2.4.5/bin
Execute depois ./mongod para iniciar o servidor de banco
de dados e, em seguida, execute ./mongo para se conectar a
ele como cliente (Omita o ./ se você tiver instalado através
do seu gerenciador de pacotes).
MongoDB usa JavaScript. Bem como manipular os
dados, você pode fazer tudo o que espera a partir desta
linguagem. Por exemplo, tente:
print(‘Hello world’);
Como dissemos anteriormente, o núcleo do MongoDB é
um JSON que armazena documentos. Documentos JSON
contêm um ou mais pares name /valor, sob a forma
{ name1:value1, name2:value2 ...}
Nesse formato, eles podem ser muito flexíveis, e estes
nomes podem referir-se a todas as propriedades. Esta é
provavelmente a maior diferença entre MongoDB e um
banco de dados SQL tradicional – não há nenhum esquema.
Aficionados por SQL podem estar se sentindo horrorizados
neste ponto, mas sim, é isso mesmo – não há esquema.
Cabe ao aplicativo usar o banco de dados para certificar-se
de que os dados estão em algum formato consistente.

MongoDB
Vamos começar adicionando alguns dados para o banco de
dados. No seu MongoDB, digite:
db.test.save({“hello”:”world”});
db.test.find();
Isto faz algumas coisas. Primeiro, cria a coleção teste, se
ela já não existir e, em seguida, adiciona um documento
com um par com o nome “hello”, e o valor “world”. Depois,
solicita todos os documentos da coleção. O par name/
value que fizemos aqui realmente não faz sentido, então
agora nós vamos criar um mais útil.
for(i=0; i<10; i++) {db.test.save({ ‘number’ : i });}
db.test.find();
Isto mostra como o JavaScript pode ser usado para
tornar a vida mais fácil no MongoDB. Você também pode
perceber que ele recupera o registro adicionado
anteriormente, apesar de ser em um formato
completamente diferente dos outros. Isso coincide com o
que foi dito sobre o fato de ele não possuir um esquema.
Bancos de dados MongoDB são mais como backets em
que você pode jogar qualquer tipo de dado do que tabelas
em um banco de dados relacional. O comando db.test.find ()
também nos permite resgatar somente os resultados
específicos. Por exemplo:
db.test.find({number:2})
Este traz de volta o item (ou itens) que tem um número 2.
db.test.find({number: {$lt: 8}})
Já este retorna todos os itens com números menores que 8.
Até agora, olhamos as características básicas dos bancos
de dados: como colocar e tirar dados neles. Neste momento,
você pode estar pensando que não há nada realmente
grandioso no NoSQL. A chave para essa nova tecnologia é a
escalabilidade. Isto é, hospedar um único banco de dados
em muitas máquinas. Você pode fazer isso com muitos

Tá na hora de banir tabelas do seu banco de dados


Os
comandos
básicos para
adicionar e
ler arquivos
usando
GridFS são
colocar
e obter
mongofiles


“Está procurando um novo


emprego, NoSQL é uma ótima


maneira de reforçar o seu CV”


NoSQL


Software | Sys Admin


Grupo Unico PDF Passe@diante

Free download pdf