Bases de dades empotrables (III)


Tercera entrega de la sèrie damunt bases de dades empotrables per Linux i Python. Aquesta vegada li toca el torn a gadfly una base de dades feta en i per Python .

Bases de dades empotrables (III)

En aquesta nova entrega de les bases de dades empotrables veurem les possibilitats
d’una base de dades escrita en Python i que per tant s’integra perfectament en aquest excel·lent llenguatge: gadfly
Gadfly compleix una bona part de les especificacions de l’SQL-92, i és la base de dades per defecte del projecte Zope, la qual cosa ens pot donar ja una idea de la seva potència i versatilitat.
Gadfly amagatzema la base de dades activa en memòria i això pot representar una limitació important en algunes aplicacions en termes de capacitat de la pròpia base de dades.
Instal·lació

Podem instal·lació de gadfly es pot fer directament des d’un dels paquets que hi ha fets en la majoria de distribucions, en Debian per exemple ens bastarà fer un apt-get install python-gadfly per a tenir-la disponible. També es pot fer la instal·lació directament des del codi font que ens podem descarregar del lloc web de gadfly . Des del codi font la instal·lació també és molt senzilla: es descarrega el fitxer, es descomprimetix (un tar xvzf fixer.tgz serà suficient) i després ja com a root teclejar i executar python setup.py install

Encara que no sigui estrictament necessari, hi ha una utilitat que ens ajudarà amb el nostre dia a dia amb gadfly i que convé instal·lar, el gfplus, una utilitat de lína de comandes que ens permetrà accedir a bases de dades gadfly, crear-ne consultes, etc.
Què és pot fer amb gadfly?
Com ja hem comentat amb gafly es pot fer servir un bon conjunt d’instruccions d’ODBC 2.0 SQL. Presenta limitacions respecte al tipus de dades que es poden fer servir, limitats a INTEGER, FLOAT i VARCHAR, però que són suficients per a la majoria d’aplicacions. Alguna de les omissions més imporants d’aquesta base de dades és l’abasència de NULL, la qual cosa afecta també a una altra sentència important ALTER TABLE i que fa que no es pugui modificar fàcilment l’estructura d’una taula.
Pel demés la senzillesa d’aquesta base de dades el l’ample subconjunt de l’SQL que soporta fa que aquestes mancances es puguin compensar de sobres pel fet de no tenir que dependre de que hi hagi instal·lat un aplicatiu de bases de dades de tercers. Gadfly és l’elecció ideal per aquell aplicatius fets en Python i que necessitin una plataforma d’amagatzament portable, que pugui correr en els mateixos llocs que el propi Python.
Creació d’una base de dades.

Podem crear una base de dades fàcilment des de l’utilitat gfplus

> gfplus test

gfplus $Revision: 1.6 $ — Interactive gadfly shell [readline]

Sunday November 21, 2004 02:59 PM
Using:
DB Name: test
DB Location:

a DB Location hi posarem el camí on volem posar la base de dades, a partir d’aquí ja podem utilitzar les sentències habituals de l’SQL per anar creant les taules que necessitem.

No oblidem però que gafly està escrita amb i per Python, així no es gens sorperent que poguem fer totes aquestes operacions des de Python, bé des de la línea de comandes o des d’un script.

>python
Python 2.3.4 (#2, Nov 13 2004, 18:58:41)
[GCC 3.3.5 (Debian 1:3.3.5-2)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import gadfly
>>> connection = gadfly.gadfly()
>>> connection.startup(“test”,”/tmp/test/”)
>>> connection.commit()

Creació i accés a les dades.
Una vegada hem creat la base de dades és hora de crear les taules que necessitem, anar introduïnt-hi les dades, actualitzar-les, esborrar-les, etc. Fent servir gfplus la cosa és tan senzilla com executar les corresponents sentències SQL soportades per gafly, per codi l’estratègia passa per realitzar la connexió a la base de dades, crear un cursor, excecutar les sentències SQL i, si convé, recuperar-ne els resultats. Vegem-ho:

>>> cursor = connection.cursor()
>>> cursor.execute(“create table bulmeros(nick varchar, nom varchar, articles integer)”)
>>> cursor.execute(“””insert into bulmeros(nick, nom, articles) values
… (‘aaloy’,’antoni aloy’,1)”””)
>>> cursor.execute(“select nick, nom, articles from bulmeros”)
>>> for bulmero in cursor.fetchall():
… print bulmero[0], bulmero[1], bulmero[2]

aaloy antoni aloy 1

Conclusions
En aquest article hem presentat una altra alternativa de base de dades empotrades, resumim-ne
alguna de les seves principals caracterítiques:

  • Portabilitat. Funcionarà allà on funcioni Python
  • Independència de solucions de tercers.
  • Compatibilitat parcial SQL i soport de transaccions.
  • Possibilitat de establir un sistema Client/Servidor
  • Monousuari i dependent de la memòria del sistema.

A la documentació de gadfly hi ha molta més informació damunt les característiques d’aquesta
base de dades i del seu soport SQL, aquí sols l’hem introduïda en societat.Happy coding!

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=2120 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.