Nesta lição, você conhecerá um pouco sobre a linguagem de programação SQL, linguagem de uso específico, isto é, ela foi criada para suprir uma demanda, no caso, armazenamento, manipulação e recuperação de dados em banco de dados.
No seu dia a dia como programador, você desenvolverá sistemas e/ou fará manutenção em aplicações já existentes e, consequentemente, terá que realizar manipulações nas bases de dados. Para realizar estas manipulações, você utilizará o SQL.
SQL, do inglês Structured Query Language, é a linguagem de consultas utilizada nos bancos de dados relacionais. Até agora, estudamos todos os conceitos envolvidos no projeto e na criação desse tipo de banco de dados. Para criar um banco de dados relacional, precisamos utilizar um SGBD (Sistema de Gerenciamento de Banco de Dados) em cujo sistema utilizamos o SQL para realizar a manipulação dos dados. E o primeiro passo para aprender um novo conceito é conhecer a sua história como também algumas definições que serão muito importantes no decorrer da sua caminhada na construção de conhecimentos em SQL. Até agora, utilizamos apenas a representação dos bancos de dados em forma de diagramas, mas chegou a hora de colocar todos os conhecimentos em prática e desenvolver um banco de dados real. Escolha algum dos vários modelos que você criou até este momento, e vamos aplicar em um banco de dados real.
Como sabemos, os primeiros computadores surgiram na década de 1940 para uso militar e acadêmico. Porém, nessa época, ainda não existiam os conceitos de banco de dados, e todos os dados eram armazenados em papéis que ficavam guardados, fisicamente, dentro de arquivos, como o apresentado na Figura 1.
Com o aumento massivo de dados que eram gerados, houve um acúmulo muito grande de documentos, sendo que o processo de busca manual em documentos pode levar muito tempo. Assim, surgiu o desafio de encontrar uma maneira de digitalizar toda esta base de dados física de forma digital, de modo que dados digitais ocupem menos espaço e permitam uma busca rápida.
Então, no início dos anos 1970, iniciou-se o desenvolvimento dos primeiros bancos de dados, e a forma de armazenar, eletronicamente, os dados foi baseado na forma do mundo real, em que os documentos em papel se tornaram registros, as pastas, em tabelas, e o arquivo, em uma base de dados. Esta ideia é utilizada até hoje nos bancos de dados relacionais, que são constituídos de tabelas que armazenam registros, que compõem um arquivo de dados.
Antes de conhecer um pouco da história do SQL, vamos pensar em uma metáfora para compreender o porquê de esta linguagem ser tão importante. Imagine que temos uma sala de registros, onde são armazenadas todas as informações da sua vida. Para acessar essa sala, temos uma chave, e, ao abri-la, nos deparamos com toneladas de informações, e a única coisa que conseguimos distinguir são números e as abreviações. É aqui que entra o SQL, um robô que nos auxiliaria a encontrar as informações que estamos procurando para manipulá-las. Em linhas gerais, com SQL conseguimos realizar qualquer tipo de manipulação dos dados, como: criar, alterar, excluir e consultar.
Sendo assim, o seu uso é essencial para gerenciar bancos de dados relacionais, e um exemplo simples de manipulação de dados que podemos observar é selecionar comentários de uma foto em redes sociais. Cada interação é armazenada e acessada, por meio de consultas que selecionam exatamente quais dados precisam ser exibidos. Apesar de, atualmente, o SQL ser a linguagem padrão de manipulação de banco de dados, ela surgiu alguns anos após a descrição dos primeiros modelos de armazenamento digital de informações. Vamos conhecer um pouco dessa história?
Como vimos nas lições passadas, em 1970, Codd descreveu o modelo de dados relacionais, que, atualmente, é o mais utilizado. Baseados no trabalho de Codd, Donald Chamberlin e Raymond Boyce começaram a desenvolver uma forma de manipular os dados modelados a partir do modelo relacional. Finalmente, em 1974, Chamberlin publica a primeira versão da linguagem SEQUEL do inglês Structured English Query Language, que, posteriormente, foi rebatizada para SQL Structured Query Language.
O desenvolvimento do SQL permitiu o início das pesquisas no desenvolvimento de sistemas de gerenciamento de banco de dados relacionais, baseados na manipulação de dados estruturados, permitida pelo SQL. Em 1979, a empresa Relational Software lançou, oficialmente, o primeiro sistema de gerenciamento de banco de dados (SGBD), mais tarde, esta empresa mudou de nome para Oracle, que, atualmente, é a empresa mais popular no desenvolvimento de sistemas de banco de dados (ELMASRI; NAVATHE, 2005).
Com a popularização do sistema da Oracle, outros sistemas surgiram, como o BD2 da IBM, em 1985, e o SQL Server da Microsoft, em 1987. Até o início dos anos 1990, todos os SGBDs disponíveis no mercado eram códigos proprietários, isto é, apenas quem desenvolveu o sistema tem acesso ao código. Em 1994, Michael Monty lançou o SGBD MySQL com código aberto sob a licença GPL, que consiste em uma licença pública que permite que outras pessoas tenham acesso ao código fonte do sistema, além da possibilidade de criar novas versões baseadas no sistema. Em meados de 2008, o MySQL foi adquirido pela Oracle, e, atualmente, é o SGBD relacional mais popular do mercado, e os mais populares, atualmente, são:
MySQL - sem dúvida, o SGDB mais popular, sendo utilizado em grandes empresas, como Netflix, Uber, PayPal etc. O MySQL é multiplataforma, isto é, apresenta suporte para diversos sistemas operacionais, como: Windows, Linux e Mac. Suas principais vantagens são:
É um software livre, deste modo, é gratuito para uso.
Código aberto.
Interface amigável.
Multiplataforma.
Oracle database - diferentemente do MySQL, para utilizar estes sistemas, é necessário adquirir uma licença comercial. O banco de dados da Oracle é o mais utilizado em ambientes corporativos.
Suas vantagens são:
Segurança.
Estabilidade.
Suporte, visto que, como é sistema corporativo, possui equipe de suporte 24h.
Compatibilidade de recursos entre versões.
PostgreSQL - SGBD open source, considerado um dos mais avançados no mercado. Popularmente, utilizado em sistema de dados geográficos com a extensão postgis.
Suas vantagens são:
Escalabilidade.
Suporte para diversas linguagens de programação.
Recursos de alta performance.
Suporte a aplicações geográficas.
SQL Server - assim como o Oracle DB, o SQL Server é um sistema proprietário de código fechado. Desenvolvido pela Microsoft, esse SGBD pode atender desde sistemas simples quanto grandes projetos.
Suas vantagens são:
Suporte.
Gerenciamento de buffers.
Recursos de processamento de consultas inteligentes.
Integração total com outros serviços da Microsoft.
SGBD assim como Oracle database e SQL server são sistemas comerciais com um alto custo de licenciamento e disponíveis para uso comercial. Esses sistemas oferecem suporte técnico sob demanda, além de incluir um grande conjunto de ferramentas que podem auxiliar o profissional de banco de dados a solucionar a maioria dos problemas, além de rotinas de manutenção. Normalmente, SGBD comerciais possuem especificações de sistemas muito restritos, isso significa que a empresa deve sempre atualizar e verificar a infraestrutura disponível antes de implementar esses sistemas.
Por outro lado, SGBDs como Mysql e Postgree, são sistemas de código aberto e são perfeitos para projetos de baixo custo. A instalação e as atualizações desses sistemas devem ser realizadas pelos próprios usuários, que podem entrar em contato com a comunidade para obter suporte, se necessário, mas nenhum suporte técnico oficial está disponível. Como eles são de código aberto, o código-fonte está disponível para visualização e os usuários podem alterar o código-fonte de seu próprio banco de dados com base em suas necessidades.
Provavelmente, analisando os diferentes tipos de SGBDs que temos no mercado, você deve estar se perguntando: “qual desses eu devo escolher para os meus projetos”?, e não existe uma resposta simples para esta pergunta, pois, muitas vezes, dependerá da necessidade do projeto, das tecnologias disponíveis ou, até mesmo, do gosto pessoal. Mas seguem algumas dicas para ajudar você nesta escolha:
Conheça as suas demandas e analise quais são as funcionalidades indispensáveis para o desenvolvimento do projeto.
Analise os custos.
Teste diferentes sistemas para conhecer suas principais características.
CHAMBERLIN, D. D.; BOYCE, R. F. SEQUEL: A structured English query language. In: ACM SIGFIDET WORKSHOP ON DATA DESCRIPTION, ACESS AND CONTROL, 1974, New York. Proceedings [...]. New York: ACM SIGFIDET, 1974. p. 249-264.
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. São Paulo: Pearson Addison Wesley, 2005.
UNSPLASH. Mobili per archivio, 2022. Disponível em: https://unsplash.com/photos/9i4DHlC80AQ. Acesso em: 14 de jul. 2022.