Você está na página 1de 28

Imprimir

BANCO DE DADOS PÓS-


RELACIONAIS
123 minutos

Aula 1 - Introdução a aplicações não convencionais


Aula 2 - Operações Data Manipulation Language (DML) – linguagem
de manipulação de dados
Aula 3 - Comparativo entre dados convencionais e não
convencionais
Aula 4 - Introdução a bancos de dados orientados a objetos e
SGBDOO
Referências
 Aula 1

INTRODUÇÃO A APLICAÇÕES NÃO CONVENCIONAIS


As principais características dos bancos de dados não convencionais, como o fato de esse tipo de banco
de dados armazenar e recuperar dados em diversos formatos
25 minutos

INTRODUÇÃO

Iniciaremos o estudo de banco de dados não relacionais abordando seus principais conceitos. Porém, antes
de falarmos propriamente a respeito do tema, será preciso entender os conceitos básicos de bancos de dados
relacionais. Esse tipo de banco de dados armazena as informações em tabelas contendo partes e tipos de
dados específicos. Os bancos de dados não relacionais, por sua vez, permitem que os desenvolvedores
armazenem grandes quantidades de dados não estruturados, dando-lhes muita flexibilidade.

Veremos, em seguida, as principais características dos bancos de dados não convencionais, como o fato de
esse tipo de banco de dados armazenar e recuperar dados em diversos formatos. Entenderemos, ainda, que
existem basicamente quatro categorias em que os bancos de dados não convencionais (ou não relacionais) se
enquadram: documentos, valor-chave, coluna e gráfico.

Por último, veremos algumas aplicações em que o uso do NoSQL auxiliou na melhoria dos processos, como
detecção de fraude, gerenciamento de estoque e desenvolvimento de aplicativos.

BANCOS DE DADOS NÃO RELACIONAIS – CONCEITO

Os bancos de dados podem ser categorizados como relacionais ou não relacionais, sendo que a principal
diferença entre eles é como armazenam suas informações. Para explicar os bancos de dados não relacionais
com mais detalhes, precisamos também entender o que é um banco de dados relacional.

Banco de dados relacional

Um banco de dados relacional (ou também tradicional), também conhecido como Relational Database
Management System (RDBMS) ou banco de dados SQL, armazena informações em tabelas, compostas por
colunas e linhas, contendo partes e tipos de dados específicos. Quando novos dados são adicionados, novos
registros são inseridos em tabelas existentes ou novas tabelas são adicionadas. As relações podem ser feitas
entre duas ou mais tabelas (NASKAR, 2021).

Esse tipo de banco de dados é usado, principalmente, para gerenciar dados estruturados, nos quais há um
relacionamento entre várias entidades e variáveis ​dos dados. Além disso, os bancos de dados relacionais
funcionam melhor quando os dados que contêm não mudam com muita frequência e quando a precisão é
crucial, como em aplicações financeiras (MONGODB, 2021a).

Banco de dados não relacional


Os bancos de dados não relacionais (ou não convencionais), também conhecidos como bancos de dados
NoSQL (Not Only SQL), surgiram no fim dos anos 2000, quando o custo do armazenamento diminuiu
drasticamente. Foi-se o tempo em que era necessário criar um modelo de dados complexo e difícil de
gerenciar para evitar a duplicação de dados. Os desenvolvedores, ao invés do armazenamento, é que estavam
se tornando o principal custo do desenvolvimento de software, portanto, surgiram os bancos de dados
NoSQL, otimizados para a produtividade do desenvolvedor.

À medida que os custos de armazenamento diminuíram rapidamente, a quantidade de dados que os


aplicativos precisavam armazenar e consultar aumentou. Esses dados vieram em todas as formas e tamanhos
– estruturados, semiestruturados e polimórficos –, e definir o esquema com antecedência tornou-se quase
impossível.

Os bancos de dados NoSQL permitem que os desenvolvedores armazenem grandes quantidades de dados
não estruturados, dando-lhes muita flexibilidade (MONGODB, 2021b). Eles se diferenciam porque fornecem
um mecanismo para armazenar e recuperar dados não estruturados ou dados que não são representados em
relações tabulares da mesma forma que os bancos de dados SQL.

Como os bancos de dados NoSQL foram projetados para resolver problemas de escalabilidade dos bancos de
dados SQL, eles são livres de esquemas e baseados em sistemas distribuídos, tornando-os mais fáceis de
dimensionar e fragmentar.

Essa capacidade de digerir e organizar vários tipos de informações lado a lado torna os bancos de dados não
relacionais muito mais flexíveis do que os bancos de dados relacionais. Por esse motivo, os bancos de dados
não relacionais têm ganhado grande popularidade, sendo a escolha preferida para big data e aplicativos em
tempo real. Como é livre de esquema, a estrutura de dados é cuidadosamente projetada antes que um banco
de dados NoSQL seja criado, isso o torna altamente escalável e flexível, podendo lidar com uma variedade de
modelos de dados (NASKAR, 2021).

CLASSIFICAÇÕES E CARACTERÍSTICAS DE BANCOS DE DADOS NÃO CONVENCIONAIS

Os bancos de dados não relacionais estão se tornando mais populares à medida que mais empresas
começam a aproveitar o big data – conjuntos de dados maiores e mais complexos, especialmente de novas
fontes de dados (ORACLE, 2022) – para análise e relatórios. Como os dados críticos nem sempre encaixam-se
bem em um esquema predefinido, os bancos de dados NoSQL permitem maior flexibilidade.

Cada banco de dados NoSQL tem seus próprios recursos exclusivos, mas as principais características do
NoSQL são (MONGODB, 2021a):

• É mais do que linhas em tabelas: os sistemas NoSQL armazenam e recuperam dados de vários formatos,
como valores-chave, gráficos, família de colunas, documentos e até mesmo linhas em tabelas.
• É livre de junções: os sistemas NoSQL permitem que você extraia seus dados usando interfaces simples, sem
junções (no SQL é o comando JOIN). Quando você tem dados extremamente grandes, provavelmente deseja
 evitar junções. Isso ocorre porque a sobrecarga de uma pesquisa de chave individual é relativamente grande
(o serviço precisa descobrir qual(is) nó(s) consultar, consultá-los em paralelo e aguardar respostas). Dessa
maneira, as junções são muito ruins, pois seria preciso fazer muitas pesquisas de chave estrangeira
(transforma o valor de um atributo dependente do valor existente em outro atributo), o que acabaria,
frequentemente, indo para muitos nós diferentes.

• Funciona em muitos processadores: os sistemas NoSQL permitem que você armazene seu banco de dados
em vários processadores e mantenha o desempenho de alta velocidade.

• Utiliza computadores comuns que não são compartilhados: a maioria dos sistemas NoSQL (mas não todos)
utiliza processadores comuns, de baixo custo, que possuem RAM e disco separados.

Existem, basicamente, quatro tipos diferentes de categorias em que os bancos de dados não relacionais se
enquadram, são elas:

• Documentos/armazenamento de documentos: esse banco de dados foi projetado para armazenar,


recuperar e gerenciar informações orientadas a documentos. Eles geralmente combinam cada chave com
uma estrutura de dados complexa (chamada de documento). Esses bancos de dados armazenam dados como
documentos JSON, YAML ou XML. Também fornecem uma API e uma linguagem de consulta para recuperar
documentos com base em seu conteúdo. Exemplo: MongoDB, CouchDB,

