Banco de Dados

22 out, 2018

BDs Open Source: 4 aspectos que precisamos conhecer!

Publicidade

Sempre gostei muito de trabalhar com BDs open source! Porém, estava na dúvida sobre qual falar aqui no portal. Por isso, há alguns meses eu fiz uma enquete nas minhas redes sociais sobre qual banco de dados eu deveria abordar aqui.

A escolha era entre o PostgreSQL e o MariaDB, e pasmem: deu empate! (Na verdade o PostgreSQL teve uma pequena vantagem).

Eu estava sem coragem de abordar dois bancos de dados simultaneamente, mas aí eu tive a ideia de ser mais generalista e falar sobre bancos de dados open source – e aí entrou na minha lista o MySQL, que eu não sou muito fã, mas que é uma possibilidade.

Loucura? Ainda não sei. Mas saiba que seu feedback me ajudará muito na condução dos próximos artigos.

Uma novidade é que, associado à cada artigo, teremos um vídeo explicativo, ou uma conversa que eu vou disponibilizar no meu canal no YouTube. Não estranhem minha voz de Pato Donald!

Para começar a nossa jornada, alguns conceitos precisam ser conhecidos.

1 – Open Source

Este termo fofo foi criado pela OSI (Open Source Initiative), e significa que um software tem código aberto, permitindo que qualquer pessoa veja ou adapte o código fonte para diferentes fins.

Não confunda open source com bagunça ou com revolta ao sistema capitalista! Entenda-o como uma alternativa de modelo de negócio para a indústria de software.

Para ser considerado open source, o software deve estar de acordo com os requisitos listados abaixo:

Distribuição livre

A licença não deve restringir de forma alguma a venda ou distribuição do programa gratuitamente como componente de outro programa ou não.

Código fonte

O programa deve incluir seu código fonte e deve permitir a sua distribuição também na forma compilada. Se o programa não for distribuído com seu código fonte, deve haver algum meio de se obter o mesmo, seja via rede ou com custo apenas de reprodução. O código deve ser legível e inteligível por qualquer programador.

Trabalhos derivados

A licença deve permitir modificações e trabalhos derivados, e deve permitir que eles sejam distribuídos sobre os mesmos termos da licença original.

Integridade do autor do código fonte

A licença não pode restringir o código fonte de ser distribuído em uma forma modificada, mesmo se a licença permitir a distribuição de arquivos patch (de atualização) com o código fonte para o propósito de modificar o programa no momento de sua construção, pois a restrição ao código–fonte significa transformar o software livre em software proprietário.

A licença deve explicitamente permitir a distribuição do programa construído a partir do código fonte modificado. Contudo, a licença pode ainda requerer que programas derivados tenham um nome ou número de versão diferentes do programa original.

Não discriminação contra pessoas ou grupos

A licença não pode ser discriminatória contra qualquer pessoa ou grupo de pessoas.

Não discriminação contra áreas de atuação

A licença não deve restringir qualquer pessoa de usar o programa em um ramo específico de atuação. Por exemplo, ela não deve proibir que o programa seja usado em uma empresa, ou de ser usado para pesquisa genética.

Distribuição da Licença

Os direitos associados ao programa devem ser aplicáveis para todos aqueles cujo programa é redistribuído, sem a necessidade da execução de uma licença adicional para essas partes.

Licença não específica a um produto

Os direitos associados ao programa não devem depender que o programa seja parte de uma distribuição específica de programas. Se o programa é extraído desta distribuição e usado ou distribuído dentro dos termos da licença do programa, todas as partes para quem o programa é redistribuído devem ter os mesmos direitos que aqueles que são garantidos em conjunção com a distribuição de programas original.

Licença não restritiva a outros programas

A licença não pode colocar restrições em outros programas que são distribuídos juntos com o programa licenciado. Isto é, a licença não pode especificar que todos os programas distribuídos na mesma mídia de armazenamento sejam programas de código aberto.

Licença neutra em relação a tecnologia

Nenhuma cláusula da licença pode estabelecer uma tecnologia individual, estilo ou interface a ser aplicada no programa.

2 – Software livre

Pasmem: um software de código aberto não é necessariamente um software de código livre.

“Software livre é o software que concede liberdade ao usuário para executar, acessar e modificar o código fonte, e redistribuir cópias com ou sem modificações. Sua definição é estabelecida pela Free Software Foundation (FSF) em conjunto com o projeto GNU. É permitido vender software livre, entretanto, as mesmas liberdades são válidas para o comprador. O termo Open Source se refere apenas ao acesso ao código fonte e não abrange as liberdades definidas para o software livre. Logo, todo software livre é código aberto, mas nem todo código aberto é software livre.”

