Introducción a PostgreSQL

Python es un lenguaje interpretado, orientado a objetos de prop�sito general. Python permite mantener de forma sencilla interacci�n con el sistema operativo, y resulta muy adecuado para manipular archivos de texto. Est� disponible en MS-Windows, GNU/Linux, Mac y cualquier entorno *IX.

Python es un lenguaje de scripts, sencillo pero potente. Hablamos de scripts pero...�qu� es un script? Un script es un conjunto de instrucciones que se ejecutan paso a paso, instrucci�n a instrucci�n. Esto significa que Python no genera ejecutables, si no que es Python el encargado de ejecutar nuestro c�digo. Es por tanto un lenguaje interpretado, no compilado. Esto le dota de ventajas, pero tambi�n de algunos inconvenientes:

Ventajas

  • Desarrollo m�s r�pido : Puedes escribir un programa, salvarlo y ejecutarlo. En un lenguaje compilado tienes que pasar por los pasos de compilar y ligar el software, lo cual puede ser un proceso lento.
  • Multiplataforma : El mismo c�digo funciona en cualquier arquitectura, la �nica condici�n es que disponga del int�rprete del lenguaje. No es necesario compilar el c�digo una vez para cada arquitectura.

Inconvenientes

  • Lentitud : Los programas interpretados son m�s lentos que los compilados. Sin embargo los programas interpretados suelen ser cortos, en los que la diferencia es inapreciable.

Si desea saber m�s sobre Python puede consultar Introducci�n a Python.

Nano, Bilo y Python

.�Comentando el programa

.�Funcionalidades de Pycemen

Lo primero, puede verse el c�digo del programa en este link.

La �nica funcionalidad de Pycemen es a�adir datos a la bbdd. Lo que no es poco. Por ejemplo. Algo sencillo como la adici�n de un pante�n a la base de datos. El programa averigua un c�digo ID_Tumba v�lido. �C�mo? Realizando una consulta a la bbdd, interpretando los resultados y calculando un n�mero que sirva (en este caso no es m�s que sumarle 1 al �ltimo ID_Tumba que exista). Una vez tengamos nuestro ID_Tumba, es necesario saber en qu� sector va a ser emplazado. Para ello se realiza una consulta en la tabla de sectores y se muestran por pantalla dejando al usuario que decida uno v�lido. Adem�s es necesario conocer a qu� familiar se le va a asociar dicho pante�n. Y muchos detalles m�s.

Otro detalle importante es que Pycemen no s�lo a�ade datos en la bbdd, sino que tambi�n guarda todas las sentecias SQL de adici�n de datos que ejecuta. Esto era especialmente importante para nosotros, ya que al ser poco expertos tanto en PostgreSQL como en SQL en ocasiones comet�amos errores que no sab�amos corregir. Como guard�bamos un log con todas las sentencias introducidas, nunca tuvimos que lamentar p�rdidas de datos (que aunque ficticios, importantes por lo aburrido que resulta a�adirlos). Como ejemplo m�s claro de esto mostramos el siguiente fichero generado enteramente por Pycemen.

.�Pycemen en acci�n

Vamos a echar un vistazo al funcionamiento al programa. Aunque la versi�n final puede cambiar (al menos la interfaz) las rutinas que subyacen ya est�n programadas y funcionan bastante bien (o eso creemos).

Veamos c�mo es el proceso de a�adir un nuevo nicho a nuestra bbdd. Lo primero es acceder al men� de adici�n de datos, tras lo cual seleccionamos la opci�n de a�adir una nueva tumba. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1.- A�adir Enterradores 2.- A�adir Administrativos 3.- A�adir Jardineros 4.- A�adir Tumbas 5.- A�adir Sectores 6.- A�adir Familiar 7.- A�adir Facturas 8.- A�adir Fallecidos 0.- Salir Seleccione una opci�n >>> 4

Al seleccionar a�adir tumba, el programa calcula un nuevo ID_Tumba que sea coherente con los ya presentes anteriormente y lo muestra en pantalla. A continuaci�n averigua los sectores del cementerio y nos pide que seleccionemos aquel en el que va a ser emplazado el nuevo nicho: ID_Tumba ---> 35 1 Patio de la redenci�n 2 Olvidados del Se�or 3 Patio de San Froil�n 4 Patio Real 5 La Asunci�n 6 Los Inocentes 7 Patio de San Isidoro 8 San Judas Tadeo 9 Virgen del Camino 10 El Expolio 11 La Crucifixi�n Sector ---> 8

Ahora se nos preguntar� el tipo de tumba que queremos a�adir (nicho, pate�n o fosa com�n, nicho en este caso), la inscripci�n visible en el nicho y la altura de �ste. Tipo ---> Nicho Inscripci�n ---> Eternamente Vivo Altura ---> 3 Presione INTRO para continuar

Y ya hemos a�adido el nicho. Si observamos el fichero de log donde guardamos todas las sentencias SQL de adici�n de datos, podemos ver: insert into Tumba Values (35, 'Nicho' ,8); insert into Nicho Values (3,35,'Eternamente Vivo');

