image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Dayane Silva
Dayane Silva27/09/2023 14:10
Compartilhe

BANCO DE DADOS RELACIONAL E NÃO RELACIONAL - QUAL A MELHOR OPÇÃO?

  • #Banco de dados relacional

O QUE É BANCO DE DADOS?

No passado, existia um mundo repleto de informações. Este mundo consistia em inúmeros tesouros de informações que estavam dispersos por vários meios, incluindo papéis, cadernos e planilhas. A busca por um determinado "tesouro" era muitas vezes uma aventura sem caminho, devido a natureza dispersa da informação, sem uma forma "fácil" de se encontrar ou organizar.

Então, um indivíduo chamado Chales Bachman, em 1964 realizou os primeiros trabalhos representando um diagrama constituído por caixas e linhas, onde imaginaram um espaço designado, uma espécie de repositório, onde todas as informações importantes deveriam ser arquivadas de maneira eficiente e facilmente acessível.

image

Imagem 1. Servidor de Banco de Dados.

Este artigo irá tratar sobre:

• Banco de Dados Relacional;

• Banco de Dados não Relacionado;

• NoSQL vs SQL;

• Conclusão;

• Referências.

BANCO DE DADOS RELACIONAL

O banco de dados relacional pode ser comparado com uma biblioteca, onde cada livro ou registro, contém dados específicos. Esses livros são organizados em prateleiras ou mesas, cada um com o nome, como por exemplo, "produtos" ou "clientes". Cada registro contém páginas ou campos onde as informações são registradas, incluindo detalhes pessoais como: nomes, endereços e números de telefone.

Uma das características mais importantes desta biblioteca é a capacidade de solicitar informações e receber respostas instantaneas. Por exemplo, se você precisasse de uma lista completa de todos os usuários de uma biblioteca que residem em uma cidade específica, bastaria consultar o bibliotecário ou o sistema de banco de dados e, em segundos, a pesquisa produziria os resultados desejados.

Além disso, o banco de dados continha "guardiões" conhecidos como "chaves", responsáveis por manter a integridade das informações. Essas chaves foram atribuídas a cada livro, servindo como um identificador único e semelhante ao número de registro da biblioteca. Então, essa prática garantiu que a cada dado permanecesse devidamente organizado e separado de qualquer outro, evitando qualquer falha de comunicação.

Com o passar dos anos, o banco de dados relacional acabou se tornando uma ferramenta extremamente útil para várias áreas, desde empresas, farmácias e até mesmo para dar entrada em pacientes em hospitais.

image

Imagem 2. Exemplo de Modelo Lógico, representando Relacionamentos entre algumas Entidades.

EXEMPLOS DE BANCO DE DADOS RELACIONAIS

MySQL: O SQL é reconhecido por sua habilidade em organizar dados em tabelas. Imagine uma biblioteca com várias estantes, onde cada estante representa uma mesa. Os livros nessas estantes contêm registros específicos. O SQL garante que todos os registros sejam relacionados com clareza. As empresas utilizam a linguagem de programação SQL para armazenar os dados estruturados, incluindo informações de clientes, detalhes de produtos e transações financeiras, por exemplo.

Abaixo será apresentado um exemplo de código SQL para ser criado um esquema de banco de dados relacional simples para uma farmácia.

-- CRIAÇÃO DA TABELA CLIENTES
CREATE TABLE Clientes(
ID_Cliente INT PRIMARY KEY AUTO_INCREMENT,
Nome VARCHAR(150) NOT NULL,
Endereco TEXT,
Telefone VARCHAR(20)
);

-- CRIAÇÃO DA TABELA MEDICAMENTOS
CREATE TABLE Medicamentos(
ID_Medicamentos INT PRIMARY KEY AUTO_INCREMENT,
Nome VARCHAR(150) NOT NULL,
Estoque INT, 
Preco DECIMAL (10, 2)
);

-- CRIAÇÃO DA TABELA DE VENDAS
CREATE TABLE Vendas(
ID_Venda INT PRIMARY KEY AUTO_INCREMENT,
ID_Cliente INT,
ID_Medicamentos INT,
DataVenda DATE,
FOREIGN KEY (ID_Cliente) REFERENCES Clientes(ID_Cliente),
FOREIGN KEY (ID_Medicamentos) REFERENCES Medicamentos(ID_Medicamentos)
);

-- EXEMPLO DE INSERÇÃO DE DADOS NA TABELA CLIENTES
INSERT INTO Clientes (Nome, Endereco, Telefone) VALUES
('Shieda Kayn', 'Rua Paraguai, 999', '(61) 9 7649-5573'),
('Shauna Vayne', 'Rua Uruguai, 355', '(99) 9 5538-1929');