• Valor-chave: é um banco de dados que usa chaves diferentes, de modo que cada chave está associada a
apenas um valor em uma coleção; este é um dos tipos mais simples entre os bancos de dados NoSQL. Esses
bancos de dados armazenam dados como dicionários ou hashes, em que a chave é uma string e o valor pode
ser uma string, array, set, etc. Exemplo: Redis, DynamoDB,

• Coluna: esse banco de dados usa tabelas, linhas e colunas, mas, diferentemente de um banco de dados
relacional, os nomes e o formato das colunas podem variar de linha para linha na mesma tabela. São
semelhantes aos bancos de dados relacionais, exceto que são tabelas de dados de coluna larga que são
armazenadas e organizadas como colunas em vez de linhas. Eles podem consultar grandes volumes de dados
mais rapidamente. Exemplo: Cassandra, Google BigTable,

• Gráfico: esses bancos de dados armazenam dados na forma de nós e arestas, que criam um gráfico. As
entidades são representadas por nós, enquanto os relacionamentos entre as entidades são representados
por arestas. Exemplo: AllegroGraph, Titan, etc.

APLICAÇÕES E PRINCIPAIS BANCOS DE DADOS NÃO RELACIONAIS UTILIZADOS NO MERCADO

Fazer a escolha do banco de dados NoSQL nem sempre é uma decisão simples, vai depender do ambiente de
dados específico, juntamente com suas necessidades atuais e metas futuras. Muitas equipes de
desenvolvimento realmente usam ambos em sua arquitetura de dados em nuvem, às vezes até no mesmo
aplicativo, implantando cada um para cobrir as áreas com as quais lidam melhor. Vejamos algumas
aplicações:
• Detecção de fraude e autenticação de identidade: proteger dados pessoais confidenciais e garantir que
apenas clientes reais tenham acesso aos aplicativos é uma das principais prioridades. Para a detecção eficaz
 de fraudes e autenticação de identidade, os tipos de dados analisados ​vão muito além das informações
transacionais, podendo incluir desde dados demográficos, informações de suporte técnico do sistema,
interações no site, dados históricos de compras e outros. Esse ambiente requer a flexibilidade de um banco
de dados NoSQL, em que qualquer tipo de elemento de dados pode ser adicionado rapidamente à mistura
(EDWARDS, 2021).

• Gerenciamento de estoque e catálogo: os bancos de dados NoSQL são conhecidos por sua alta
disponibilidade e escalabilidade horizontal previsível e econômica. Isso os torna uma ótima combinação para
empresas de comércio eletrônico com catálogos on-line massivos e crescentes, além de muito inventário para
gerenciar (EDWARDS, 2021).

• Bancos de dados não relacionais e desenvolvimento de aplicativos: os aplicativos devem ser capazes de
consultar dados com eficiência e fornecer resultados quase que instantaneamente. Bancos de dados não
relacionais são uma escolha natural para esse tipo de ambiente. Eles oferecem segurança e agilidade,
permitindo o desenvolvimento rápido de aplicativos em um ambiente veloz. Eles também podem gerar custos
mais baixos de gerenciamento de dados, ao mesmo tempo em que oferecem desempenho e velocidade
superior (MONGODB, 2021a).

Os bancos de dados não relacionais mais populares que temos atualmente são:

• MongoDB: é um armazenamento de documentos e, atualmente, o mecanismo de banco de dados NoSQL


mais popular. Nele, permite-se o auto-sharding, que é um tipo de particionamento de banco de dados que
separa bancos de dados muito grandes em partes menores, mais rápidas e mais fáceis de gerenciar,
chamadas de fragmentos de dados (MONGODB, 2021a).

- Prós: fácil de configurar e oferece ótimo suporte profissional.

- Contras: não permite junções, que são usadas para combinar dados ou linhas de duas ou mais tabelas com
base em um campo comum entre elas.

• Redis: Remote Dictionary Server – é um armazenamento de chave-valor de código aberto. Ele suporta
diferentes tipos de estruturas de dados abstratas, como strings, listas, mapas, conjuntos, conjuntos
ordenados e muito mais (REDIS, 2021).

- Prós: ele suporta uma grande variedade de tipos de dados e possui fácil instalação.

- Contras: como ele não suporta junções, solicita conhecimento de Lua, uma linguagem de programação de
alto nível.

• Cassandra: utiliza um banco de dados descentralizado, em que os dados são armazenados em vários
datacenters. Ele é otimizado para cluster e fornece baixa latência em suas atualizações.

- Prós: é ótimo para soluções em nuvem devido ao formato de arquitetura, o que permite alta elasticidade,
adequando a grande complexidade da infraestrutura conforme a demanda de leitura ou escrita necessária.
- Contras: possui diversas limitações quando não são realizadas consultas utilizando a chave-primária, que
identifica o atributo escolhido pelo desenvolvedor do banco a fim de reconhecer unicamente os registros
 armazenados em uma determinada tabela.

VÍDEO RESUMO

Para resumir a diferença entre os bancos de dados relacionais e não relacionais e para fixarmos melhor suas
características, vamos ver as principais dúvidas que devem ser respondidas antes de escolhermos qual banco
de dados é o melhor a ser adotado. Veremos, por fim, quais são os principais benefícios de um banco de
dados não relacional. Viu como temos muitos assuntos interessantes que ainda precisam ser abordados?
Então, não deixe de conferir esse vídeo.

Vídeo resumo

Para visualizar o objeto, acesse seu material digital.

 Saiba mais
Para entender melhor os bancos de dados não relacionais, indicamos algumas leituras que abordam com
mais detalhes esse assunto. Vale a pena conferir:

• Tópicos de NoSQL.

• Comparativo entre os modelos de banco de dados relacional e não relacional.

• O que é Banco de Dados Relacional e NoSQL.

Aula 2

OPERAÇÕES DATA MANIPULATION LANGUAGE (DML) –


LINGUAGEM DE MANIPULAÇÃO DE DADOS
Identificar e reconhecer, diante do regramento da Lei nº 13.019/14, as características do ajuste conhecido
como termo de fomento e a sua função dentro da pactuação entre o poder público e a iniciativa privada.
30 minutos

INTRODUÇÃO
Estudaremos, agora, uma breve introdução a respeito da Linguagem de Manipulação de Dados (Data
Manipulation Language – DML), que nada mais é do que uma linguagem de computador estruturada usada

em bancos de dados para a sua correta manipulação. Algumas das manipulações mais básicas utilizadas pela
DML vão desde adicionar dados aos bancos de dados, alterar e excluir registros, até mover dados de uma
posição a outra.

Em seguida, vamos entender de modo mais detalhado os principais comandos da DML, que incluem SELECT,
INSERT, UPDATE e DELETE.

Finalmente, veremos um pouco a respeito dos gatilhos DML (ou trigger), que são definidos como uma
estrutura do banco de dados que funciona, conforme sugere o próprio nome, como uma função que dispara
por meio de uma determinada ação. Os gatilhos desempenham um papel fundamental no cumprimento dos
requisitos de negócios, como alertar pessoas-alvo, iniciar um trabalho ou outras operações.

VISÃO GERAL DOS COMANDOS DML

A Linguagem de Manipulação de Dados (Data Manipulation Language - DML) é uma linguagem de


computador estruturada usada em bancos de dados para a sua manipulação. Algumas das manipulações
básicas usadas na linguagem de manipulação de dados incluem adicionar registros ao banco de dados, alterar
um registro, excluir um registro e mover dados de uma posição para outra (NEWTH, 2022).

