Alura > Cursos de Data Science > Cursos de SQL e Banco de Dados > Conteúdos de SQL e Banco de Dados > Primeiras aulas do curso Engenharia de Dados: Do SQL ANSI ao Mundo Real com MySQL

Engenharia de Dados: Do SQL ANSI ao Mundo Real com MySQL

Fundamentos do SQL Profissional e Introdução ao MySQL - Introdução

Apresentando o instrutor e o objetivo do curso

Olá! Meu nome é Victorino Villa e será um enorme prazer acompanhá-lo ao longo deste curso.

Audiodescrição: Victorino é um homem de pele clara, com cabelo curto e barba. Ele veste uma camisa social e está em um ambiente de escritório com uma estante ao fundo.

Nosso objetivo é levá-lo desde o SQL padrão, o SQL ANSI, até o uso prático e avançado do MySQL, sempre com foco em como o banco de dados realmente funciona no dia a dia da pessoa engenheira de dados.

Revisando fundamentos e configuração do MySQL

Vamos começar revisando os fundamentos, a instalação e a configuração do MySQL, além de esquemas, tabelas, tipos de dados e integridade relacional. Em seguida, entraremos na leitura e agregação de dados, entendendo como extrair informações de forma correta e eficiente.

Explorando joins e consultas complexas

Depois, avançaremos para um dos pilares do SQL moderno: os joins (junções), explorando desde os casos mais simples até consultas mais complexas, envolvendo múltiplas tabelas. Também entenderemos quando e por que usar subconsultas e CTEs (Common Table Expressions ou Expressões de Tabela Comum), aprendendo a organizar consultas complexas sem perder a clareza e o desempenho.

Compreendendo transações e manipulação de dados avançada

Entramos no mundo das transações, concorrência e isolamento, compreendendo como o MySQL garante consistência em ambientes reais. Em seguida, exploraremos a manipulação de dados mais avançada. Veremos as funções de cadeias, numéricas, datas, horas e, claro, JSON no MySQL, incluindo indexação e colunas geradas.

Abordando temas avançados e boas práticas

Por fim, abordaremos os temas que diferenciam quem apenas escreve SQL de quem pensa como uma pessoa engenheira de dados: visões, funções, colunas geradas, o otimizador de consultas, leitura de planos de execução, índices e concluiremos com boas práticas de desempenho.

Concluindo com eficiência e escalabilidade

Ao final deste curso, não apenas saberemos escrever consultas que funcionam, mas também entenderemos como o MySQL executa essas consultas e como torná-las mais eficientes, seguras e escaláveis.

Preparemos o ambiente e acompanhem-nos nos exemplos práticos. Vamos começar mais um curso. Até mais!

Fundamentos do SQL Profissional e Introdução ao MySQL - Do SQL ANSI ao MySQL

Introduzindo o curso avançado de SQL

Bem-vindos. Se chegamos até aqui, provavelmente já completamos o curso de SQL básico e, muito provavelmente, utilizamos o SQLite como ambiente de prática. Isso é excelente, pois o SQLite é simples, portátil e perfeito para conhecermos a linguagem SQL. Agora, vamos começar a entrar no mundo real, o mundo das bases de dados que as empresas realmente utilizam em produção. É aqui que entender a evolução da linguagem SQL se torna fundamental.

Antes de falarmos sobre uma SQL específica, precisamos compreender o ponto de partida, onde tudo começou: o chamado SQL11. O SQL11 é um padrão base que define o núcleo da linguagem SQL, para que todas as bases de dados possam, de alguma forma, falar o mesmo idioma. O SQL11 define o que toda implementação de base de dados que vai usar a linguagem SQL deve ter, como, por exemplo, padronizando os comandos SELECT, INSERT, UPDATE, DELETE, JOINs (junções) básicos, funções essenciais, entre outros.

Explorando as limitações do SQL11 e a diversidade dos bancos de dados

