Menu fechado

😧 SQL vai morrer! 🤯 | Quem substituirá o Banco de Dados Relacional?

Neste vídeo, vou te apresentar a evolução do SQL como Banco de Dados Relacional e como ele vem sendo substituído pelos Bancos de Dados NoSQL. Além disso, você conhecerá um novo conceito que é o Banco de Dados de Grafo (GraphDB) e quais são as soluções que ele vem trazendo para demandas de alta performance, escalabilidade, integridade e relacionamentos!

Também vou abordar conceitos do Apache TinkerPop, Amazon Neptune, linguagem Gremlin, Cassandra DB, Arango DB, Dynamo DB entre outros.

🎯 Links de outros vídeos que já fiz sobre Banco de Dados:
– Banco de Dados NoSQL – Vantagens e Desvantagens – https://youtu.be/fySiDsKVZY0
– Banco de Dados Relacional – https://youtu.be/6SVwygschaM
– AWS RDS Aurora criando Banco de Dados MySQL – https://youtu.be/QIYJ3bFnmIQ

Gostou do conteúdo deste vídeo?
👍 Então deixa um comentário, dá um like e Inscreva-se!

Tá sem tempo pra assistir o “Um Inventor Qualquer? Você pode ouvir!
Estamos em todas as plataformas de podcast!
🎧 Ouça aqui: https://www.uminventorqualquer.com.br/podcast/

Quer ficar por dentro das novidades que estamos preparando para o canal?
📸 Nos siga no Instagram: https://www.instagram.com/uminventorqualquer

Nossas redes sociais:
Facebook: https://www.facebook.com/uminventorqualquer
Instagram: https://www.instagram.com/uminventorqualquer
Twitter: https://twitter.com/uminventorqquer
Blog: https://www.uminventorqualquer.com.br
Podcasts: https://uminventorqualquer.captivate.fm/

Está sem tempo para assistir ao Vídeo ou ouvir nosso Podcast?
Sem problemas, abaixo você poderá ler a Legenda do vídeo!
Ah... elas são geradas automaticamente 😉
Eu acho que exagerei um pouquinho mas 
 esse é um vídeo onde eu vou falar para
 você porque que o SQL tá morrendo mas
 quem é que vai tomar um lugar da
 linguagem de requisição a banco de dados
 ou query language mais usada no mundo a
 gente ainda não sabe mas você vai poder
 ter algumas pistas nesse vídeo fica
 ligado aí
 [Música]
 o que está acontecendo com SQL não é
 de agora tá é uma coisa que vem
 acontecendo durante muitos anos ou nas
 últimas décadas basicamente porque as
 tecnologias se substituem o elas evoluem
 até o ponto em que elas não conseguem
 mais e em determinado momento elas são
 substituídas por outras tecnologias mais
 modernas ou tecnologias que atendem
 demandas mais modernas do mercado e o SQL
 tá mais ou menos nessa vibe mas para
 você entender exatamente a história do
 SQL e poder imaginar aonde ela vai
 acabar eu preciso contar um pouquinho
 sobre como ela começou lá atrás 
 O SQL que hoje é a linguagem de bancos
 de dados mais utilizadas no mundo nasceu
 como um conceito como qualquer outra
 linguagem ou qualquer outra tecnologia
 esse conceito foi sendo aplicado em
 Sistemas que vinham com o objetivo de
 armazenar E servir como consulta para
 dados que precisavam ser armazenados ao
 longo do tempo foram evoluindo e
 implementando novas features lá na
 década de 90 o primeiro banco de dados
 que eu utilizei chamava-se Paradox que
 já utilizava SQL mas ele nem sequer era
 um banco de dados client-server ele era
 um banco de dados local mas o Paradox
 foi o primeiro banco de dados que eu
 aprendi a trabalhar e ele não era
 cliente-servidor ele ficava dentro de um
 arquivo na própria máquina onde a
 aplicação rodava quando começou a onda
 do client-server eu passei a utilizar
 interbase mas naquela época existia um
 problema muito grave que os bancos
 relacionais tentavam resolver que era a
 questão da integridade dos dados
 principalmente na concorrência de
 leitura e gravação aonde mais de uma
 máquina dentro da rede podia tá tentando
 ler e gravar ao mesmo tempo mesmo tempo um mesmo
 registro dentro do banco isso era crítico
 e era uma das missões do banco de dados
 relacional já que se fosse para você não
 ter essa integridade bastava você e
 gravar arquivos de texto gravados no
 disco O problema é que quando mais de um
 usuário Lia aquele arquivo alterava ele
 e tentava gravar de volta ao mesmo tempo
 em que outro usuário tentava fazer a
 mesma coisa eles poderiam ter duas
 versões diferentes e uma delas com
 certeza ia sobrepor à outra sem que eles
 ficassem sabendo que essa sobreposição
 existia porém com essa verificação de
 integridade os bancos relacionais
 começaram a se tornar cada vez mais
 engessados mais amarrados e eles começaram
 a criar todas essas travas e esses
 recursos para garantir a integridade dos
 dados essa integridade que naquela época
 foi a salvação de muitos desenvolvedores
 e de muitos sistemas que precisavam
 dessa integridade hoje tá sendo o tendão
 de Aquiles dos bancos relacionais por
 quê Porque para que você tenha esse alto
 nível de integridade na transação dos
 dados Você também precisa ter uma
 amarração ou um afunilamento das transações
 que entram no banco de dados e esse
 afunilamento acaba causando um problema
 que é ruim para a maioria dos sistemas
 de alta escalabilidade que hoje
 basicamente dominam o mundo da tecnologia
 Pois todos os sites e sistemas online
 hoje dependem de performance para poder
 entregar os dados ou serviços que eles
 desenvolvem pra um grande público e não mais
 para duas ou três máquinas dentro de uma
 redezinha interna das empresas hoje
 sistemas de ERP sistemas de controle
 contábil todos aqueles sistemas que lá
 na década de 90 funcionavam somente nas
 intranets hoje estão expostos na
 internet e podem ser acessados de
 qualquer lugar porém com isso vem a alta
 demanda E A alta demanda trava Justamente
 na questão do banco de dados mesmo
 falando de Cloud a gente
 consegue escalar as máquinas de
 aplicação basicamente de forma infinita
 você pode ir adicionando máquinas e
 suprindo a demanda dos seus usuários
 Porém quando a gente bate na camada de
 banco de dados essa camada é sempre o
 gargalo da aplicação e mesmo falando a
 nível de cloud computing os bancos
 relacionais também causam problemas pois
 essa verificação de integridade E A
 maneira como a arquitetura da engineering dos
 bancos relacionais foi desenvolvida ela
 foi feita para garantir a integridade e
 não a escalabilidade Então se mais de
 uma máquina cliente tenta acessar os
 mesmos registros ao mesmo tempo elas
 entram numa fila e cada uma delas é
 executada de uma vez só para que as
 outras que vem na sequência saibam o que
 elas estão alterando e para que esses
 dados não sejam sobrepostos essa
 arquitetura acaba causando esse
 afunilamento e é o que está causando a
 morte do SQL 
 O SQL vem se
 tornando cada vez menos uma alternativa
 viável para sistemas de alta
 escalabilidade e qualquer um que vai
 montar uma Startup hoje em dia ou vai
 criar um sistema vai criar uma
 plataforma a escalar quer expandir para
 o país inteiro ou para o mundo inteiro
 para que a plataforma dele seja
 utilizada e claro dê retorno 
 com SQL isso acaba virando um gargalo e um
 empecilho mesmo que você escale
 verticalmente você tem limite no tamanho
 das máquinas que você vai conseguir
 colocar dentro da sua infraestrutura em
 Cloud vai chegar o momento que você vai
 bater no teto quando chegar nesse
 momento você vai ter que começar a
 particionar sua base de dados colocando
 um determinado nicho de clientes no
 cluster um outro determinado lixo de
 cliente em outro cluster e isso começa a
 Gerar uma demanda tanto de atualização
 quanto de manutenção muito grande e
 acaba criando
 disparidade entre os sistemas mas quando
 a gente fala de uma plataforma onde você
 não pode segmentar os seus clientes por
 exemplo um Facebook da vida um Twitter
 ou qualquer outra plataforma Aonde a
 interação entre os clientes entre os
 usuários dessa plataforma é o que define
 a plataforma em si então os bancos
 relacionais ou bancos SQL acabam não
 sendo uma opção e acabam entrando um
 outro tipo de ferramenta nesse perfil ao
 longo do tempo em que o SQL se
 consolidou e ficou lá sentado no
 troninho dele como o rei das querys o rei
 das linguagens de bancos de dados outras
 tecnologias foram surgindo e foram
 tomando o lugar dele comendo pelas
 bordas e a mais utilizada delas chama-se
 banco NoSQL ou No SQL os bancos no
 SQL são bancos que obviamente não
 utilizam SQL são chamados no SQL
 por uma razão se liga mais os no SQL
 Ou NoSQLs são bancos de dados que
 oferecem alta performance porém
 uma das grandes diferenças entre os
 bancos NoSQL e os bancos SQL ou
 SQL é que os bancos SQL ou os bancos
 relacionais oferecem a integridade
 referencial por isso eles são chamados
 de bancos relacionais quando você tem
 duas tabelas que você precisa criar a
 referencia de dados entre essas duas
 tabelas você cria uma foreign key ou chave
 estrangeira que linka esses dados ou linka
 esses registros entre duas tabelas
 essas foreign key também podem ser
 definidas por constraints ou seja
 mecanismo de travamento ou de
 verificação de integridade Entre esses
 dados essas constraints não garantem só
 a integridade das informações quando
 elas são gravadas mas sim quando elas
 são manipuladas a partir do momento que
 você tem uma ligação você pode definir
 como essa ligação deve se comportar e
 caso você precise que os registros ou a
 integridade Entre esses registros seja
 mantida você pode impedir por exemplo
 que um registro pai seja deletado caso
 ele tenha registros filhos em outras
 tabelas ou você pode definir que quando
 esse registro Pai for deletado o sistema
 deve cascatear a deleção ou seja deve
 automaticamente Remover todas as
 dependências filhas desse registro
 principal essa verificação de integridade é
 retida e gerida pelo próprio banco de
 dados por isso o banco de dados
 relacional ou os bancos que utilizam SQL
 tem esta forte relação entre as
 entidades ou entre os registros de cada
 entidade que ele tem dentro dele por outro
 lado justamente essa questão da
 verificação da integridade é o que causa
 os gargalos no SQL e é o que não
 existe nos Bancos NoSQL que conseguem
 executar querys tanto de leitura quanto
 de gravação uma velocidade muito maior
 do que um banco SQL e com a vantagem o
 banco NoSQL ele pode ser escalado
 horizontalmente tendo várias máquinas
 Masters ou seja várias máquinas deste
 mesmo cluster podem aceitar gravações
 simultaneamente sem gerar conflito de
 registros é o caso do Cassandra por
 exemplo e o caso de vários outros
 sistemas de bancos de dados NoSQL que
 estão no mercado que tem essa capacidade
 de conseguir trabalhar com um cluster ou
 com uma replicação que chamamos de master
 master quando você tem uma read réplica
 no banco relacional essa réplica só pode
 ler ela é uma read replica quando você
 tem um banco NoSQL você consegue
 ter várias Master ou seja várias
 máquinas que permitem gravar os dados
 sem gerar conflito ou em alguns casos
 diminuindo drasticamente a possibilidade
 de conflito se você quiser saber um
 pouquinho mais sobre o banco NoSQL Eu
 fiz um vídeo algum tempo atrás aqui e
 você pode ver vou deixar o link 
 aqui no card e vou deixar o link na
 descrição também lá eu falo
 especificamente sobre bancos NoSQL e
 também tem outro vídeo nosso falando
 sobre os bancos SQL Então você quer dar
 uma olhadinha lá eu vou deixar também o
 link na descrição e vou também deixar
 um outro link na descrição levando você
 para os nossos vídeos a respeito de RDS
 lá na Amazon que é o serviço da Amazon
 que oferece serviços de bancos de dados
 relacionais de formas gerenciado mas
 vamos lá o foco desse vídeo é a gente
 passar pela evolução dos bancos de dados
 e tentar imaginar quem é o candidato que vai
 substituir o SQL você Já adivinhou você
 já tá mais ou menos entendendo aonde eu
 quero chegar ainda não deixa aproveitar
 então enquanto você pensa para agradecer
 a todos os nossos inscritos e as pessoas
 que estão acompanhando o canal gente
 muito obrigado por vocês assistirem os
 vídeos por vocês darem like no vídeo por
 vocês compartilharem comentarem nos
 vídeos principalmente adoro responder
 comentários respondo a todos eles pelo
 menos ainda estou conseguindo responder
 mais o canal está crescendo e está
 crescendo Graças a vocês e eu agradeço
 demais o apoio de vocês demais ajuda de
 vocês com o canal porque o YouTube
 infelizmente não está recomendando o
 canal tanto quanto a gente gostaria e a
 única razão da gente está crescendo é
 Graças a vocês que recomendam o nosso
 canal que compartilham os vídeos e tudo
 mais então gente muito obrigado e eu
 agradeço de coração porque é isso que
 motiva a gente a continuar fazendo e
 gravando os vídeos no final de semana
 para poder publicar no canal porque de
 outra forma obviamente a gente não teria
 motivação para poder tá batalhando e
 conseguindo entregar esse conteúdo para
 vocês então mais uma vez muito obrigado
 voltando vamos lá saímos do SQL banco
 relacional eles tinham uma missão eles
 cumpriram muito bem a missão deles Porém
 para se manter na missão eles também
 precisavam se manter limitados porque as
 regras do banco relacional não podem ser
 alteradas simplesmente de uma hora para
 outra seria como o que aconteceu com o
 nosso amigo Angular que na versão um tinha
 uma sintaxe uma estrutura uma linguagem
 para você poder trabalhar nele e de
 repente quando foi para versão dois Tudo
 Mudou E A comunidade inteira ficou
 altamente frustrada com o Angular porque
 as aplicações antigas não podiam ser
 simplesmente atualizadas elas precisavam
 ser migradas re-desenvolvidas no novo
 formato do Angular E isso gerou uma certa
 frustração na comunidade porém o SQL é
 um caso mais grave ainda porque o SQL é
 um conceito mesmo e considerando que
 seja só um Framework você é gera
 frustração agora você quebrar um
 conceito inteiro que é o conceito de
 banco relacional para você poder se
 atualizar e atender a uma demanda nova
 de mercado é virtualmente uma baita
 sacanagem com quem trabalha com SQL você
 imagina só de repente vem sei lá Oracle, Postgrees, MySQL
 não importa vem algum mantenedor desses de
 bancos de dados relacionais e diz galera
 a partir da versão 5 nós não temos mais
 integridade referencial porque nós vamos
 priorizar a performance 
 não ia ser nada agradável concorda comigo 
 então o que acontece os bancos relacionais
 continuam focados no que eles fazem de
 melhor que a integridade referencial E A
 integridade de dados porém lá pela curva
 de Fora contornando por dentro, tentando entrar na frente 
 dos bancos relacionais e em
 alguns momentos eu acredito que ele já
 tem até passado já tenha dado até uma
 volta em cima dos bancos relacionais vem
 os nossos amigos bancos de grafo
 exatamente e o que seria um banco de grafo
 banco de grafo é basicamente
 um conceito de banco de dados focados em
 relacionamento Espera aí se banco
 relacional é focado em relacionamento um
 banco de grafo é um banco relacional
 não Não exatamente ainda o que acontece
 com o banco de grafo é que ele foi
 desenhado e planejado para trabalhar com
 um nível de relacionamento muito mais
 profundo do que um banco SQL lá no SQL
 quando a gente quer fazer uma query que
 junta duas tabelas a gente faz um join
 esse join precisa ter especificado Quais
 são os campos que você vai comparar
 entre uma tabela e outra e vai fazer com
 que esses campos sejam iguais desde o
 registro que você tá pegando
 inicialmente na tabela a e fazendo a
 relação desses Campos com a tabela b c d
 ou quantas tabelas você precisa fazer
 mas quando você precisa fazer uma
 análise de relacionamento muito mais
 profunda Principalmente quando ela é
 recursiva por exemplo a pessoa a que é
 amiga da pessoa B que tem amizades com
 uma pessoa C D e E pode ter feito uma
 publicação nas suas redes sociais e eu
 quero saber dessas pessoas quem fez uma
 publicação e recebeu like dos amigos
 delas Já pensou na confusão e na
 complexidade que seria uma query como
 essa dentro de um banco relacional
 usando SQL para fazer join ou Sub querys 
 ou inner join left join ia
 virar um inferno E para piorar e se não
 tivesse limite para a quantidade de
 saltos que você deveria dar nesses
 relacionamentos recursivos quantas
 vezes você poderia saltar para dentro
 desses relacionamentos dos amigos dos
 amigos dos amigos e verificar quais os
 posts receberam like das pessoas que
 estão no círculo de amizade daquela
 pessoa que fez o post tá dando nó na sua
 cabeça pois é na minha também e seria
 impossível fazer isso no banco SQL no
 banco relacional que utiliza SQL como
 linguagem e os bancos de grafo vieram
 para solucionar esse problema isso não é só
 um problema de redes sociais os bancos
 de grafos vieram para resolver problemas
 muito mais complexos como por exemplo
 análise antifraude para poder analisar
 os vínculos de relacionamento entre uma
 pessoa e o uso do cartão de crédito dela
 em vários estabelecimentos diferentes
 para analisar o tipo de produto que ela
 consome para saber se numa determinada
 Compra aquele cartão não foi utilizado
 por um terceiro para cometer uma fraude
 ou se o número do cartão foi roubado
 coisas desse tipo os bancos de grafo vão
 muito além da simples análise a ligação
 entre pessoas dentro de uma rede social
 e ele pode relacionar qualquer tipo de
 dado qualquer tipo de relacionamento
 entre entidades diferentes entre uma
 pessoa e um cartão de crédito entre uma
 pessoa e uma determinada marca de carro
 e assim por diante Além disso existem
 tecnologias Como o próprio Apache
 TinkerPop por exemplo que intermedia as
 requisições entre as aplicações e Bancos
 NoSQL para que eles sejam
 utilizados como bancos de grafo e
 ofereçam os mesmos recursos de um banco
 de grafo mas utilizando o seu banco NoSQL 
 preferido como o Cassandra Arango DB
 uma série de outros bancos de
 dados que você pode utilizar atrás do
 seu banco de grafo digamos assim mas
 que você consegue gerenciar ou utilizar
 eles de maneira que você já está
 acostumado é o caso por exemplo do
 Dynamo DB que é um serviço
 escalável da Amazon e também é
 compatível com o Apache TinkerPop pode
 ser utilizado como uma base de dados e
 para uma plataforma de grafo e você pode
 explorar e utilizar ele com todas as
 vantagens de um banco de grafo
 convencional porém utilizando o banco
 NoSQL lá atrás tendo performance
 escalabilidade e autogerenciamento sem
 você precisar esquentar muito a cabeça
 mas Além disso é claro você tem vários
 serviços disponíveis aí no mercado em
 plataforma de cloud como a plataforma da
 Microsoft do Google e até do Alibaba já
 desenvolveu o banco de grafo
 proprietário para oferecer dentro da
 infraestrutura deles é Amazon não fica
 para trás porque Amazon oferece um
 banco de grafo chamado Neptune que é
 compatível com a linguagem Gremlin do 
 Apache TinkerPop e que permite você
 fazer essas interações em formato
 grafo porém persistindo os dados no S3
 oferecendo persistência múltipla de
 informações redundância alta
 escalabilidade e uma série de outros
 recursos que são extremamente
 importantes quando você tá trabalhando
 com aplicações que precisam de escalabildade
 ou que vão precisar de escalabilidade 
 no futuro no próximo vídeo eu
 vou mostrar para vocês como eu
 desenvolvi um conector para fazer a
 integração entre um ORM de um Framework
 padrão e a sintaxe da linguagem do
 Gremlin que é a linguagem de banco de grafo
 do Apache TinkerPop e também nesse
 vídeo do connector eu vou dar dicas para
 vocês super importantes de como vocês
 podem se motivar a aprender mais
 desenvolvendo o código para a comunidade
 Opensource então fica ligado se
 inscreve deixa o like deixe o comentário
 ajuda o canal compartilhando esse vídeo
 com seus amigos e fica ligado no próximo
 vídeo porque vai ser muito legal a gente
 falar sobre o conector e sobre o Gremlin
 Especialmente para quem tá ainda meio
 travado com relação a projetos Paralelos
 OK tá ligado aí vou deixar Dois videozinhos
 aqui para vocês para vocês não fugirem
 do canal e mais uma vez muito obrigado
 um grande abraço e até a próxima
Siga-nos:
YouTube
YouTube
LinkedIn
Share
Instagram
Telegram
WhatsApp