SQLite: um motor de bases de dados relacional open source

505 visualizações

Publicada em

Uma introdução operacional ao uso do SQLite, com indicação de recursos para aprofundar aprática

Publicada em: Educação
2 comentários
3 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
505
No SlideShare
0
A partir de incorporações
0
Número de incorporações
0
Ações
Compartilhamentos
0
Downloads
0
Comentários
2
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

SQLite: um motor de bases de dados relacional open source

  1. 1. SQLite um motor de bases de dados relacional open source Versão 1.0, Dezembro de 2016 Luís Borges Gouveia Universidade Fernando Pessoa lmbg@ufp.edu.pt
  2. 2. O que é o SQLite • É uma biblioteca em linguagem C que implementa um sistema de gestão de bases de dados (SGBD) relacional • É um motor autocontido, embebido, sem servidor, transacional e sem necessidade de configuração • Está disponível em open source e sem custos associados • Multiplataforma (Windows, Apple, Linux, Android) • Site oficial: http://www.sqlite.org • Logo do SQLite… Luis Borges Gouveia, lmbg@ufp.edu.pt
  3. 3. O mote do SQLite: pequeno, rápido e fiável… Luis Borges Gouveia, lmbg@ufp.edu.pt
  4. 4. Origens • a implementação original do SQLite foi desenvolvida por Richard Hipp (1961, ) • o software destinava-se a ser utilizado em sistemas de misseis teleguiados e, por isso mesmo, com recursos limitados para o correr • um dos requisitos para o programa era o de permitir correr sem uma instalação de bases de dados ou de administração de dados (originou a criação de um motor próprio, com pouca exigência de recursos, para gerir os dados) • levou ao desenvolvimento em C, de um gestor de bases de dados Luis Borges Gouveia, lmbg@ufp.edu.pt
  5. 5. História do SQLite • Versão 1.0: Maio de 2000 • A versão inicial foi baseada no gestor de bases de dados GNU (GDBM) • Versão 2.0: Setembro de 2001 • Substituida a implementação GBDM por uma estrutura de árvores binárias clássica (B-tree) • Versão 3.0: Junho de 2004 • Adicionou muitas das funcionalidades mais sofisticadas e comerciais, fazendo do software, uma excelente opção para o uso de bases de dados locais e para o ensino de bases de dados • Atualmente (v 3.15.2) tem utilização à escala global e o suporte de inúmeras empresas, que formaram um consórcio para suportar o SQLite Luis Borges Gouveia, lmbg@ufp.edu.pt
  6. 6. Especificações do SQLite • O SQLite trabalha com formatos de aplicação de ficheiros: • possui mecanismo de armazenamento seguro com transações ACID (atomicidade, consistência, isolamento e durabilidade) • triggers com funcionalidade de desfazer e refazer • Análise de dados temporários: • com um cliente de linha de commando • importação de ficheiros csv • uso de SQL para analisar e gerar relatórios • Respeita a norma SQL: • implementa a maior parte da especificação da norma SQL92 • Testado e contido: • limita o potencial dano • Dispositivos embebidos: • pequeno: usa apenas ANSI C e VFS, com o formato de ficheiros multiplataforma • fiável: com corbetura de teste a 100%, código em open source e portável e base de dados de erros reportados e com transações ACID, mesmo em caso de falha de energia • rápido: biblioteca de 300 KB, corre com poucos recursos, 16 KB pilha e 100 KB heap Luis Borges Gouveia, lmbg@ufp.edu.pt
  7. 7. Para obter o SQLite • Existe uma página que concentra os diferentes recursos para descarregar: https://www.sqlite.org/download.html • O código fonte • A documentação • Os executáveis, utilitários e código fonte, para diferentes ambientes: • Android • Linux • MAC OS X • Windows Luis Borges Gouveia, lmbg@ufp.edu.pt
  8. 8. Exemplos de entidades que usam o SQLite • Adobe: embebido no Photoshop e AcrobatAdobe reader • Airbus: no software de voo dos aviões • Apple: usado no itunes e na maioria das aplicações que correm MAC OS X, iPhones e iPods; email, etc. • Google: usado no Android e no browser Chrome • Dropbox: no arquivo de ficheiros e serviço de sincronização • As linguagens de programação PHP e Python incluem o SQLite nas suas instalações base • Outras : • Facebook, General Electric, Intuit, MacAfee; Microsoft; Skype; Mozilla Firefox Luis Borges Gouveia, lmbg@ufp.edu.pt
  9. 9. Quando usar o SQLite? Os dados estão separados da aplicação por uma rede? Escolher um sistema cliente / servidor Existe a necessidade de muitas escritas concorrentes? Escolher um sistema cliente / servidor Existe a necessidade de lidar com muitos dados (Big Data)? Escolher um sistema cliente / servidor Outra situação? Escolher o SQLite… Luis Borges Gouveia, lmbg@ufp.edu.pt
  10. 10. Caraterísticas do SQLite vantagens • Não possui configuração • basta instalar e começar a usar • Não existe um processo de servidor para administrar ou contas de utilizadores para gerir • É facil de realizar cópias de segurança e transmitir a base de dados • basta copiar um ficheiro • Possui tipos dinâmicos por valores de colunose e tamanhos variáveis para registos de colunas • As consultas podem referenciar múltiplos ficheiros de bases de dados • Possui algumas extensões não normalizadas SQL Luis Borges Gouveia, lmbg@ufp.edu.pt
  11. 11. O que o SQLite não possui desvantagens • Sistema de alta concorrência • bloqueio de leitura e escrita na totalidade do ficheiro • Conjuntos de dados alargados: • a base de dados não pode exceder os TB (Terabytes) e está limitada aos recursos do sistema para a dimensão de um ficheiro • Controlo de acesso: • não existe uma implementação Luis Borges Gouveia, lmbg@ufp.edu.pt
  12. 12. Usos para o SQLite • O objetivo principal do SQLite é ser simples • Usar para: • sites com menos de cem mil requisições por dia • dispositivos e sistemas embarcados • aplicações desktop • ferramentas estatísticas e de análise • ensino e aprendizagem do bases de dados • Implementação de novas extensões de SQL Luis Borges Gouveia, lmbg@ufp.edu.pt
  13. 13. O Interface de linha de comando do SQLite • Corre numa janela de comando e permite dois tipos de comandos: • De sistema, do SQLite, iniciados por . (ponto) • exemplo: .help • Da norma SQL, que são finalizados por ; (ponto e vírgula) • exemplo: create table fcp(tit text); Luis Borges Gouveia, lmbg@ufp.edu.pt
  14. 14. Existem alternativas de usar o SQLite, além da linha de comando • SQLiteStudio (3.1.1) • http://sqlitestudio.pl/ • também open source Luis Borges Gouveia, lmbg@ufp.edu.pt
  15. 15. Existem alternativas de usar o SQLite, além da linha de comando • DBBrowser (3.9.1) • http://sqlitebrowser.org/ • também open source Luis Borges Gouveia, lmbg@ufp.edu.pt
  16. 16. O que é o SQL • É uma linguagem de quarta geração (4GL) orientada para a consulta e operação em bases de dados, com recurso à linguagem corrente (Inglês) • SQL é o acrónimo de Structure Query Language (Linguagem estruturada de consultas) • Originado do SEQUEL (Structured English Query Language, parte do sistema R, da IBM – 1974) • É uma norma ISO e ANSI: SQL/92 ou SQL2, suportada pelo SQLite • existe um SQL99 ou SQL3… Luis Borges Gouveia, lmbg@ufp.edu.pt
  17. 17. Duas categorias de funções do SQL Simplificando… • DDL – Data Definition Language • Engloba os comandos para criar as bases de dados e o respetivo esquema • Permite especificar a criação, alteração e eliminação de tabelas e seus atributos • Também permite especificação de outros objetos de bases de dados, como os índices e as vistas e definir os direitos de acesso… • DML – Data Manipulation Language • Engloba os comandos para lidar e manipular os dados de uma base de dados • Inclui os comandos SQL para se poder inserir, atualizar, eliminar e consultar os dados de uma base de dados • O SQL do SQLite: http://www.sqlite.org/lang.html Luis Borges Gouveia, lmbg@ufp.edu.pt
  18. 18. Comandos básicos SQL para manipular uma base de dados • Os dados numa base de dados relacional estão organizados em tabelas que são matrizes • Em que a matriz, constitui a entidade a representar (exemplo: a entidade aluno) • Em que as colunas, constituem os diferentes atributos da entidade (por exemplo: os atributos de número, nome, país de origem, constituem três atributos da entidade aluno) • Em que as linhas são os elementos ou instâncias da entidade • (por exemplo: os dados Luis, Joana, António e Rita, com os respetivos atributos de número, nome e país de origem, constituem quatro instâncias ou ocorrências da entidade aluno) Luis Borges Gouveia, lmbg@ufp.edu.pt
  19. 19. O (pequeno) exemplo de uma tabela Número Nome País 40451 Luis Portugal 41384 Joana UK 42224 António Brasil 52001 Rita USA • as tabelas são os elementos que constituem as componentes onde se encontram os dados de uma base de dados relacional, como o SQLite • tabela: estudante e atributos: num, nome e pais • conteúdo: quatro (4) ocorrências ou instâncias de aluno Luis Borges Gouveia, lmbg@ufp.edu.pt
  20. 20. Comandos SQL (DDL) para as tabelas • CREATE TABLE (para criar uma tabela) • CREATE TABLE estudante(num INTEGER, nome TEXT) ; • ALTER TABLE (para alterar uma tabela) • ALTER TABLE estudante ADD COLUMN pais TEXT; • DROP TABLE (para eliminar uma tabela) • DROP TABLE estudante; Luis Borges Gouveia, lmbg@ufp.edu.pt
  21. 21. Comandos básicos SQL para manipular os dados • CRUD – Create, Read, Update, Delete • Criar a instância para o aluno 40451, Luis de Portugal • INSERT INTO estudante VALUES (40451, ‘Luis’, ‘Portugal’); • Criar a instância para a aluna 41384, Joana do Reino Unido (UK) • INSERT INTO estudante VALUES(41384, ‘Joana’, ‘UK’); • Criar a instância para o aluno 42224, António, do Brasil • INSERT INTO estudante VALUES(42224, ‘António’, ‘Brasil’); • Criar a instância para a aluna 52001, Rita, dos USA • INSERT INTO estudante VALUES(52001, ‘Rita’, ‘USA’); Luis Borges Gouveia, lmbg@ufp.edu.pt
  22. 22. Comandos básicos SQL para manipular uma base de dados • CRUD – Create, Read, Update, Delete • Selecionar todos os alunos da tabela estudante • SELECT * FROM estudante; • SELECT num, nome, pais FROM estudante; • Selecionar o nome e pais dos alunos • SELECT nome, pais FROM estudante; • Selecionar os dados associados com o aluno número 52001 (a Rita) • SELECT * FROM estudante WHERE num=52001; • As consultas de dados podem ser muito sofisticadas ao incluir funções que contam ocorrência, calculam médias, máximos e mínimos, usam expressões ou relacionam valores e até exploram os resultados de outras consultas embebidas Luis Borges Gouveia, lmbg@ufp.edu.pt
  23. 23. Comandos básicos SQL para manipular uma base de dados • CRUD – Create, Read, Update, Delete • Atualizar o nome Luis para Luís (colocar o acento…) • UPDATE estudante SET nome = ‘Luís’ WHERE num = 40451; • Atualizar a informação de país de origem para Portugal, para todos os estudantes • UPDATE estudante SET pais = ‘Portugal’; Luis Borges Gouveia, lmbg@ufp.edu.pt
  24. 24. Comandos básicos SQL para manipular uma base de dados • CRUD – Create, Read, Update, Delete • Eliminar todos os elementos da tabela estudante • DELETE FROM estudante; • Eliminar a Joana da tabela de estudantes (concluiu o seu estudo…) • DELETE FROM estudante WHERE num = 41384; Luis Borges Gouveia, lmbg@ufp.edu.pt
  25. 25. A melhor forma de aprender é praticar e experimentar Luis Borges Gouveia, lmbg@ufp.edu.pt
  26. 26. Experimentar (I) • 1º conjunto de slides: Um exemplo do uso de bases de dados, SQLite e a exploração SQL • Introduz o SQLite e o seu uso e apresenta um exemplo para prática em contexto efetivo da criação e consulta a uma base de dados • http://www.slideshare.net/lmbg/sqlite-select-exemp2013 Luis Borges Gouveia, lmbg@ufp.edu.pt
  27. 27. Experimentar (II) • 2º conjunto de slides: Base de dados: desafio 1 • Responde ao desafio colocado no slide final do primeiro conjunto de slides. Os resultados apresentados apenas listam os dados de 2013, pelo que a informação associada aos dados de 2015 não consta nos slides • http://www.slideshare.net/lmbg/base-de-dados-desafio-1 Luis Borges Gouveia, lmbg@ufp.edu.pt
  28. 28. Proposta de trabalho 1 • Fazer uma apresentação em MS Powerpoint que apresente do mesmo modo que os slides do 2º conjunto, os resultados para todos os dados, incluindo os 3 livros de 2015 Luis Borges Gouveia, lmbg@ufp.edu.pt
  29. 29. Experimentar (III) • 3º conjunto de slides: Base de dados: desafio 2 • Apresenta um conjunto de extensões de funcionalidade para a base de dados sobre livros, com inclusão de empréstimos e anotações sobre os livros • http://www.slideshare.net/lmbg/base-de-dados-desafio2 Luis Borges Gouveia, lmbg@ufp.edu.pt
  30. 30. Experimentar (IV) • 4º conjunto de slides: Mais um exemplo do recurso a base de dados relacionais em SQLite • Apresenta uma nova base de dados, desta vez associada com as orientações • http://www.slideshare.net/lmbg/um-exemplo-do-uso-do-sqlite- uma-base-de-dados-para-alumni Luis Borges Gouveia, lmbg@ufp.edu.pt
  31. 31. Proposta de trabalho 2 • Fazer uma apresentação em MS Powerpoint que apresente a atualização dos dados associados com os alumni (alunos que concluíram os seus trabalhos com sucesso), tendo em conta os dados que constam já na base de dados e os que compõem a lista mais atual que está disponível, em http://homepage.ufp.pt/lmbg/mono_on.htm Luis Borges Gouveia, lmbg@ufp.edu.pt

×