CodeGym/Cursos Java/All lectures for PT purposes/Conhecimento avançado de banco de dados

Conhecimento avançado de banco de dados

Disponível

1.1 Princípio de construção de palestras

Você e eu começamos nosso conhecimento com bancos de dados de baixo para cima . Esta é uma característica da minha abordagem pessoal para ensinar as pessoas. Ao falar sobre novos temas, sempre digo primeiro como usar determinadas ferramentas na prática. E já quando sei que uma pessoa sabe usar, começo a contar como tudo funciona.

Existem várias razões para esta abordagem, mas a principal delas é que o recurso mais valioso e mais ausente no processo de aprendizagem é a motivação do aluno .

Essa abordagem é um pouco diferente daquela a que estamos acostumados, que é usada em escolas e universidades. Mas tudo está claro: quando você estuda na escola ou na universidade, você tem as prioridades certas: estudar é a coisa mais importante da vida neste momento.

Se você está engajado na autoeducação na idade adulta, muitas vezes já precisa combinar seus estudos com trabalho, tarefas domésticas, cuidado de crianças ou pais idosos. E aqui muitas vezes o estudo não será a primeira prioridade.

É tudo uma questão de prioridades. Existe até esse conceito no mundo das startups - Fail Fast, falhe o mais rápido possível . Parece estranho, mas na verdade faz muito sentido: a tarefa de uma startup é verificar rapidamente se sua hipótese está correta. E se não for verdade, então você não precisa gastar anos da sua vida nisso, é melhor entender o mais cedo possível que não há demanda para determinado serviço ou produto.

Ao ensinar Java e SQL, uso a mesma abordagem: dou a você a oportunidade de entender o mais cedo possível se você está com pressa de programar ou não . Se você gosta de programar e conseguiu descobrir sozinho como trabalhar com loops e arrays, então, com a ajuda de mentores e um programa bem elaborado, você tem todas as chances de concluir seus estudos e encontrar um emprego.

Mas outro fato não é menos importante: em alguns dias de folga, você pode entender que programar não é para você. Você pode simplesmente não estar interessado nisso, e tudo bem . Então, você não precisa gastar meses de sua vida nisso.

Apenas 40% dos egressos atuam na especialidade que receberam na universidade. Pense bem, as pessoas estudaram de 5 a 6 anos e 60% delas decidiram não trabalhar em sua especialidade. Sim, parte do conhecimento adquirido ainda é usado, mas cerca de metade não.

Este é o valor do conceito Fail Fast - entender o mais cedo possível que uma certa profissão, uma certa pessoa ou um certo hobby não é adequado para você. E não desperdice seu tempo e energia com eles. A longo prazo, esta é uma estratégia muito boa.

1.2 SQL e tudo, tudo, tudo

Terminamos a introdução filosófica, vamos voltar a aprender SQL.

Linguagem SQL e DBMS são coisas ligeiramente diferentes. A própria linguagem SQL é uma espécie de padrão que descreve o que pode ser escrito em consultas SQL ao banco de dados. Os DBMS já são implementações deste padrão. Alguns DBMS implementam algumas funções do padrão, o segundo - outros e assim por diante.

Quanto mais caro o DBMS, mais recursos do padrão ele implementa. Além disso, muitos DBMSs geralmente implementam seus próprios recursos exclusivos fora dos padrões SQL. Às vezes, isso leva a problemas de portabilidade: consultas SQL escritas para um DBMS podem não funcionar bem para outro.

Java também tem uma situação semelhante. Se um programa Java for escrito no Windows, ele não funcionará normalmente no Linux. Para resolver esse problema, Java introduz classes especiais que possuem diferentes implementações para diferentes sistemas operacionais. Exemplo: classe Path que possui implementações de WindowsPath, LinuxPath, etc.

A segunda parte do problema é resolvida com a ajuda do controle de versão. Todas as inovações bem-sucedidas de diferentes idiomas ou DBMS são adicionadas ao novo padrão JDK ou SQL. Você já sabe que existem diferentes versões do JDK, e quanto mais nova a versão, mais recursos ela possui. É o mesmo com o SQL.

