Dica do Mês – Elaborando um rodízio de alunos para volta as aulas na pandemia através do Microsoft SQL Server 2019

Conheça como através do Microsoft SQL Server 2019 ou versões anteriores podemos criar um rodízio de alunos nas salas de aula.

Olá, muito bom dia, em especial a você amante de banco de dados relacional, principalmente ao Microsoft SQL Server.

Que bom lhe encontrar aqui em mais um post da sessão Dica do Mês, a qual está passando por algumas mudanças de layout e dinâmica no seu conteúdo para tentar neste momento em que estamos todos em casa oferecer algo mais simples, prático e direto as suas necessidades, tornando a leitura mais direta.

Você já deve ter notado em posts de outras sessões, algumas novidades, como o uso de imagens que se relacionam com o tema, a possibilidade de download do conteúdo do post em arquivo .PDF, o acréscimo da sessão links relacionados ao tema, enfim, alguns ajustes e melhorias que vão sendo realizados ao longo do tempo, de acordo com as sugestões, críticas e observações enviadas diariamente pelos mais de 1200 seguidores aqui presentes neste momento.

Para os posts da sessão Dica do Mês, você vai observar outras novidades, além do conteúdo compartilhado em arquivo .PDF, em adicional uma versão do código fonte compartilhada no formato .TXT, em paralelo a este conteúdo disponibilizado para que você possa trabalhar offline, os códigos fontes aqui presentes no post, serão publicados no formato de imagens (no post versão web, já o arquivo no formato .PDF terá todo o conteúdo do código fonte adicionado no formato original), contendo números de linhas de forma sequência, ao invés de postados de forma separada em blocos de código que as vezes se tornam ilegíveis ou de difícil compreensão, por fim, o uso das imagens é uma forma de lhe proporcionar uma navegação mais limpa, colorida e organizada.

Entretanto, o post continuará sendo dividido com pequenas subdivisões, mas com novas nomenclaturas, dentre elas destaco: Introdução, Materiais e Métodos, Resultados e Conclusões, etc… Enfatizo também o surgimento da subdivisão Código Fonte que vai contemplar a apresentar de todo código fonte em uma única área do post.

Outra mudança já implementada foi a remoção das costumeiras enquetes que antes eram sempre adicionadas ao post como uma forma de contar com a sua participação.

Então vamos em frente! Seja bem-vindo ao post – Elaborando um rodízio de alunos para volta as aulas na pandemia através do Microsoft SQL Server 2019.


Introdução

Estamos vivendo um momento em que toda população mundial está tendo que se adaptar devido as mudanças provocadas pelo já tão falado e temido COVID-19, eu mesmo venho em vários posts debatendo sobre este assunto.

O post de hoje surgiu da necessidade da minha esposa Fernanda Galvão, a qual neste momento está exercendo a função de Diretora Pedagógica na escola em que trabalha aqui na cidade de São Roque, interior do Estado de São Paulo. Dentre o conjunto de responsabilidades, a criação do Rodízio de Alunos é uma das atividades mais importantes para este momento.

De acordo com o conhecimento que ela possui, limitando-se as regras da Secretaria de Educação, Secretaria de Saúde e principalmente respeitando os protocolos criados para se combater e prevenir o Covid-19.

Começamos a criar diretamente no Microsoft Excel toda estrutura base, levando-se ao pé da letra, questões como o número de alunos que devem ir presencialmente a escola, em conjunto com os demais que estão em casa.

Olhando um para o outro, tivemos a real sensação que o buraco começou a ficar mais profundo, complexo e até mesmo cansativo para ser construído manualmente, devido a quantidade de alunos existentes na Escola, ainda mais a forma de se estabelecer a quantidade de dias presentes, foi então que ela com o seu jeitinho me falou: “Pe você não poderia me ajudar, será que não seria possível criar algo que já montasse o rodízio mensal e depois eu somente deixava ela bonitinho….”. E pra variar não tem como falar não!

Não é mesmo…. kkkkkkkkkk

Desta forma, pensei em porque não elaborar algum tipo de código, algoritmo ou até mesmo função que fosse possível definir os alunos e seus respectivos dias da semana, de acordo a regra:

  • Semanas 1, 3 e 5 – Dias da Semana: Segundas, Quartas e Sextas-Feiras;
  • Semanas 2 e 4 – Dias da Semana: Terças e Quintas-Feiras.