-- EXEMPLO DE INSERÇÃO DE DADOS NA TABELA MEDICAMENTOS
INSERT INTO Medicamentos (Nome, Estoque, Preco) VALUES
('AAS Infantil', '30', '18.99'),
('Neosaldina', '90', '31.90'),
('Flanax', '55', '28.39');

-- EXEMPLO DE INSERÇÃO DE DADOS NA TABELA VENDAS
INSERT INTO Vendas (ID_Cliente, ID_Medicamentos, Quantidade, DataVenda) VALUES
(1, 2, 3, '2023-09-15'),
(3, 2, 1, '2023-09-26'),
(2, 3, 1, '2023-09-04');

Amazon Aurora: É uma opção comercial de RDBMS para nuvem que possui total compatibilidade com MySQL e PostgreSQL. Seu alto desempenho é acompanhado por seu preço acessível, pois está disponível por uma fração do custo.

image

Imagem 3. Arquitetura Modular para o Amazon Aurora PostgreSQL.

Amazon RDS para Oracle: Na nuvem, há acesso a um banco de dados gerenciado que simplificou a configuração, a operação e o dimensionamento da implantação do Oracle. A beleza de tudo isso é que o usuário pode se concentrar no desenvolvimento e na criatividade de aplicativos, enquanto as tarefas administrativas, como dimensionamento de hardware e backups, são deixadas para o RDS.

image

Imagem 4. Fluxo de Trabalho do RDS Custom For Oracle. 

Amazon RDS for SQL Server: Em poucos minutos, o RDS, um sistema de gerenciamento de banco de dados da Microsoft, permite que o usuário implante diversas edições do SQL Server na nuvem, economizando tempo e recursos.

image

Imagem 5. Fluxo de Trabalho do RDS Custom for SQL Server. 

Amazon RDS para PostgreSQL: A escolha do PostgreSQL está se tornando uma tentativa habitual tanto para empresas de TI iniciantes quanto para empresas estabelecidas competirem. Determinar o reforço de projetos e aplicativos móveis com o PostgreSQL pode ser tranquilo com o Amazon RDS, pois é um banco de dados baseado em nuvem que permite um processo de instalação rápido, acomoda escalabilidade e é econômico. Ele assume tarefas difíceis, como gerenciar armazenamento e replicação, fazer backups para recuperação de desastres e se manter atualizar atualizado com o software PostgreSQL.

image

Imagem 6. Criar uma Instância de Banco de Dados PostgreSQL e Conectar-se a ela.

MariaDB: É um banco de dados relacional dos desenvolvedores originais do MySQL, é o favorito do público por sua arquitetura de código aberto. Para configurar, executar e expandir implantações de servidores MariaDB na nuvem, o Amazon RDS facilita muito o processo.

Abaixo será apresentado um exemplo simplificado de código SQL para criar uma estrutura de BD para um sistema de hospital utilizando MariaDB.

-- CRIAÇÃO DA TABELA PACIENTES
CREATE TABLE Pacientes(
ID_Paciente INT AUTO_INCREMENT PRIMARY KEY,
Nome VARCHAR(150),
DataNascimento DATE,
Sexo ENUM('Masculino', 'Feminino'),
Endereco VARCHAR(200),
Telefone VARCHAR(20)
);

-- CRIAÇÃO DA TQABELA DE MÉDICOS
CREATE TABLE Medicos(
ID_Medico INT AUTO_INCREMENTW PRIMARY KEY,
Nome VARCHAR(150),
Especialidade VARCHAR(30),
Telefone VARCHAR(20)
);

-- CRIAÇÃO DA TABELA DE CONSULTAS
CREATE TABLE Consultas(
ID_Consulta INT AUTO_INCREMENT PRIMARY KEY, 
ID_Paciente INT,
ID_Medico INT,
DataConsulta DATETIME,
Observacoes TEXT,
FOREIGN KEY (ID_Paciente) REFERENCES Pacientes(ID_Paciente)
FOREIGN KEY (ID_Medico) REFERENCES Medicos(ID_Medico)
);

-- CRIAÇÃO DA TABELA DE MEDICAMENTOS
CREATE TABLE Medicamentos(
ID_Medicamento INT AUTO_INCREMENT PRIMARY KEY, 
Nome VARCHAR(150),
Descricao TEXT
);

