Fiz um servidor de "SQL"?? | Entendendo Banco de Dados
Вставка
- Опубліковано 25 лип 2024
- O que tecnologias de compiladores e estruturas de dados tem a ver com banco de dados? Resolvi brincar de fazer um pequeno banco "stupid" pra vocês terem uma visão diferente sobre o que é um banco de dados por baixo dos panos. Disclaimer: isso não vai ser um tutorial de SQL, mas acho que pode mudar a visão de vocês sobre bancos.
ERRATA
6:30 eu falo "dieta intermitente" mas eu queria dizer "jejum intermitente"
CONTEÚDO
00:00:00 Intro
00:00:35 Problema de Tutoriais/Cursos
00:02:51 Banco de Dados de Usuários
00:03:29 "Simulando" banco de dados
00:04:58 "Fake" SQL?
00:07:16 Construindo o Fake SQL
00:10:59 Experimente com Código!
00:15:39 Testando Fake SQL com Jest
00:19:38 Adicionando "SQL" no "Fake SQL"
00:22:01 Conhecendo Antlr4
00:24:39 Copiando do SQLite3
00:30:34 Criando meu Listener de Parse Tree
00:39:41 O que é um Índice?
00:49:10 Bancos de Dados tem Interpretadores!
00:49:51 Transaction Log!
00:55:33 Como "grava" um banco de dados em disco??
01:05:57 B-Trees
01:08:30 Fazendo Cliente-Servidor!
01:09:55 Conclusão
01:12:26 Bloopers!
Links
* GitHub do Stupid Database - código do episódio (github.com/akitaonrails/akita...)
* GitHub do repositório de gramáticas do Antlr (github.com/antlr/grammars-v4)
* SQLite Amalgamation (www.sqlite.org/amalgamation.html)
* Visualização de AVL Tree (www.cs.usfca.edu/~galles/visu...)
Transcript: www.akitaonrails.com/2022/05/...
Podcast: anchor.fm/akitando/episodes/a... - Наука та технологія
Akita: "vamos começar do começo, bem do começo"
Eu: certeza q ele vai fazer a linha temporal da Mesopotâmia antiga até os dias de hoje.
Passando, é claro, pela Palestina.😀
Pra fazer isso ele precisaria começar pelo primeiro bit CRIADO pelo homem... fogo apagado === 0, fogo aceso === 1! KKKK O início de tudo.
Saberia me informar a como corrigir gabarito de alunos utilizando banco de dados?
Por exemplo: imagine dois alunos, o LUAN e o VICTOR. Agora imagine que eles fizeram uma prova e me entregaram os gabaritos a baixo:
LUAN:
1) A
2) B
3) C
4) A
VICTOR:
1)C
2)A
3)A
4)B
A resposta correta para o gabarito é:
1-C
2-A
3-A
4-B
Dessa forma, o Victor gabaritou a prova. Como eu faria para descobrir todos os alunos que gabaritaram isso dentro do banco de dados?
@@luanvictor9701 Provável que exista uma tabela com os resultados. A tabela prova, teria 2 campos, questao (primária) e resultado.
Outra tabela, a de alunos, com os campos nome, gabarito, ponto, id_questão (estrangeira). Liga id_questão com questao.
No programa, é só criar a função que compara o campo gabarito, da tabela alunos, com o campo resultado da tabela prova.
um exemplo simples, no caso do delphi:
if prova.field['resultado'].value = alunos.field['gabarito'].value then
---- insere os pontos, se 0 ou 1, por exemplo, no campo ponto da tabela alunos
Vc pode criar outra tabela para separar o campo pontos, assim não precisa repetir o nome dos alunos para cada id_questão.
@@TalesMilleto show mano, muito boa essa visão aí. Poderia me passar o teu contato pra gente discutir esse assunto?
Petição pro Akita fazer um vídeo sobre desenvolvimento na rede do Bitcoin.
na real qualquer rede exceto Etherium seria massa
@@ursochurrasqueira Oloko, pra que esse hate contra meu eth? ;(
@@ursochurrasqueira Fiquei curioso agora, por que não ETH ?
@@CriptoTec as vezes é por causa da taxa de gas sempre muito alta rs.
@@hpornelas o conhecimento é muito mais valioso ! Tenho certeza disso… 👊🏻
Eu sou macaco velho de T.I. Mas é um barato rever essas coisas, antigamente a gente tinha que saber como as coisas funcionavam. O seu conteúdo é importante para quem está começando e pretende um dia se destacar na profissão. Pra mim o grande problema dos mais jovens é falta desta base
Caralho mano, como pode a aula do Akita ser melhor que minha aula de modelagem de dados na graduação em Engenharia de Software ? Eu não sei se fico triste em saber isso ou feliz por ter pessoas como o Akita. Gratidão !!
Fato: Graças às Redes Sociais e à Internet, estamos tendo acesso a conteúdo de todo tipo, alguns de alta qualidade, e não somos mais refén do que o sistema de ensino nos fornece, seja bom ou ruim. Fique feliz. Antes você era MUITO MAIS refém deles mesmo!
Saberia me informar a como corrigir gabarito de alunos utilizando banco de dados?
Por exemplo: imagine dois alunos, o LUAN e o VICTOR. Agora imagine que eles fizeram uma prova e me entregaram os gabaritos a baixo:
LUAN:
1) A
2) B
3) C
4) A
VICTOR:
1)C
2)A
3)A
4)B
A resposta correta para o gabarito é:
1-C
2-A
3-A
4-B
Dessa forma, o Victor gabaritou a prova. Como eu faria para descobrir todos os alunos que gabaritaram isso dentro do banco de dados?
@@luanvictor9701 mano, a maneira mais simples de cara seria criar um script onde vc faria um laço de repetição do 1 elemento até o final do gabarito e verificar se bate com o que o aluno escolheu, pode usar até if para contar se acertou ou não e retorna o n° de acertos.A seguda poderia ser transformar as 2 em strings e verificar se elas são identicas, assim vc teria somente os alunos que gabaritaram
@@willcatan show, mano! E como seria possível eu fazer um sistema onde os alunos tivessem acesso a uma formulário para preencher o gabarito e depois esses dados fossem direto pra a tabela, sem ter a necessidade de eu ter que pegar a alternativas de cada aluno individualmente? Poderia me passar o teu watts pra gente discutir esse assunto, tenho um projeto em mente e creio que nós poderemos ser beneficiados.
@@luanvictor9701conseguiu fazer o sistema?
Mais uma vez, excelente video. Para quem quiser se divertir mais com o assunto, recomendo o famoso livro: Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. Os primeiros capitulos desse livro cobrem como sao feitos os indices de NoSQL e SQL dbs (memtables, B Trees, SSTables e LSM-Trees) , a historia de bancos documentais/grafos/relacionais. Vale a pena e tem audiobook.
O trecho sobre índices finalmente me deu uma forma boa de explicar as vantagens e desvantagens. Muito obrigado, será muito útil
Que conteúdo foda Akita, simplesmente muito bom!
Cada vídeo seu preciso rever e rever, anotar e praticar. Sempre aprendo algo novo!
Parabéns pelo conteúdo e obrigado!
Maravilha de vídeo. Senti os conhecimentos se alinhando, rsrs. Grande abraço e muito obrigado por compartilhar conosco mister Akita.
Os seus vídeos são sempre muito bons, parabéns, de coração
Unica aula da semana que vale a pena ver! Jaja assisto!
fazer uma aplicação como essa, é um ótimo exercício para reforçar conceitos e prática. Seus vídeos fizeram eu ter um loop diário de abrir o UA-cam e verificar se tem vídeo novo no seu canal.
Ótimo vídeo e explicação!
cada minuto desse video vale ouro, valeu akita, por disponbilizar um pouco do seu tempo!
Parabéns pelo trabalho, eu posso admirar, aprender, reproduzir e divulgar seus vídeos como material didático como num livro, só que online. Valeu Akita por compartilhar suas pesquisas e estudos. Meus estudantes receberam seu video e espero que aprendam mais sobre banco de dados.
Parabéns Fabio Akita, sou membro do seu canal a pouco tempo, mesmo assim vejo noticias excelentes, em seus vídeos, ótima didática! Suceso em seu canal!
Esta forma de explicar contextualizando é formidável!!! O entendimento fica melhor sobre o assunto.
Esse canal é incrível, já tinha visto esse vídeo porém de forma recreativa. Tempo depois e agora estou estudando sobre banco de dados, e Eureka lembrei desse ep, e resolvi ver tudo de novo agora com mais atenção, e finalmente entendi como funciona um banco de dados, pelo menos pra não achar que ele faz magica pra salvar os dados. Valeu AKITA
depois dessa aula prevejo uma galera mudando o LinkedIn de "javascript avançado" para "javascript iniciante"
Sempre bom!!! Vlw akita continua o trabalho que ta muito foda!!!
Os vídeos desse canal são uma verdadeira aula.
Muito Top Mestre Akita! Muito bacana a busca pela excelência durante a gravação.
Aeeeee Akita! Estou esperando esse vídeo desde quando você começou a tocar nesse assunto lá na série "entendendo BACK-END" que por sinal é uma serie fantástica que vira e mexe eu retorno para eles porque tem MUITO conteúdo lá. Valeeu!
Eu também
Muito inspirador a forma de pensar nos paralelos entre Objeto Javascripp e Banco de Dados SQL... muito legal mesmo parabens Akita! Admirio muito seu trabalho!
Ótimo vídeo! precisei ir assistindo aos poucos e daqui um tempo voltarei para assisti-lo novamente. O final foi engraçado, a gente sabe que gravar vídeo dá um baita trabalhão!
Cara, muito bom.
Amo SQL, vejo pessoas dependendo de ORM (não que seja ruim em tudo) mas não sabem fazer views materializadas, procedures, triggers, packages, functions, sequences, etc e já querem por MongoDb ou dynamo em tudo.
Imagina ter esse nível de conhecimento...
A abstração está gerando pessoas abstratas, não conseguem ser hands on, só usar services e libs (novamente, não que seja ruim)
Inclusive, recomendo como tema, pois você aborda isso em vários vídeos mas não foca nisso.
Vlw Akita!!
Adoro mexer com SQL, mas infelizmente não uso a um time já, só em projeto pessoal. Todo lugar a galera prefere mil libs por cima, dezenas de abstrações e muito código gerado sem saber o que realmente faz por baixo.
@@willirittmann1917não entendi, qual a necessidade de programar tudo do zero? É uma perca de tempo, ainda mais mês pra programadores que querem pagar as contas no fim do mês, mas eu entendo que é importante saber o que rola por baixo, é sempre bom ter esse conhecimento, porém na prática o mais adequado e seguro é usar um framework mesmo. Mas talvez eu esteja falando merda, nem tenho mta experiência kkkkkm
@@Tue-so2ls não é tudo do zero, framework é importante, mas vc precisa saber minimamente o acontece por baixo pra saber como lidar com eventuais problemas. Gosto de construir coisas do zero pra ter total controle sobre isso, mas só o faço quando possível, não adiantaria criar uma feature do zero e depois não conseguir dar manutenção a ela, ou ser de alta complexidade. Atualmente trabalho com uma parada em que estou precisando criar tudo do zero, um componente visual grande com diversas features, poderia haver uma lib que faça algo similar, mas eu preciso ter total controle dela, além de que ela será totalmente customizada. "Perdendo" mt tempo para construir isso, mas é a melhor opção no meu caso
Muito bom esse vídeo. Como sempre, muita informação. Parabéns.
aprendi muita coisa nesse episódio, algumas coisas eu já sabia, como o funcionamento do full scan, a ordem da interpretação dos comandos, indices, etc...show de bola !
Gente era tudo que eu precisava para hoje ,os vídeos estão sincronizados com minhas aulas rsrs 👏
a diferença é que com a explicação agora dá até para encarar BD
Esclareceu muito a minha ideia sobre banco de dados. Agradeço muito pela aula! Estou começando na área de programação e gosto muito de saber como as coisas funcionam antes de sair usando, e o canal do Akita é ótimo pra isso. Passo meu fim de semana assistindo como se fosse futebol.
vídeo top demais akita, parabéns.
Opaaaa segundou com aula do mestre! Boraaaa
rpz... vc é brabo demais, cada video seu que eu assisto é um banho de conhecimento. Thanks!
Que video! Todos seus videos vejo que vc tem um comprometimento com a verdade e qualidade. Nao tem conteudo melhor em portugues nem em ingles! Parabens!
As horas sempre são bem gastas assistindo conteúdo do Akita, muito bom ! 🔝
Conteúdo magnífico, meus parabéns!!
Cara, eu me senti obrigado a vir comentar, os seus vídeos são algumas das melhores coisas do UA-cam. Parabéns, obrigado e continue por favor.
SHOW de Vídeo Akita!!! PARABÉNS!!!!
Muito bom, nos teus vídeos tem várias respostas que o pessoal pergunta nas entrevistas =)
Meu amigo, QUE AULA! Só posso agradecer, comentar e dar meu like. Mas se pudesse, daria pelo menos um like pra cada capitulo desse vídeo. MUITO BOM.
Bom demais, sempre com conteudo otimo e fora da curva, vlw
Akita, parabéns pelo conteúdo!
Finalmenteeee, saiu!!! . A madrugada rendeu hehe.
Meu deus. Se meus professores de ciência de dados fossem assim. Parabéns pelo conteúdo. De primeira linha. Por favor não pare de ensinar. 📖
Show de bola, queria ouvir algo muito bom, caiu pra mim como água no deserto. Muito obrigado Akita.❤ Ótimo conteúdo.
Canal que procura os fundamentos de forma geral....profundamente, sempre se preocupando nós fundamentos,no que está acontecendo por baixo....enfim...canal diferenciado
que video show de bola... pqp... Akita eh phoda mano!!
Novamente um incrível e informativo vídeo, não decepciona de forma alguma!
Um detalhe interessante a acrescentar, é que *muitos tipos de índices são principalmente uma troca de armazenamento por velocidade, juntamente com a velocidade de escrita, quando você resolve indexar um dado você está essencialmente fazendo algo como um pré-processamento eficiente do que viria a ser a necessidade de um fullscan no futuro, e armazenando isso em disco, convertendo tempo em espaço, é um detalhe incrivelmente interessante sobre índices que são um tipo de paixão secreta minha.
Toda vez que eu termino um vídeo inteiro do mestre Akita, saio com a cabeça doendo kkkkkk monstro.
Akita, faz uns meses que assisti o vídeo "Guia definitivo de aprendendo a aprender" e vc comentou sobre a 42 e eu adorei o que vc comentou sobre a metodologia da escola pesquisei tudo sobre a escola depois desse vídeo, moro a 4 anos no Porto em Portugal e só havia 42 em Lisboa, até que descobri por um anuncio no Instagram que eles acabaram de chegar ao porto e em Julho vai ter a primeira PISCINE, me inscrevi, fiz os testes online passei e vou fazer a visita a escola (Check-in) em junho.
Obrigada, aquele vídeo realmente abre muito a mente, para os que buscam isso.
Muito legal akita, você conseguiu combinar o que aprendemos nas materias da faculdade de Computação:Construção de Compiladores junto com Banco de dados.
Claro que de uma forma resumida, mas bem completa.
Parabéns por trazer conteúdos assim. Sensacional.
O vídeo que eu estava esperando
Rapaz. Se superou , kkkk; Parabéns sempre!
Aquele like e comentário no inicio do vídeo de lei porque o cara merece!
Vídeo sensacional, Akita traz a TI raiz!
Baita aula sempre!
1:12:30 Deveria ser a intro do video Kkkk Percebe-se o esforço incrível para entregar este conteúdo foda demais! Parabéns, sensacional!
Parabens pela dedicação !Eu também desenvolvi um banco tipo Nosql.Gosto muito desse assunto.
Quando mestre Akita abre a boca pra falar, é procurar um local silencioso, focar completamente nas suas sábias palavras, delicia-las e agradecer pelo serviço prestado por esse CANAL MARAVILHOSO. OBRIGADO, Akita.
Ups! Finalmente um vídeo de Akita pra aquecer o coração.
Amooo seu trabalho akita!!! É uma aula de faculdade, que nem na faculdade tem. 🔥🔥🔥 vou continuar muito focado nos estudos!!!
Muitos conceitos novos, nunca entendo de primeira as aulas do Akita kkk, só depois de pesquisar os conceitos da aula por partes finalmente eu consigo compreender o video inteiro.
Vídeos com conteúdo de alta qualidade e referencia de animes, não tem pra que melhor
Sei que o Akita deve ouvir muito isso e sei que ele faz o vídeo primeiro pra si. Mas sempre saio mais motivado pra aprender mais, nos seus vídeos Akita. Por isso muito obrigado por nos deixar percorrer essa trilha de conhecimento com voce.
A-U-L-A ! Fantástico vídeo com exemplos reais pra brincar na base diretamente.
Gostei da junção com o JS assim, temos um front end pra "enxergar" a brincadeira.
O final com os erros, só que grava mesmo sabe a bucha que é... hehehe...
O Like de sempre Akita ! 👍
Comecei PostgreSQL agora e esse video deu um overview fodástico sobre o funcionamento de um DB, clareou muito sobre o que exatamente acontece quando escrevo os comandos. Como sou autodidata ainda preciso comer muito feijão, mas assim que eu estiver apto, vou implementar esse projeto em Java. Akita, você é foda, obrigado!
Bróder, sem esses bloopers no final, te ouvir mesmerizado em 1.5x seria uma experiência irrecuperável pra mim. Que pancada, tem muita coisa aí pra absorver!!! Excelente sua síntese, incrível mesmo. Você é um grande educador. Muito obrigado!
Vlw Akita mais uma vez vc deu show
Parabéns Fabio. Cara seu conteúdo e muito denso. Estou estudando para gerenciar alguns dados como tenção, watts e id de clientes. Isso será implementado em kits de conversão para carros e motos a combustão em elétricos.
Like dado com gosto... Perfeito!
Baita aula. Ajudou demais!
Muito bom Akita, o começo estava muito massivo, mas sabia que se ficasse até o final iria aprender várias coisa, gosto da forma como você apresenta árvores e de certa formas elas tem muito em comum com grafos, seria legal falar um pouco sobre BD em grafos tbm. vlw!!!
PQP eu amo esse conhecimento BTS! Parabéns pelo conteúdo ele me ajudou um monte a ver como funciona um SQL. Embora tenha q rever algumas vezes para entender de fato. kkkkkk
Excelente vídeo como sempre... interessante sua abordagem de SQL... certamente é mais fácil entender como funciona do que ler a tese de 72 do Dr. Egdar Codd sobre modelos relacionais. Interessante que antes de passar para banco de dados e sem conhecer muita coisa, eu fiz em C um catálogo das minhas fitas K7 do jeito mais tosco possível gravando em arquivo texto, e hoje percebo como você codifica demais se não sabe as estruturas básicas (que hoje são usadas pelos frameworks).
Esse cara é o unico (um dos unicos) que não so explica o superficial
Tentando comentar enquanto assisto a parte final... impossível kkkkkkkkkkk
Valeu, mestre! Assisti aos vídeos sobre árvores (acho que todos do canal, rs), mas realmente agora ficou tudo mais claro! Vou atrás do livro de algoritmos pra entender a fundo os conceitos.
47:28 kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk.
Sensacional o vídeo Akita, a espera de mais videos sobre banco de dados, (uma serie talvez como a de redes só que falando dos paradigmas de banco? 😃)
Muito bom o vídeo Akita, eu queria até um pouco mais kk e não esquece de beber água hein!!
Mais um inscrito! nota 10 para Akita-san.
Que aula! Parabéns!
Cara que conteudo perfeito!!!
Vc é Bruxo?
Muito divertido esse video, adorei, estava estudando sobre Javascript e Banco de dados e esse videocaiu como uma luva !!
Parabéns pelo video !!!
Sensacional! 💥
O que eu gosto do Akita que é negócio é 0 ou 1 sem mimi e conteúdo técnico de qualidade, diferente de muitos estrelinhas aí do youtube que só falam mais do mesmo. Parabéns!
Ótimo vídeo, o final é hilário, kkkk...
Formato sensacional!
Excelente explicação, pelo menos até onde consegui entender, mas me deu vontade de estudar todo o resto que não entendi, me inscrevi e vou acessar quando for menos limitado ...
Bem show a camiseta! O conteúdo é bonus! rs
kkkk demais esse final. É bom saber que o Akita é humano.
Fabio Akita pode ser duro mas fala muita verdade que nós iniciantes precisamos.
Esse video é especial para mim porque voltei a estudar Mysql para melhorar os meus conhecimento, Meu objetivo é tornar bom Backend.
TOP D++ (ainda vou assistir, mas ja sei que é top)
O cara não erra, Akita sempre entregando 100%!!
Ajudou pra caramba pra ter uma noção de que não sei nada sobre Banco de Dados...preciso assistir esse epsódio umas 3 vezes pra juntar. as partes que eu acho q entendi
Pqp ainda nem terminei de ver o vídeo e já digo, estava ansioso pela chegada desse dia, Akita falando de BD ❤️
Eu me rachei com as referências nos nomes... 🤣 Já vi que o vídeo será bom.
Novamente, excelente vídeo e o final demonstra o quão ruim são os efeitos do cigarro!!! rsrsrsrs... Brincadeira!!! Sucesso!!!
Achei muito bom! Obrigado !!!
puts, precisava desse video.Obrigado.
Apesar de ser na pegada pra DEV, todo DBA deveria assistir esse vídeo umas 3X pra entender como funciona o seu ganha-pão! Valeu Akita!
1:12:42 "E o que é isso que eu to fazendo ... lá lá lá ..." 😂
Mais um excelente vídeo! Valeu Akita.
Esse vídeo me deu uma ideia pra um projeto que tinha que fazer pra faculdade. Vou fazer um gerenciador de banco de dados usando Haskell.
Muito obrigado Akita.
O final do vídeo, fenomenal, eu to rindo tanto que até os carrinho tão doendo,, nunca imaginei o Fabio largando um "pqp" kkkkkkkkkkk