PDF de programación - Envolviendo la API de Firebird/Interbase SQL Server

Imágen de pdf Envolviendo la API de Firebird/Interbase SQL Server

Envolviendo la API de Firebird/Interbase SQL Servergráfica de visualizaciones

Publicado el 30 de Marzo del 2018
988 visualizaciones desde el 30 de Marzo del 2018
303,0 KB
11 paginas
Creado hace 10a (19/09/2013)
Envolviendo la API de Firebird/Interbase SQL Server

Cherencio, Guillermo Ruben

Universidad Tecnológica Nacional, Facultad Regional Delta

Abstract
El Sistema de Gestión de Bases de Datos
Firebird/Interbase posee un modulo de
comunicaciones que exhibe hacia su exterior una
API accesible desde lenguaje ANSI C; esta API
permite establecer una comunicación con el
sistema, debido a su complejidad, muchos
desarrolladores ANSI C deberán optar por otros
sistemas gestores de bases de datos o bien invertir
muchas horas de trabajo para lograr una
comunicación eficiente con una base de datos
Firebird/Interbase. El presente trabajo implementa
una librería que envuelve a esta API , logrando una
interfaz mas simple y abstracta sobre la cual
desarrollar aplicaciones. Los programas de ejemplo
provistos, muestran la resolución de distintos tipos
de consultas en forma legible y con pocas lineas de
código. Las pruebas realizadas han sido
satisfactorias en cuanto a la velocidad de ejecución
y su facilidad de uso. La librería se distribuye bajo
licencia LGPL. Se abren nuevas líneas de
investigación y futuros desarrollos, la posibilidad de
portar este trabajo a otros lenguajes y plataformas,
facilitando el acceso a una comunidad cada vez
mayor de usuarios que deseen utilizar un sistema de
gestión de base de datos maduro y de código
abierto.

Palabras Clave
ANSI C Firebird Interbase SQL API

Introducción

Los Sistemas de Gestión de Bases
de Datos (SGBD)[1] proveen una interfase
para programas de aplicación (application
programming interface, API) que permiten
la vinculación del SGBD con el exterior. A
través de esta API podemos establecer una
conexión con el SGBD, utilizar, crear y
administrar bases de datos. El SGBD
Firebird1 es la versión de código abierto del
SGBD Interbase,
la empresa
Borland/Inprise®; es un gestor de base de
datos que provee al usuario una amplia
funcionalidad, a través de distintos objetos:

de

1 Disponible en http://www.firebirdsql.org

functions, domains, tables, views, indexes,
generators, exceptions, triggers, execute
stored procedures, select stored procedures,
etc.. Ambos SGBD son compatibles en
muchos aspectos y en especial en cuanto a
su API, por ello se mencionará como
Firebird/Interbase (FB).

La API que exhibe al exterior es
accesible desde el lenguaje ANSI C, se han
desarrollado en el mercado drivers basados
en esta API para distintos lenguajes de
programación, como por ejemplo, el driver
JDBC/JCA Jaybird2 para Java, la librería
IBPP para C++3, librerías para PHP4, etc.
Sin embargo, no se ha encontrado en el
mercado una librería de mayor nivel de
abstracción y por ende, de mayor facilidad
de uso para programadores ANSI C no
experimentados. En la carrera de Ingeniera
en Sistemas de Información de la
Universidad Tecnológica Nacional, los
alumnos utilizan el lenguaje ANSI C como
un Taller extracurricular o en asignaturas
tales como Algoritmos y Estructuras de
Datos, Sistemas Operativos, Gestión de
Datos, etc.; cualquier intento de integración
curricular, que pretenda la participación de
alumnos de distintas asignaturas en un
proyecto común en donde se requiera el uso
del lenguaje ANSI C y una base de datos
FB, se encontrará con el problema de la
complejidad de la API de esta base de
datos. Esta complejidad llevará al alumno a
perder el objetivo global perseguido y
deberá invertir horas y esfuerzo para lograr
establecer una conexión con la base de

2 Disponible en http://www.firebirdsql.org/en/jdbc-

driver/

3 Disponible en http://www.ibpp.org/
4 Distribuido con PHP y/o instalable a partir de fuentes

PHP, ver
http://php.net/manual/en/ibase.installation.php





de

datos, ejecutar una consulta y manipular
todos los tipos de datos FB desde el
lenguaje C.

El presente trabajo pretende resolver
este problema proponiendo una nueva
interfase externa a través del desarrollo de
una librería C que envuelva la API C de FB
y permita a los alumnos y desarrolladores
ANSI C en general, una forma mas
abstracta y sencilla para trabajar con este
SGBD, sin tener que preocuparse por
cuestiones internas de la arquitectura de FB
y poder concentrarse en las consultas y
procesos que debe realizar en el proyecto o
trabajo propuesto. No se trata de ahorrar
trabajo al alumno o programador, sino de
superar una contradicción: el alumno esta
trabajando con abstracciones tales como:
“entidades”,
“atributos”,
“esquemas”, etc. derivadas del modelo de
datos[2],
estas
abstracciones, se requiere de uso de buffers,
desplazamientos
punteros,
manipuladores, estructuras complejas, con
alto nivel de detalle y ligado a la estructura
física de la base de datos.

“relaciones”,

para usar

luego,

El producto de este trabajo también
pretende una utilización profesional de esta
librería en desarrollos en lenguaje ANSI C
en la plataforma Linux, poder incorporar el
uso de esta base de datos en proyectos de
tipo cliente – servidor basado en lenguaje
ANSI C, utilizando interfaz gráfica o bien
consola. Permitir el acceso y ejecución de
todo tipo de consultas y, de ser requerido,
poder tomar el control de la carga de datos
en memoria, dependiendo del nivel de
experticia que posea el usuario final.

Difundir el uso de FB, como base de
datos de código abierto, en el campo
académico y profesional, apoyando a todo
el movimiento propuesto por la Free
Software Foundation y que la misma sea
accesible de forma simple por todos los
desarrolladores ANSI C, sin necesidad
invertir grandes cantidades de tiempo,
disminuyendo la curva de aprendizaje que
implicaría trabajar directamente con la API



de FB; así como también el ahorro de
dinero en la adquisición de licencias o
software adicional para este tipo de
proyectos, ya que, la librería propuesta
estará disponible a toda la comunidad bajo
licencia LGPL, denominada proyecto libfb
en sourceforge y puede ser descargada
desde http://sourceforge.net/projects/libfb/?
source=directory.

Elementos del Trabajo y metodología

Todo el trabajo se desarrolló en las
siguientes etapas,

los
lineamientos generales de Blanchette[3]:

tomando



1. Requerimientos
2. Análisis de la API de FB.
3. Diseño de estructuras y tipos de

datos.

4. Diseño de prototipos de funciones.
5.

Implementación y documentación
de funciones.
Implementación de programas de
ejemplo y de prueba.

6.

7. Empaquetado,

publicación y

distribución.

1. Requerimientos

Los requerimientos son genéricos,
pues el usuario destinatario de este trabajo
es muy amplio, no obstante, considero que
el mayor requerimiento a cumplir esta
centrado en la facilidad de uso de esta
librería y de las abstracciones con las cuales
deberá lidiar el usuario, en especial el
usuario no experto, el cual requiere de
abstracciones simples y fáciles de
comprender [4]. La librería deberá soportar
los tipos de datos básicos5 de FB y permitir
una representación simple en lenguaje C.

Permitir una forma simple de conexión a
una base de datos FB, ejecutar una consulta,
recuperar los datos de cada tupla y cerrar la
conexión. Permitir activar o desactivar los
mensajes de error o advertencias de la

5 Se refiere a los tipos FB: INTEGER, CHAR,
VARCHAR, DATE, DECIMAL

librería6; permitir recuperar errores SQL
(códigos de error, mensajes, etc).

2. Análisis de la API de FB.

El



Architecture

Se recomienda la lectura del artículo
“Conceptual
for
InterBase/Firebird” [5] para comprender la
arquitectura FB, antes de comenzar con
“InterBase 6 API Guide” (AG) [6]; en el
capítulo 4 vemos que para conectar una
base de datos debemos trabajar con un
buffer de 256 bytes, a través de un puntero,
denominado DPB (database parameter
buffer) en el cual, en posiciones específicas,
debemos cargar los distintos parámetros de
la conexión a la base de datos; una vez que
logramos conectar una base de datos,
obtenemos un manipulador de la misma
(algo de tipo isc_db_handle); este
manipulador se usará luego para las
sucesivas llamadas que involucren a esta
base de datos.

capítulo 5 “Working with
Transactions” muestra la forma de utilizar
transacciones las cuales son requeridas,
incluso, cuando debemos procesar una
simple consulta a la base de datos, debemos
obtener un manipulador de la transacción
(algo de tipo isc_tr_handle) y también se
deberá trabajar con un buffer que describa
los parámetros de
transacción
denominado TPB (transaction parameter
buffer).

El capítulo 6 “Working with
Dynamic SQL” describe la complejidad de
realizar una consulta a partir de un código
SQL almacenado en una variable,
resumiendo, los pasos a seguir son los
siguientes:
1. Determinar si las llamadas a la API
pueden procesar el código SQL.
2. Representar el código SQL como una
cadena de caracteres dentro de la
aplicación.

la

3. Si es necesario, asignar una o más
estructuras de tipo XSQLDA para
parámetros de entrada y valores de retorno7.
4. Usar el método API apropiado para
  • Links de descarga
http://lwp-l.com/pdf10046

Comentarios de: Envolviendo la API de Firebird/Interbase SQL Server (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad