Você está na página 1de 6

ATIVIDADE PRÁTICA BANCO DE DADOS NÃO RELACIONAL:

Desenvolver um banco de dados não relacional envolve uma série de


processos que podem variar de acordo com o tipo específico de banco de
dados escolhido (chave-valor, orientado a documentos, orientado a colunas,
orientado a grafos). Aqui estão os processos básicos comuns a muitas
dessas tecnologias:

Entendimento dos Requisitos:


• Reunião com o cliente para entender completamente os requisitos e
necessidades do sistema.
• Identificação dos tipos de dados que precisam ser armazenados e
manipulados.
• Regras de Negócios e Alinhamento

Modelagem de Dados:
Abstração das entidades principais e suas relações.
Para bancos de dados orientados a documentos, isso envolve a criação de
documentos JSON ou similares. Em bancos de dados orientados a colunas,
é necessário definir as colunas e suas famílias. Em grafos, a modelagem
inclui nós e relacionamentos.

Identificação de Chaves de Identificação (PK):


Definição das chaves primárias (PK) que serão usadas para identificar
exclusivamente cada registro.
Para bancos de dados chave-valor, a chave única é crucial. Em orientados a
documentos e colunas, a chave principal ou um identificador único é
essencial.

Definição de Esquema:
Estabelecimento da estrutura básica do banco de dados, incluindo definição
de tipos de dados, índices e restrições.
Em alguns bancos de dados NoSQL, a flexibilidade de esquema pode
permitir mudanças dinâmicas, enquanto em outros, como orientados a
colunas, um esquema mais rígido é definido.

Implementação do Banco de Dados:


Criação efetiva do banco de dados com base no esquema definido.
Configuração de parâmetros específicos, como configurações de
consistência ou replicação, dependendo da tecnologia escolhida.
Desenvolvimento de Aplicações:
Desenvolvimento de aplicativos ou sistemas que interagem com o banco de
dados.
Utilização de bibliotecas ou drivers específicos para se conectar ao banco de
dados não relacional escolhido.

Testes e Otimização:
Realização de testes extensivos para garantir que o sistema atenda aos
requisitos.
Otimização de consultas e operações frequentes para garantir desempenho
eficiente.

Documentação:
Criação de documentação abrangente sobre o esquema do banco de dados,
APIs e processos de manutenção.
Inclusão de informações sobre as decisões de modelagem e escolhas
específicas.

Implantação e Monitoramento:
Implantação do banco de dados e aplicativos em ambientes de produção.
Estabelecimento de processos de monitoramento contínuo para identificar e
resolver problemas de desempenho ou falhas.

Manutenção Contínua:
Realização de atualizações conforme necessário.
Adaptação do banco de dados às mudanças nos requisitos ou à evolução do
sistema.

Cada etapa desses processos requer atenção cuidadosa e colaboração


contínua entre os desenvolvedores, os responsáveis pelo banco de dados e
os clientes para garantir que o banco de dados atenda efetivamente às
necessidades do sistema.
1. Sistema Baseado em Chave-valor:

Cenário:
Uma loja online de produtos eletrônicos precisa otimizar a busca por produtos em seu
catálogo, que está crescendo rapidamente. O cliente deseja uma solução eficiente para
recuperar informações detalhadas sobre os produtos com base em suas chaves, como
ID ou SKU.

Personagens:
Cliente: Loja online de produtos eletrônicos.
Responsável pelo Banco de Dados: Maria, engenheira de dados.

Soluções Possíveis e Passos a Seguir:

Redis:
Criaremos um hash para cada produto, onde as chaves serão os IDs dos produtos e
os valores serão os detalhes do produto, como nome, marca, preço e descrição.

Nesse Banco Escolhido Como Seriam As Seguintes Instruções:

CRIAR UM BANCO: -

SELECIONAR DADO: GET produto:1

INSERIR DADOS: HMSET produto:1 nome "Laptop Dell XPS 13" marca "Dell"
preco "R$ 5,999.00" descricao "Laptop ultrafino e poderoso com processador Intel
Core i7."’
,
ATUALIZAR DADO: JSON.MSET[]

