Está en la página 1de 13

INSTITUTO TECNOLÓGICO DE CHETUMAL

DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN

INGENIERÍA EN SISTEMAS COMPUTACIONALES

ADMINISTRACIÓN DE BASE DE DATOS

PROF. LIC. LUCY GUADALUPE CÁRDENAS QUIJANO

EVIDENCIA 1: MANEJO DEL ESPACIO DE


ALMACENAMIENTO EN FIREBIRD
ALUMNOS
NAVARRETE JUÁREZ STEPHANI
DÍAZ ESCOBAR EDGAR IVÁN
SÁNCHEZ KÚ ELZNER YAMIR
PÉREZ JIMÉNEZ VICTOR FERNANDO

SEMESTRE 6 UNIDAD 3 GRUPO ÚNICO

AULA V-2

CHETUMAL, QUINTANA ROO A 31 DE MAYO DE 2018


ÍNDICE
INTRODUCCIÓN .................................................................................................................. 3
Límites de los tipos de datos en Firebird ................................................................................ 4
Segmentos ............................................................................................................................... 5
Modo de acceso................................................................................................................... 6
Modo de resolución de bloqueo .......................................................................................... 6
Modo de espera ................................................................................................................... 6
Modo NO WAIT ................................................................................................................. 7
Nivel de aislamiento ........................................................................................................... 7
Puntos de interés internos ................................................................................................... 8
Savepoints y PSQL ............................................................................................................. 8
COMMIT ................................................................................................................................ 9
ROLLBACK ......................................................................................................................... 10
RENDIMIENTO ................................................................................................................... 10
Classic Server.................................................................................................................... 10
Superserver ....................................................................................................................... 10
SuperClassic...................................................................................................................... 11
CONCLUSIÓN ..................................................................................................................... 12
FUENTES CONSULTADAS............................................................................................... 13

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

Nota: 8-Byte son almacenados por cada BLOB or ARRAY


El tamaño del BLOB o ARRAY no es tenido en cuenta en el
tamaño de la fila.
Máximo número de índices 65.535 Igual que
por tabla Firebird 2.x
Máximo tamaño de índice 4096 cuando el tamaño de la página es 16 Kb 252 bytes
principal (Limitado a un cuarto del tamaño de la paginación de la base de
datos. )
Importante: disminuye el límite de carácter por columna
cuando el carácter está configurado como multibyte;
Máximo número de índices 4.398.046.511.104 Igual que
por databla Firebird 2.x

Límites de los tipos de datos en Firebird

Tamaño Rango/Precisión Descripción


Nombre
Array de caracteres o cadena de texto.
NB, si selecccionamos la opcion multi-Byte
Varchar(n) n Caracteres 1 to 32.767 Bytes reduce
el numero de caracteres posibles
proporcionalmente.
4
Smallint 16 bits -2ˆ15 to 2ˆ15-1 Entero corto
Integer 32 bits -2ˆ31 to 2ˆ31-1 Entero largo
Float 32 bits 3.4x10ˆ-30 to 3.4x10ˆ38 Número Real con 7 dígitos
Double
64 bits 1.7x10ˆ-308 to 1.7x10ˆ308 Número Real con 16 dígitos
Precisión
64 bits (2x32 1 jan 100 CE to 28 feb 32768 Incluye la hora y la fecha en dos estructuras de
Timestamp
bits) CE 32 bits.
1 jan 100 CE to 28 feb 32768 Fecha. Ejemplo: 12/10/1977
Date 32 bits
CE La hora no esta almacenada en este tipo.
Time 32 bits 0:00 to 23:59,9999 Tipo Hora. Ejemplo: 12:00:00
Almacenamiento para variables indeterminadas.
BLOB <32 GB
Textos, Imágenes, Archivos Binarios, etc.
Números reales con la cantidad de decimales
Variable
Numeric Segun la especificación definidos.
(16,32 or 64
(precision,scale) deseada Ejemplo: Numeric(10,3)
bits)
3462344634,345

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:

SET TRANSACTION : para configurar e iniciar una transacción

COMPROMETER : para señalar el final de una unidad de trabajo y escribir cambios


permanentemente en la base de datos

ROLLBACK : para revertir los cambios realizados en la transacción

SAVEPOINT : para marcar una posición en el registro del trabajo realizado, en caso de que
sea necesaria una reversión parcial

RELEASE SAVEPOINT : para borrar un punto de rescate

5
Modo de acceso

Los dos modos de acceso a la base de datos para las transacciones son LEER ESCRIBIR y
LEER SOLAMENTE.

Si el modo de acceso es LEER ESCRITO, las operaciones en el contexto de esta transacción


pueden ser operaciones de lectura y operaciones de actualización de datos. Este es el modo
por defecto.

Si el modo de acceso es READ SOLAMENTE, solo las operaciones SELECT se pueden


ejecutar en el contexto de esta transacción. Cualquier intento de cambiar datos en el contexto
de dicha transacción dará como resultado excepciones a la base de datos. Sin embargo, no se
aplica a las tablas temporales globales (GTT) que pueden modificarse en transacciones de
SOLO LECTURA.

Modo de resolución de bloqueo

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 .

Se pueden producir bloqueos en otras situaciones cuando se usan niveles de aislamiento de


transacciones múltiples.

Los dos modos de resolución de bloqueo son WAIT y NO WAIT.

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.

Si se especifica un TIEMPO DE BLOQUEO para la transacción de ESPERA, la espera


continuará solo durante el número de segundos especificado en esta cláusula. Si no se
resuelve el bloqueo al final del intervalo especificado, se devuelve al cliente el mensaje de
error " Tiempo de espera de bloqueo en la transacción de espera ".

El comportamiento de resolución de bloqueo puede variar un poco, dependiendo del nivel de


aislamiento de la transacción.

Modo NO WAIT

En el modo NO WAIT, una transacción arrojará inmediatamente una excepción de base de


datos si se produce un conflicto.

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.

El atributo AISLAMIENTO NIVEL define el nivel de aislamiento para la transacción que se


inicia. Es el parámetro de transacción más importante para determinar su comportamiento
frente a otras transacciones en ejecución simultánea.

Los tres niveles de aislamiento admitidos en Firebird son:

• INSTANTÁNEA

7
• ESTABILIDAD DE LA TABLA DE INSTANTÁNEA
• LEA COMPROMETIDO con dos especificaciones (SIN RECORD_VERSION y
RECORD_VERSION)

Puntos de interés internos

De forma predeterminada, el motor usa un punto de seguridad del sistema de nivel de


transacción automático para realizar la reversión de transacción. Cuando un ROLLBACK se
emite instrucción, todos los cambios realizados en esta transacción se cancelan a través de
un punto de rescate de nivel de transacción y la transacción se compromete. Esta lógica
reduce la cantidad de recolección de basura causada por las transacciones retrasadas.

Cuando el volumen de cambios realizados en un punto de rescate de nivel de transacción es


grande (~ 50000 registros afectados), el motor libera el punto de rescate de nivel de
transacción y utiliza la Página de inventario de transacciones (TIP) como mecanismo para
retrotraer la transacción si es necesario.

Savepoints y PSQL

Las instrucciones de control de transacción no están permitidas en PSQL, ya que eso


rompería la atomicidad de la instrucción que llama al procedimiento. Sin embargo, Firebird
admite la generación y el manejo de excepciones en PSQL, de modo que las acciones
realizadas en procedimientos almacenados y desencadenantes se pueden deshacer de manera
selectiva sin que todo el procedimiento falle.

Internamente, los puntos de rescate automáticos se usan para:

• 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.

Si se producen conflictos u otros errores en la base de datos durante el proceso de


confirmación de la transacción, la transacción no se confirma y los motivos se transmiten a
la aplicación del usuario para su manejo y la oportunidad de intentar otra confirmación o
reanudar 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 RELEASE solo está disponible en SQL incrustado y permite la desconexión de
todas las bases de datos una vez que se ha comprometido la transacción. RELEASE
se conserva en Firebird solo por compatibilidad con las versiones heredadas de
InterBase. Ha sido reemplazado en ESQL por la declaración DISCONNECT .
• La cláusula RETAIN [SNAPSHOT] se utiliza para los " soft ", denominados de
diversas maneras entre los lenguajes de host y sus profesionales como COMMIT
WITH RETAIN , CommitRetaining, " warm commit ", et al. La transacción se
confirma, pero algunos recursos del servidor se conservan y la transacción se reinicia

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

También podría gustarte