-- CRIAÇÃO DA TABELA DE PRESCRIÇÕES
CREATE TABLE Prescricoes(
ID_Prescricao INT AUTO_INCREMENT PRIMARY KEY,
ID_Consulta INT,
ID_Medicamento INT,
Dosagem CHAR(5),
FOREIGN KEY (ID_Consulta) REFERENCES Consultas(ID_Consulta)
FOREIGN KEY (ID_Medicamento) REFERENCES Medicamentos(ID_Medicamento)
);

BANCO DE DADOS NÃO RELACIONAL

Ele tem a capacidade de armazenar dados em formatos mais flexíveis, como gráficos, documentos ou colunas. Isso acabou fazendo com que o NoSQL seja eficaz em tratamento de dados não estruturados ou semiestruturados, como análise de redes sociais, análise de texto e dados de sensores, por exemplo.

O banco de dados não relacional não há regras "rígidas" sobre como os documentos devem ser organizados que nem o banco de dados relacional. Eles são como histórias, onde o usuário pode "criar personagens novos e enredos a todo momento". Isso torna um diferencial para guardar informações de maneiras dinâmicas e adaptáveis.

image

Imagem 7. Banco de Dados Não Relacional.

EXEMPLO DE BANCO DE DADOS NÃO RELACIONAIS

Google Cloud: Firestore, Bigtable e Datastore são alguns dos serviços de banco de dados não relacionais disponíveis para uso por meio desta plataforma. O processamento, arnazenamento e a análise de dados são possíveis aproveitando o poder da nuvem e é como estar na vanguarda da inovação da tecnologia.

Abaixo será dado um exemplo de código com o Google Cloud para uma análise de redes sociais, logo, será usado o Google Cloud Firestore, que é oferecido pelo Google Cloud Plataform. O Firestore é escalável e adequado para aplicativos de análise de redes sociais em tempo real. Foi realizada a configuração da conta do GCP e instalada a biblioteca "google-cloud-firestore" antes da execução do código.

from google.cloud import firestore

# INICIALIZAR O CLIENTE FIRESTORE
db = firestore.Client()

# CRIAR UMA COLEÇÃO NO FIRESTORE PARA ARMAZENAR INFORMAÇÕES DE USUÁRIOS
collection_name = "usuarios"

# ADICIONAR DADOS DE EXEMPLO NA COLEÇÃO
usuario1 = {
"nome": "Kegan",
"email": "kegan.rodhe@outlook.com.br",
"cidade": "São Paulo"
}

usuario2 = {
"nome": "Elise",
"email": "kythera.elise@gmail.com",
"cidade": "Santa Catarina"
}

# ADICIONAR OS USUÁRIOS À COLEÇÃO
doc_ref1 = db.collection(collection_name).add(usuario1)
doc_ref2 = db.collection(collection_name).add(usuario2)

print(f"Usuário 1 adicionado com ID: {doc_ref1.id}")
print(f"Usuário 2 adicionado com ID: {doc_ref2.id}")

Cassandra: Como um mapa de constelação, Cassandra conduz o usuário por um universo de grandes informações. Este banco de dados NoSQL foi criado para lidar com grandes quantidades de dados espalhados por vários locais, tornando-o escolha certa para aplicações que exigem alto desempenho e tolerância a falhas.

Abaixo será dado um exemplo de código com Cassandra para criar uma tabela.

-- CONECTANDO AO CASSANDRA
CONSISTENCY LOCAL_ONE;

-- CRIANDO UM KEYSPACE (ESPAÇO DE CHAVES) 
CREATE KEYSPACE IF NOT EXISTS meukeyspace
WITH replication = {
'class': 'SimpleStrategy', 
'replication_factor': 1
};

-- USANDO O KEYSPACE CRIADO 
USE meukeyspace;

-- CRIANDO UMA TABELA 
CREATE TABLE IF NOT EXISTS usuarios(
id UUID PRIMARY KEY,
nome TEXT,
email TEXT
);

-- INSERINDO DADOS NA TABELA
INSERT INTO usuarios (id, nome, email)
VALUES(
uuid(),
'Sarah Fortune', 
'fortune.sarah@gmail.com'
);

-- CONSULTANDO OS DADOS DA TABELA
SELECT * FROM usuarios;

image

Imagem 8. Aplicativo de N Camadas com Apache Cassandra.

MongoDB: É um banco de dados ótimo para situações em que a estrutura dos dados pode ser mudada. Ele é um "diário virtual" sem as restrições de campos pré-determinados, então, o usuário pode anotar o que quiser.

image

Imagem 9. Operações com o MongoDB. 

Redis: É como uma biblioteca encantada sempre à mão, é um banco de dados na memória amplamente utilizado para processar informações em tempo real e armazenar dados em cache.

image

Imagem 10. Relação entre Cache Distribuído, Custo Operacional e Disponibilidade de Recurso.

SQL vs NoSQL

image

Imagem 11. Exemplos de Cenários de Utilização dos Bancos de Dados Relacionais (SQL) e Não Relacionais (NoSQL). 

PONTOS FORTES DO SQL

Integridade de dados: Os aplicativos que exigem alta precisão de dados consideram o SQL ideal porque mantém a integridade dos dados por meio de regras de consistência, restrições e chaves estrangeiras.

Consultas complexas: Utilizando a linguagem SQL, tornam-se possíveis operações de junção, agregação e filtragem de dados, produzindo consultas complexas. O poder e flexibilidade do SQL o tornam ideal para o trabalho.

Transações ACID: Atomicidade, consistência, isolamento e durabilidade são os 4 pilares do ACID em SQL e as transações são apoiadas por eles para garantir dados confiáveis em ambientes de missão crítica.

PONTOS FRACOS DO SQL

Escalabilidade horizontal: Para lidar com cargas de trabalho massivas, o SQL às vezes pode encontrar dificuldades com o dimensionamento horizontal, causando dificuldades de desempenho.

Esquema rígido: Estrutura de dados em fluxo frequente são difíceis de gerenciar usando tabelas SQL tradicionais, pois seu esquema fixo se mostra inflexível.

PONTOS FORTES DO NoSQL

Escalabilidade horizontal: Lidar com grandes volumes de dados e cargas de trabalho altamente distribuídas é onde o NoSQL se destaca. A escalabilidade dos bancos de dados NoSQL é incomparável.

Esquema flexível: Aplicativos em constante evolução adoram sua flexibilidade. Nenhum esquema estrito é necessário, campos podem ser adicionados sempre que forem necessários.

Desempenho elevado: Para aplicativos de alto tráfego, o NoSQL é a opção ideal, pois foi projetado especificamente para funcionar em um ritmo altamente rápido, principalmente em operações de leitura em cache.

PONTOS FRACOS DO NoSQL

Consistência flexível: Aplicativos de alta consistência podem representar um desafio quando a flexibilidade do esquema causa problemas de consistência de dados.

Consultas limitadas: A análise detalhada pode ser prejudicada ao usar banco de dados NoSQL porque as consultas complexas nem sempre são suportadas, diferentemente do SQL.

Falta de transações ACID: O dimensionamento e a velocidade são valorizados ao invés de garantir transações ACID em determinados bancos de dados NoSQL.

CONCLUSÃO

A escolha de uma biblioteca no domínio dos dados depende de requisitos específicos de cada um. Para aqueles que procuram vincular dados sistemáticos e proporcionais, o Banco de Dados Relacional é a escolha correta, é perfeito para referenciar o conteúdo de um catálogo de biblioteca com curadoria categórica.

Escolher o Banco de Dados não Relacional é o caminho a seguir quando é necessário ser flexível e criativo com informações. É como se o usuário fosse preencher um diário pessoal, preencher páginas com histórias únicas.

REFERÊNCIAS

A HISTÓRIA DO BANCO DE DADOS. DISPONÍVEL EM: <https://www.devmedia.com.br/a-historia-dos-banco-de-dados/1678>.

PROJETO DE BANCO DE DADOS PARA E-COMMERCE. DISPONÍVEL EM: <https://www.devmedia.com.br/projeto-de-banco-de-dados-para-e-commerce/31543>.

O QUE É BANCO DE DADOS RELACIONAL? DISPONÍVEL EM: <https://aws.amazon.com/pt/relational-database/>.

O QUE É UM BANCO DE DADOS RELACIONAL? DISPONÍVEL EM: <https://azure.microsoft.com/pt-br/resources/cloud-computing-dictionary/what-is-a-relational-database/>. 

O QUE SÃO BANCO DE DADOS NOSQL? DISPONÍVEL EM: <https://aws.amazon.com/pt/nosql/>.

DADOS NÃO RELACIONAIS E NOSQL. DISPONÍVEL EM: <https://learn.microsoft.com/pt-br/azure/architecture/data-guide/big-data/non-relational-data>.

O QUE É NOSQL? DISPONÍVEL EM: <https://www.oracle.com/br/database/nosql/what-is-nosql/>. 

TIPOS DE BANCO DE DADOS NOSQL. DISPONÍVEL EM: <https://www.treinaweb.com.br/blog/tipos-de-banco-de-dados-nosql>. 

Compartilhe
Comentários (0)