Aula 06 - TEP - Introdução SQLite

Preview:

Citation preview

SQLiteAnderson Fabiano Dums

Introdução

• Cada vez que iniciamos um no projeto dedesenvolvimento de software é necessário optarpela melhor ferramenta para manipulação dosdados.

• As primeiras opções para esta persistência dedados ser suportada por um banco de dados foram:

• Oracle, Informix, ProstgreSQL, MySQL e Fyrebird.

• Com a necessidade de agilidade, simplicidade e defácil configuração, surgiu o SQLite

Definição

• SQLite é uma base de dados relacional de códigoaberto:

• Não é uma biblioteca cliente utilizada para se conectar aum servidor de banco de dados.

• É uma biblioteca que é o próprio servidor.• Escreve e lê diretamente do arquivo do Banco de

Dados.• É compacta.

História

• Em janeiro de 2000 D. Richard Hipp trabalhava comsua equipe na Força Naval dos Estados Unidos, emum projeto de software, para misseis teleguiados.Neste momento estava-se usando banco de dadosInformix, o que gerava alguns problemas nareinicialização do sistema.

História

• Para solucionar o problema com o Informix aequipe optou por migrar para o banco de dadosPostgreSQL, mas o gerenciamento deste banco dedados ficou mais complexo que o esperado.

• Então, surgiu a ideia de se escrever um motor debanco de dados SQL que fosse simples para ler eescrever dados no disco rígido.

• 5 meses mais tarde começou-se a escrever aprimeira versão da biblioteca de banco de dadosSQLite.

Patrocinadores

Principais Usuários

• Adobe:• Utilizado no Photoshop e no AdobeReader

• Apple Mac OS X:• Apple Mail e Safari WebBrowse.

• Mozilla:• Armazenamento de Metadados do Firefox Web Browser.

Principais Usuários

• McAfee:• Programas de anti-vírus

• Philips:• Metadados de reprodutores MP3.

• Google:• Utilizado no Google Desktop e Google Gears.• Utilizado na plataforma móvel Android.

Características

• Simplicidade

• Portável: Totalmente escrita em ANSI C

• Confiável: Biblioteca OpenSource 100% testada.

• Pequeno: Tamanho da biblioteca é inferior a 500Kb.

Características

• Transações atômicas, consistentes, isoladas eduráveis (ACID).

• Zero-Configuração: Não necessita de configuraçãoou administração.

• Implementa a maioria das funções SQL92.

• Um banco completo armazenado em um arquivode disco multi-plataforma.

BD Relacional Padrão

BD Relacional SQLite

Onde usar

• Sites com menos de 100.000 requisições por dia.

• Dispositivos e sistemas embarcados.

• Aplicações Desktop.

• Aprendizado de BDs.

Desvantagens

• Não é recomendada a utilização em sistemas quepossuem grande concorrência de leitura/escrita dedados.

• Não possui controle de acesso.

• Não suporta base de dados maiores de 2TB.

Desvantagens

• Não possui suporte cliente/servidor nativo.

• Não possui suporte interno de replicação eredundância.

• Não possui chave estrangeira.

• Limitação em uso de clausulas WHERE aninhadas.

Recomendação de Uso

Usado e recomendado onde é necessário simplicidade de

administração, implementação e manutenção.

Tipos de Dados

• NULL – Como em qualquer BD• INTEGER – Inteiro com sinal, armazenado em até 8

bytes (de -9.223.372.036.854.775.808 até máximo é 9.223.372.036.854.775.807).

• REAL – Valor de ponto flutuante, armazenado em 8 bytes.

• TEXT – String armazenada em UTF-8, UTF-16BE ou UTF-16LE

• BLOB – Armazena um BLOB (objeto binário grande)

Tipos de Dados

• Booelan: Não existe, pode ser substituído por um INTEGER armazenando 0 (falso) ou 1 (verdadeiro).

• Data e Hora: Não existe, pode ser armazenado como:

• TEXT (YYYY-MM-DD HH:MM:SS.SSS).• REAL (Dias Julianos, dia 0 é o meio dia de 24/11/4714 AC

do calendário Gregoriano). • INTEGER (Como a hora do UNIX, a origem é 01/01/1970,

contando os segundos a partir desta data).• (continua...)

Tipos de Dados

• Data e Hora: a partir do seu armazenamento sãoacessados por funções:

• date(timestring, modificador, modificador, ...), retorna adata no formato YYYY-MM-DD.

• time(timestring, modificador, modificador, ...), retorna ahora no formato HH:MM:SS.

• datetime(timestring, modificador, modificador, ...), retornadata e hora no formato YYYY-MM-DD HH:MM:SS.

• julianday(timestring, modificador, modificador, ...), retornao dia em inteiro do calendário juliano.

• strftime(format, timestring, modificador, modificador, ...),retorna a data de acordo com o formato do primeiroargumento.

Tipos de Dados

• Data e Hora• Exemplos

• Ver mais em: http://www.sqlite.org/lang_datefunc.html

Recursos SQL Omitidos

• RIGHT e FULL OUTER JOIN.• ALTER TABLE:

• DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT.

• TRIGGER FOR EACH STATMENT.• VIEW:

• DELETE INSERT e UPDATE.

• GRANT e REVOKE:• Somente permissões baseados no SO.

• FOREIGN KEY.

Instalação no Windows

• Acessar o site: www.sqlite.org.• Selecionar a opção “Download”.

Instalação no Windows

• Localizar o binário para Windows.

Instalação no Windows

• Extraia o arquivo zip na raiz do SO (C:) em umasubpasta chamado sqlite3.

Instalação no Windows

• Configurando as Variáveis de Ambiente:

Instalação no Windows

• Para testar, vamos abrir o prompt de comando(CMD) e digitar sqlite3, se o resultado forsemelhando ao abaixo a instalação está concluídacom sucesso.

Instalação no Windows

Com isso temos nosso SQLite pronto para uso, sem necessidade de

nenhuma configuração.

Criando uma Base no SQLite

• Vamos criar um diretório “BancoSQLite” na raiz donosso SO, neste diretório iremos criar nossoprimeiro BD.

Criando uma Base no SQLite

• Acesse o CMD (Prompt de Comando):• Digite sqlite3 e pressione [ENTER], com isto estaremos

dentro do “SQLite” podendo criar bases de dados emanipular seus registros.

• Para sair do ambiente do SQLite, o comando é “.exit”[ENTER] ou “.quit” [ENTER]

Comando “.open”.

• Este comando serve para criar ou abrir uma base dedados, caso esta já existe com o nome informado.

• Sintaxe: sqlite> .open C:/BancoSQLite/nomedobanco.db[ENTER].

• Com isto, já é criado o arquivo no diretório.

CREATE

• A criação de uma tabela no SQLite segue ospadrões de qualquer Banco de Dados que utilizeSQL, apenas respeitando as restrições de algunscomandos que já foram discutidas, vamos criar atabela “contato”, dentro da nossa agenda.db.

CREATE

• Observações:• Com exceção dos comandos que iniciam em “.” (como

.open e .exit), todos os demais comandos terminamapenas quando um “;” é encontrado, por isso podemosdigitar nosso comando de criação de tabela em mais deuma linha.

• O primeiro campo da nossa tabela é um integer eprimary key, tendo esta combinação ao ser inserido umdado nesta tabela e ocultado o valor para este campo oSQLite irá atribuir a ele um valor auto-incrementável.

INSERT

• Vamos inserir um registro da tabela, usaremos ocomando INSERT.

• Note que no primeiro registro “ocultamos” umvalor para o ID, no segundo damos um valor pra oID e no terceiro ocultamos novamente, nocomando SELECT vamos entender melhor comoeste campo será preenchido no banco de dados.

SELECT

• Vamos listar todos os contatos da base de dados,utilizaremos o comando SELECT:

• Vamos ver o que aconteceu com o campo ID, comomencionamos ele é primary key e auto-incremento, noprimeiro registro ocultamos ele no INSERT ele salvoueste campo com o valor 1, no segundo INSERTatribuímos o valor 10 a este campo e assim o foi salvo,no terceiro INSERT ocultamos novamente ele voltou aser auto-incremento, salvando o valor 11 neste campo.

UPDATE e DELETE

• UPDATE

• DELETE

Agora já temos conhecimento de manipulação básica de um banco de

dados SQLite.

Dúvidas?

Recommended