EXCLUIR DADO: DEL produto:1


2. Sistema Orientado a Documentos:

Cenário:
Uma empresa de mídia precisa gerenciar o conteúdo de seus blogs, incluindo texto,
imagens e metadados. O cliente busca uma solução flexível para armazenar e
recuperar esses documentos de maneira eficiente.

Personagens:
Cliente: Empresa de mídia.
Responsável pelo Banco de Dados: Ricardo, arquiteto de dados.

Soluções Possíveis e Passos a Seguir:

MongodB:
Criaremos um database com o nome db_blog com uma coleção chamada blogs e
nela contendo id, nome, img e descricao. Sendo id a sua PK

Nesse Banco Escolhido Como Seriam As Seguintes Instruções:

CRIAR UM BANCO: use blog;

SELECIONAR DADO: db.blogs.find({}, {Nome: ‘BeautySPA’})

INSERIR DADOS: db.blogs.insertOne({Nome:’BEAUTYSPA’, img:


[“https://imagem”], descricao:’Blog de beleza e spa’})

ATUALIZAR DADO: db.blogs.updateOne({Nome:’BEAUTYSPA’, img:


[“https://imagem”, “https://imagem2”], descricao:’Blog de beleza e dicas de spa’})

EXCLUIR DADO: db.alunos.deleteOne({_id:ObjectId("563237a41a4d68582c2509da")})


3. Sistema Orientado à Coluna:

Cenário:
Um centro de pesquisa médica precisa analisar grandes conjuntos de dados de
pacientes para identificar padrões e tendências. O cliente busca uma solução eficiente
para armazenar e consultar dados de maneira analítica.

Personagens:
Cliente: Centro de pesquisa médica.
Responsável pelo Banco de Dados: Carlos, cientista de dados.

Soluções Possíveis e Passos a Seguir:

Cassandra:
Iremos criar uma coluna com o nome pacientes, contendo: nome, idade e cpf. Sendo
o cpf a pk

Nesse Banco Escolhido Como Seriam As Seguintes Instruções:

CRIAR UM BANCO: CREATE KEYSPACE IF NOT EXISTS pacientes WITH replication =


{'class': 'SimpleStrategy', 'replication_factor': 1};

SELECIONAR DADO: SELECT * FROM pacientes;

INSERIR DADOS: INSERT INTO pacientes (nome, idade, cpf) VALUES ('Roberto', 45,
02568722582);

ATUALIZAR DADO: UPDATE pacientes SET nome = Carlos WHERE cpf = 02568722582);

EXCLUIR DADO: DELETE FROM pacientes WHERE cpf = 02568722582);


4. Sistema Baseado em Grafos:

Cenário:
Uma rede social quer melhorar a recomendação de amigos com base em interesses
em comum e conexões de amigos. O cliente busca uma solução para modelar a rede
de usuários de maneira eficiente.

Personagens:
Cliente: Rede social.
Responsável pelo Banco de Dados: Ana, desenvolvedora de sistemas.

Soluções Possíveis e Passos a Seguir:

Neo4j:
Os elementos de dados que o Neo4j armazena são nós, arestas que os conectam e atributos de nós
e arestas.
Criaremos os usuarios e as arestas irá representar a conexão entre eles

Nesse Banco Escolhido Como Seriam As Seguintes Instruções:

CRIAR UM BANCO:

SELECIONAR DADO: MATCH (n) RETURN n

INSERIR DADOS: CREATE (:Usuario {nome: 'Usuario1'}), (:Usuario {nome: 'Usuario2'}),


(:Usuario {nome: 'Usuario3'})

ATUALIZAR DADO: MATCH (u:Usuario {nome: 'Usuario1'}) SET u.idade = 19

EXCLUIR DADO: MATCH (:Usuario {nome: 'Usuario1'})-[r:AMIGO]->(:Usuario {nome:


'Usuario2'}) DELETE r

Você também pode gostar