Baixe o app para aproveitar ainda mais
Prévia do material em texto
Conceitos em Banco de Dados Material Teórico 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 · 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. OBJETIVO DE APRENDIZADO Sistemas de Banco de Dados Open Source 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: Assim: Organize seus estudos de maneira que passem a fazer parte 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. Organize seus estudos de maneira que passem a fazer parte Mantenha o foco! Evite se distrair com as redes sociais. Mantenha o foco! Evite se distrair com as redes sociais. Determine um horário fixo para estudar. Aproveite as indicações de Material Complementar. Procure se alimentar e se hidratar quando for estudar, lembre-se de que uma Não se esqueça de se alimentar e se manter hidratado. Aproveite as Conserve seu material e local de estudos sempre organizados. Procure manter contato com seus colegas e tutores para trocar ideias! Isso amplia a aprendizagem. Seja original! Nunca plagie trabalhos. 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 9 O termo Software Livre permite que os utilizadores realizem tarefas similares àquelas 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. Ex pl or 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 SQL que visa armazenar comandos para que execute tarefas específi cas 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. Ex pl or 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çãoou 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 11 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 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. 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. Em Síntese Segue algumas organizações usuárias do MySQL (2017): 1. NASA 2. University of California, Berkeley 3. University of Texas 4. Bayer 5. Colgate 6. UNICEF 7. DaimlerChrysler 8. Epson 9. Pneus Goodyear 10. Yamaha 11. globo.com 12. Netflix 13. YouTube 14. Apple Inc. 15. Cisco Systems 16. Dell 17. Hewlett-Packard 18. Motorola 19. Siemens 20. Sony 21. Nextel 22. Google 23. Groupon 24. Facebook 25. LinkedIn 26. Twitter Você pode visitar a página do MySQL e fazer o download gratuito do software em https://dev.mysql.com/downloads/Ex pl or • 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 13 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áfi ca 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 UNIDADE Sistemas de Banco de Dados Open Source Você pode visitar a página do PostgreSQL e fazer o download gratuito do software em https://www.postgresql.org/download/Ex pl or • 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 15 5. Banc o 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 outraspalavras, 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- volvimento Android: https://goo.gl/hJX3gSEx pl or 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 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 https://goo.gl/XOAvmYEx pl or • Firebird: é um SGBDR de código aberto que pode ser executado em sistemas 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 banco de dados de grande volume. A primeira versão visava ser um SGBDR acadêmico, utilizado para aprendizado dos alunos. Ex pl or 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). Importante! Backdoor é utilizado por malwares para permitir acesso remoto a um computador ou a uma rede, sem que o usuário tenha conhecimento disso. Você Sabia? 16 17 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 fi gura que apresenta o SQL Manager Lite para InterBase e Firebird, um programa utilizado para administrar grafi camente bases de dados InterBase e Firebird: https://goo.gl/tsMVNa Ex pl or 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 https://goo.gl/J4gsk0Ex pl or 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 19 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
Compartilhar