Вы находитесь на странице: 1из 5

Guia Básico de Banco de Dados

no
Google App Engine
(Python)
1 - O que é um banco de dados?

Genéricamente é qualquer coleção de informações de tal forma que seja possível localizar itens escolhidos.
Os bancos de dados tradicionais organizam-se em campos, registros e tabelas. No cadastro de clientes de uma loja,
por exemplo, cada campo contém um tipo específico de informação, por exemplo, nome e endereço.
Registro é cada conjunto completo de dados referentes a um cliente: nome, endereço, CEP, telefone etc.
Usualmente, uma coleção de registros pode ser colocada no formato de tabela.

2 - GQL e Python no GAE (Google App Engine)

O armazenamento de dados do GAE(Google App Engine) fornece armazenamento dimensionável e robusto de dados
para o seu aplicativo da web. O armazenamento de dados é desenvolvido tendo em mente os aplicativos da web,
com ênfase no desempenho de leitura e consulta com linguagem GQL similar ao SQL.

3 - Apresentação do armazenamento de dados

O armazenamento de dados do Google App Engine armazena e executa consultas sobre objetos de dados
conhecidos como entidades (tabelas). Uma entidade tem uma ou mais propriedades (nome, cargo, etc.) e valores
nomeados em um de diversos tipos de dados suportados incluindo números inteiros, valores de ponto flutuante,
strings, datas, dados binários e muito mais.

Exemplo de uma entidade:

from google.appengine.ext import db #Importamos a biblioteca de DB do GAE

class Clientes(db.Model): #Definimos o nome da entidade(tabela)


nome = db.StringProperty(required=True) #Definimos o tipo de dado do campo nome
cargo = db.StringProperty(required=True) #Definimos o tipo de dado do campo cargo

Genéricamente: A entidade acima representa uma Tabela chamada Clientes onde os registros possuem os campos
nome e cargo, ambos do tipo string, observe ainda que nesses exemplos a propriedade (required=True) faz com que
esses campos sejam de preenchimento obrigatório, impedido que o campo fique em branco.

TABELA CLIENTES
NOME CARGO
MIRELA NATALI ANALISTA DE SISTEMAS
ROMULO ARAÚJO DESENVOLVEDOR
TANCICLEIDE GOMES ENG. DE SOFTWARE
MÔNICA PADILHA ARQUITETA DE SISTEMAS
VINÍCIUS ALVES WEB DEVELOPER

Representação visual da entidade (tabela)


4 - Tipos de dados suportados

O armazenamento de dados do Google App Engine suporta um conjunto fixo de tipos de valores para as
propriedades(campos) nas entidades de dados(tabelas), incluindo números inteiros, valores de ponto flutuante,
strings, datas, dados binários e muito mais. Cada tipo possui sua nomenclatura, que são bem sugestivas, por
exemplo: StringProperty para Strings, IntegerProperty para Números inteiros, FloatProperty para números com casa
decimal etc.

Exemplo:

nome = db.StringProperty(required=True) #Este campo receberá somente Strings


idade = db.IntergerProperty(required=True) #Este campo receberá somente Inteiros

Ao definir um campo na sua entidade(tabela) você terá obrigatóriamente que definir de que tipo ele é, a lista
completa de tipos você encontra no link abaixo:

http://code.google.com/intl/pt-BR/appengine/docs/python/datastore/typesandpropertyclasses.html

5 – Visão geral sobre Criação, obtenção e exclusão de dados

Nos SGBDS (Sistemas Gerenciados de Bancos de Dados) comuns antes de efetuar qualquer tipo de ação é preciso
executar o comando de criar a tabela e seus respectivos campos para então se poder inserir dados, no GAE isso não
é necessário, a partir do momento que você tenta inserir o primeiro registro, a entidade(tabela) é criada
automaticamente.

6 - Inserindo dados na entidade(tabela)

Supondo que já definimos a entidade(tabela) chamada Clientes (no capítulo 3), no exemplo abaixo vamos
demonstrar como inserir um registro nessa entidade.

NovoRegistro = Clientes(nome=”Vinicius Alves”, cargo=”Programador”)


db.put(NovoRegistro)

Na primeira linha a variável “NovoRegistro” gera a instância de um novo registro com base na entidade Clientes
entretanto, somente na segunda linha o registro é efetivamente inserido no banco de dados através do método
db.put().

7 – Obtendo um registro da entidade

A obtenção dos registros se torna um processo simples com os métodos pré-estabelecidos que facilitam nossa vida,
veja no exemplo abaixo:

cadastros = Clientes.all()
for campo in cadastros:
print campo.nome
print campo.cargo
No exemplo acima a variável “cadastros” recebe todos os registros da entidade Clientes através do método all().
Logo em seguida o comando “for” varre cada registro da entidade e imprime na tela o nome e cargo armazenado em
cada registro.

8 – Alterando um registro da entidade

Aqui está uma das grandes diferenças do GQL em comparação com o SQL comum, a forma de se atualizar o
conteúdo de uma entidade. Segue o exemplo:

cadastros = Clientes.all()
for campo in cadastros:
if campo.nome == “Vinicius Alves”:
campo.nome = “Gustavo Andrade”
db.put(cadastros)

No exemplo acima a variável “cadastros” recebe todos os registros da entidade Clientes através do método all().
Logo em seguida o comando “for” varre cada registro da entidade e se encontrar um registro com o campo nome
igual a “Vinicius Alves” o mesmo será substituído por “Gustavo Andrade”. Logo após, o registro é efetivamente
atualizado através do método db.put().

9 – Excluindo um registro da entidade

A ação de excluir um registro é semelhante as ações anteriores, veja o exemplo:

cadastros = Clientes.all()
for campo in cadastros:
if campo.nome == “Vinicius Alves”:
campo.delete()
db.put(cadastros)

No exemplo acima a variável “cadastros” recebe todos os registros da entidade Clientes através do método all().
Logo em seguida o comando “for” varre cada registro da entidade e se encontrar um registro com o campo nome
igual a “Vinicius Alves” o registro será excluído através do método delete(). Logo após, o registro é efetivamente
excluído através do método db.put().
10 – Conclusão

Hoje aprendemos a usar um componente fantástico, é claro que há outras formas de se executar as atividades acima
de forma mais específica e mais eficiente, entretanto este é um simples guia de introdução ao SGBD do GAE na
documentação do GAE você encontrar muito mais informações adicionais que complementarão seu aprendizado.

Espero que este guia tenha sido útil para você.

Vinícius Alves
Graduando em Sistemas de Informação
Universidade Federal Rural de Pernambuco
vinicius@alviis.com

Referências:

Documentação do Google App Engine


http://code.google.com/appengine/docs/python/datastore/

Apostila: O que é um banco de dados?


http://www.oficinadanet.com.br/apostilas/detalhe/230/banco_de_dados

Вам также может понравиться