Na linguagem SQL, existem diversas versões de seu padrão, que são nomeadas por ano:

  • SQL:1999
  • SQL:2003
  • SQL:2006
  • SQL:2011
  • SQL:2016
  • SQL:2019

Boas notícias : não estudaremos esses padrões. Em primeiro lugar, levará anos para estudar e dominar tudo isso. E em segundo lugar, esses padrões são como versões do Android: apenas 5 a 10 anos após o lançamento, o padrão se torna amplamente difundido.

Em bancos de dados com grandes quantidades de dados, as pessoas precisam de confiabilidade e estabilidade. “Funciona, não mexe” é o lema de todos que trabalham com banco de dados. E a transição para uma nova versão dos bancos de dados é feita a cada 5 anos, quando todas as vantagens dessa solução já são óbvias.

1.3 Além dos colchetes

Como eu disse acima, leva anos para se tornar um profissional de banco de dados. Um profissional sabe muita coisa que a gente não vai estudar. Mas falarei um pouco sobre o que mais está nos bancos de dados.

Quase todos os bancos de dados modernos suportam:

1 Linguagem Processual (PL)

O RDBMS oferece suporte à capacidade de escrever procedimentos e funções que são executados no SQL Server e pode fazer muitas coisas com os dados durante as consultas. Por exemplo, uma vez escrevi consultas PL SQL para o servidor Oracle, que em resposta à consulta gerou ... uma página HTML com dados. Sim você pode.

2 eventos (gatilhos)

Todos os SGBDs modernos suportam o mecanismo de eventos, que são chamados de gatilhos na linguagem SQL. Um gatilho ocorre como uma resposta a alguma ação. Por exemplo, você pode interceptar todas as tentativas de gravação no banco de dados e adicionar a hora exata de sua alteração em novas linhas.

3 Registro

Os bancos de dados modernos tentam ser super rápidos, então todas as alterações (novas linhas, linhas excluídas, linhas alteradas) são primeiro gravadas em um arquivo especial chamado log. E somente depois de algum tempo, o servidor SQL mesclará esses registros com o banco de dados principal.

De certa forma, isso é semelhante ao comportamento do Garbage Collector em Java: ele também simplesmente marca os objetos como excluídos no início e executa a limpeza e otimização da memória durante os tempos ociosos.

4 plugins

Para o DBMS, assim como para muitos programas, você pode escrever seus próprios plugins. Esses plug-ins permitem adicionar tipos de dados exclusivos, funções para trabalhar com eles ou alterar o comportamento padrão do DBMS. Isso é especialmente útil quando você trabalha com um banco de dados de código aberto e há alguns bugs.

5 Trabalho distribuído (clusters)

Um cenário típico para um servidor SQL moderno é um cluster de vários servidores. A opção mais simples é quando os dados são gravados em um servidor e lidos de um grupo de servidores. Nesse caso, você pode configurar vários cenários para sincronização de banco de dados entre servidores SQL.

6 Fragmentação

Quando há muitos dados, eles começam a ser divididos em diferentes bancos de dados. Até o fato de que uma tabela pode ser armazenada em partes em diferentes bancos de dados.

A fragmentação pode ser vertical e horizontal. A fragmentação vertical significa que a mesa é, por assim dizer, cortada por linhas verticais, enquanto a fragmentação horizontal é cortada em linhas horizontais.

Por exemplo, decidimos dividir todos os dados da tabela por anos: para 2019 - uma tabela, para os dados de 2020 - a segunda e assim por diante. Isso será fragmentação horizontal.

7 empurre o não empurrão

Em um determinado estágio do desenvolvimento dos bancos de dados, cada vez mais lógica de negócios começou a ser adicionada a eles. Tudo começou com procedimentos, funções, geração de páginas da Web por servidores e terminou com a adição de suporte para quase todas as linguagens populares ao DBMS: Python, JavaScript e até Java e C ++.

Parece legal até você começar a entrar nos detalhes: você realmente quer escrever a lógica de negócios da sua aplicação web em Java, que será executada dentro de um servidor SQL, onde não há JDK, bibliotecas java, frameworks, pouca memória e muito outras restrições?

Comentários
  • Populares
  • Novas
  • Antigas
Você precisa acessar para deixar um comentário
Esta página ainda não tem nenhum comentário