Sem a DML, não seria possível realizar a manipulação dos dados no banco de dados, pois ela é a linguagem
padrão usada para interagir com as informações armazenadas no banco de dados. Os seus comandos são
simples e podem envolver uma ou duas palavras, como o SELECT ou o UPDATE, para iniciarmos o comando.

A DML pode ser dividida em procedimental (ou procedural) e não procedimental (ou não procedural). No
primeiro tipo, o usuário especifica qual dado é necessário e como alcançá-lo, no segundo, informa apenas o
que é necessário.

As DMLs procedimentais (ou de baixo nível) requerem um usuário para especificar qual dado será necessário
e como obtê-lo. Esta linguagem de manipulação é frequentemente usada em configurações de negócios. Tal
método tende a receber mais códigos e é um pouco mais difícil para os usuários, mas garante a fidelidade da
codificação e dos registros do banco de dados (NEWTH, 2022). Esse tipo de DML normalmente recupera
registros individuais do banco de dados e processa cada um separadamente. Nesta linguagem, as instruções
de looping, branching, etc. são usadas para recuperar e processar cada registro de um conjunto de registros.
Os programadores usam o DML de baixo nível.

As DMLs não procedimentais (ou de alto nível) requerem um usuário para especificar qual dado é
necessário, sem especificar, no entanto, como obtê-lo. Os comandos em si levam muito menos códigos, por
isso será mais fácil para o usuário. Ao mesmo tempo, o banco de dados pode gerar codificação inesperada ou
ineficiente como resultado (NEWTH, 2022).

 Assimile
As principais diferenças entre linguagem procedimental e não procedimental são:

• A semântica da linguagem procedimental é bastante difícil em comparação com a linguagem não



procedimental.

• As funções em uma linguagem de programação não procedimental podem retornar qualquer tipo de
dados e valor. Por outro lado, as funções da linguagem procedimental não são capazes de retornar todos
os tipos de dados e valores, somente tipos de dados e valores restritos.

• Para uma aplicação crítica de tempo, a linguagem não procedimental funciona de forma eficaz,
enquanto no caso de aplicação menos crítica de tempo, a linguagem procedimental produz melhores
resultados e é mais eficiente.

Por meio de uma lista de comandos, um usuário pode iniciar uma série de alterações no banco de dados para
aumentar sua utilidade. Seus comandos DML são usados para adicionar, atualizar, excluir e consultar dados
de uma tabela. Vejamos, a seguir, um resumo com os principais comandos utilizados, além de uma breve
explicação sobre cada um deles.

Quadro 1 | Resumo dos comandos DML

COMANDO DESCRIÇÃO

Usado para consultar ou buscar campos ou colunas selecionados de uma


SELECT (selecionar)
tabela de banco de dados.

INSERT INTO (inserir dentro Usado para inserir novos registros de dados ou linhas na tabela do banco
de) de dados.

Usado para definir o valor de um campo ou coluna para um registro


UPDATE (atualizar)
específico, um novo valor.

DELETE (excluir) Usado para remover uma ou mais linhas da tabela do banco de dados.

Usado para selecionar o banco de dados no qual você deseja realizar


USE (usar)
operações.

Fonte: adaptado de Pedamkar (2020, [s. p.]) e Kappagantula (2020, [s. p.]).

PRÁTICAS RECOMENDADAS

Em DML, não lidamos com os contêineres de dados, mas com os próprios dados. Quando precisamos
atualizar os dados em si, ou realizar cálculos/operações nesses dados, usamos a DML. Os comandos que
fazem parte desta linguagem (ou sublinguagem) incluem: SELECT, INSERT, UPDATE, DELETE, dentre
outros. Vamos entender estes principais comandos DML com mais detalhes.

SELECIONE (SELECT)

O comando ou instrução SELECT é usado para buscar registros de dados da tabela do banco de dados e
apresentá-los na forma de um conjunto de resultados. A sintaxe básica para escrever uma consulta SELECT
em SQL segue conforme o código apresentado a seguir:

Código 1 | Sintaxe básica para escrever uma consulta SELECT em SQL

1 SELECT column_name1, column_name2, …

2 FROM table_name
3 WHERE condition_ expression;

Fonte: Pedamkar (2020, [s. p.]).

Os parâmetros usados na sintaxe apresentada são os seguintes:

• column_name1, column_name2,…: especifique os column_names que devem ser buscados ou


selecionados para o conjunto de resultados final.

• table_name: especifique o nome da tabela de banco de dados da qual esses resultados devem ser
buscados.

• condition_expression: especifique a expressão de condição para filtrar registros para o conjunto de


resultados finais.

No exemplo a seguir, buscaremos campos como customer_id, sale_date, order_id e store_state da


tabela de clientes. Será utilizada uma aplicação com o comando SELECT, e a sua consulta retornará as saídas
conforme apresentamos a seguir.

Figura 1 | Exemplo ilustrativo para o uso do comando SELECT

1 SELECT customer_id,
2 sale_date,

3 order_id,
4 store_state

5 FROM customers;

Fonte: Pedamkar (2020, [s. p.]).

INSERIR (INSERT)

O comando INSERT é utilizado ​para inserir registros de dados ou linhas em uma tabela de banco de dados.
Em uma instrução INSERT, especificamos os nomes da coluna para os quais a entrada deve ser feita junto
com o valor de dados que deve ser inserido.

A sintaxe básica para escrever instruções INSERT segue conforme o código a seguir:

Código 2 | Sintaxe básica para escrever uma consulta INSERT em SQL

1 INSERT INTO table_name (column_name_1, column_name_2, column_name_3, ...)


2 VALUES (value1, value2, value3, ...)

Fonte: Pedamkar (2020, [s. p.]).

Para demonstrar uma aplicação, digamos que queremos inserir uma nova linha na tabela Customers
(clientes), usando o comando INSERT. A consulta aceita dois conjuntos de argumentos, ou seja, nomes de
campos ou nomes de colunas e seus valores correspondentes, vejamos o código a seguir:

Código 3 | Exemplo da aplicação do comando INSERT

1 INSERT INTO public.customers(

2 customer_id, sale_date, sale_amount, salesperson, store_state, order_id)


3 VALUES (1005, 12019-12-121, 4200, ‘R K Rakesh’, ‘MH’, ‘1007’);

Fonte: Pedamkar (2020, [s. p.]).

A consulta retorna a seguinte saída:


Figura 2 | Exemplo ilustrativo para saída da aplicação do comando INSERT

1 INSERT INTO public.customers(

2 customer_id, sale_date, sale_amount, salesperson, store_state, order_id)


3 VALUES (1005,'2019-12-12',4200,'R K Rakesh','MH','1007');

Fonte: Pedamkar (2020, [s. p.]).

ATUALIZAÇÃO (UPDATE)

O comando ou instrução UPDATE é usado para modificar o valor de uma coluna existente em uma tabela de
banco de dados. A sintaxe para escrever uma instrução UPDATE pode ser visualizada a seguir:

Código 4 | Sintaxe básica para escrever uma consulta UPDATE em SQL

1 UPDATE table_name
2 SET column_name_1 = value1, column_name_2 = value2,...

3 WHERE condition;

Fonte: Pedamkar (2020, [s. p.]).

Tendo aprendido a sintaxe, vamos agora verificar um exemplo baseado na instrução UPDATE, utilizando este
código:

Código 5 | Exemplo da aplicação do comando UPDATE

