Você está na página 1de 22

Conceitos em

Banco de Dados
Material Teórico
Sistemas de Banco de Dados Open Source

Responsável pelo Conteúdo:


Prof. Ms. Rodrigo da Rosa

Revisão Técnica:
Prof. Me. Douglas Almendro

Revisão Textual:
Profa. Ms. Natalia Conti
Sistemas de Banco de
Dados Open Source

• Sistemas de Banco de Dados Open Source

OBJETIVO DE APRENDIZADO
· Conhecer os principais sistemas de banco de dados open source
existentes. Além disso, deverá ter noções de criação de estruturas e
manipulação de dados nestes ambientes.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja uma maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.

Mantenha o foco!
Evite se distrair com
as redes sociais.

Seja original!
Nunca plagie
trabalhos.

Não se esqueça
de se alimentar
Assim: e se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como o seu “momento do estudo”.

Procure se alimentar e se hidratar quando for estudar, lembre-se de que uma


alimentação saudável pode proporcionar melhor aproveitamento do estudo.

No material de cada Unidade, há leituras indicadas. Entre elas: artigos científicos, livros, vídeos e
sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você também
encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua
interpretação e auxiliarão no pleno entendimento dos temas abordados.

Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discussão,
pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o contato
com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e aprendizagem.
UNIDADE Sistemas de Banco de Dados Open Source

Sistemas de Banco de Dados Open source


Open source é um termo inglês que significa Código Aberto. Isso diz respeito
ao código-fonte de um software, que pode ser lido e estudado para variados fins.

O termo foi criado pela Open source Initiative (OSI), ou Iniciativa pelo Código
Aberto, com referência ao texto original da Debian Free Software Guidelines
(DFSG) e determina dez itens que indicam se um software é open source (FERREI-
RA, 2013):
• Distribuição livre: a licença não poderá restringir a capacidade de uma pessoa
redistribuir o software.
• Código fonte: a licença deverá permitir a distribuição do programa sobre a
forma de código fonte ou compilado. No caso da distribuição ser feita sobre
a forma de programa compilado, o código fonte deve ser fornecido com o
programa ou estar facilmente acessível, de preferência através da Internet sem
nenhum custo acrescido.
• Trabalhos derivados: para permitir o rápido desenvolvimento do programa,
as modificações e trabalhos derivados deverão ser distribuídos nos mesmos
termos que o programa original.
• Integridade do autor do código fonte: a licença deverá requerer que o código
fonte possa ser redistribuído de uma forma inalterada, desde que permita que
ficheiros de atualização sejam partilhados.
• Não discriminação de pessoas ou grupos: a licença não poderá restringir a
utilização de um programa a uma determinada pessoa ou grupos.
• Não discriminação contra áreas de atuação: assim como o critério anterior,
a licença não poderá restringir a utilização de um programa, tendo em
consideração neste caso o campo de negócio.
• Distribuição da Licença: a licença deverá ser aplicável a qualquer pessoa
ou entidade que a possa utilizar (mesmo que estes a recebam através de um
redistribuidor).
• Licença não específica a um produto: a licença permanece aplicável mesmo
que o programa tenha sido extraído da distribuição original do software. Quem
receber um programa que tenha sido extraído de uma distribuição original
deverá ter os seus direitos garantidos pelo distribuidor da licença.
• Licença não restringente a outros programas: outro software que seja
distribuído com o programa não pode ser restringido pela licença do programa.
• Licença neutra em relação à tecnologia: deverá ter-se em consideração que
a licença não é disponibilizada para uso de qualquer tecnologia individual ou
estilo de interface.

Não podemos, no entanto, confundir o termo Código Aberto com outro


chamado Software Livre.

8
O termo Software Livre permite que os utilizadores realizem tarefas similares àquelas
Explor

contidas no conceito de Código Aberto como executar, estudar, distribuir o software; porém
há a possibilidade também de mudar e melhorar o software com base no código fonte.

Os bancos de dados open source seguem a ideia dos softwares de código aberto
e podem ter seus códigos-fonte lidos e estudados. São exemplos de banco de dados
open source:
• MySQL: sistema gerenciador de banco de dados open source que utiliza o
SQL (Structured Query Language) como interface. Sua concepção se deu em
1980, na Suécia, por Michael Widenius, com o nome de UNIREG, porém era
muito falho. Em 1994 este desenvolvedor contatou David Hughes, criador do
SGBD mSQL, que utilizava a linguagem SQL, para unir suas ideias e desen-
volver um sistema único. Somente em 1995 sua primeira versão foi lançada.
Em 2008, a Sun Microsystems adquiriu a empresa desenvolvedora do MySQL
e a Sun, atualmente, faz parte da Oracle, que tem direitos sobre o SDGBR.