A FSF considera um software como livre quando ele atende aos quatro tipos de liberdade listados abaixo:

  • Liberdade de executar o programa, para qualquer propósito;
  • Liberdade de estudar o programa e adaptá-lo às suas necessidades;
  • Liberdade de redistribuir cópias do programa de modo que você possa ajudar ao próximo;
  • Liberdade de modificar (aperfeiçoar) o programa e distribuir essas modificações, de modo que toda a comunidade se beneficie.

3 – Tipos de licença

Suponha que sua empresa decidiu usar um software open source. Ela precisa de um mecanismo que garanta que ela realmente possa usar/alterar/ distribuir aquele software, e por outro lado o autor do software precisa ter o seu direito autoral/propriedade intelectual garantido. Para isso existem as licenças.

No geral, elas são bem parecidas e seguem as diretrizes abaixo:

  • Software pode ser modificado, usado comercialmente e distribuído.
  • Software pode ser modificado e usado de forma privada.
  • A licença e os direitos precisam ser incluídos no software.
  • Os autores dos software não provêm garantias.

Apesar de parecidas, elas não são iguais, e por isso é sempre legal analisá-las antes de optar por um ou outro software.

Se quiser conhecer mais sobre as licenças eu recomendo o site “Escolha uma Licença” e esse artigo fofinho publicado aqui no portal iMasters.

4 – BDs Open Source

PostgreSQL

Eu adoro o PostgreSQL! Robusto, estável e com uma comunidade maravilhosa! Fui palestrante no PGConf deste ano e pude viver um pouco da “cultura open source” – recomendo a todos! Em breve trarei mais informações sobre o PGConf e PGGirls de 2019.

O PostgreSQL nasceu em 1986 como parte do projeto POSTGRES da Universidade da Califórnia, em Berkeley. Creio que seja um dos projetos open source mais maduros, uma vez que há mais de 30 anos vem sendo desenvolvido. O PostgreSQL está sob a Licença PostgreSQL que é similar às licenças BSD ou MIT.

MariaDB

Um banco de dados jovem, robusto e idealista. Quando o MySQL foi comprado pela Oracle, o autor do MySQL fez um fork e chamou este projeto de MariaDB.,O MariaDB conta com o apoio da comunidade (que é muito ativa e atenciosa) e usa a licença GPL V2.

MySQL

Um dos bancos de dados mais usados no mundo – é praticamente casado com o PHP. Em 2008 o MySQL foi comprado pela Sun Microsystems pela bagatela de 1 bilhão de dólares! O maior preço pago até aquele momento por um software livre.

No caso do MySQL, é preciso estar atento ao fato de que ele é regido pela licença GPL e também por uma licença comercial, o que significa que ele é open source, não que ele é gratuito!

Para usar o MySQL sem pagar pela licença comercial é preciso estar atento às seguintes condições:

  • Aplicações de uso interno: “Uso gratuito para quem nunca copia, modifica ou distribui.”
  • Se você desenvolver um aplicativo PHP e instalá-lo com seu provedor de serviços de Internet, não será necessário disponibilizar seu código PHP no sentido de GPL, e nem comprar a licença comercial,
  • Se a sua empresa é um provedor de internet, e disponibilizará o MySQL para os seus clientes
  • Projetos de acordo com a licença GPL

Conclusão

Nos próximos meses conversaremos sobre as características de três SGBDs fantásticos, robustos e open source!

Eu amo trabalhar com bancos de dados! A maioria deles é vip no meu coração, então não entenda que elogiar a tríade open source seja uma crítica ao SQL Server! Não é e nunca será até porque o SQL Server é meu SGBD favorito e com o qual sou mais produtiva!

A ideia de compartilhar o conhecimento, de melhorar os produtos e de ser parte desta história aquece meu coração e me faz acreditar em uma tecnologia acolhedora, justa e ainda assim muito lucrativa!

Acreditem, amigos: as empresas não pagam pela licença do software (com exceção do MySQL), mas pagam pela mão de obra. Podem pagar pelo suporte e pagam pelos projetos, e é aí está uma ótima oportunidade de empreender ou de fazer uns freelas.

Vamos juntos ampliar nossos horizontes e começar uma jornada incrível, que só nos fará crescer como profissionais e membros da comunidade de tecnologia.

Referências