The Firebird Book, segunda edición

1 comentario

El libro de Helen Borrie: The Firebird Book, a reference for database developers fue desde su lanzamiento en el año 2004 la principal fuente de información sobre todo lo concerniente a Firebird. El libro es muy completo y muy voluminoso (tiene 1.128 páginas) y cubre totalmente las versiones 1.0 y 1.5 de Firebird.

Pero desde entonces tres nuevas versiones de Firebird han aparecido: 2.0, 2.1 y 2.5, la información sobre las cuales se encontraba desperdigada en varios documentos, no existía un único libro que las englobara.

The Firebird book, second edition hace justamente eso: englobar en tres volúmenes todo lo que necesites conocer sobre Firebird, incluyendo hasta la versión 2.5

Desde hace unos meses se puede comprar en IBPhoenix, una empresa que apoya fuertemente a Firebird, un DVD con muchos programas utilitarios y que también incluye a The Firebird Book, second edition.

Ahora, es también posible comprar los libros en papel, no en .PDF como en el caso anterior. Como ya tiene demasiadas páginas en lugar de venderlo como un único libro lo venden como tres libros separados.

https://www.createspace.com/4203352

https://www.createspace.com/4206843

https://www.createspace.com/4206991

Cada uno de esos libros cuesta un poco más de 30 dólares y es una inversión muy buena si en verdad estás interesado en utilizar Firebird porque allí encontrarás todo lo que puedas necesitar, además de estar ayudando económicamente a la gente que desarrolla y documenta este gran SGBDR y así incentivarlos para que lo mejoren cada día más y más.

Ah, eso sí, están totalmente escritos en inglés, por ahora no hay traducción al castellano.

.

IIF()

3 comentarios

Descripción: Esta función tiene tres argumentos. Si el primero evalúa a verdadero entonces el segundo es devuelto. Si el primero evalúa a falso entonces el tercero es devuelto.

Tipo de resultado: Depende de los argumentos

Sintaxis:

IIF(<condición>, resultado_si_verdadero, resultado_si_falso)

<condición> = una expresión booleana

Ejemplo:

SELECT
   IIF(EDAD >= 18, 'puede votar', 'no puede votar')
FROM
   PERSONAS

.

HASH()

2 comentarios

Descripción: Devuelve un valor hash para la cadena_alfanumérica de entrada. Un valor hash es el resultado de realizar algunas operaciones aritméticas sobre una cadena de caracteres para obtener un número que representa a esa cadena. Es muy útil para guardar contraseñas.

Tipo de resultado: Bigint

Sintaxis:

HASH(cadena_alfanumérica)

Ejemplo:

SELECT
   HASH('WALTER')
FROM
   RDB$DATABASE

Y en la imagen de abajo se ve el resultado obtenido:

HASH1

 

(haciendo clic en la imagen la verás más grande)

El algoritmo a usar sería el siguiente:

  • En la Base de Datos no se guardan las contraseñas de los usuarios sino el hash de esas contraseñas
  • Cuando un usuario quiere conectarse, se compara el hash de la contraseña que introdujo con el hash que se tiene guardado

De esta manera, como la contraseña no está guardada en ninguna tabla de la Base de Datos por más que algún intruso consiga acceder a ella no encontrará las contraseñas, porque lo que se guarda es el hash de las contraseñas, no las contraseñas. Y conociendo el hash no podrá conocer la contraseña.

 

GEN_UUID()

1 comentario

Descripción: Devuelve un ID que es universalmente único, como una cadena de 16 bytes. Universalmente único significa que ese ID no se repetirá jamás, ni en tu computadora ni en alguna otra computadora.

Tipo de resultado: Char(16) Character Set Octets

Sintaxis:

GEN_UUID()

Ejemplo:

SELECT
   GEN_UUID()
FROM
   RDB$DATABASE