Algumas características do MySQL são (PORTALEDUCACAO.COM.BR, 2017):


1. Suporta diferentes plataformas como, por exemplo, Windows, Linux e Unix;
2. Fornece suporte a múltiplos processadores;
3. Sistema de senhas criptografadas flexível e seguro;
4. Código fonte escrito em C e C++;
5. Código aberto e gratuito;
6. Fornece suporte às API´s das linguagens PHP, Perl, C,C++, Java, Pynthon
e outros;
7. O cliente se conecta no MySQL através de conexões TCP/IP;
8. Capacidade de manipular banco de dados robustos.

Além destas características, podemos citar outras:


1. Sua programação aumenta significativamente a velocidade de processa-
mento dos dados;
2. É bastante seguro em relação aos dados armazenados;
3. Suporta Stored Procedures e Triggers;

Stored procedure (procedimento armazenado) é um conjunto de comandos da linguagem


Explor

SQL que visa armazenar comandos para que execute tarefas específicas sempre que o
usuário optar, podendo ajustar parâmetros para visualização de novos resultados.
Triggers (gatilhos, em inglês) são rotinas ou procedimentos que são utilizados quando
um comando SELECT, UPDATE ou DELETE é executado em uma tabela ou até mesmo em
uma visão. São disparados quando um destes comandos é executando (RAMALHO, 2005),
realizando uma ação em determinada tabela.

9
9
UNIDADE Sistemas de Banco de Dados Open Source

1. Quanto aos recursos de hardware é pouco exigente;


2. Possui interface gráfica para facilitar o uso e gerenciamento.

A ferramenta gráfica para trabalhar com servidores MySQL é chamada de MyS-


QL Workbench e é fornecida pela Oracle. As consultas SQL e outras funcionali-
dades como, por exemplo, administração do banco de dados, é possível por meio
desta interface.

Figura 1: MySQL Workbench

A tela de apresentação do MySQL Workbench mostra algumas funcionalidades


do sistema que podem ser escolhidas pelo usuário. Por exemplo, no ambiente de
desenvolvimento (SQL DEVELOPMENT) existem as opções:
1. Open Connection to Start Querying: recurso para continuidade de tra-
balho em um banco de dados como criação de tabelas, inserção ou atua-
lização de dados, entre outros. O usuário e senha para acesso ao servidor
são solicitados neste caso;
2. New Connection: recurso para adicionar um novo banco de dados pa-
ra gerenciamento;
3. Edit Table Data: recursos utilizados quando se deseja editar dados de tabelas;
4. Edit SQL Script: recurso utilizado para edição de scripts criados anteriormente;
5. Manage Connections: recursos para gerenciamento de conexões criadas.

Um dos recursos do MySQL Workbench é a interface de modelagem de banco


de dados. É possível desenhar as entidades, atributos e relacionamentos, além da
possibilidade de definir chaves primárias e estrangeiras.

No ambiente de modelagem de dados (DATA MODELING) há as opções:


1. Open Existing EER Model: recurso para abrir um diagrama E-R existente;

10
2. Create New EER Model: recurso utilizado quando pretende-se criar um
novo modelo E-R;
3. Create EER Model From Existing Database: recurso utilizado quando existe
um banco de dados e deseja-se criar um modelo E-R com base neste banco;
4. Create EER Model From SQL Script: recurso para criação de um modelo
E-R a partir de um script de commando SQL.

O ambiente de administração de servidores (SERVER ADMINISTRATION)


apresenta opções de gerenciamento de recursos voltados aos administradores de
banco de dados como, por exemplo, criar novas instâncias de servidores, bem
como atualizar as existentes, além de gerenciar contas de usuários.

Figura 2: Interface de modelagem de banco de dados do MySQL Workbench

As funcionalidades do MySQL Workbench abrange alguns tópicos principais


(DEV.MYSQL.COM):
1. SQL Development: Permite criar e gerenciar conexões com servidores
de banco de dados. Além de permitir que você configure parâmetros de
conexão, o MySQL Workbench fornece a capacidade de executar consultas
SQL nas conexões de banco de dados usando o SQL Editor incorporado;
2. Modelagem de Dados (Design): permite criar modelos de seu esquema
de banco de dados graficamente e editar todos os aspectos de seu banco de
dados usando o Editor de Tabela abrangente. O Editor de tabelas fornece
funcionalidades fáceis de usar para editar tabelas, colunas, índices, dispara-
dores, particionamento, opções, inserções e privilégios, rotinas e exibições;