Y haciendo una consulta a la bbdd: cementerio=# select id_nicho, altura, inscripcion cementerio-# from nicho cementerio-# order by id_nicho; id_nicho | altura | inscripcion ----------+--------+------------------ 1 | 1 | 4 | 2 | Salud 27 | 3 | Adi�s Camaradas 30 | 2 | er 32 | 2 | 34 | 2 | 35 | 3 | Eternamente Vivo (7 rows)

Este es uno de los ejemplo m�s sencillos. Se pueden dar situaciones m�s complicadas como la adici�n de un fallecido que vaya a ser enterrado en un nicho. En este caso tendremos que cumplimentar adem�s una factura entre otros detalles. Ser�a algo como esto: A�adiendo Fallecido Nombre ---> Marcos Apellidos ---> Robles de la Huerta Fecha Nacimiento ---> 4/5/56 Fecha Defunci�n ---> 9/9/02 DNI ---> 9888888 Seleccione Identificador de Enterrador 715451632 Sergio Diez Garc�a - Olalla 9248635 Luis Fern�ndez P�rez 71659874 Juan Felipe Garcia Sierra 71632587 Ra�l G�mez de la Huerta 71585696 �scar Gonz�lez Prado 9875651 Pedro M�rquez Ruiz 09823456 Segundo Toro de la Tarde Enterrador ---> 715451632 Tipo de Tumba ---> nicho

Hasta aqu� todo sencillo. Tan s�lo una sencilla consulta para ver los enterradores que tenemos en n�mina. Ahora y dado que el fallecido ir� a parar a un nicho, hemos de cumplimentar los datos de los familiares. Pude darse el caso de que el familiar que pague la factura sea diferente al que aparezca ligado al fallecido(por ejemplo, en caso de accidente de tr�fico, en la factura aparecer� la compa��a de seguros). Puede ser que el familiar ya est� en nuestra bbdd o puede ser que no. El programa presenta los posibles familiares y pregunta si se desea a�adir una nueva entrada en la tabla de familiares: Seleccione Identificador de Familia 3 Rub�n Blanco G�mez 5 Pipo Calceda 1 Josu Cordera L�ez 4 Mar�a de los Dolores Fuertes de Cabeza 2 Nuria Gonz�lez �Desea a�adir nueva familia? (S/N) n Familia ---> 5

Ahora es el momento de cumplimentar la factura. Se observa el caso que comentamos anteriormente, que en los datos de la factura aparezca un familiar diferente: A�adiendo Factura Cantidad ---> 2000.99 Fecha ---> 9/9/02 Seleccione Identificador familiar 3 Rub�n Blanco G�mez 5 Pipo Calceda 1 Josu Cordera L�ez 4 Mar�a de los Dolores Fuertes de Cabeza 2 Nuria Gonz�lez �Desea a�adir nueva familia? (S/N) n Familia ---> 5 Seleccione Identificador de Administrativo 9444555 Javier Alto del Cerro 71654321 Joselito de Peque�os Ruise�ores 9636525 �ngeles de todos los Santos Ruiz 71440439 Lucas Feo Gutierrez 71569874 Juaz Gonz�lez M�rquez Administrativo ---> 9636525 Presione INTRO para continuar

Ahora que ya hemos cumplimentado e introducido la factura, es hora de elegir un nicho para el difunto. Para ello el programa selecciona de los nichos existentes, los que est�n libres: Nicho 27 libre. Inscripci�n: Adi�s Camaradas Nicho 32 libre. Inscripci�n: Ninguna Nicho 34 libre. Inscripci�n: Ninguna Nicho 35 libre. Inscripci�n: Eternamente Vivo Nicho ---> 34 Presione INTRO para continuar

F�cil, �no?

.��Por qu� una interfaz basada en texto?

Se nos ocurren diversas respuestas a esta pregunta, pero s�lo comentaremos las dos m�s importantes:

  • S�lo permitimos accesos locales a la bbdd (precisamente por esto hemos venido usando OpenSSH, para permitir accesos locales desde m�quinas remotas. Esta decisi�n responde a diversas razones, principalmente la seguridad (no somos expertos en PostgreSQL como para permitir a cualquiera el acceso a la bbdd). Bien, ya que todo lo que hagamos se ejecutar en la m�quina remota, pensemos que ocurrir�a si tuvi�semos un programa que se ejecutase gr�ficamente. Nosotros en la m�quina remota tendr�amos que recibir toda la informaci�n gr�fica de la aplicaci�n (ventanas, botones, im�genes...) a trav�s de la red. Esto es factible y perfectamente posible en redes LAN con velocidades de 10 Mbps. Sin embargo a trav�s de una WAN (internet), siendo la velocidad de subida de la m�quina que ejecuta el programa de 128Kbps esto no es posible.
  • Velocidad de desarrollo: Hemos preferido a�adir funcionalidades a la aplicaci�n que dise�ar una interfaz gr�fica de usuario (que al fin y al cabo nadie iba a usar). Esta decisi�n nos ha permitido utilizar el programa a�n en fase muy primitiva de desarrollo para a�adir datos a la bbdd. Siempre es m�s c�modo que las sentencias SQL.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO