You are on page 1of 19

Administracin de Base

de Datos
Instituto Tecnolgico de Tuxtla Gutirrez
6 Semestre
Ingeniera en Sistemas Computacionales

Jos Luis Lorenzo Lpez


Diego Armando Morales Aguilar
Marco Antonio Ramrez Gmez
Miguel ngel Rodrguez Guillen

4.3 Comandos de Activacin


de los Modos de Operacin
Qu es una transaccin?

Secuencia de operaciones que se ejecutan


completamente o bien no se realizan.
No puede quedarse en un estado intermedio
Ejemplo: una transferencia entre dos cuentas no puede
quedarse en un estado intermedio: O se deja el dinero en
la primera cuenta o en la segunda, pero no se puede
sacar el dinero de la primera cuenta, que falle algo en ese
momento y no entregarlo en la segunda.

Es una secuencia de una o varias instrucciones de


SQL que forman conjuntamente una unidad lgica

4.3 Comandos de Activacin


de los Modos de Operacin
Los pasos para usar transacciones en
MySQL son:

Iniciar una transaccin con el uso de la


sentencia BEGIN.
Actualizar, insertar o eliminar registros en la
base de datos.
Si se quieren los cambios a la base de datos,
completar la transaccin con el uso de la
sentencia COMMIT. nicamente cuando se
procesa un COMMIT los cambios hechos por las
consultas sern permanentes.
Si sucede algn problema, podemos hacer uso
de la sentencia ROLLBACK para cancelar los

4.3 Comandos de Activacin


de los Modos de Operacin
COMMIT: Finaliza la transaccin actual
y hace permanentes (confirma) los
cambios realizados
ROLLBACK:Finaliza
la
transaccin
actual
y
deshace
los
cambios
realizados
Por defecto el autocommit esta activado

Sentencia COMMIT
Una sentenciaCOMMITmarca el final de una
transaccin correcta, implcita o definida por
el usuario. COMMIT hace que todas las
modificaciones efectuadas sobre los datos
desde el inicio de la transaccin sean parte
permanente de la base de datos, y adems,
libera los recursos mantenidos por la
conexin. Su sintaxis es la siguiente:
COMMITCOMMENT'mensaje' |FORCE'texto']
COMMENTsirve para comentar la transaccin
en un mximo 255 caracteres.FORCE fuera de

Sentencia ROLLBACK
Seala el final sin xito de una transaccin, elimina todas las
modificaciones de datos realizadas desde el inicio de la
transaccin y tambin libera los recursos que retiene la
transaccin. Su sintaxis es la siguiente:
ROLLBACK [WORK] [TO SAVEPOINTnombrePuntoRestauracin
|FORCE'texto'];
Finaliza la transaccin actual y deshace los cambios realizados.

Ejemplo

RECOVERY
Un sistema de recuperacin consiste en
restaurar la BD a un estado correcto, tras
cualquier fallo que la haya dejado en un
estado incorrecto.
En Oracle hay recuperaciones automticas ante
los fallos el proceso, vara dependiendo del tipo de
fallo y las estructuras afectadas.
Ficheros Redo Log: Ficheros de almacenamiento
de cambios en la BD, (Recovery).
Ficheros de Control: Almacenan el estado de la
estructura fsica de la BD, (Gua de
recuperacin).
Rollback segments: Almacenan las ltimas
sentencias realizadas sobre la BD. Saben

4.4 MANEJO DE INDICES


El ndice de una base de datos que
mejora la velocidad de las
operaciones, permitiendo un rpido
acceso a los registros de una tabla en
una base de datos. Al aumentar
drsticamente la velocidad de acceso,
se suelen usar sobre aquellos campos
sobre los cuales se hacen frecuentes
bsquedas.

4.4.1 Tipos de Indices


PRIMARY KEY: Este ndice se ha creado para generar
consultas especialmente rpidas, debe ser nico y
no se admite el almacenamiento NULL.
KEY o INDEX: Son usados indistintamente por
MySQL, permite crear ndices sobre una columna,
sobre varias columnas o sobre partes de una
columna.
UNIQUE: Este tipo de ndice no permite el
almacenamiento de valores iguales.
FULLTEXT: Permiten realizar busquedas de palabras.
Solo pueden usarse sobre columnas CHAR,
VARCHAR o TEXT.
SPATIAL: Este tipo de ndices solo puede usarse
sobre columnas de datos geomtricos (spatial) y en
el motor MyISAM

-> CREATE TABLE nombreTabla(campo1 tipoDato,[campo2...,]


PRIMARY KEY (campo1 [,campo2...]) );
-> ALTER TABLE nombreTabla ADD PRIMARY KEY(campo1
[,campo2...]);
-> CREATE TABLE nombreTabla(campo1 tipoDato, campo2
tipoDato,.. INDEX [nombreIndice] (campo1 [,campo2...]));
-> ALTER TABLE nombreTabla ADD INDEX [nombreIndice]
(campo1 [,campo2...]);
-> CREATE INDEX nombreIndice ON nombreTabla(campo1
[,campo2...]);
-> CREATE TABLE nombreTabla( campo1 TIPO, campo2 TIPO,
FULLTEXT [nombreIndice] (campo1 [campo2,...]) );
-> ALTER TABLE nombreTabla ADD FULTEXT [nombreIndice]
(campo1 [,campo2,...]);
-> CREATE FULLTEXT INDEX nombreIndice ON
nombreTabla(campo1 [,campo2,...]);
-> CREATE TABLE nombreTabla(campo1 tipoDato, campo2
tipoDato,..
UNIQUE [nombreIndice] (campo1 [,campo2...]));

4.4.2 Reorganizacin de
ndices

Un factor clave para conseguir una E/S


de disco mnima para todas las
consultas de bases de datos es
asegurarse de que se creen y se
mantengan buenos ndices. Una vez
creados los ndices, se debe procurar
mantenerlos para asegurarse que
sigan trabajando en forma ptima.

Fragmentacin de los
ndices

La fragmentacin es consecuencia de
los procesos de modificacin de los
datos (instrucciones INSERT, UPDATE y
DELETE) efectuados en la tabla y en
los ndices definidos en la tabla.
Existen dos tipos de fragmentacin:
Interna: Fragmentacin dentro de pginas
individuales de datos e ndices con espacios
libres que generan la necesidad de ms
operaciones de E/S y ms memoria para su
lectura.
Externa: Cuando el orden lgico de las

La fragmentacin de ndices se puede


reparar reorganizando un ndice o
reconstruyndolo. Para los ndices
fraccionados que fueron construidos
en una estructura partida se puede
usar cualquiera de estos mtodos o
bien en un ndice completo o bien en
un nico fragmento del ndice.
Deteccin de fragmentacin: El
primer paso para decidir qu mtodo
de desfragmentacin se va a utilizar
consiste en analizar el ndice para

La siguiente sentencia permite


conocer el grado de fragmentacin de
los ndices de la base de datos
thuban-homologada.

Una vez que se toma conciencia del nivel de


fragmentacin, se debe utilizar la tabla a
continuacin para determinar el mejor
mtodo para su correccin.
Para reorganizar uno o ms ndices se debe
usar la sentencia ALTER INDEX con la
clusula REORGANIZE. Por ejemplo:
ALTER INDEX PK_LOGS ON THUBAN_LOGS
REORGANIZE

El proceso de reorganizacin de ndices se


realiza siempre en lnea y el consumo de
recursos es bajo por lo que no mantiene
bloqueos por mucho tiempo.

4.4.3 Reconstruccin de
La reconstruccin de un ndice lo descarta y
ndices
genera uno nuevo. Esto provoca la
eliminacin de la fragmentacin, el reclamo
de lugar en el disco a travs de la
compactacin de pginas por la
configuracin de fill factor y el
reordenamiento de filas de ndices en
pginas continuas (asignacin de nuevas
pginas).
Los siguientes mtodos pueden utilizarse para
reconstruir ndices agrupados y no agrupados:
ALTER INDEX con la clusula REBUILD.
CREATE INDEX con la clusula DROP_EXISTING.

Ejemplo:

La siguiente declaracin reconstruye el


admin_docindex
tabla
organizada
por
ndices.
ALTER TABLE admin_docindex MOVE;

Para reconstruir la tabla de admin_docindex


pero no el segmento de datos de
desbordamiento, realizar un movimiento en
lnea de la siguiente manera:
ALTER TABLE admin_docindex MOVE ONLINE;

Para reconstruir la tabla admin_docindex


junto con su segmento de datos de
desbordamiento de realizar la operacin de

En esta ltima afirmacin, se crea una tabla


organizada por ndices con una columna
LOB (CLOB). Ms tarde, la tabla se mueve
con el ndice LOB y segmento de datos se
reconstruye y se traslad a un nuevo
espacio de tablas.
CREATE admin_iot_lob TABLE
(nmero c1 (6) clave primaria,
admin_lob CLOB)
ORGANIZATION INDEX
L.OB (admin_lob) STORE AS (TABLESPACE
admin_tbs2);
.
.

You might also like