11
11
UNIDADE Sistemas de Banco de Dados Open Source

3. Administração do Servidor: Permite administrar instâncias de servidor


MySQL administrando usuários, realizando backup e recuperação,
inspecionando dados de auditoria, visualizando a integridade do banco de
dados e monitorando o desempenho do servidor MySQL;
4. Migração de dados: permite que você migre do Microsoft SQL Server,
do Microsoft Access, do Sybase ASE, do SQLite, do SQL Anywhere, do
PostreSQL e de outras tabelas, objetos e dados do RDBMS para o MySQL.
Suporta também a migração de versões anteriores do MySQL para as
versões mais recentes;
5. Suporte a MySQL Enterprise: suporte para produtos empresariais como
MySQL Enterprise Backup, MySQL Firewall e MySQL Audit.

Em Síntese Importante!

O MySQL Workbench está disponível em duas edições:


1.  Community Edition: disponível gratuitamente;
2. Commercial Edition: fornece recursos adicionais da empresa, como o acesso ao
MySQL Enterprise Backup, ao MySQL Firewall e ao MySQL Audit.

Segue algumas organizações usuárias do MySQL (2017):

1. NASA 9. Pneus Goodyear 18. Motorola


2. University of 10. Yamaha 19. Siemens
California, 20. Sony
11. globo.com
Berkeley
12. Netflix 21. Nextel
3. University of Texas
13. YouTube 22. Google
4. Bayer
5. Colgate 14. Apple Inc. 23. Groupon
6. UNICEF 15. Cisco Systems 24. Facebook
7. DaimlerChrysler 16. Dell 25. LinkedIn
8. Epson 17. Hewlett-Packard 26. Twitter

Você pode visitar a página do MySQL e fazer o download gratuito do software em


Explor

https://dev.mysql.com/downloads/

• PostgreSQL: é derivado do pacote POSTGRES escrito na Universidade da


Califórnia em Berkeley. O projeto POSTGRES, liderado pelo professor Mi-
chael Stonebraker, foi patrocinado pela Agência de Projetos de Pesquisa Avan-
çada de Defesa (DARPA), pelo Escritório de Pesquisa do Exército (ARO), pela
National Science Foundation (NSF) e pela ESL, Inc. e sua implementação
iniciou-se em 1986 (POSTGRESQL.ORG, 2017).

12
Ele suporta uma grande parte do padrão SQL e oferece muitos recursos
modernos, conforme descrito neste manual:
1. consultas complexas;
2. chaves estrangeiras;
3. triggers;
4. visões atualizáveis;
5. integridade transacional;
6. controle de concorrência multiversão.

Além disso, o PostgreSQL pode ser estendido pelo usuário de várias maneiras,
por exemplo, adicionando:
1. tipos de dados
2. funções
3. operadores
4. funções agregadas
5. métodos de índice

A figura 3 apresenta um exemplo de interface gráfica do PostgrSQL para


construção de comandos SQL.

Figura 3: Exemplo de interface gráfica de suporte PostgreSQL


Fonte https://www.linode.com

Na figura 3 podemos perceber, no canto esquerdo, que o ambiente apresenta


a quantidade de funções (FUNCTIONS), sequências (SEQUENCES), tabelas
(TABLES), triggers (TRIGGERS), visões (VIEWS), entre outros. Ao centro, a tabela
EMPLOYEE é apresentada (mais acima) e também o comando de construção desta
tabela (mais abaixo).

13
13
UNIDADE Sistemas de Banco de Dados Open Source

Você pode visitar a página do PostgreSQL e fazer o download gratuito do software em


Explor

https://www.postgresql.org/download/

• SQLite: SQLite é uma biblioteca em C (não um SGBD, porém utilizado como


se fosse) que implementa um banco de dados SQL embutido. Programas que
são ligados com a biblioteca SQLite podem ter acesso SQL a um banco de
dados SQL sem executar um processo RDBMS separado. SQLite não é uma
biblioteca de cliente usada para conectar em um grande servidor de banco de
dados. SQLite é o servidor. A biblioteca SQLite lê e escreve diretamente para
e dos arquivos do banco de dados no disco.

Ele é recomendado para gerenciamento de dados em projetos cuja implemen-


tação é simples, não fazendo uso de grandes recursos que outros sistemas utilizam
em gerenciamento complexo de dados.

Abaixo uma relação simplificada de situações onde o SQLite é recomendável


(SQLITE.ORG, 2017):
1. Dispositivos embarcados e internet das coisas: como um banco de
dados SQLite não requer nenhuma administração, ele funciona bem em
dispositivos que devem operar sem suporte humano especializado. SQLite
é recomendável para uso em telefones celulares, televisores, consoles de
jogos, câmeras, relógios, aparelhos de cozinha, termostatos, automóveis,
máquinas/ferramentas, aviões, sensores remotos, drones, dispositivos
médicos e robôs;
2. Formato do arquivo de aplicativo: o SQLite é frequentemente usado como
o formato de arquivo no disco para aplicativos de desktop, como sistemas
de controle de versão, ferramentas de análise financeira, catalogação e
edição de mídia, pacotes de CAD, programas de manutenção de registros,
entre outros;
3. Websites: o SQLite funciona muito na maioria dos sites de tráfego abaixo
da média (a maioria deles). A quantidade de tráfego da Web que o SQLite
pode manipular depende do quanto o site usa seu banco de dados. De um
modo geral, qualquer site com menos de cem mil requisições por dia deve
funcionar bem com SQLite. Este é um valor conservador estimado e não
um limite superior. Desta forma, não é recomendável usar o SQLite em sites
com muitos acessos, com grande volume de dados e os cliente/servidores.
4. Análise de dados: é possível a análise de grandes conjuntos de dados com
o SQLite. Os dados brutos podem ser importados de arquivos CSV para
facilitar a geração de relatórios. Possíveis usos incluem análise de log do site,
análise de estatísticas de esportes, compilação de métricas de programação
e análise de resultados experimentais.

14
5. Banco de dados do servidor: Os projetistas de sistemas relatam o sucesso
usando o SQLite como um armazenamento de dados em aplicativos de
servidor em execução no datacenter ou, em outras palavras, usando o
SQLite como mecanismo de armazenamento subjacente para um servidor
de banco de dados específico do aplicativo.
6. Educação e treinamento: SQLite é simples de configurar e usar. Para a
instalação basta copiar o executável do SQLite3 para a máquina de destino
e executá-lo. SQLite é uma opção no ensino de SQL. Os alunos podem
criar facilmente bancos de dados como desejarem.

No link a seguir, um exemplo de utilização do SQLite para criação da tabela ‘carro’ em desen-
Explor

volvimento Android: https://goo.gl/hJX3gS

Figura 4: Criação da tabela ‘carro’ no SQLite

Podemos notar, no canto superior esquerdo, a existência da tabela CARRO cria-


da. Ela foi construída utilizando o comando CREATE TABLE da linguagem SQL. O
parâmetro PRIMARY KEY é usado para definição da coluna que será chave primária
nesta tabela, no caso, _id. A função AUTOINCREMENT é utilizada para que os valo-
res em _id sejam inseridos de maneira automática e sequencial assim que uma nova
linha for criada. O parâmetro NOT NULL, utilizado em alguns pontos desta estrutura
de código é utilizado para indicar que estas colunas não poderão possuir dados nulos.

Abaixo são listadas algumas características que diferenciam o SQLite dos


SGBDRs (SQLITE.ORG, 2017):
1. Não precisa ser instalado antes de ser usado, pois não há procedimentos de
configuração;
2. Não há a necessidade de administrador de banco de dados para atribuir
permissões de acessos a usuários do sistema;

15
15
UNIDADE Sistemas de Banco de Dados Open Source

3. Os arquivos de banco de dados podem ser facilmente copiados em um


dispositivo USB ou enviados por e-mail para compartilhamento;
4. O tipo de dados que os SGBDRs associam a cada coluna, o SQLite
associa ao dado. Neste caso, a flexibilidade permite que os dados sejam
armazenados em qualquer coluna, independentemente do tipo de dados.
Existe a exceção para colunas que são chaves primárias que só podem
armazenar inteiros;
5. A maioria dos SGBDRs alocam uma quantidade fixa de espaço em disco
para cada linha nas tabelas. Por exemplo, se uma coluna possui tipo de
dados varchar(100), isso significa que será armazenado 100 bytes de espaço
em disco, independentemente da quantidade de caracteres digitados. O
SQLite armazena a quantidade de espaço em disco realmente necessária
referente à linha digitada. Se você armazenar um único dado em uma
coluna varchar(100), somente um byte de espaço em disco será consumido;
6. O código-fonte do SQLite é projetado para ser legível e acessível ao
programador. Há comentários em procedimentos e estruturas de dados
informando o que eles fazem.

Você pode visitar a página do SQLite e fazer o download gratuito do software em


Explor

https://goo.gl/XOAvmY

é um SGBDR de código aberto que pode ser executado em sistemas


• Firebird:

operacionais como o Windows, Linux, Mac OSX, entre outros. Surgiu a partir
do Interbase 6.0, da empresa Borland, em 2000, no momento em que a
organização liberou o código desta versão, voltando a ter licença privada nas
versões posteriores.

Interbase é um SGBDR que possui características como leveza e rapidez, apesar de suportar
Explor

banco de dados de grande volume. A primeira versão visava ser um SGBDR acadêmico,
utilizado para aprendizado dos alunos.

Muitos usuários que apenas conheciam o Interbase começaram a estudar o có-


digo-fonte, corrigindo diversos erros e fazendo diversas melhorias no código-fonte.
Encontraram uma falha de segurança grave, chamada backdoor, onde qualquer
pessoa que conhecia o usuário e senha do backdoor tinha acesso total à máquina
onde estava instalado o Interbase (DEVMEDIA.COM.BR, 2017).

Você Sabia? Importante!

Backdoor é utilizado por malwares para permitir acesso remoto a um computador ou a


uma rede, sem que o usuário tenha conhecimento disso.

16
O uso do Firebird é regido por duas licenças (FIREBIRD.ORG, 2017):
1. IPL (InterBase Public License ou Licença Pública do InterBase): abran-
ge as partes do código fonte que foram herdadas do Interbase;
2. IDPL (Initial Developer’s Public License ou Licença Pública Inicial do
Desenvolvedor): aplica-se às adições e melhorias feitas pelo Projeto Firebird.

Abaixo a figura que apresenta o SQL Manager Lite para InterBase e Firebird, um programa
Explor

utilizado para administrar graficamente bases de dados InterBase e Firebird:


https://goo.gl/tsMVNa

Figura 5: SQL Manager Lite para InterBase e Firebird


Perceba na figura, ao lado esquerdo, a lista das dez tabelas armazenadas no
banco de dados (COUNTRY, CUSTOMER, DEPARTMENT, EMPLOYEE, EM-
PLOYEE_PROJECT, JOB, PROJECT, PROJ_DEPT_BUDGET, SALARY_HIS-
TORY e SALES). No canto inferior esquerdo podemos notar que a tabela DE-
PARTMENT está selecionada e ela é que está sendo apresentada na tela (parte
central direita da figura). São apresentadas algumas colunas e linhas desta tabela.
O SQL Manager Lite para Interbase e Firebird possibilita que usuários que não
têm conhecimentos técnicos de SQL realizem consultas avançadas, porém para
alteração destas consultas recomenda-se possuir tais conhecimentos.

Você pode visitar a página do Firebird e fazer o download gratuito do software em


Explor

https://goo.gl/J4gsk0

17
17
UNIDADE Sistemas de Banco de Dados Open Source

Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:

  Sites
Documentação do MySQL
https://goo.gl/AVbQAC
Documentações do PostgreSQL
https://goo.gl/iZTTxR
Documentação do SQLite
https://www.sqlite.org/docs.html
Software Livre Brasil
http://softwarelivre.org/

 Leitura
Documentação do Firebird
https://goo.gl/ElJRWw

18
Referências
DEVMEDIA.COM.BR. Firebird: Poderoso, leve, gratuito e Open-Source.
Disponível em http://www.devmedia.com.br/firebird-poderoso-leve-gratuito-e-
open-source-revista-clubedelphi-135-parte-1/22887. Acesso em 12/02/17.

FERREIRA, C. S. A. Criação e desenvolvimento de uma IDE sobre o


ambiente marinho para o Projeto de Extensão da Plataforma Continental.
Departamento de Engenharia Geográfica, Geofísica e Energia - Universidade de
Lisboa (Dissertação), 2013.

FIREBIRD.ORG. Disponível em https://www.firebirdsql.org/en/documentation/.


Acesso em 12/02/17.

MYSQL.COM. Disponível em https://goo.gl/ddFcCA. Acesso em 07.02.2017.

PORTALEDUCACAO.COM.BR. Disponível em https://www.portaleducacao.


com.br/informatica/artigos/66677/principais-caracteristicas-do-mysql. Acesso
em 07.01.2017.

POSTGRESQL.ORG. PostgreSQL 9.6.2 Documentation: The PostgreSQL


Global Development Group. Disponível em https://www.postgresql.org/files/
documentation/pdf/9.6/postgresql-9.6-A4.pdf. Acesso em: 12/02/2017.

RAMALHO, J. A.. Oracle 10g. São Paulo: Pioneira Thomson Learning, 2005.

SQLITE.ORG. Appropriate Uses For SQLite. Disponível em https://www.sqlite.


org/whentouse.html. Acesso em 12.02.2017.

19
19

Você também pode gostar