Em adicional, para se estabelecer de forma mensal um rodízio justo para todos, estabelecemos outra regra condicional:

  • Semanas 1, 3 e 5 – Alunos com números impares de acordo com a lista de presença; e
  • Semanas 2 e 4 – Alunos com números pares de acordo com a lista de presença.

De posse destas definições e outras considerações foi definida a elaboração do Rodízio, implementado basicamente como:

  1. Mensal, considerado somente os dias úteis da semana;
  2. O dia base da semana sendo sempre a segunda-feira, independente da data;
  3. Consideração o período de cinco semanas para todo mês; e
  4. A demarcação do dia em que o aluno vai para escola informado através da letra “X” e o dia em que se encontra em cada em branco.

 

No que se refere aos resultados e forma de apresentação, estarei abordando posteriormente.

             

Rodízio de Alunos

Pelo menos até o final do mês de fevereiro, as escolas da rede municipal de São Paulo vão continuar funcionando com apenas 35% da capacidade de alunos. Segundo o Estadão apurou, o poder municipal vai reavaliar esse porcentual apenas no início de março. Até lá, vale a regra dos 35%.

De acordo com decreto do governador João Doria (PSDB-SP), as escolas podem receber até 70% de alunos quando as cidades estiverem na fase amarela do plano de flexibilização da quarentena. A partir de segunda-feira, dia 8, a capital paulista ingressa exatamente nesta fase. Os municípios que discordam do avanço na flexibilização precisam publicar decretos informando uma eventual restrição. No dia 27 de janeiro, decreto municipal fixa em 35% a capacidade máxima de alunos.

Em nota ao Estadão, o poder municipal informa que “a cidade permite, neste momento, capacidade máxima de 35% até que as autoridades de saúde permitam a ampliação”. A intenção da prefeitura de São Paulo é “segurar” o porcentual de 35%, mesmo diante da pressão de representantes das instituições particulares.

A volta às aulas ocorre em meio à segunda onda da pandemia de covid-19 no Brasil. O Estado de São Paulo registra nesta sexta-feira, dia 5, o total de 54.324 óbitos e 1.833.163 casos confirmados durante toda a pandemia. Por isso, o posicionamento da Secretaria de Saúde será fundamental na decisão da prefeitura. “As diretrizes para abertura das escolas da rede municipal estão sendo pautadas por estudos realizados pelas autoridades de saúde, como os inquéritos sorológicos”, diz outro trecho da nota da prefeitura.

Rede estadual

As aulas presenciais nas escolas da rede estadual paulista começam nesta segunda-feira, em sistema de rodízio. Cada unidade poderá definir como vai realizar o rodízio e a presença dos estudantes será opcional. Mas o sindicato dos professores aprovou na sexta-feira uma greve contra o retorno. Segundo a Apeoesp, a decisão teve apoio de 81,8% dos professores.

O retorno foi adiado em uma semana. Segundo o secretário estadual da Educação, Rossieli Soares, o adiamento foi definido para facilitar o planejamento das escolas. Rossieli também retirou a obrigatoriedade de os alunos frequentarem as aulas na escola. O retorno passou a ser facultativo nas fases laranja e vermelha.

Vamos avançar mais um pouco em nosso post, conhecer os Materiais e Métodos vamos utilizar para construção do nosso cenário de testes e aplicação do Rodízio de Alunos.


 

Materiais e Métodos

Como de costume em todas as dicas do mês tenho sempre o cuidado em elaborar um cenário de uso simples e específico para demonstrar como podemos fazer uso de determinadas funcionalidades e características existentes no Microsoft SQL Server sem provocar qualquer tipo de impacto ao seu atual ambiente, este foi e sempre será o meu compromisso.

Destaco a seguir, todos os recursos e configurações necessárias para a construção e execução do post, com uma abordagem, simples e enxuta.

Materiais:

  • Instância ou        Servidor          SQL      Server instalado         Localmente, Virtualizado       ou  Cloud;
  • Utilização do SQL Server Management Studio ou Azure Data Studio;
  • Utilização do Microsoft Excel 2016 ou 2019;
  • Acesso ao banco de dados Master;
  • Permissão para criação de tabelas; e
  • Permissão para alteração do idioma do usuário em tempo de execução.

Métodos:

  • Criação do banco de dados Aulas;
  • Criação da Tabela Alunos;
  • Inserção de dez linhas de registros lógicos na tabela Alunos;
  • Atualização dos dados armazenados na coluna NomeAluno existente na Tabela Alunos;
  • Definição das CTEs:
    • CTECalendarioMensal;
    • CTEDiasDaSemana;
    • CTESemana1;
    • CTESemana2;
    • CTESemana3;
    • CTESemana4; e
    • CTESemana5.

Código Fonte

A seguir apresento todo código fonte elaborado diretamente no Microsoft SQL Server 2019 através do uso do SQL Server Management Studio 18.7.1 e testado também no Azure Data Studio release de Janeiro 2021:

Observação: Aqui estão os trechos de código fonte elaborados para este post, os quais como eu já destaquei também serão compartilhados em sua integra e formato original no arquivo em .PDF e .TXT.

Estamos caminhando para o término do nosso post, agora vamos conhecer os resultados obtidos após a execução do código fonte aqui compartilhado.

 

Resultados

Seguindo neste novo formato que estou adotando deste o post anterior, você vai poder observar os resultados obtidos após o processamento do código fonte compartilhado acima.

Para ilustrar e elucidar o que o Microsoft SQL Server nos apresentou de resultado, estarei fazendo uso do Microsoft Excel como recurso adicional de exportação do resultado gerado pelo Management Studio, conforme apresentam as Figuras 1 e 2 respectivamente abaixo:

Figura 1 – Rodízio de alunos elaborado e exportado para o Microsoft  Excel.

Figura 2 – Rodízio de alunos apresentado no Microsoft SQL Server Management Studio.

Importante: Gostaria de destacar que a  forma de apresentação dos dados, em adicional as nomenclaturas adotadas, estão respeitando as regras utilizadas pela Escola a qual minha esposa trabalha.

Como já abordado anteriormente, a escolha de quais os alunos devem inicialmente ir para Escola e quais devem ficar em casa, foram tratados como requisitos obrigatórios neste momento para elaboração desta primeira versão do rodízio, sabendo-se que a cada nova deliberação do Governo do Estado de São Paulo, teremos da necessidade de se adotar outras regras e definições para criação de um novo rodízio.

Para este momento foi aplicado a chamada regra: 3 por 2, três dias presencialmente na escola e dois de forma remota. No mais, todo código aqui implementado poderá ser adaptado as outras estratégias de rodízio, dentre elas: 2 por 3, 4 por 1 ou 2 por 2.


Em suma, chegamos ao final deste post, espero para que você tenha gostado, do que foi compartilhado. Ressalto que o mesmo surgiu da necessidade de se tentar de forma rápida estabelecer um recurso computacional capaz de automatizar esta necessidade.

Todavia, esta é a primeira versão considerada usual, todo ambiente para alimentar o banco de dados com os dados de alunos, turmas, horários, professores, enfim todo ambiente Escolar está sendo criado, que posteriormente será incorporado a este código.

 

Versão em PDF e TXT

Agora você vai poder também baixar este post diretamente para seu device, fazer uso do mesmo no momento em que desejar, o qual poderá ser compartilhado livremente ou impresso.

Basta clicar nas opções de imagens abaixo para escolher o formato do arquivo desejado:

 

 

Por questões de compatibilidade com a plataforma WordPress, o arquivo .txt foi renomeado, também o acréscimo da extensão .docx, sendo assim, após a realização do download a mesma deve ser removida.

Referências

  1. https://docs.microsoft.com/pt-br/sql/t-sql/queries/with-common-table-expression-transact-sql
  2. https://docs.microsoft.com/en-us/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-ver15
  3. https://docs.microsoft.com/en-us/sql/t-sql/functions/datename-transact-sql?view=sql-server-ver15
  4. https://docs.microsoft.com/en-us/sql/t-sql/functions/datepart-transact-sql?view=sql-server-ver15
  5. https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql?view=sql-server-ver15
  6. https://docs.microsoft.com/en-us/sql/t-sql/functions/month-transact-sql?view=sql-server-ver15
  7. https://docs.microsoft.com/en-us/sql/t-sql/functions/year-transact-sql?view=sql-server-ver15
  8. https://docs.microsoft.com/en-us/sql/t-sql/functions/concat-transact-sql?view=sql-server-ver15
  9. https://docs.microsoft.com/en-us/sql/t-sql/functions/replace-transact-sql?view=sql-server-ver15

             

Posts Anteriores

  1.  Dica do Mês – Conhecendo o Intelligent Query Processing através da Scalar User Defined Function Inlining no Microsoft SQL Server 2019 – Junior Galvão – MVP – Data Platform (wordpress.com)
  2. https://pedrogalvaojunior.wordpress.com/2020/01/30/dicadomesconcatenandoarelacaodemunicipiosporestadosatravesdousodafuncaostuff/
  3. https://pedrogalvaojunior.wordpress.com/2019/09/29/dicadomesidentificandoosnumerosausentesemumasequencianumerica/
  4. https://pedrogalvaojunior.wordpress.com/2019/05/28/dicadomesanalisando-ocomportamentodocomandodbcccleantable/
  5. https://pedrogalvaojunior.wordpress.com/2019/03/27/dicadomesaplicandoanalisecombinatorianomicrosoftsqlserver/

Conclusão

Mais uma vez fico surpreendido com toda a capacidade de processamento, flexibilidade e principalmente o potencial existente na linguagem Transact-SQL, a qual nos permite implementar as mais diversas formas se encontrar possíveis soluções ou adaptações as necessidades do dia-a-dia.

Este é o fantástico Microsoft SQL Server, produto tão fascinante que a cada dia eu não consigo deixar de querer estudar, que nos possibilita aprender sempre, transformando conceitos e conhecimentos bem difundidos em fontes de sabedoria e alternativas modernas para a solução de problemas.

 

Agradecimentos

Agradeço a você por sua atenção e visita ao meu blog. Fique à vontade para enviar suas críticas, sugestões, observações e comentários.

Nos encontramos no próximo post da sessão Dica do Mês a ser publicado em breve.

Um forte abraço.

Até mais.

Autor: Junior Galvão - MVP

Profissional com vasta experiência na área de Tecnologia da Informação e soluções Microsoft. Pós-Graduado no Curso de Gestão e Engenharia de Processos para Desenvolvimento de Software com RUP na Faculdade FIAP – Faculdade de Informática e Administração Paulista de São Paulo. Graduado no Curso Superior em Gestão da Tecnologia de Sistemas de Informação pela Uninove – Campus São Roque. Formação MCDBA Microsoft, autor de artigos acadêmicos e profissionais postados em Revistas, Instituições de Ensino e WebSistes. Meu primeiro contato com tecnologia ocorreu em 1994 após meus pais comprarem nosso primeiro computador, ano em que as portas para este fantástico mundo se abriram. Neste mesmo ano, comecei o de Processamento de Dados, naquele momento a palavra TI não existia, na verdade a Tecnologia da Informação era conhecida como Computação ou Informática, foi assim que tudo começou e desde então não parei mais, continuando nesta longa estrada até hoje. Desde 2001 tenho atuado como Database Administrator – Administrador de Banco de Dados – SQL Server em tarefas de Administração, Gerenciamento, Migração de Servidores e Bancos de Dados, Estratégias de Backup/Restauração, Replicação, LogShipping, Implantação de ERPs que utilizam bancos SQL Server, Desenvolvimento de Funções, Stored Procedure, entre outros recursos. Desde 2008 exerço a função de Professor Universitário, para as disciplinas de Banco de Dados, Administração, Modelagem de Banco de Dados, Programação em Banco de Dados, Sistemas Operacionais, Análise e Projetos de Sistemas, entre outras. Experiência na Coordenação de Projetos de Alta Disponibilidade de Dados, utilizando Database Mirroring, Replicação Transacional e Merge, Log Shipping, etc. Trabalhei entre 2011 e 2017 como Administrador de Banco de Dados e Coordenador de TI no FIT – Instituto de Tecnologia da Flextronics, atualmente exerço a função de Professor Universitário na FATEC São Roque. CTO da Galvão Tecnologia, consultoria especializada em Gestão de TI, Administração de Servidores Windows Server, Bancos de Dados Microsoft SQL Server e Virtualização. Possuo titulação Oficial Microsoft MVP e reconhecimentos: MCC, MSTC, MIE e MTAC.

3 comentários em “Dica do Mês – Elaborando um rodízio de alunos para volta as aulas na pandemia através do Microsoft SQL Server 2019”

Os comentários estão encerrados.