Si vas a usar Firebird entonces es seguro que vas a trabajar con Bases de Datos, sí o sí, por lo tanto es importante que sepas que es una Base de Datos para el Firebird.

Desde muy antiguo la gente ha archivado (guardado, almacenado, son sinónimos) datos que eran de interés para ellos.  Antes de que existieran las computadoras lo normal era archivar esos datos en papeles. Por ejemplo los comerciantes tenían un cuaderno donde anotaban todo lo que vendieron, todo lo que cobraron y cuanto era el dinero que otras personas les estaban adeudando. Ese era su archivo.

Cuando se empezaron a usar las computadoras se hacía eso mismo, lo que cambió es el lugar donde se anotaban los datos pero en esencia era la misma cosa: se registraba un dato y luego se lo archivaba para más tarde tenerlo disponible cuando se lo necesitara.

Una Base de Datos del Firebird hace mucho más que eso: no solamente archiva datos sino que también los procesa. Utilizar las Bases de Datos solamente para archivar datos es un desperdicio inmenso porque no se aprovecha toda la potencia que tiene este motor SQL.

Y ese gran poder de procesamiento que tiene el Firebird es el que lo hace tan poderoso. Por ejemplo podrías pedirle que te muestre:

  • Todas las ventas que hicimos este año, ordenadas por fechas y por números de Factura
  • El total vendido en cada día del año
  • El total vendido en lo que va del año
  • El número de la última Factura de venta
  • Si la Factura 12345 se cobró totalmente, en caso de no haberse cobrado totalmente, cuanto es el saldo que falta cobrar
  • Quien es el mejor vendedor que tenemos, cuanto vendió y cuanto se cobró de lo que vendió
  • Todo lo que se le vendió y todo lo que se le cobró a Juan Pérez
  • Cuanto debemos pagar por impuesto a las ventas este mes
  • Cual es la cantidad actual en stock que tenemos de cada producto
  • etc., etc., etc.

Los datos se archivan (guardan, almacenan) en tablas. El procesamiento de esos datos para que nos provean de información útil se hace en los stored procedures (procedimientos almacenados) y en los triggers (desencadenantes).

Cuando se crea una Base de Datos ésta nunca está vacía, el Firebird ya ha escrito dentro de esa Base de Datos tablas para su uso interno. A estas tablas que usa internamente el Firebird junto con otras cosas que veremos más adelante se las llama metadatos. También todo lo que hacen los programadores (crear nuevas tablas, crear índices, crear stored procedures, etc.) está dentro de los metadatos. En cambio lo que registran los usuarios comunes se llama datos, así, a secas.

Para diferenciar a las tablas internas de las tablas que crean los programadores, el Firebird a todas sus tablas internas y a todas las columnas dentro de esas tablas internas las prefija con los caracteres RDB$ o MON$. Por lo tanto, todas las tablas cuyos nombres empiezan con RDB$ o con MON$ son tablas internas del Firebird (o metadatos) y no deberías tocarlas o podrás destruir a la Base de Datos.

Por lo tanto dentro de los metadatos tenemos:

  • Las tablas internas del Firebird (todas las cuales empiezan con RDB$ o con MON$)
  • Lo que crearon los programadores (dominios, tablas, índices, stored procedures, triggers, etc.)

El Firebird es extremadamente quisquilloso y jamás te permitirá que hagas algo que no está permitido. Por ejemplo si quieres poner que el precio de venta de un producto es “mil doscientos veinte” no podrás hacerlo, tendrás que escribir 1.220 en números, no en letras. Como es tan estricto al principio puede resultar muy molesto, ya que no te permite que “metas la pata” aunque quieras meterla. Pero luego de un tiempo le agradeces de que sea así porque gracias a ello tus aplicaciones son muy seguras y muy confiables, nunca tienen errores que pudieron haberse evitado.

El Firebird es además rapidísimo, puede procesar millones y millones de datos en cuestión de segundos. Por supuesto que hay que saber como pedirle que lo haga.

Aunque podrías usar una Base de Datos solamente para archivar datos en ella y realizar todo el procesamiento con algún lenguaje de programación (Visual FoxPro, Visual Basic, Delphi, Java, PHP, Python, etc.) eso no es lo recomendable ¿por qué no?

  1. El procesamiento es más rápido si se hace dentro de la Base de Datos
  2. El Servidor te asegurará que todas las instrucciones sean correctas antes de que sean ejecutadas
  3. Tus stored procedures estarán disponibles para todos los lenguajes de programación que puedan conectarse a tu Base de Datos
  4. Si cambias la estructura de una tabla y la nueva estructura es incompatible con lo escrito dentro de un stored procedure lo sabrás al instante y podrás corregir el problema enseguida
  5. Si necesitas cambiar un stored procedure, al hacerlo ya estará disponible para todos los programas (escritos en el lenguaje que sea) que llaman a ese stored procedure

Resumiendo:

  • Una Base de Datos se usa para archivar (guardar, almacenar) datos y también para procesar dichos datos
  • Cuando se crea una nueva Base de Datos ésta nunca está vacía
  • Todas las Bases de Datos tienen metadatos dentro de ella que pueden ser:
    • Creados por el Firebird (y en ese caso tienen los prefijos RDB$ o MON$)
    • Creados por los programadores
  • Lo que hacen los usuarios comunes es archivar datos en las tablas que crearon los programadores
  • Para procesar los datos que ingresaron los usuarios comunes se escriben instrucciones dentro de los stored procedures y dentro de los triggers. Se podría obviar los stored procedures y los triggers y realizar todo el procesamiento mediante las instrucciones de un lenguaje de programación, pero eso sería un error porque se estaría desaprovechando gran parte de la potencia del Firebird
  • El Firebird es muy estricto y jamás te permite que hagas algo incorrecto. Esto puede resultar molesto al principio pero luego cuando te acostumbras se lo agradeces infinitamente
  • Es también rapidísimo, pudiendo procesar millones y millones de datos por segundo
Anuncios