1 UPDATE customers

2 SET store_state = 'DL'


3 WHERE store_state = 'NY';

Fonte: Pedamkar (2020, [s. p.]).

Tendo aprendido a sintaxe, vamos agora verificar um exemplo baseado na instrução UPDATE, utilizando este
código:
Figura 3 | Exemplo ilustrativo para saída da aplicação do comando UPDATE

1 UPDATE customers

2 SET store_state = ‘DL’
3 WHERE store_state = ‘NY’;

Fonte: Pedamkar (2020, [s. p.]).

Neste exemplo, modificamos o valor de store_state para um registro em que store_state era 'DL', e o
configuramos para um novo valor: 'NY’.

EXCLUIR (DELETE)

A instrução DELETE é usada para remover uma ou mais linhas da tabela do banco de dados. Ela não exclui os
registros de dados permanentemente, assim, sempre podemos realizar uma operação de reversão para
desfazer um comando DELETE, e com ele podemos usar a cláusula WHERE para filtrar linhas específicas. A
sintaxe para escrever uma instrução DELETE está descrita a seguir:

Código 6 | Sintaxe básica para escrever uma consulta DELETE em SQL

DELETE FROM table_name WHERE condition;

Fonte: Pedamkar (2020, [s. p.]).

Tendo aprendido a sintaxe, estamos prontos para tentar um exemplo baseado no comando DELETE em SQL,
como apresentado agora:

Código 7 | Exemplo da aplicação do comando DELETE

1 DELETE FROM customers

2 WHERE store_state = 'MH'


3 AND customer_id = '1001';

Fonte: Pedamkar (2020, [s. p.]).

A consulta retorna a seguinte saída:


Figura 4 | Exemplo ilustrativo para saída da aplicação do comando DELETE

1 DELETE FROM customers



2 WHERE store_state = ‘MH’
3 AND customer_id = ‘1001’;

Fonte: Pedamkar (2020, [s. p.]).

Neste exemplo, removemos uma linha da tabela do cliente, em que store_state era 'MH' e customer_id era
'1001'.

CRIANDO GATILHO DML

Uma das características fundamentais dos bancos de dados relacionais é a consistência dos dados. Isso
significa que as informações armazenadas no banco de dados devem ser consistentes em todos os
momentos, para cada sessão e cada transação. A maneira como os mecanismos de banco de dados
relacionais, como o SQL Server, implementam esse processo é impondo restrições, como chaves primárias e
chaves estrangeiras, mas, às vezes, isso não é suficiente (FARINA, 2019).

No SQL, por exemplo, não há chance de impor integridade referencial entre duas tabelas usando chaves
estrangeiras se essas tabelas estiverem em bancos de dados ou servidores diferentes. Nesse caso, a única
maneira de implementá-lo é usando gatilhos.

O termo gatilho (ou trigger, em inglês) define uma estrutura do banco de dados que funciona, como sugere o
próprio nome, como uma função que dispara por meio de uma determinada ação. Os gatilhos desempenham
um papel fundamental no cumprimento dos requisitos de negócios, como alertar pessoas-alvo, iniciar um
trabalho ou outras operações. Como os gatilhos podem lidar com muitas dessas operações, devemos defini-
las com cuidado para evitar impactos no desempenho.

Os gatilhos DML no SQL Server são acionados quando ocorre um evento DML. Normalmente, tais ações que
disparam os triggers são modificações ocorridas nas tabelas por meio de operações de inserção, exclusão e
atualização de dados, ou seja, quando os dados são inseridos/atualizados/excluídos na tabela por um usuário
(BABU, 2019). Os gatilhos estão fortemente relacionados a uma tabela, assim, sempre que uma dessas ações
for efetuada sobre ela, é possível dispará-lo para executar alguma tarefa.

Os acionadores DML são aqueles disparados por comandos DML (INSERT, UPDATE ou DELETE) em tabelas ou
exibições. Podemos criar tais gatilhos nessas tabelas ou visualizações apenas onde os dados residem para que
eles aceitem comandos DML.
Com base no tempo de disparo, os gatilhos DML podem ser dos seguintes tipos:

• FOR ou AFTER Trigger Type: o gatilho é invocado após a conclusão bem-sucedida da instrução DML em uma

tabela ou exibição.

• INSTEAD OF Trigger Type: o gatilho será invocado antes (INSTEAD OF) do script DML executado na tabela ou
na exibição.

Você pode criar um gatilho DML no SQL Server usando a sintaxe descrita a seguir:

Código 8 | Modelo de sintaxe para criação de gatilho DML

1 CREATE TRIGGER trigger_name

2 ON { Table name or view name }


3 [ WITH <Options> ]

4 { FOR | AFTER | INSTEAD OF }


5 { [INSERT], [UPDATE] , [DELETE] }

Fonte: Pedamkar (2020, [s. p.]).

O Quadro 2 descreve cada um dos argumentos da sintaxe CREATE TRIGGER.

Quadro 2 | Descrição dos principais argumentos da sintaxe CREATE TRIGGER

ARGUMENTO DESCRIÇÃO

Neste argumento, você pode especificar opções adicionais para a criação


WITH <Options>
do trigger. Veremos essa questão mais adiante.

Indica quando o gatilho deve ser acionado com a ocorrência de um


FOR | AFTER | INSTEAD OF determinado evento, como um evento de inserção, atualização ou
exclusão.

O evento DML (ou lista de eventos) que fará com que o gatilho seja
[INSERT], [UPDATE] , [DELETE]
acionado.

Fonte: Farina (2019, [s. p.]).

Existem dois cenários perceptíveis em que os gatilhos são a melhor opção, que são a auditoria e a aplicação
de regras de negócios. Ao usar um gatilho, você pode acompanhar as alterações em uma determinada tabela
gravando um registro de log com informações sobre quem fez a alteração e o que foi alterado na tabela
(FARINA, 2019).
Talvez você pense que pode fazer o mesmo no aplicativo com um procedimento armazenado que trata da
modificação de dados, como inserções e atualizações. Você pode usar um procedimento armazenado, mas,
 nesse caso, não poderá registrar as alterações feitas diretamente no banco de dados de fora do aplicativo
(FARINA, 2019). O mesmo acontece quando você deseja impor regras de negócios com um procedimento
armazenado. Se alguém modificar os dados na tabela base de fora do aplicativo, você pode ter um problema,
porque a consistência dos dados não pode ser garantida. Para evitar essa intercorrência, verifique se o
procedimento armazenado é a única maneira de acessar a tabela (FARINA, 2019).

VÍDEO RESUMO

Você está trabalhando em um novo projeto que usará banco de dados e está pensando em usar gatilho do
SQL, mas não tem certeza das vantagens e desvantagens do seu uso. Neste vídeo, abordaremos os prós e os
contras de usar gatilhos do SQL Server e as principais práticas recomendadas de gatilho do SQL.

Vídeo resumo

Para visualizar o objeto, acesse seu material digital.

 Saiba mais
Para entender melhor de Linguagem de Manipulação de Dados (Data Manipulation Language - DML),
sugerimos alguns conteúdos para auxiliar em seus estudos:

• Subconjuntos SQL: DDL, DQL, DML, DCL, DTL e TCL.

• Comandos SQL: DDL, DML, DCL, TCL, DQL e Cláusulas.

• Gerenciar a segurança dos gatilhos.

• Gatilhos DML.

Aula 3

COMPARATIVO ENTRE DADOS CONVENCIONAIS E NÃO


CONVENCIONAIS
Vamos conhecer as principais características dos bancos de dados convencionais (relacionais) e dos
bancos de dados não convencionais (não relacionais).
27 minutos
INTRODUÇÃO


Vamos conhecer as principais características dos bancos de dados convencionais (relacionais) e dos bancos de
dados não convencionais (não relacionais). Veremos que o primeiro tipo armazena dados na forma de linhas e
colunas, de maneira estruturada; já o segundo permite maior flexibilidade e adaptabilidade.

Os bancos de dados relacionais utilizam a Linguagem de Consulta Estruturada (SQL), que basicamente
representa uma maneira de classificar os dados na forma de tabelas, colunas e linhas. Porém, veremos que se
estivermos lidando com uma quantidade enorme de dados, a complexidade do banco de dados relacional vai
crescer na mesma proporção. Nessa situação, provavelmente será preciso considerar a utilização de uma
base de dados não relacional (NoSQL).

Por fim, veremos os principais sistemas que podem ser utilizados para trabalhar tanto no banco de dados SQL
como no NoSQL.

BANCOS DE DADOS CONVENCIONAIS E NÃO CONVENCIONAIS: DEFINIÇÕES

Os dados organizacionais quase sempre obedecem a um conjunto muito específico de regras que
determinam: como as informações são categorizadas; como os novos dados inseridos no sistema se
relacionarão com os dados existentes; como as informações serão recuperadas quando forem necessárias em
algum lugar.

Qualquer ferramenta que lide com essas tarefas de armazenar informações e servi-las quando necessário é
chamada de banco de dados, logo eles são um aspecto essencial de qualquer ecossistema de informações.
No entanto, existem diferentes tipos de bancos de dados, como os relacionais e os não relacionais.

Bancos de dados relacionais (ou convencionais)

Este tipo de banco de dados armazena dados na forma de linhas e colunas que compõem as chamadas
“tabelas”, as quais se relacionam por meio de “chaves”, ou informações compartilhadas entre ambas as
relações. Dentro de um banco de dados relacional, uma linha em uma tabela é chamada de “registro”, já a
tabela é chamada de “relação”.

Tabelas ou “relações” dentro de um banco de dados relacional são conectadas umas às outras por meio de
“chaves”, que se definem como identificadores exclusivos dados a cada registro em uma tabela,
correspondendo às mesmas informações em outra tabela. Quando duas tabelas estão relacionadas dessa
maneira, a coluna de identificadores exclusivos na primeira tabela é chamada de “chave primária”, e as
mesmas informações na tabela adjacente são chamadas de “chave estrangeira” (RYAN, 2021). Vejamos um
exemplo simples de duas tabelas dentro de um banco de dados relacional para ilustrar.

Digamos que você necessite classificar dados relacionados com os fornecedores de uma loja. Nesse caso, o
banco de dados teria que ser estruturado como apresentado nas Tabelas 1 e 2.

Tabela 1 | Modelo de tabela de um banco de dados relacional


Código do fornecedor Tipo do fornecedor Localização

 C10D1 Calçados Franca

R11D2 Roupas São Paulo

B12D3 Bolsas Belo Horizonte

Fonte: elaborada pela autora.

Tabela 2 | Modelo de tabela de um banco de dados relacional

Código do fornecedor Tipo do fornecedor Localização

C10D1 Calçados Franca

R11D2 Roupas São Paulo

B12D3 Bolsas Belo Horizonte

Fonte: elaborada pela autora.

As duas tabelas representam como um relacionamento de chave primária/estrangeira funciona. Na Tabela 1,


o “código do fornecedor” é a chave primária, pois esses identificadores são exclusivos para cada fornecedor.
Em um banco de dados relacional, cada tabela deve ter uma coluna contendo uma chave primária para dar a
cada registro um identificador único.

Na Tabela 2, referente aos pedidos, a “ordem de pedido” é a chave estrangeira, pois corresponde à chave
primária dos fornecedores e, portanto, permite-nos saber qual pedido está relacionado ao fornecedor.

É fundamental para bancos de dados relacionais que cada tabela descreva apenas um item, de modo que
cada registro contenha um identificador exclusivo e que as tabelas apresentem uma lista de restrições,
ditando quais tipos de dados elas podem ou não incluir.

Bancos de dados não relacionais (ou não convencionais)

Um banco de dados não relacional é aquele que permite maior flexibilidade e adaptabilidade. Se estivermos
lidando com um conjunto de dados que não está claramente definido, ou seja, não organizado ou
estruturado, provavelmente não será possível estabelecer tabelas e relacionamentos definidos entre o
conjunto de dados.

Um banco de dados não relacional é orientado a documentos, o que significa que dentro de uma única
construção ou documento teremos todos os dados listados (RYAN, 2021). Existem alguns subtipos principais
dentro da categoria de bancos de dados não relacionais, como:
• Bancos de dados orientados a documentos: são associados a valores de dados de objetos em uma
estrutura de dados conhecida como “documento”, podendo ser codificados com uma tecnologia como JSON,
 XML, YAML ou BSON. Os documentos não precisam manter estruturas idênticas, o que proporciona altíssima
flexibilidade.

• Armazenamento de valores-chave: uma forma simples de banco de dados que usa uma estrutura na qual
documentos completos são armazenados como valores correspondentes a uma chave única, o que permite
consultas muito rápidas.

• Bancos de dados de gráficos: utiliza estruturas gráficas para representar e armazenar dados.

• Bancos de dados de colunas largas: semelhantes aos bancos de dados relacionais, porém os nomes e a
formatação das colunas não necessariamente devem ser iguais em cada linha.

DIFERENÇAS ENTRE OS BANCOS DE DADOS CONVENCIONAIS E NÃO CONVENCIONAIS

Ao planejar um novo projeto ou aplicativo, a discussão dos requisitos do banco de dados geralmente surge.
Qual é a diferença entre bancos de dados relacionais e não relacionais? Vamos abordar agora essas questões.

Estrutura ou modelos de dados

A principal diferença entre os tipos de bancos de dados é como os dados são estruturados. Isso significa que
um banco de dados relacional contém dados estruturados e pode realizar uma análise usando um modelo
relacional. Um banco de dados não relacional, por sua vez, contém dados não estruturados, o que significa
que não pode ser analisado por meio de modelos predefinidos (UPWORK, 2021).

• Bancos de dados relacionais: a linguagem de pesquisa declarativa padrão no banco de dados relacional é
o SQL (Structured Query Language ou Linguagem de Consulta Estruturada), que, basicamente, significa uma
maneira de classificar os dados na forma de tabelas, colunas e linhas (PAWLAN, 2021). Os dados estruturados
são fáceis de pesquisar e analisar. Resumo de SQL por Sheridan (2020):

- Pense em uma planilha.

- Os dados encaixam-se bem em linhas e colunas.

• Bancos de dados não relacionais: a linguagem de pesquisa declarativa padrão no banco de dados
relacional é o NoSQL (Not Only SQL ou Não SQL). Esse tipo de linguagem faz sentido para conjuntos de dados
menos estruturados, já que não depende de um modelo predefinido para analisar os dados. Resumo de
NoSQL por Sheridan (2020):

- Pense em um documento de texto.

- Não usa um esquema tabular de linhas e colunas.

Escala

Considere dimensionar seu banco de dados quando você começar a ver um aumento considerável na
quantidade de dados armazenados.
No SQL, a maioria dos bancos de dados é escalável verticalmente, o que significa que você adiciona mais RAM
ao seu único servidor existente para aumentar o espaço de armazenamento.

Já no NoSQL, os bancos de dados são escaláveis ​horizontalmente, o que significa que você simplesmente
adiciona mais servidores ao seu banco de dados para obter mais espaço de armazenamento. Devido à
capacidade de acrescer servidores, trata-se de um banco de dados muito mais distribuído (UPWORK, 2021).

Dados de consulta

Quando se trata de consultar seus dados, os bancos de dados SQL tendem a ser capazes de executar
consultas mais complexas do que os bancos de dados NoSQL.

Além disso, o SQL existe há muito tempo, com isso, muitas coisas também não mudaram, tornando a
linguagem mais fácil de entender para membros da equipe que podem ser menos experientes em tecnologia.

Já os sistemas do NoSQL são um pouco mais complexos: como não há uma linguagem de consulta definida,
sua equipe provavelmente precisará trabalhar com um desenvolvedor ou alguém com um pouco mais de
conhecimento em tecnologia da informação para extrair consultas de dados (UPWORK, 2021).

Desempenho

Os programadores desenvolveram bancos de dados NoSQL para resolver alguns dos problemas de
desempenho enfrentados pelos bancos de dados SQL, principalmente quando se trata de escalabilidade.

Se você tiver problemas de desempenho com seu banco de dados SQL, provavelmente precisará de um
servidor maior para acomodar a quantidade crescente de dados. Porém, esse não é o modo mais econômico.

Ao invés de comprar servidores maiores, com mais memória, os bancos de dados NoSQL podem ser
dimensionados horizontalmente, o que significa que você pode adicionar novos servidores ao que já possui,
conforme necessário (UPWORK, 2021).

PRINCIPAIS BANCOS DE DADOS CONVENCIONAIS E NÃO CONVENCIONAIS UTILIZADOS

A maioria dos softwares de banco de dados possui uma rica funcionalidade SQL, desde ferramentas de
desktop até plataformas de nuvem massivas.

Já o software não relacional ficou popular devido à sua capacidade de lidar com grandes massas de dados de
forma intuitiva, o que é muito útil para plataformas ponto a ponto e comunidade, além de mídia social e
mensageiros. Muitos produtos que envolvem o processamento constante de dados de vários usuários são
desenvolvidos exatamente com sistemas de gerenciamento de banco de dados não relacionais.

Vamos conhecer os exemplos das ferramentas SQL e NoSQL mais populares.

Bancos de dados SQL (convencionais/relacionais)

• Oracle: escrito na linguagem C++, é uma opção de serviço bem completo e com grande confiabilidade.

• MySQL: o banco de dados de código aberto mais popular, muito bom para sites e blogs.
• Google Cloud SQL: um serviço de banco de dados totalmente gerenciado para MySQL, PostgreSQL e SQL
Server, ofertado pelo Google.

• Sybase: um produto de banco de dados de modelo relacional para empresas.

• Amazon RDS: visa a facilitar a configuração, a operação e o dimensionamento de implantações de banco de


dados na nuvem.

• MariaDB: versão aprimorada do MySQL.

• MS SQL Server: desenvolvido pela Microsoft para bancos de dados de nível empresarial.

• PostgreSQL: banco de dados de nível empresarial; utiliza linguagens procedurais como Python, além de
código em nível SQL.

Bancos de dados NoSQL (não convencionais/não relacionais)

• MongoDB: está entre os mais populares, principalmente entre as startups. É de código aberto, por isso é
gratuito, com bom relacionamento ao cliente.

• CouchDB do Apache: um verdadeiro banco de dados para a web. Utiliza: o formato de troca de dados JSON
para armazenar seus documentos; JavaScript para indexação, combinação e transformação de documentos; e
HTTP para sua API.

• Redis: é frequentemente chamado de servidor de estruturas de dados em memória. Fornece acesso a


estruturas de dados mutáveis ​por meio de um conjunto de comandos, os quais são enviados usando um
modelo cliente-servidor.

• Riak: um banco de dados de código aberto. Possui replicação para tolerância a falhas e distribuição
automática de dados integrada para desempenho excelente.

• Oracle NoSQL: outra opção de banco de dados da Oracle na categoria NoSQL.

• Cassandra DB do Apache: nascido no Facebook, é um excelente banco de dados distribuído para trabalhar
com grandes quantidades de dados estruturados.

VÍDEO RESUMO

Fazer a escolha do banco de dados certo para armazenar seus dados nem sempre será uma escolha fácil. De
fato, se em um primeiro momento o uso de um banco de dados relacional parecer para você o mais natural,
em alguns casos essa escolha poderá não ser bem-sucedida.

Para que você possa saber melhor escolher, vamos ver as diferenças entre bancos de dados relacionais e não
relacionais, destacando seus prós e contras e quando utilizar cada um deles.

Vídeo resumo

Para visualizar o objeto, acesse seu material digital.


 Saiba mais

 Para entender melhor as principais diferenças entre bancos de dados convencionais ou não
convencionais, listamos alguns conteúdos para auxiliar em seus estudos:

• Quais os principais bancos de dados e quais suas diferenças?

• Banco de Dados Relacional (SQL) e Não Relacional (NoSQL) – o que são, para que servem e qual a
diferença?

• Qual a diferença entre base de dados relacional e não relacional?

Aula 4

INTRODUÇÃO A BANCOS DE DADOS ORIENTADOS A


OBJETOS E SGBDOO
Os principais conceitos de bancos de dados orientados a objetos, os quais são um tipo de Sistema de
Gerenciamento de Banco de Dados (SGBD), adicionando a funcionalidade de banco de dados às
linguagens de programação de objetos, o que cria bases de código mais gerenciáveis.
26 minutos

INTRODUÇÃO

Iniciaremos nosso estudo com os principais conceitos de bancos de dados orientados a objetos, os quais são
um tipo de Sistema de Gerenciamento de Banco de Dados (SGBD), adicionando a funcionalidade de banco de
dados às linguagens de programação de objetos, o que cria bases de código mais gerenciáveis.

Em seguida, veremos que o Modelo de Dados Orientado a Objetos representa facilmente os problemas
complexos do mundo real. Nesse modelo, os dados e seus relacionamentos estão contidos em uma única
estrutura, que é referida como objeto neste modelo de dados. Além disso, os problemas do mundo real são
representados como objetos com diferentes atributos, sendo que todos os objetos estabelecem vários
relacionamentos entre si. Basicamente, é uma combinação de programação orientada a objetos e modelo de
banco de dados relacional.

Finalizaremos a aula vendo alguns bancos de dados de objetos populares e seus recursos.

CONCEITOS DE ORIENTAÇÃO A OBJETOS APLICADOS A BANCO DE DADOS


Bancos de dados orientados a objetos são um tipo de Sistema de Gerenciamento de Banco de Dados
(SGBD) que adiciona a funcionalidade de banco de dados às linguagens de programação de objetos, criando

bases de código mais gerenciáveis.

O banco de dados combina conceitos de programação orientada a objetos com princípios de banco de dados
relacional.

• Objetos são os blocos de construção básicos e uma instância de uma classe, cujo tipo é embutido ou
definido pelo usuário.

• As classes fornecem um esquema para objetos, definindo o comportamento.

• Os métodos determinam o comportamento de uma classe.

• Ponteiros ajudam a acessar elementos de um banco de dados de objetos e estabelecer relações entre
objetos.

Bancos de dados orientados a objetos lidam diretamente com dados como objetos completos. Todas as
informações vêm em um pacote de objetos disponível instantaneamente em vez de várias tabelas.

Para que um modelo seja considerado orientado a objeto, ele deve conter alguns conceitos básicos, como:
abstração, encapsulamento, herança e polimorfismo.

Encapsulamento

Pense em um carro: esse automóvel possui características que o descrevem. Você pode mudar a cor de um
carro, mas o modelo ou a marca são exemplos de propriedades que não podem mudar. Uma classe
encapsula todas as informações do carro em uma entidade, de modo que alguns elementos são modificáveis,
enquanto outros não.

O encapsulamento, então, é a capacidade de agrupar dados e mecanismos em um único objeto para fornecer
proteção de acesso, como ilustrado na Figura 1. Por meio desse processo, informações e detalhes de como
um objeto funciona são ocultados, resultando em segurança de dados e funções. As classes interagem umas
com as outras por meio de métodos, sem a necessidade de saber como funcionam os métodos específicos
(DANCUK, 2021).

Figura 1 | Exemplo ilustrativo de encapsulamento

Fonte: adaptada de Dancuk (2021, [s. p.]).


Abstração

Pense, agora, em como você usa seu smartphone: você interage com ele usando apenas alguns botões. O que

está acontecendo nos mecanismos de funcionamento você não precisa saber, assim, os detalhes da
implementação estão ocultos. Você só precisa conhecer um pequeno conjunto de ações. Desse modo, as
mudanças de implementação, por exemplo, uma atualização de software, raramente afetam a abstração que
você usa.

A abstração pode ser pensada como uma extensão natural do encapsulamento. Logo, é o procedimento de
representar apenas os recursos de dados essenciais para a funcionalidade necessária. Trata-se de um
conceito que visa a expor apenas operações relevantes para os outros objetos.

Herança

A herança cria um relacionamento hierárquico entre classes relacionadas, ao mesmo tempo em que torna
partes do código reutilizáveis. A definição de novos tipos herda todos os campos e métodos de classe
existentes e os estende ainda mais. A classe existente é a classe pai, enquanto a classe filha estende o pai
(DANCUK, 2021).

Por exemplo, uma classe pai chamada Veículo terá classes filhas Carro e Moto. Ambas as classes filhas
herdam informações da classe pai e a estendem com novas informações, dependendo do tipo de veículo.

Polimorfismo

É a capacidade de um objeto assumir múltiplas formas. Isto permite que o mesmo código de programa
funcione com diferentes tipos de dados. Tanto um carro quanto uma bicicleta podem quebrar, mas o
mecanismo é diferente. Neste exemplo, a quebra de ação é um polimorfismo. A ação definida é polimórfica:
o resultado muda dependendo de qual veículo a executa.

MODELO DE DADOS ORIENTADOS A OBJETOS

Para representar os problemas complexos do mundo real, havia a necessidade de um modelo de dados que
estivesse intimamente relacionado à realidade. O Modelo de Dados Orientado a Objetos veio para atender a
essa demanda, representando facilmente as intercorrências do nosso mundo. Nele, os dados e seus
relacionamentos estão contidos em uma única estrutura, que é referida como objeto neste modelo. Além
disso, os problemas do mundo real são representados como objetos com diferentes atributos, sendo que
todos os objetos têm vários relacionamentos entre si. Basicamente, é uma combinação de programação
orientada a objetos e modelo de banco de dados relacional.

Esse modelo define um banco de dados como uma coleção de objetos ou elementos de software reutilizáveis,
com recursos e métodos associados. Existem vários tipos de bancos de dados orientados a objetos:

• Banco de dados multimídia: incorpora mídia, como imagens, que não podem ser armazenadas em um
banco de dados relacional.
• Banco de dados de hipertexto: permite que qualquer objeto seja vinculado a qualquer outro objeto. É útil
para organizar muitos dados díspares, mas não é ideal para análise numérica.

O modelo de banco de dados orientado a objetos é o modelo de banco de dados pós-relacional mais
conhecido, pois incorpora tabelas, mas não se limita a elas. Esses modelos também são conhecidos como
modelos de banco de dados híbridos.

Os componentes de Modelos de Dados Orientados a Objetos são:

• Objeto: é uma abstração de uma entidade do mundo real, ou podemos dizer que é uma instância de classe.
Os objetos encapsulam dados e códigos em uma única unidade, que fornece abstração de dados, ocultando
do usuário os detalhes de implementação.

• Atributos: descreve as propriedades do objeto.

• Métodos: representa o comportamento de um objeto. Basicamente, simboliza a ação do mundo real.

• Classe: o agrupamento de todos os objetos com as mesmas propriedades e comportamentos.

• Herança: usando herança, a nova classe pode herdar os atributos e métodos da classe antiga, ou seja, a
classe base.

Um exemplo do Modelo de Dados Orientado a Objetos é demonstrado na Figura 2.

Figura 2 | Exemplo de Modelo de Dados Orientado a Objetos

Fonte: elaborada pela autora.

Ao observarmos o diagrama da Figura 2, vemos que são considerados objetos nesse modelo: Forma, Círculo,
Retângulo e Triângulo.

• O Círculo tem os atributos: centro e raio.

• O Retângulo tem os atributos: comprimento e largura.

• O Triângulo tem os atributos: base e altura.

Os objetos Círculo, Retângulo e Triângulo herdam os atributos do objeto Forma.


A seguir, vemos as principais vantagens do Modelo de Dados Orientado a Objetos:

• Os códigos podem ser reutilizados devido à herança.


• É facilmente compreensível.

• O custo de manutenção pode ser reduzido dada a reutilização de atributos e funções devido à herança.

Como desvantagens desse modelo, podemos destacar o fato de não ser desenvolvido adequadamente,
portanto, não é facilmente aceito pelos usuários.

SISTEMA GERENCIADOR DE BANCOS DE DADOS ORIENTADOS A OBJETOS: PRINCIPAIS

FERRAMENTAS

Nos últimos anos, foram produzidas muitas implementações de sistemas para bancos de dados orientados a
objetos. Aqui está uma lista de alguns dos bancos de dados de objetos populares, bem como os seus
recursos.

Caché

O Caché, da InterSystems, é um banco de dados de objetos de alto desempenho. Seu mecanismo é um


conjunto de serviços que inclui armazenamento de dados, gerenciamento de simultaneidade, transações e
gerenciamento de processos. Você pode pensar no mecanismo como um poderoso kit de ferramentas de
banco de dados. Além disso, é um banco de dados relacional completo, um dos mais rápidos, confiáveis ​e
escaláveis (INTERSYSTEMS, 2021).

ConceptBase

O ConceptBase.cc é um sistema de banco de dados dedutivo multiusuário com orientação a objetos (dados,
classe, metaclasse, etc.), o que o torna uma ferramenta poderosa para metamodelagem e engenharia de
linguagens de modelagem customizadas. O sistema é acompanhado por uma interface gráfica de usuário
altamente configurável, que se alicerça nos recursos baseados em lógica do servidor ConceptBase.cc; está
disponível para Linux, Windows e Mac OS-X. Há também um dispositivo virtual pré-configurado que contém o
sistema executável mais suas fontes e as ferramentas para compilá-los (CONCEPTBASE, 2021).

Db4o

Db4o é o banco de dados de objetos de código aberto líder mundial para Java e .NET. A partir dele, é possível
reduzir o tempo e o custo de desenvolvimento e alcançar níveis nunca vistos de performance. O Db4o foi
introduzido em 2000 com foco em desempenho, compactação, administração zero, simplicidade e, o mais
importante, persistência de objetos nativos. Os desenvolvedores finalmente conseguiram combinar o poder
de um mecanismo de banco de dados completo com objetos simples, sem decoração (EDLICH; FALSKEN,
2021).

ObjectDB
Trata-se de um poderoso sistema de gerenciamento de banco de dados orientado a objetos. É compacto,
confiável, fácil de usar e extremamente rápido. O ObjectDB fornece todos os serviços padrão de
 gerenciamento de banco de dados (armazenamento e recuperação, transações, gerenciamento de bloqueios,
processamento de consultas, etc.), mas de uma forma que torna o desenvolvimento mais fácil e os aplicativos
mais rápidos.

Versant Object Database

É um banco de dados de objetos que suporta persistência de objetos nativos e é usado para construir
sistemas de gerenciamento de dados complexos e de alto desempenho. Principais benefícios:

• Desempenho analítico em tempo real.

• Gerenciamento de Big Data.

• Redução do tempo de desenvolvimento em até 40%.

• Custo total de propriedade significativamente menor.

• Alta disponibilidade.

ObjectStore

ObjectStore é um sistema de gerenciamento de banco de dados orientado a objeto corporativo para C++ e
Java. Ele elimina a necessidade de achatar dados complexos para consumo em sua lógica de aplicativo,
reduzindo a sobrecarga de usar uma camada de tradução que converte objetos complexos em objetos
simples, melhorando drasticamente o desempenho e, muitas vezes, eliminando completamente a
necessidade de gerenciar um sistema de banco de dados relacional.

Jasmine

Como a maioria, combina dados tradicionais (como nomes e números de telefone) com dados multimídia
(como fotografias e arquivos de som) para formar objetos de negócios. Assim como em outras tecnologias
orientadas a objetos, cada objeto de negócios possui propriedades que ajudam a definir o objeto e os
métodos que determinam a maneira pela qual um objeto interage com usuários, aplicativos e outros objetos.

VÍDEO RESUMO

Antes de optar por bancos de dados orientados a objetos, vamos entender, primeiramente, quais as principais
diferenças entre um banco de dados relacional e um banco de dados orientado a objetos. Você vai ver quando
adotar e quais são as principais vantagens e desvantagens de utilizar o banco de dados orientados a objetos
em seu projeto.

Vídeo resumo

Para visualizar o objeto, acesse seu material digital.


 Saiba mais

 Para complementar o estudo em banco de dados orientados a objetos e Sistema de Gerenciamento de


Banco de Dados Orientado a Objetos (SGBDOO), listamos alguns conteúdos para auxiliar em seus
estudos:

• Entenda a diferença entre banco de dados relacional e orientado a objetos.

• Sistemas de Bancos de Dados Orientados a Objetos.

• Técnicas de mapeamento objeto relacional.

REFERÊNCIAS
15 minutos

Aula 1

EDWARDS, R. NoSQL Use Cases: When to Use a Non-Relational Database. DataStax, 21 set. 2021. Disponível
em: https://datastax.medium.com/nosql-use-cases-when-to-use-a-non-relational-database-c05025aabd30.
Acesso em: 21 jan. 2022.

MONGODB. What Is a Non-Relational Database? MongoDB, 2021a. Disponível em:


https://www.mongodb.com/databases/non-relational. Acesso em: 20 jan. 2022.

MONGODB. What is NoSQL? MongoDB, 2021b. Disponível em: https://www.mongodb.com/nosql-explained.


Acesso em: 20 jan. 2022.

NASKAR, V. Differences Between Relational and Non-Relational Databases that Every Developer Must Know.
Medium, 15 ago. 2021. Disponível em: https://javascript.plainenglish.io/differences-between-relational-and-
non-relational-databases-that-every-developer-must-know-6cd30a9008e. Acesso em: 21 jan. 2022.

ORACLE. What is Big Data? Oracle, 2022. Disponível em: https://www.oracle.com/in/big-data/what-is-big-data/.


Acesso em: 23 jan. 2022.

REDIS. Home. Redis.io, 2021. Disponível em: https://redis.io/. Acesso em: 23 jan. 2022.

Aula 2

BABU, R. Triggers in SQL Server. SQLShack, 15 maio 2019. Disponível em: https://www.sqlshack.com/triggers-
in-sql-server/. Acesso em: 26 jan. 2022.
FARINA, D. SQL Server Trigger Example. MSSQLTips, 26 fev. 019. Disponível em:
https://www.mssqltips.com/sqlservertip/5909/sql-server-trigger-example/. Acesso em: 26 jan. 2022.

PEDAMKAR, P. Introduction of SQL DML Commands. EDUCBA, 2020. Disponível em:
https://www.educba.com/sql-dml-commands/?source=leftnav. Acesso em: 25 jan. 2022.

KAPPAGANTULA, S. SQL Commands – A Beginner’s Guide To SQL. EDUREKA!, 2020. Disponível em:
https://www.edureka.co/blog/sql-commands. Acesso em: 26 jan. 2022.

NEWTH, A. What is Data Manipulation Language? EasyTechJunkie, 14 fev. 2022. Disponível em:
https://www.easytechjunkie.com/what-is-data-manipulation-language.htm. Acesso em: 25 jan. 2022.

Aula 3

PAWLAN, D. Relational vs. Non-Relational Database: Pros & Cons. ALOA.CO, 2021. Disponível em:
https://aloa.co/blog/relational-vs-non-relational-database-pros-
cons#:~:text=So%2C%20what's%20the%20difference%3F,of%20a%20laundry%20list%20order. Acesso em: 31
jan. 2022.

RYAN, S. Relational vs. Non-Relational Databases. MPARTICLE, 16 mar. 2021. Disponível em:
https://www.mparticle.com/blog/relational-vs-nonrelational-databases. Acesso em: 30 jan. 2022.

SHERIDAN, D. Relational vs Non-Relational Databases. Medium, 22 maio 2020. Disponível em:


https://medium.com/fact-of-the-day-1/relational-vs-non-relational-databases-b00b935aa465. Acesso em: 31
jan. 2022.

UPWORK. NoSQL vs. SQL: Important Differences & Which One Is Best for Your Project. UPWORK, 26 jul. 2021.
Disponível em: https://www.upwork.com/resources/nosql-vs-sql#differences-sql. Acesso em: 1 fev. 2022.

Aula 4

CONCEPTBASE. ConceptBase.cc - A System for Metamodeling and Method Engineering. ConceptBase, 17 ago.
2021. Disponível em: http://conceptbase.sourceforge.net/. Acesso em: 6 fev. 2021.

DANCUK, M. What Is an Object-Oriented Database. PhoenixNap, 15 abr. 2021. Disponível em:


https://phoenixnap.com/kb/object-oriented-database. Acesso em: 5 fev. 2022.

EDLICH, S.; FALSKEN, E. Getting Started With db4o. DZone, 2021. Disponível em:
https://dzone.com/refcardz/getting-started-db4o. Acesso em: 6 fev. 2022.

INTERSYSTEMS. Caché – Banco de dados de alto desempenho. InterSystems, 2021. Disponível em:
https://www.intersystems.com/br/produtos/cache/. Acesso em: 5 fev. 2022.

Você também pode gostar