
Introducción:
Siempre es buena práctica
organizar nuestros archivos, para poder encontrar la información necesaria en
cuestión de segundos, hablando de base de datos en muy importante tener el
control de todas las transacciones que se realizan en tal caso, en este blog
hablaremos sobre bitácoras, índices, objetos y sus funciones.
Recuerda que una bitácora es un
archivo .log en donde se guarda todas las transacciones que se realizan,
anotando información necesaria (nombre, valor antiguo y valor nuevo), cuando
ocurra un error en la base de datos es fácil de encontrar el error si contamos
con un archivo .log para poder analizar los movimientos anteriores.
Hablando de organización los
índices se usan para poder identificar la información dentro de la base de
datos, así se agiliza las transacciones.
Unidad 4. Operación y
mantenibilidad
4.1 Bitácoras de trabajo del DBMS.
4.1.1.
Funciones específica de las bitácoras.
La estructura más ampliamente
usada para grabar las modificaciones de la base de datos es la Bitácora. Cada
registro de la bitácora escribe una única escritura de base de datos y tiene lo
siguiente:
• Nombre de la Transaccion
• Valor antiguo
• Valor Nuevo
Es fundamental que siempre se
cree un registro en la bitácora cuando se realice una escritura antes de que se
modifique la base de datos.
También tenemos la posibilidad de
deshacer una modificación que ya se ha escrito en la base de datos, esto se realizará
usando el campo del valor antiguo de los registros de la bitácora.
Los registros de la bitácora
deben residir en memoria estable como resultado el volumen de datos en la
bitácora puede ser exageradamente grande.
4.1.2
Recuperación (rollback)
Un rollback es una operación que
devuelve a la base de datos a algún estado previo. Los Rollbacks son
importantes para la integridad de la base de datos, a causa de que significan
que la base de datos puede ser restaurada a una copia limpia incluso después de
que se han realizado operaciones erróneas. Son cruciales para la recuperación
de crashes de un servidor de base de datos; realizando rollback(devuelto)
cualquier transacción que estuviera activa en el tiempo del crash, la base de
datos es restaurada a un estado consistente.
4.1.3
Permanencia (commit)
En cualquier momento, el programa
podría decidir que es necesario hacer fallar la transacción, con lo que el
sistema deberá revertir todos los cambios hechos por las operaciones ya hechas.
En el lenguaje SQL se denomina COMMIT a aplicar cambios.
Las transacciones suelen verse
implementadas en sistemas de bases de datos y, más recientemente, se han visto
incorporadas a como gestiona un sistema operativo la interacción con un sistema
de archivos (como varias características de las bases de datos, debido a que
son muy similares arquitectónicamente).
Una sentencia COMMIT en SQL
finaliza una transacción de base de datos dentro de un sistema gestor de base
de datos relacional (RDBMS) y pone visibles todos los cambios a otros usuarios.
Una sentencia COMMIT publicará cualquiera de los savepoints (puntos de
recuperación) existentes que puedan estar en uso.
4.2
Definición de los modos de operación de un DBMS. (Alta, baja, recovery).
El sistema de gestión de bases de
datos es esencial para el adecuado funcionamiento y manipulación de los datos
contenidos en la base.
Las funciones esenciales de un
SGDB son la descripción, manipulación y utilización de los datos.
Descripción: Incluye la
descripción de: Los elementos de datos, su estructura, sus interrelaciones, sus
validaciones. Tanto a nivel externo como lógico global e interno esta
descripción es realizada mediante un LDD o Lenguaje de Descripción de Datos.
Manipulación: Permite: Buscar,
Añadir, Suprimir y Modificar los datos contenidos en la Base de Datos.
Utilización: La utilización
permite acceder a la base de datos, no a nivel de datos sino a la base como
tal, para lo cual: Reúne las interfaces de los usuarios y suministra
procedimientos para el administrador.
En términos ideales, un DBMS debe
contar con estas funciones.
4.3
Comandos de activación de los modos de operación.
Para ser uso de los diferentes
comandos para un modo de operación debemos estar como administrador o asuma un
rol que incluya el perfil de derechos Service Management.
Comando STARTUP: Para el arranque de una base de datos hay tres
fases de arranque, para realizar estas fases podemos utilizar startup más un
comando, las tres fases son las siguientes:
Fase de no Montaje: se leen los parámetros del sistema, se inician
las estructuras de memoria y los procesos de segundo plano. La instancia se
arranca sin asociarla a la base de datos. Normalmente se utiliza cuando se
modifica o se necesita crear el archivo de control:
startup nomount ;
Fase de Montaje: se asocia la instancia con la base de datos. Se
usa el archivo de parámetros para localizar los archivos de control, que
contienen el nombre de los archivos de datos y los registros rehacer. Los
archivos de datos y los registros de rehacer no están abiertos, así que no son
accesibles por usuarios finales para tareas normales. Para realizar esta fase
se pueden utilizar dos comandos:
startup mount;
alter database mount;
Fase de Apertura: se abren los archivos de datos y los registros
rehacer. La base de datos queda disponible para las operaciones normales. Es
necesario que existan registros rehacer de lo contrario si no hay registros
usamos el comando resetlogs, que crea registros nuevos. Para esta fase se
pueden usar dos comandos:
startup open;
alter database open;
Si es necesario utilizar resetlogs:
startup open resetlogs;
alter database open resetlogs;
startup restrict (sólo permite la conexión de usuarios con el
privilegio restricted sesion).
startup force (hace shutdown abort y arranca la BD).
Comando SHUTDOWN: El comando SHUTDOWN lo utilizamos parar una base de datos la cual consiste en
varias cláusulas.
Shutdown Normal: Este es el valor por defecto, durante el proceso
de parada no admite nuevas conexiones y espera que las conexiones actuales
finalicen. En el próximo arranque la base datos no requiere procedimientos de
recuperación.
Shutdown Immediate: Se produce una parada inmediata de la base de
datos, durante el proceso de parada no permite nuevas conexiones y las actuales
la desconecta, las transacciones que no estén commit se hara roolback de ellas.
En el próximo arranque la base datos no requiere procedimientos de
recuperación.
Shutdown Transactional: Se produce una parada hasta que hayan
terminado las transacciones activas, no admite nuevas conexiones y tampoco
nuevas transacciones, una vez que las transacciones activas van terminando va
desconectando a los usuarios. En el próximo arranque la base datos no requiere
procedimientos de recuperación.
Shutdown Abort: Aborta todos los procesos de una base de datos,
durante el proceso de parada no permite nuevas conexiones y las actuales la
desconecta, las transacciones que no estén commit se hará roolback de ellas. En
el próximo arranque la base datos puede requerir procedimientos de
recuperación.
Comando Describe: Este comando permite conocer la estructura de una
tabla, las columnas que la forman y su tipo y restricciones.
DESCRIBE f1;
Comando SHOW TABLES y SHOW CREATE TABLE: El comando SHOW TABLES
muestra las tablas dentro de una base de datos y SHOW CREATE TABLES muestra la
estructura de creación de la tabla.
Modificación: Para realizar una modificación utilizamos el comando
ALTER TABLE. Para usar ALTER TABLE, necesita permisos ALTER, INSERT y CREATE
para la tabla.
4.4. Manejo de índices
El índice de una base de datos es
una estructura alternativa de los datos en una tabla. El propósito de los
índices es acelerar el acceso a los datos mediante operaciones físicas más
rápidas y efectivas. En pocas palabras, se mejoran las operaciones gracias a un
aumento de la velocidad, permitiendo un rápido acceso a los registros de una tabla
en una base de datos. Al aumentar drásticamente la velocidad de acceso, se
suelen usar sobre aquellos campos sobre los cuáles se hacen búsquedas
frecuentes.
4.4.1 Tipos
de índices
Los índices agrupados, definen el orden en que almacenan las filas
de la tabla (nodos hoja/página de datos de la imagen anterior). La clave del
índice agrupado es el elemento clave para esta ordenación; el índice agrupado
se implementa como una estructura de árbol b que ayuda a que la recuperación de
las filas a partir de los valores de las claves del índice agrupado sea más
rápida. Las páginas de cada nivel del índice, incluidas las páginas de datos
del nivel hoja, se vinculan en una lista con vínculos dobles. Además, el
desplazamiento de un nivel a otro se produce recorriendo los valores de claves.
Los índices no agrupados tienen la misma estructura de árbol b que
los índices agrupados, con algunos matices; como hemos visto antes, en los
índices agrupados, en el último nivel del índice (nivel de hoja) están los
datos; en los índices no-agrupados, en el nivel de hoja del índice, hay un
puntero a la localización física de la fila correspondiente en el índice
agrupado. Además, la ordenación de las filas del índice está construida en base
a la(s) columna(s) indexadas, lo cual no quiere decir (a diferencia de los
índices agrupados), que la organización física de las páginas de datos
corresponda con el índice.
4.4.2
Reorganización de índices
Un paquete puede usar la tarea
Reorganizar índice para reorganizar los índices de una base de datos individual
o de varias bases de datos.
La tarea Reorganizar índice
encapsula la instrucción ALTER INDEX de Transact-SQL. Si elige compactar datos
de objetos grandes, la instrucción utiliza la cláusula REORGANIZE WITH
(LOB_COMPACTION = ON);
Dentro de las tareas habituales
de Mantenimiento de las Bases de Datos se encuentran aquellas destinadas al
control y respaldo de las mismas como ser: Control de Integridad, Chequeo de
Consistencia, Copias de Seguridad o Compactación de las bases. También es necesario
ejecutar trabajos de mantenimiento cuyos objetivos sean el de mantener la
performance de las bases de datos y evitar su degradación.
4.4.3
Reconstrucción de índices
Es importante periódicamente
examinar y determinar qué índices son susceptibles de ser reconstruidos. Cuando
un Índice está descompensado puede ser porque algunas partes de Éste han sido
accedidas con mayor frecuencia que otras. Como resultado de este suceso podemos
obtener problemas de contención de disco o cuellos de botella en el sistema.
Normalmente reconstruimos un Índice con el comando ALTER INDEX.
Es importante tener actualizadas
las estadísticas de la base de datos. Para saber si las estadísticas se están
lanzando correctamente podemos hacer una consulta sobre la tabla dba_indexes y
ver el campo last_analyzed para observar cuando se ejecutaron sobre ese Índice
las estadísticas.
Conclusión personal:
José Daniel
Puc Poot.
Una bitácora es un archivo .log
en el cual se organiza y se guarda la información de las transacciones realizadas
por el usuario y el administrador. Dentro de las funciones de la bitácora hay
dos comandos commit que se encarga de almacenar la información definitivamente
y roolback que se usa para regresar a una información anterior antes de
guardarla, por ejemplo si cometemos un error y tiene esta transacción no
perderemos datos. Al igual cuando estamos realizando nuestra base de datos es
necesario mantenerlo organizado usando índices para poder tener una mayor
agilidad y mantenibilidad de nuestros datos (tablas, celdas, objetos, etc.).
También es importante mencionar
que COMMIT y ROLLBACK terminan la transacción no el programa. Los Rollbacks son
importantes para la integridad de la base de datos, a causa de que significan
que la base de datos puede ser restaurada a una copia limpia incluso después de
que se han realizado operaciones erróneas y una sentencia COMMIT en SQL
finaliza una transacción de base de datos dentro de un sistema gestor de base
de datos relacional y pone visibles todos los cambios a otros usuarios. En
términos generales, un DBMS debe contar con estas funciones, sin embargo, no
todos las poseen, así existen algunos manejadores que no cumplen la función de
respaldo o de seguridad, dejándola al usuario o administrador; sin embargo un
DBMS que sea completo y que deba manejar una base de datos multiusuario grande,
es conveniente que cuente con todas las operaciones.
El índice de una base de
datos es una estructura alternativa de los datos en una tabla su propósito es
acelerar el acceso a los datos mediante operaciones más rápidas y efectivas.
Esto suele implementar en aquellos campos en lo que suelen hacer búsquedas
frecuentes. Existen varios
tipos de índices:
Índices compuestos: es un índice de varias columnas de una tabla
Índices agrupados: definen el orden en que almacenan las filas de la
tabla, la clave del índice agrupado es el elemento clave para esta ordenación;
el índice agrupado se implementa como una estructura de árbol b que ayuda a que
la recuperación de las filas a partir de los valores de las claves del índice
agrupado sea más rápida.
Los índices no agrupados tienen
la misma estructura de árbol b que los índices agrupados, con algunos matices;
la ordenación de las filas del índice está construida en base a la(s)
columna(s) indexadas, lo cual no quiere decir (a diferencia de los índices
agrupados), que la organización física de las páginas de datos corresponda con
el índice.
Los índices tienen las siguientes
propiedades: facilidad de uso, visibilidad, rápido acceso a datos de la base de
datos. Además pueden estar clasificados en estructura de árbol B, tablas
organizadas, descendentes, B-Tree de Racimo y otros.
Arístides
mateo miguel.
Con toda la información ya
presentada anteriormente, puedo concluir que las bitácoras son muy importantes
para una base de datos, porque nos permite registrar, analizar, detectar y
notificar eventos que sucedieron en nuestra base de datos. Existen 2 comandos
importantes en las bitácoras, “commit” que se encarga de almacenar la
información definitivamente y “roolback” que se usa para regresar a una
información anterior antes de guardarla.
Otro subtema que me pareció importante es de los manejos de manejo de índices. El índice de una base de datos es una estructura alternativa de los
datos en una tabla su propósito es acelerar el acceso a los datos mediante
operaciones más rápidas y efectivas. Esto se le suele implementar en aquellos
campos en lo que suelen hacer búsquedas frecuentes.
Tipo de índices.
Índices compuestos: es un índice de varias columnas de una tabla
Índices agrupados: definen el orden en que almacenan las filas de la
tabla, la clave del índice agrupado es el elemento clave para esta ordenación; el
índice agrupado se implementa como una estructura de árbol b que ayuda a que la
recuperación de las filas a partir de los valores de las claves del índice
agrupado sea más rápida.
Los índices no agrupados tienen
la misma estructura de árbol b que los índices agrupados, con algunos matices;
la ordenación de las filas del índice está construida en base a la(s)
columna(s) indexadas, lo cual no quiere decir (a diferencia de los índices
agrupados), que la organización física de las páginas de datos corresponda con
el índice.
Los índices tienen las siguientes
propiedades: facilidad de uso, visibilidad, rápido acceso a datos de la base de
datos. Además pueden estar clasificados en estructura de árbol B, tablas
organizadas, descendentes, B-Tree de Racimo y otros.
Reorganización de índices: Un
paquete puede usar la tarea Reorganizar índice para reorganizar los índices de
una base de datos individual o de varias bases de datos a medida que se agregan, modifican o borran
datos se produce fragmentación. Para las consultas que recorren parcial o
totalmente los índices de una tabla, este tipo de fragmentación puede producir
lecturas de páginas adicionales. La fragmentación de índices se puede reparar
reorganizando un índice o reconstruyéndolo. Para reorganizar uno o más índices
se debe usar la sentencia ALTER INDEX con la cláusula REORGANIZE. El proceso de
reorganización de índices se realiza siempre en línea y el consumo de recursos
es bajo por lo que no mantiene bloqueos por mucho tiempo.
Reconstrucción de índices: Es
importante examinar constantemente y determinar qué índices pueden ser validos
para ser reconstruidos, normalmente se reconstruyen índices con el comando
ALTER INDEX pero es muy importante tener actualizadas las estadísticas de la
base de datos, esto para saber si las estadísticas se están lanzando
correctamente. Ahora para actualizar las estadísticas utilizamos el paquete
DBM_STATS. Tambien para reconstruir
una partición de un índice podríamos hacer lo siguiente: ALTER INDEX
<index_name> REBUILD PARTITION <nb_partition> NOLOGGING. Con estos
comandos podemos reconstruir algún índice que este en la bases de datos. En
general estas herramientas, operadores y comandos nos permite como
administradores de información de una bases de datos tener la máxima seguridad
y fiabilidad de la información de la base de datos estos son algunas posibles
operaciones que ayudan a la integridad pero es muy importante tener en cuanta
cada detalle de estos, para un administrador de base de datos la tarea es muy
extensa pero debe de ser muy cuidadoso para
la implementación de estas operaciones, ya que estas son herramientas
que le facilitaran la manipulación y corrección en tiempo y forma a una base de
datos.
Manuel
Jesús Cen Valadez.
En esta unidad trata acerca de
cómo se hacen las bitácoras, que función tienen y porque son tan importantes,
además es necesario conocer porque son importante a la hora de realizar cambios
o conocer un poco más del sistema de base de datos que se está manejando
bitácoras de trabajo del dbms en muchos dbms la bitácora incluye todo tipo de
consulta incluyendo aquellas que no modifican los datos. La operación rollback
está basada en el uso de una bitácora. El dbms mantiene una bitácora en cinta
en disco, comúnmente, en el cuál se registran los detalles de todas las
operaciones de actualización, en particular, los valores iniciales y final del
objeto modificado. Por tanto, si resulta necesario anular alguna modificación
específica, el sistema puede utilizar la entrada correspondiente de la bitácora
para restaurar el valor original del objeto restaurado.
La estructura más ampliamente
usada para grabar las modificaciones de la base de datos es la Bitácora. Es
fundamental que siempre se cree un registro en la bitácora cuando se realice
una escritura antes de que se modifique la base de datos. También tenemos la
posibilidad de deshacer una modificación que ya se ha escrito en la base de
datos, esto se realizará usando el campo del valor antiguo de los registros de
la bitácora. Los registros de la bitácora deben residir en memoria estable como
resultado el volumen de da-tos en la bitácora puede ser exageradamente grande.
Las operaciones commit y rollback establecen lo que se le conoce como punto de
sincronización lo cual representa el límite entre dos transacciones
consecutivas, o el final de una unidad lógica de trabajo, y por tanto al punto
en el cual la base de datos esta (o debería estar) en un estado de
consistencia. Las únicas operaciones que establecen un punto de sincronización
son commit, rollback y el inicio de un programa. Cuando se establece un punto
de sincronización, se comprometen o anulan todas las modificaciones realizadas
por el programa desde el punto desincronización anterior. Se pierde todo
posible posicionamiento en la base de datos. Se liberan todos los registros
bloqueados. Es importante advertir que commit y rollback terminan las
transacción, no el programa.
Como conocemos en un archivo
debemos tener una serie de reglas para el resguardo de esta misma, en este caso
serían altas, bajas y recuperación, donde las altas seria la información que
deseamos almacenar o tener un archivo, las bajas el método la cual podemos
borrar o modificar los archivos, y por último la recuperación que siempre
debemos tener en cuenta. De tal manera que debemos tener la protección de
nuestros archivos, haciendo restricciones de nuestros documentos almacenados.
Tener en cuenta los errores que podamos tener en nuestras aplicaciones, los
diferentes comandos para un modo de operación debemos estar como administrador
o asuma un rol que incluya el perfil de derechos Service Management, Un índice
es una estructura opcional, asociado con una mesa o tabla de clúster, que a
veces puede acelerar el acceso de datos. Mediante la creación de un índice en
una o varias columnas de una tabla, se obtiene la capacidad en algunos casos,
para recuperar un pequeño conjunto de filas distribuidas al azar de la tabla.
Los índices son una de las muchas formas de reducir el disco.
Eliseo
Martin Martin.
Bitácoras de trabajo del DBMS.
Esta es una Herramienta que nos permite registrar, analizar, detectar
y notificar eventos que sucedan en cualquier sistema de información utilizado
en una base de datos. También podemos recuperar
la información por si tenemos algunos problemas de seguridad o detección de
comportamiento inusual. Con esto podemos guardar las transacciones realizadas
sobre una base de datos en específico. Por tanto, la podemos manipular, en el cual, si resulta necesario anular
alguna modificación específica, nuestro sistema puede utilizar la entrada
correspondiente de la bitácora para restaurar el valor original del objeto
restaurado. En general la función específica de las bitácoras es realizar un
registro, que indicara el nombre de la transacción, un valor nuevo y un valor
antiguo. Es fundamental crear
un registro en la bitácora cuando se realice una escritura antes de que se
modifique la base de datos, existen algunas operaciones como las de COMMIT y
ROLLBACK estos dos comandos sirven para realizar un punto de sincronización lo
cual representa el límite entre dos transacciones consecutivas, la operación
Rollback o bien “recuperación” esto puede devolver algún punto de restauración
previa, una sentencia ROLLBACK también publicará
cualquier savepoint existente que pudiera estar en uso. La funcionalidad
de rollback está implementada con un Log de transacciones, pero puede
también estar implementada mediante control de concurrencia multiversión. La
otra operación que es la de COMMIT o bien “consignar un conjunto de cambios
tentativos o no permanentes” que mayormente se utiliza al final de una
transacción de una base de datos. Una sentencia COMMIT en SQL finaliza una transacción de base de datos y
pone visibles todos los cambios a otros usuarios. Tambien una sentencia COMMIT
puede publicar cualquiera de los puntos de restauración existentes que puedan
estar en uso.
Definición de los modos de
operación de un DBMS (Alta, Baja, Recovery).
Una operación de alta en un
archivo consiste en la adición de un nuevo registro, en el de baja borrar
registros, para un
mejor y adecuado funcionamiento y manipulación de los datos de la BD debe
permitir buscar, añadir, suprimir y modificar los datos contenidos en la Base
de Datos.
Los Comandos de activación para
los modos de operación, sirven para:
STARTUP: Arranque de una base de
datos
SHUTDOWN: Es utilizado parar una
base de datos la cual consiste en varias cláusulas.
DESCRIBE: Permite conocer la
estructura de una tabla, las columnas que la forman, su tipo y
restricciones.
MODIFICACIÓN: Para realizar una
modificación utilizamos el comando ALTER TABLE
Manejo de índices.
El índice de una base de
datos es una estructura alternativa de los datos en una tabla su propósito es
acelerar el acceso a los datos mediante operaciones más rápidas y efectivas.
Esto suele implementar en aquellos campos en lo que suelen hacer búsquedas
frecuentes.
Tipo de índices.
Índices compuestos: es un índice de varias columnas de una tabla
Índices agrupados: definen el orden en que almacenan las filas de la
tabla, la clave del índice agrupado es el elemento clave para esta ordenación;
el índice agrupado se implementa como una estructura de árbol b que ayuda a que
la recuperación de las filas a partir de los valores de las claves del índice
agrupado sea más rápida.
Los índices no agrupados tienen
la misma estructura de árbol b que los índices agrupados, con algunos matices;
la ordenación de las filas del índice está construida en base a la(s)
columna(s) indexadas, lo cual no quiere decir (a diferencia de los índices
agrupados), que la organización física de las páginas de datos corresponda con
el índice.
Los índices tienen las siguientes
propiedades: facilidad de uso, visibilidad, rápido acceso a datos de la base de
datos. Además pueden estar clasificados en estructura de árbol B, tablas
organizadas, descendentes, B-Tree de Racimo y otros.
Alexis
francisco Kauil chin.
En conclusión a esta unidad nos
podemos dar cuenta que es de gran importancia, en primera porque es fundamental
que siempre se cree un registro en la bitácora cuando se realice una escritura
antes de que se modifique la base de datos. También tenemos la posibilidad de
deshacer una modificación que ya se ha escrito en la base de datos, esto se
realizará usando el campo del valor antiguo de los registros de la bitácora.
También es importante mencionar
que COMMIT y ROLLBACK terminan la transacción no el programa. Los Rollbacks son
importantes para la integridad de la base de datos, a causa de que significan
que la base de datos puede ser restaurada a una copia limpia incluso después de
que se han realizado operaciones erróneas y una sentencia COMMIT en SQL
finaliza una transacción de base de datos dentro de un sistema gestor de base
de datos relacional y pone visibles todos los cambios a otros usuarios. En
términos generales, un DBMS debe contar con estas funciones, sin embargo, no
todos las poseen, así existen algunos manejadores que no cumplen la función de
respaldo o de seguridad, dejándola al usuario o administrador; sin embargo un
DBMS que sea completo y que deba manejar una base de datos multiusuario grande,
es conveniente que cuente con todas las operaciones.
Por ultimo un paquete puede usar
la tarea Reorganizar índice para reorganizar los índices de una base de datos
individual o de varias bases de datos. Si la tarea solo reorganiza los índices
de una base de datos individual, puede elegir las vistas o las tablas cuyos
índices reorganiza la tarea. La tarea Reorganizar índice también incluye la
opción de compactar datos de objetos grandes. Los datos de objetos grandes son
datos de tipo image, text, ntext, varchar(max), nvarchar(max), varbinary(max) o
xml.
Bibliografía:
Mapa conceptual de toda la unidad:


