Categories
UoPeople

Por que Databases 1 é essencial?

Muito da motivação humana vem da curiosidade. Percebemos o mundo e tentamos entendê-lo. Por que as coisas caem? Por que o sol brilha? Objetos visualmente chamativos costumam atrair a atenção. Lembro de ter fascínio pela água desde criança, especialmente os reflexos da luz do sol na superfície. Uma das minhas primeiras memórias é pulando na piscina sem ninguém ver e simplesmente afundar. No meio do susto e do turbilhão de bolhas surge o rosto da minha mãe me segurando nos braços e falando: “é fundo!”.

Minha consciência infantil não levou em consideração que eu não sabia nadar, muito menos que minha mãe me observava atentamente, prevendo meus movimentos inconsequentes e preparada para reagir ao primeiro sinal de perigo. Isso permitiu que eu explorasse o mundo, oferecendo redes de proteção quase invisíveis para garantir minha segurança.

Conectar essa história com a matéria de base de dados parece dramático, mas acredito em associação livre e foi a memória que surgiu quando comecei a escrever. Bases de dados são fundamentais para o mundo e elementos-chave para manter sistemas importantíssimos funcionando. São estruturas que trabalham pesado para armazenar dados e garantir a integridade dos milhões de sistemas essenciais para a manutenção frenética da sociedade moderna. Os detalhes que compartilharei a seguir demonstram de forma inconteste que Databases 1 é essencial no curso de Ciência da Computação.

Na University of the People temos aqui a introdução dos conceitos fundamentais envolvendo o design, uso e implementação de sistemas de base de dados. O foco é em base de dados relacionais e na linguagem SQL (Structured Query Language). Para mim esse é um dos cursos mais práticos do currículo. Quem já leu minhas avaliações anteriores conhece minhas críticas sobre a organização de alguns cursos. Databases 1 é uma exceção positiva.

A distribuição do peso das notas segue um modelo mais distribuído. Os Learning Journals têm 10%; Discussion Assignments com 20%; Programming Assignments 20%; Graded Quiz com 20%; e o Exame Final nos 30%. Isso reforça a importância de participar ativamente em todas as unidades, mas também em distribuir o esforço adequadamente em todas as tarefas. Faz bastante diferença na nota final, mas principalmente em como absorvemos o conteúdo.

O curso não exige uma solução de base de dados específica, sendo aberto para o uso do OpenOffice Database, DB2, MySQL, Oracle Express, ou outro da sua escolha. Ainda assim, o OpenOffice é diretamente citado em alguns materiais e, por ser mais acessível, costuma ser o escolhido pela maioria dos colegas. Outro fator importante e que sempre reforço aqui, é o fato do OpenOffice ser software livre. Familiarizar-se com soluções de software livre é essencial para realizar projetos escaláveis e acessíveis, então costumo priorizá-los. A única crítica dentre os programas recomendados é sobre o Dia, ferramenta para criar gráficos de relacionamento de entidades (ER). É um programa antigo, desatualizado e para usuários de Mac a compatibilidade é sofrível. Mesmo assim, acabei utilizando o programa sob o mesmo argumento do OpenOffice (software livre). Dá pro gasto.

A primeira tarefa de programação começa com a criação de um banco de dados para uma biblioteca. Os trabalhos vão evoluindo a partir daí, relativamente conectados com a unidade anterior. Acho que a universidade deveria explorar mais esse modelo de projeto contínuo nos cursos. O Learning Journal, por sua vez, é simples: O que você aprendeu, o que surpreendeu, desafios e quais são as aplicações práticas do que está sendo visto. Essa parte foi fácil já que no meu dia-a-dia na Houzz usava bastante Metabase e Sequel Pro, então sempre dava pano pra manga.

Databases 1 não exige preparo específico, nem é especialmente desafiador em termos teóricos. De qualquer forma, para dar uma ideia mais detalhada do conteúdo, destaco abaixo em forma de lista os principais assuntos mais ou menos na ordem em que aparecem ao longo das semanas, dessa forma cada um pode julgar por si:

  • Modelo informacional: o nível abstrato das entidades, suas propriedades e relações.
  • Atributos, conceito de valor atômico (impossível de decompor), propriedades dos bancos de dados relacionais, Tuples, IDs, chave-primária, chave-secundária, chave-substituta e chave artificial.
  • Álgebra relacional: união, intersecção, diferença, seleção, junção (join). Sugiro o tutorial SQL na W3Schools para explorar esses conceitos.
  • Entity integrity constraint, referential integrity constraint, semantic integrity constraint, domain constraint, null constraint, unique constraint etc. Série de limitações teóricas importantes de entender para configurar uma base de dados relacional.
  • Normalização (1-3 Normal-Forms) e Boyce-Codd Normal Formal. Procedimento com o objetivo de tornar bases relacionais mais robustas e menos redundantes, evitando anomalias de inserção, remoção e atualização.
  • Definição de DDL (Data Definition Language), DML (Data Manipulation Language), e DCL (Data Control Language) em SQL.
  • Em SQL: Select, Group By, Cursor, Delete, Where, Join, Union, Set, operadores lógicos, operadores de strings, operadores comparativos, agregadores (Count, Sum, Average, Minimum, Maximum), Having, Between, Order By, In, Like, Wildcards.

Essa lista dá apenas uma ideia geral dos tópicos abordados. O interessante é que eles são bem organizados ao longo do curso, então as 8 unidades são fluídas. Diria que o ritmo de estudo fica mais intenso a partir da unidade 4, mergulhando fundo na teoria de bases relacionais e rapidamente seguindo por SQL nas unidades seguintes. É a partir da unidade 5 que começam as primeiras questões sobre SQL nos Self e Graded Quizzes. Para mim, os tópicos mais difíceis nos exames foram os “Normal Forms”, algumas questões de álgebra relacional e outras muito específicas sobre ODBC ou queries complexas de SQL que exigem atenção especial.

Para concluir, Databases 1 não é um curso difícil. Para quem não tem familiaridade com o tópico, ele será extremamente importante para abrir novas perspectivas e aprofundar significativamente o conhecimento de como diferentes elementos de um programa se conectam e trabalham em conjunto. Reforço a recomendação dos cursos de SQL da W3Schools ou do Khan Academy para evitar sobrecarga de novidades. Tirando isso, é fazer as tarefas com calma e atenção. Não espere conteúdo atualizado com tecnologias mais recentes ou alternativas. O curso não cobre NoSQL, por exemplo. Claro que isso não impede a proatividade dos alunos nos fóruns de discussão e em usar o instrutor do curso para recomendar recursos adicionais.

Espero ter dado um norte. Qualquer dúvida ou sugestão é só comentar.

Leave a Reply

Your email address will not be published. Required fields are marked *