Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AULA V-2
i
INTRODUCCIÓN
Las bases de datos suelen ser creadas para almacenar grandes cantidades de datos de forma
permanente. Por lo general, los datos almacenados en éstas suelen ser consultados y
actualizados constantemente. La mayoría de las bases de datos se almacenan en las llamadas
memorias secundarias, especialmente discos duros, aunque, en principio, pueden emplearse
también discos ópticos, memorias flash, etc. Las razones por las cuales las bases de datos se
almacenan en memorias secundarias son por los respaldos que comúnmente suelen emplearse
tanto discos duros, como cintas magnéticas, discos ópticos o similares. Las técnicas
empleadas para almacenar bases de datos son sumamente importantes para la velocidad de
acceso y recuperación de datos así como de su seguridad. Las técnicas dependen del tipo de
almacenamiento, el uso que se le da o se le dará a la base de datos, la estructura de la misma,
el SGBD empleado, etc. En este documento se tratará de los límites y funciones de espacios
que posee el SGBD Firebird para la implementación de bases de datos en el mismo.
3
Límites de la Base de Datos
ITEM Firebird 2.X Firebird 1.5
Tamaño máximo de la base Prácticamente ilimitada 32 Tb usando
de datos usando partiendo la bd varios ficheros.
en varios ficheros.
Tamaño máximo bd en un Varios Terabytes en la gran mayoría Igual que
solo fichero de plataformas; El limite viene definido Firebird 2.x
por el sistema de archivos ( 4Gb o 2 Gb en algunas plataformas,
Ej. Windows 98)
Máximo número de ficheros 64.535 Igual que
de base de datos Firebird 2.x
Máximo numero de tablas 64.535 Igual que
Firebird 2.x
Máximo tamaño de una tabla 32 Tb Igual que
Firebird 2.x
Máximo tamaño de un 2 Gb Igual que
fichero externo de tabla Firebird 2.x
Máximo número de filas por > 16 Billones (Esto no está comprobado, este dato es teórico). 4 Billones
tabla
Máximo tamaño de fila 64.535 bytes (64 KB) Igual que
Firebird 2.x
Máximo tamaño de página de 16 Kb Igual que
datos Nota: El tamaño puede ser de 1024,2048,4096,8192 o 16384. El Firebird 2.x
Tamaño 1024 no está recomendado.
Máximo número de columnas Depende del tipo de dato usado. Igual que
por tabla (Ejemplo: 16384 INTEGER (4-Byte) valores por fila.) Firebird 2.x
Segmentos
Firebird tiene un pequeño léxico de instrucciones SQL que utilizan las aplicaciones cliente
para iniciar, gestionar, confirmar y revertir (revertir) las transacciones que forman los límites
de todas las tareas de la base de datos:
SAVEPOINT : para marcar una posición en el registro del trabajo realizado, en caso de que
sea necesaria una reversión parcial
5
Modo de acceso
Los dos modos de acceso a la base de datos para las transacciones son LEER ESCRIBIR y
LEER SOLAMENTE.
Cuando varios procesos de cliente trabajan con la misma base de datos, pueden producirse
bloqueos cuando un proceso realiza cambios no confirmados en una fila de la tabla, o elimina
una fila, y otro proceso intenta actualizar o eliminar la misma fila. Tales bloqueos se llaman
conflictos de actualización .
Modo de espera
En el modo WAIT (el modo predeterminado), si se produce un conflicto entre dos procesos
paralelos que ejecutan actualizaciones de datos concurrentes en la misma base de datos, una
transacción WAIT esperará hasta que la otra transacción haya finalizado: confirmando
6
(COMMIT) o retrotrayendo (ROLLBACK) . La aplicación del cliente con la transacción de
ESPERA se retendrá hasta que se resuelva el conflicto.
Modo NO WAIT
Nivel de aislamiento
Mantener el trabajo de una tarea de base de datos separada de los demás es de lo que se trata
el aislamiento. Los cambios realizados por una declaración se vuelven visibles para todas las
sentencias restantes que se ejecutan dentro de la misma transacción, independientemente de
su nivel de aislamiento. Los cambios que están en proceso dentro de otras transacciones
permanecen invisibles para la transacción actual, siempre y cuando no estén comprometidos.
El nivel de aislamiento y, a veces, otros atributos, determinan cómo interactuarán las
transacciones cuando otra transacción desee comprometer el trabajo.
• INSTANTÁNEA
7
• ESTABILIDAD DE LA TABLA DE INSTANTÁNEA
• LEA COMPROMETIDO con dos especificaciones (SIN RECORD_VERSION y
RECORD_VERSION)
Savepoints y PSQL
• deshacer todas las acciones en el bloque BEGIN ... END donde ocurre una excepción
• deshacer todas las acciones realizadas por el procedimiento o desencadenar o, en el
caso de un procedimiento seleccionable, todas las acciones realizadas desde la última
8
SUSPENDENCIA, cuando la ejecución finaliza prematuramente debido a un error
no detectado o una excepción
• Cada bloque de manejo de excepciones PSQL también está delimitado por puntos de
almacenamiento automáticos del sistema.
COMMIT
La instrucción COMMIT compromete todo el trabajo llevado a cabo en el contexto de esta
transacción (inserciones, actualizaciones, eliminaciones, selecciones, ejecución de
procedimientos). Las nuevas versiones de registro se vuelven disponibles para otras
transacciones y, a menos que se emplee la cláusula RETAIN, se liberan todos los recursos
del servidor asignados a su trabajo.
9
de forma transparente con la misma ID de transacción. El estado de los cachés de filas
y los cursores se mantiene tal como estaba antes del commit blando.
ROLLBACK
La instrucción ROLLBACK revierte todo el trabajo realizado en el contexto de esta
transacción (inserciones, actualizaciones, eliminaciones, selecciones, ejecución de
procedimientos). ROLLBACK nunca falla y, por lo tanto, nunca causa excepciones. A menos
que se emplee la cláusula RETAIN, se liberan todos los recursos del servidor asignados al
trabajo de la transacción.
Opciones:
• La cláusula opcional TRANSACTION <tr_name> , disponible solo en Embedded
SQL, especifica el nombre de la transacción que se va a comprometer. Sin una
cláusula TRANSACTION , COMMIT se aplica a la transacción predeterminada.
• La palabra clave opcional WORK se admite solo por compatibilidad con otros
sistemas de administración de bases de datos relacionales que lo requieran.
• La palabra clave RETAIN de palabra clave especifica que, aunque se debe retrotraer
todo el trabajo de la transacción, se debe conservar el contexto de la
transacción. Algunos recursos del servidor se conservan y la transacción se reinicia
de forma transparente con la misma ID de transacción. El estado de los cachés de filas
y los cursores se mantiene como estaba antes de la reversión " suave ".
RENDIMIENTO
Classic Server
Soporte para SMP (multi-procesador). Mejor rendimiento en caso de un pequeño número
de conexiones simultáneas que no se influencian entre sí.
Superserver
No hay soporte para SMP. En máquinas multiprocesador con Windows, el rendimiento
puede incluso caer dramáticamente cuando el SO cambia el proceso entre las CPUs. Para
prevenir esto, fije el parámetro CpuAffinityMask en el archivo de configuración
firebird.conf.
10
SuperClassic
Soporta SMP (multi-procesador). Buen rendimiento en cualquier situación.
11
CONCLUSIÓN
En general, el almacenamiento de los objetos de la base de datos (tablas e índices
fundamentalmente) no se realiza sobre el archivo o archivos físicos de la base de datos, sino
que se hace a través de estructuras lógicas de almacenamiento que tienen por debajo a esos
archivos físicos, y que independizan por tanto las sentencias de creación de objetos de las
estructuras físicas de almacenamiento. Esto es útil porque permite que a esos "espacios de
objetos " les sean asociados nuevos dispositivos físicos (es decir, más espacio en disco) de
forma dinámica cuando la base de datos crece de tamaño más de lo previsto.
12
FUENTES CONSULTADAS
• http://www.firebirdmanual.com/firebird/es/firebird-manual/2/version-classic-
superserver-o-superclassic/10
• http://www.firebirdmanual.com/firebird/es/firebird-manual/2/limites-de-firebird/36
• https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-
en/html/fblangref25-transacs-statements.html
13