No entanto, o SQL11 não define tudo, e é importante que saibamos disso. O padrão SQL11 não cobre a parte de armazenamento, índices específicos, funções avançadas, otimizações, alguns formatos de data e muitos outros detalhes de desempenho. É precisamente aí que cada base de dados cria seu próprio dialeto SQL. Cada base de dados nasceu com objetivos um pouco diferentes.

Estamos apresentando aqui no slide algumas das bases de dados mais utilizadas no mercado que usam SQL como linguagem nativa. Começamos pelo MySQL, que foi criado para ter velocidade e para a web. O PostgreSQL nasceu para ser uma base de dados robusta e íntegra. Temos o SQL Server, que atende principalmente aos ambientes Microsoft. O Oracle é orientado a missões críticas e transações muito complexas. E o SQLite, que já aprendemos, foca em leveza e simplicidade, sem necessidade de servidor.

Comparando os dialetos SQL e suas particularidades

Todas essas bases de dados que mencionamos falam SQL, mas cada uma com suas próprias funções, tipos, otimizações e alguns comandos proprietários. É como se fossem dialetos diferentes, mas do mesmo idioma. Todos se entendem, mas cada base de dados tem suas particularidades.

Lembremos do SQLite, que já aprendemos. Ele é fantástico para aprender, mas possui limitações importantes, especialmente se quisermos usá-lo como pessoas engenheiras de dados em ambientes reais. Ele não possui um servidor real, não tem autenticação de usuários, permissões, não faz replicação nem particionamento.

Discutindo as limitações do SQLite

SQLite não possui motores otimizados para lidar com grandes volumes de dados, tampouco controles avançados de concorrência, que permitem que dois usuários acessem a mesma informação no banco de dados simultaneamente. Além disso, SQLite não oferece suporte para tipos e funções avançadas, como JSON nativo e datas, e é extremamente limitado em termos de auditoria. É uma ótima ferramenta para começar e ter o primeiro contato com SQL, mas é insuficiente para avançar mais.

Explorando a evolução e o impacto do MySQL

Por outro lado, o MySQL surgiu em meados dos anos 90 e rapidamente se tornou o banco de dados preferido para desenvolvimento web dentro da famosa stack LAMP. A sigla LAMP representa Linux, Apache, MySQL e PHP. Muitas aplicações foram desenvolvidas usando esses quatro produtos em conjunto. Posteriormente, o MySQL passou pela Sun Microsystems e foi adquirido pela Oracle. Nesse momento, surgiu um fork de desenvolvimento chamado MariaDB, pois havia o receio de que a Oracle tornasse o MySQL um banco de dados proprietário. No entanto, isso não ocorreu, e ele continuou sendo um banco de dados aberto. A Oracle acabou criando uma versão Enterprise para quem deseja pagar e ter um suporte diferenciado. Em termos de uso do software, as versões disponibilizadas pela Oracle, tanto a Community, que é livre, quanto a Enterprise, são o mesmo produto.

O MySQL evoluiu bastante após ser adquirido pela Oracle. Ele passou a ter um excelente desempenho, sua administração se tornou mais simples, ganhou suporte massivo para a nuvem e herdou uma comunidade gigantesca de pessoas que já utilizavam esse banco de dados. É um banco de dados que já foi testado em milhares, senão milhões, de implementações em diversas empresas. Atualmente, o MySQL está presente em sistemas transacionais de alto volume, em processos de ETL, onde transferimos dados de uma fonte para um destino, sustentando APIs e microsserviços, e até mesmo lidando com dados semiestruturados, graças ao tipo JSON. O MySQL também possui funções de data e tempo extremamente poderosas, utilizadas em auditorias e no rastreamento de eventos, o que é fundamental para a engenharia de dados.

Concluindo e preparando para a prática com MySQL

Neste momento, já entendemos o que é o SQL ANSI, por que cada banco de dados tem seu próprio dialeto, por que deixamos o SQLite para trás e por que o MySQL é o ambiente perfeito para avançarmos no uso do SQL. Encerramos por aqui; no próximo vídeo, vamos colocar a mão na massa pela primeira vez. Vamos instalar o MySQL, configurar o ambiente e conhecer as ferramentas de acesso. Vamos em frente? Até o próximo vídeo.

Fundamentos do SQL Profissional e Introdução ao MySQL - Instalando e configurando o MySQL

Introduzindo o ambiente MySQL

No vídeo anterior, entendemos por que SQL é tão importante no mundo real e por que será nosso ambiente principal daqui em diante. Agora chegou o momento de criar esse ambiente. Diferente do SQLite, aqui realmente temos um servidor de verdade com autenticação, porta, usuário e permissões. Portanto, antes de iniciar qualquer instalação, precisamos reforçar uma diferença fundamental. SQLite é apenas um arquivo local. Não existe servidor, processo em execução ou usuário. Em contrapartida, MySQL é um servidor de banco de dados completo. Ele abre portas de rede, gerencia memória, autentica usuários, controla permissões e mantém processos trabalhando o tempo todo. Será a primeira vez que teremos acesso a um banco de dados realmente ativo, que funciona como um serviço.

Precisamos escolher qual opção de instalação usar, dependendo do nosso sistema operacional. Podemos instalar MySQL no Windows, macOS, Linux ou Docker, que é um contêiner fechado onde o banco de dados já está dentro desse contêiner. É muito utilizado por pessoas engenheiras de dados, mas no curso não será necessário. O mais importante é saber que vamos instalar dois produtos: um MySQL Server 8 e um MySQL Workbench. O MySQL Server será, claro, o servidor do banco de dados. E o Workbench será o que chamamos de IDE. O IDE é um ambiente de desenvolvimento integrado, projetado especialmente para trabalhar com um banco de dados. O IDE não serve para programar aplicações completas, como por exemplo um VSCode, mas sim para criar, consultar, administrar e modelar bancos de dados de forma visual e produtiva. Existem vários IDEs que se conectam ao servidor MySQL, mas neste curso vamos usar o MySQL Workbench, que é o IDE oficial do MySQL.

Destacando pontos críticos da instalação

Durante a instalação, queremos destacar três pontos críticos. Primeiro, precisamos configurar durante a instalação a porta de conexão. Usaremos a porta 3306, que é o padrão. Segundo, teremos que especificar uma senha para o usuário root. Esse usuário root é um usuário mestre, que pode fazer tudo no banco de dados. E terceiro, precisaremos escolher o plugin de autenticação. O plugin de autenticação é a forma como o MySQL vai armazenar dentro do banco de dados as senhas. Por padrão, vamos escolher o plugin Caching Shadow Passwords, que é mais seguro. Mas existem outros plugins que aparecem como opção durante a instalação. Não se preocupem muito com isso agora. Em breve falaremos mais sobre isso.

Iniciando o processo de instalação

Vamos pausar aqui a apresentação e proceder com a instalação do ambiente. Estamos no navegador, vamos buscar por MySQL Downloads. No primeiro link, MySQL Downloads, na página principal, vamos até o final, onde temos a opção MySQL Community GPL Downloads. Clicamos sobre ela e, dentro das opções de download disponíveis, escolhemos MySQL Installer for Windows. Clicamos nele, escolhemos a versão, sempre a versão 8 e a mais atual que encontrarmos, e vamos baixar o instalador completo. Clicamos no botão de download. Haverá uma página para iniciar sessão na MySQL Community, mas não é necessário. Podemos escolher a última opção: "No thanks. Just start my download." Clicamos nessa opção, escolhemos o diretório onde vamos guardar o download e aguardamos até que o arquivo de instalação seja baixado. Verificamos que já foi baixado na máquina e o executamos. Isso instalará o MySQL Installer, que é um programa que será instalado na máquina, e é através dele que fazemos a instalação dos produtos MySQL. Vamos aguardar um pouco. Pronto.

Configurando o MySQL Installer

Aqui temos a página principal do MySQL Installer. Vamos escolher a opção custom, ou seja, faremos a instalação personalizada. Vamos selecionar os produtos que desejamos instalar. Clicamos em next. No topo, em MySQL Service, vamos escolher o servidor. Em aplicações, selecionamos o MySQL Workbench. Clicamos em next. Instalamos nos diretórios padrão da nossa máquina. Clicamos em next novamente. Ao clicar em execute, vamos instalar os dois produtos. Pronto, clicamos no botão execute. Instalamos o MySQL Server 8 e o Workbench. Vamos clicar em next. Clicamos sobre o MySQL 8 que está aqui. Clicamos novamente em next. Manteremos a porta 3306 como a porta de acesso. Não vamos modificar nenhuma configuração aqui. Clicamos em next.

Finalizando a instalação e configuração

Aqui temos duas formas de armazenamento da senha dentro do banco de dados MySQL, ou seja, o plugin de autenticação. Vamos usar a padrão, que é SHA-256, a que está no topo. Clicamos em next. Vamos inserir a senha do usuário root. Escolham, claro, uma senha fácil para não esquecerem. Vamos clicar em add user. Não, não é necessário. Neste caso, isso seria se quiséssemos adicionar um usuário do ambiente operacional para se conectar ao MySQL. Vamos utilizar o usuário root, então não é necessário clicar nesse botão. Clicamos em next. Aqui está o nome do serviço que será criado em nosso computador. Vamos manter esse nome. Next. Aqui também vamos dar acesso total ao serviço que está sendo executado. Next. E vamos clicar em execute. Pronto. Tudo foi configurado. Vamos clicar em finish. Clicamos novamente em next e finish.

Configurando o MySQL Workbench

Muito bem. O próximo passo agora é configurar o MySQL Workbench. Vamos procurar o Workbench. Já está aqui, instalado em nossa máquina. Aqui temos as conexões que vamos usar. Notem que em nossa máquina há várias conexões já criadas. Por quê? Porque já usamos esta máquina com MySQL para fazer outras conexões. Se instalamos isso em uma máquina limpa, não veremos nenhuma conexão aqui. Então, clicamos neste botão de myzine. Vamos criar uma conexão com um nome determinado. Chamaremos de localhost. O servidor será 127.0.0.1, que é nossa própria máquina. A porta 3306. O usuário root. Clicamos neste botão, store in valve, e inserimos a senha do usuário root que inicializamos na instalação. Correto? Bem, clicamos em OK. Testamos a conexão. Sucesso. Clicamos novamente em OK. Teremos aqui criada nossa conexão para nosso servidor. Clicamos aqui e nos conectamos ao MySQL.

Verificando a instalação e preparando para o uso

Algo que podemos fazer aqui antes de continuar é, nesta área de query, verificar qual é a versão do MySQL que estamos usando. Vamos inserir o comando SELECT VERSION(). Pressionamos "Enter" e clicamos neste botão para executar o comando. Então, veja, estamos com a versão 8.0.44. Assim, nosso servidor está instalado, nosso ambiente está pronto para trabalharmos.

Explorando o uso do MySQL no dia a dia

Agora que nosso ambiente está funcionando, é importante entender onde exatamente o MySQL aparecerá no dia a dia de uma pessoa engenheira de dados. Pode ser fonte de ingestão de dados, destino intermediário, por exemplo. Pode ser usado como um back-end transacional de sistemas. Ou o MySQL pode ser uma base para APIs e microserviços. E é nesse momento que SQL deixará de ser teoria e se tornará prática real. Porque executar consultas em um arquivo, como no SQLite, não representa a vida real. Executar em um servidor, isso sim.

Concluindo a instalação e preparando para o próximo passo

Pronto, já temos um ambiente MySQL instalado, configurado e funcionando. A partir do próximo vídeo, começaremos a usar este ambiente para criar bancos de dados, tabelas, chaves primárias, chaves estrangeiras e finalmente entender como funciona a estrutura do MySQL. Está bem? Então, nos vemos no próximo vídeo. Até mais!

Sobre o curso Engenharia de Dados: Do SQL ANSI ao Mundo Real com MySQL

O curso Engenharia de Dados: Do SQL ANSI ao Mundo Real com MySQL possui 441 minutos de vídeos, em um total de 89 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda SQL e Banco de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas