Señores, SQL, en mi opinión, ha muerto. O a lo sumo, queda como capa subyacente de los muchos sistemas de Mapeo Objeto-Relacionales. Es obvio que el modelado de la base de datos, desde el punto de vista de Análisis, sigue siendo similar, pero desde el punto de vista del desarrollador, --de un tiempo a esta parte--, nos encontramos con que todos los Frameworks que se precien y utilicen Sistemas Gestores de Bases de Datos Relacionales o Híbridos incluso, en la capa Modelo, (Ver modelo de 3 capas), utilizan ORM (Mapeo Objeto-Relacional) como nuevo interfaz dentro del lenguaje de programación y/o Framework elegido.
¿Qué ventajas tiene esto?
- El proceso de desarrollo se simplifica bastante, pues con el hecho de manejar clases u objetos, realizamos las mismas tareas de una forma mas eficiente.
- Tenemos abstracción con respecto a los SGBD utilizados. Esto es, podemos cambiar de MySQL a Postgres o SQLite en cuestión de segundos, modificando la configuración.
- Si necesitamos realizar o programar tareas a mas bajo nivel, ya sean procedimientos almacenados, triggers, etc... También podemos hacerlo y nos beneficiaremos de ambas tecnologías.
- La velocidad de ejecución, viene a ser prácticamente similar en nuestro SGBD.
Como usuario de Django y al poseer cierta familiaridad con su ORM, me vi tentado a sacarle provecho en programas de consola o bien de cliente pesado o gui. El proceso de integración del ORM de Django, pasa por crear un proyecto standard de Django y alguna aplicación, de las que solo utilizaremos sus models.py (modelos o definición de la base de datos), aunque estaremos obligados a incluir dichas aplicaciones, de todos modos en el fichero de configuración (settings.py).
Luego crearemos nuestro script en python, en el que podríamos utilizar curses o Qt o bien consola pura y dura, pero tendremos que incluir este código al comienzo del script:
import os, sys
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.append(BASE_DIR+"/db/") # En mi caso, el proyecto Django se llama "db"
os.environ['DJANGO_SETTINGS_MODULE']="db.settings"
La definición de models.py viene a ser similar a la de un proyecto Django standard.
Los comandos de creación del proyecto son: (en mi caso)
$ django-admin startproject db
$ cd db
$ python manage.py startapp main # aqui definimos nuestras tablas
$ python manage.py syncdb # Creamos las tablas de la base de datos previamente configurada en settings.py
Nuestro script lo incluimos en el directorio del proyecto y deberemos ejecutarlo desde ahí.
Si quereis profundizar más en el tema, tendreis que generar vuestro propio código basado en éste, ya que en éste artículo, no suministro el acostumbrado proyecto de pruebas.
Gracias por la lectura. Si teneis alguna duda que me sea posible solucionar y que tenga que ver con el artículo, dejadme un comentario. Prometo contestar.
blog comments powered by