Anda di halaman 1dari 33

TECNOLÓGICO DE ESTUDIOS

SUPERIORES DE ECATEPEC

APUNTES PARA LA
ASIGNATURA DE TALLERDE
BASE DE DATOS.

Febrero 2011.

División de la
Licenciatura en Informática
Av. Tecnológico Esq. Av. Hank González Col. Valle de Anáhuac C.P. 55210 Ecatepec de Morelos, Edo. de México

1
Tecnológico de Estudios Superiores de Ecatepec
Dirección Académica
Licenciatura en Informática

APUNTES PARA LA ASIGNATURA DE


TALLER
BASE DE DATOS

Realizado
por

M. en C. Ma. Dolores Sabido Montejo

2
Introducción.

3
Contenido
Licenciatura en Informática .................................................................................................... 1
UNIDAD I. GESTOR DE BASE DE DATOS .................................................................. 5
1.1 Características de un Gestor. ................................................................................. 5
Sistema de Gestión de Base de Datos. (SGBD) ........................................................ 5
Evaluación Diagnostica de Diseño de Arquitectura de Base de Datos. ................ 7
1.2 Herramientas ............................................................................................................. 8
1.2.1 De creación de base de datos ..................................................................... 8
1.2.2 De administración de BD .............................................................................. 9
1.2.3 De edición para crear esquemas y consultas de BD ................................. 16
1.2.4 De control, monitoreo y estadísticas de acceso a BD ........................... 17
1.2.5 Utilerías diversas ............................................................................................. 17
1.3 Instalación y Configuración del entorno operativo........................................ 17
2. Administración de la BD .............................................................................................. 18
2.1 Creación de BD ....................................................................................................... 18
2.1.1 Creación de la estructura de BD .................................................................. 18
2.1.2 Creación de dominios definidos por el DBA ............................................ 18
2.1.3 Definir esquemas generales de la BD (tablas, atributos, llaves
primarias y llaves heredadas) .................................................................................. 19
2.1.4 Creación de vistas de BD ........................................................................... 19
Regla de integridad de entidades ............................................................................... 22
Regla de integridad referencial .................................................................................... 23
Creación de una Contraseña de Usuario para Acceso en SQL Server............ 26
Administración de Permisos..................................................................................... 26
2.4 Definición de esquemas de recuperación ....................................................... 27
2.4.1 Diseño y creación de la bitácora ................................................................... 27
Concepto ..................................................................................................................... 27
2.4.2 Recuperación a partir de la bitácora ......................................................... 28
2.4.3 Respaldar la BD ............................................................................................... 28
2.4.4 Recuperar la BD........................................................................................... 31

4
UNIDAD I. GESTOR DE BASE DE DATOS

Objetivo de la Unidad Didáctica.

El estudiante identificara herramientas de software para


diseñar y administrar bases de datos, así como las tecnologías
de conectividad.

1.1 Características de un Gestor.

Un gestor de base de datos consiste en una colección de datos interrelacionados


y una colección de programas para acceder a esos datos. Su objetivo es proporcionar un
entorno que sea conveniente y eficiente para proporcionar la recuperación y el
almacenamiento de la información a las personas.

Los sistemas de base de datos se diseñan para almacenar grandes cantidades de


información. La gestión de los datos implica tanto la definición de las estructuras para el
almacenamiento como la provisión de mecanismos para la manipulación de la
información. Además deben proporcionar la seguridad de la información almacenada en
casos de caídas del sistema o intentos de acceso sin autorización.
La estructura de la base de datos está compuesta por:
Modelo de Datos: que es una colección de herramientas conceptuales para
describir los datos y la relación entre ellos, la semántica de los datos y las
restricciones. En el se utilizan el modelo E-R, modelo relacional y el modelo
orientado a objetos.
Esquema de la Base de datos: es el diseño general de la base de datos y en el se
especifica un conjunto de definiciones que se expresan mediante un lenguaje de
definición de datos (LDD) y un lenguaje de manipulación de datos (LMD).

Sistema de Gestión de Base de Datos. (SGBD)

Este se encuentra compuesto por:

Gestor de Almacenamiento: es un modulo de programas que proporciona la


interfaz entre los datos de bajo nivel y los programas de aplicación y consulta
emitidos por el sistema. El gestor de almacenamiento es responsable de la
interacción con el gestor de archivos. Sus componentes son:

5
 Gestor de autorización e integridad que comprueba que se cumplan las
restricciones de integridad y autorización de los usuarios para acceder a
los datos.
 Gestor de transacciones, que asegura que la base de datos quede en un
estado consistente a pesar de los fallos del sistema y que las ejecuciones
de transacciones concurrentes ocurran sin conflictos.
 Gestor de archivos, gestiona la reserva de espacio de almacenamiento de
disco.
 Gestor de memoria intermedia, es responsable de traer los datos del disco
de almacenamiento a memoria principal y decidir que datos tratar en
memoria caché.

El gestor de almacenamiento implementa varias estructuras de datos como parte de la


implementación física y son:
 Archivos de datos.
 Diccionarios de datos que almacena metadatos acerca de la estructura de datos.
 Índices que proporcionan acceso rápido a elementos de datos que tienen valores
particulares.

Procesador de consultas. Sus componentes son:


 Interprete de LDD. Que interpreta las instrucciones del LDD y registra
las definiciones en el diccionario de datos.
 Compilador del LMD.

6
Evaluación Diagnostica de Diseño de Arquitectura de Base de Datos.

Una empresa desea tener el control de su almacén. La información que tiene es:
1. Cada producto tiene una clave, un nombre, un costo, una cantidad en existencia y
una cantidad faltante.
2. Cada producto tiene una descripción y un uso especifico que se puede utilizar para
varios experimentos.
3. El almacén cuenta con equipo el cual tiene un número de inventario, un nombre,
descripción de características y un precio.
4. El material de laboratorio se clasifica en equipo, materiales, herramientas.
5. También cuenta con herramientas que pueden ser mecánicas, de software, etc.
6. Dentro de los materiales se encuentran reactivos químicos, material de vidrio de
laboratorio, material de la limpieza, y otros suministros de los cuales es necesario
controlar las existencias y pedidos. Cada uno de ellos tiene una clave, un nombre,
unidad de medida, descripción, precio y una partida presupuestal.

Realice el diseño lógico y físico incluyendo normalización y consulta.

7
1.2 Herramientas

Una de las principales herramientas que existen dentro de los gestores de base de
datos, es la administración de usuarios, privilegios y funciones, de contraseñas de
usuarios y el establecimiento de límites de recursos de la base de datos.

1.2.1 De creación de base de datos

Los SGBD, tienen en su estructura editores de textos, que permiten la creación de la


arquitectura de la base de datos. Así se pueden crear bases de datos, tablas a través
del lenguaje de definición de datos (DDL).
También es utilizado para alterar o borrar objetos, tales como esquemas, tablas,
columnas, vistas y secuencias. Como ejemplo, en SQL, son las instrucciones o
comandos CREATE, ALTER y DROP.
Microsoft SQL 2005 tiene dos formas de crear una base de datos, la primera en la cual
mediante el analizador de consultas utilizando la sentencia:
Create database nombre de la bd

La otra forma es especificando el nombre de la base de datos, establecer el tamaño y


la ubicación de los archivos que se crearán para la base de datos, tales como tablas o
diagramas de la misma. Su sentencia es:

CREATE DATABASE ejemplo


ONPRIMARY (NAME=practica_1,
FILENAME='c:\Archivos de programa\..\..\BD\ejemplo.mdf',
SIZE=10MB,
MAXSIZE=15MB,
FILEGROWTH=20%)
LOG ON (NAME=EjemploLog,
FILENAME= 'c:\Archivos de programa\..\..\BD\ejemplo.ldf',
SIZE=3MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
COLLATE SQL_Latin1_General_Cp1_CI_ASCREATE

Donde:

Primary: Es el parámetro que especifica los archivos del grupo de archivos principal.
El grupo de archivos principal contiene todas las tablas del sistema de la base de
datos. También contiene todos los objetos no asignados a grupos de archivos del
usuario. Todas las bases de datos tienen un archivo de datos principal. El archivo de
datos principal es el punto de inicio de la base de datos y señala a los demás archivos
de la base de datos. La extensión de nombre de archivo recomendada para los
archivos de datos principales es .mdf. Si no se especifica la palabra clave PRIMARY,
el primer archivo enumerado en la instrucción es el archivo principal.

8
Filename: Este parámetro especifica el nombre del archivo del sistema operativo y la
ruta de acceso al archivo. La ruta acceso de archivoSO debe especificar una carpeta
del servidor en el que está instalado SQL Server.

Size: Este parámetro especifica el tamaño de los archivos de datos o de registro.


Puede especificar los tamaños en megabytes (MB), que es el valor predeterminado, o
en kilobytes (KB). El tamaño mínimo es de 512 KB, tanto para los archivos de datos
como para los archivos de registro. El tamaño especificado para el archivo de datos
principal debe ser, al menos, como el tamaño del archivo principal de la base de datos
model. Cuando se agrega un archivo de datos o un archivo de registro, el valor
predeterminado es 1 MB.

Maxsize. Este parámetro especifica el tamaño máximo hasta el que puede crecer el
archivo. Puede especificar el tamaño en megabytes (valor predeterminado) o en
kilobytes. Si no se especifica el tamaño, el archivo crece hasta que el disco esté lleno.

FileGrowth. Este parámetro especifica el incremento de crecimiento del archivo. El


valor de FILEGROWTH de un archivo no puede sobrepasar el valor de MAXSIZE. Un
valor de 0 indica que no hay crecimiento. El valor se puede especificar en megabytes
(el valor predeterminado), en kilobytes o como porcentaje (%). Si no se especifica
FILEGROWTH, el valor predeterminado es el 10 por ciento y el valor mínimo es 64 KB
(una extensión). El tamaño especificado se redondea al múltiplo de 64 KB más
próximo.

Collation. Este parámetro especifica la intercalación predeterminada para la base de


datos. La intercalación incluye las reglas que gobiernan el uso de caracteres de un
lenguaje o un alfabeto.

1.2.2 De administración de BD

El SGBD, permite administrar la base de datos, a través de diferentes herramientas, entre


ellas se encuentran:

Administración del SGBD.


Dentro de la administración del SGBD, se encuentra la definición de la base de datos, la
gestión de transacciones, configuración de opciones de la base de datos, la creación de
tipos de archivo y el control de ellos y la administración de las bases de datos.
En cuanto a la definición de la base de datos, en ella se determina el nombre, tamaño,
ubicación de la misma así como de sus tablas.

En SQL Server 2005, graba las transacciones en un registro de transacciones, el cual es


un área de almacenamiento que efectúa el cambio de todos los cambios realizados en la
base de datos, ya sea en un registro, una tabla o en la base en sí. La finalidad de este
registro es mantener la coherencia e integridad de la base de datos y facilitar así su
recuperación. Para que SQL Server realice el registro, el proceso es: (ver figura 1)

9
a) La aplicación, la cual puede ser el lenguaje huésped donde fue desarrollado el
sistema con conexión a la base de datos, envía una modificación de datos.
b) Cuando la modificación se ejecuta, las páginas de datos afectadas se cargan en la
caché del disco.
c) Cada instrucción de modificación de datos se graba en el registro mientras se
ejecuta y se escribe en el disco antes de hacer la modificación en la base de
datos, debido a que SQL Server utiliza la técnica de transacción con registro de
preescritura.
d) Finalmente, realiza un proceso de punto de comprobación en la cual escribe en el
disco todas las transacciones completadas y que se realizaron exitosamente, cada
vez que se verifica un marcador de transacción que recupera automáticamente
una vez que encuentra los puntos de inicio y fin de la misma.

1
Figura 1. Registro de transacciones con proceso de comprobación y escritura de la misma.

Configuración de Opciones de la Base de Datos

Una vez que la BD se encuentra definida, se puede configurar de acuerdo a


diversas opciones que se tienen. En el caso de SQL Server 2005, cuenta con 4 opciones
las cuales son: opciones automáticas, opciones de cursor, de recuperación y opciones de
SQL, siendo sus características las siguientes:

opción de base de Opción de base de datos Descripción


datos
Crea automáticamente las estadísticas
que faltan que son necesarias para la
AUTO_CREATE_STATISTICS optimización de consultas. El valor
predeterminado es ON.

1
Fuente Manual de Certificación en Microsoft Server SQL.
10
Opciones AUTO_UPDATE_STATISTICS Actualiza automáticamente las
automáticas estadísticas desfasadas necesarias para
la optimización de consultas. El valor
predeterminado es ON.
Cierra automáticamente los cursores
abiertos cuando se confirma una
CURSOR_CLOSE_ON_COMMIT transacción. El valor predeterminado es
OFF y los cursores permanecen abiertos.
CURSOR_DEFAULT_LOCAL limita el
ámbito del cursor. Es local al lote,
Opciones de cursor procedimiento almacenado o
CURSOR_DEFAULT LOCAL desencadenador en el que se creó el
| GLOBAL cursor. CURSOR_DEFAULT_GLOBAL es
el valor predeterminado; el ámbito del
cursor es global respecto a la conexión
FULL proporciona recuperabilidad
completa ante errores del medio; es el
valor predeterminado. BULK_LOGGED
utiliza menos espacio de registro porque
el registro es mínimo, pero tiene un riesgo
RECOVERY FULL | mayor de exposición. SIMPLE recupera la
BULK_LOGGED | SIMPLE base de datos sólo hasta la última copia
de seguridad completa de la base de
datos o hasta la última copia de seguridad
recuperación diferencial.
Permite a SQL Server detectar
operaciones de E/S incompletas
TORN_PAGE_DETECTION causadas por cortes de energía u otros
apagones del sistema. El valor
predeterminado es ON.
Permite al usuario controlar la capacidad
de asignación predeterminada de valores
ANSI_NULL_DEFAULT NULL de la base de datos. SQL Server
2000 toma como valor predeterminado
NOT NULL.
Si está activada, todas las comparaciones
con un valor nulo se evalúan como NULL
(desconocido). Si está desactivada, todas
las comparaciones de valores no Unicode
ANSI_NULLS con un valor nulo se evalúan como
verdaderas (TRUE) si ambos valores son
NULL. De manera predeterminada, la
opción de base de datos ANSI_NULLS es
OFF.
READ_ONLY | READ_WRITE Define la base de datos como de sólo
Opciones de SQL lectura (se utiliza para establecer la
seguridad en las bases de datos de
ayuda a la toma de decisiones) o
devuelve la base de datos a operaciones
de lectura y escritura.

11
SINGLE_USER permite que los usuarios
se conecten a la base de datos de uno en
uno. Todas las demás conexiones se
interrumpen. RESTRICTED_USER
permite que sólo los miembros de la
SINGLE_USER | función fija de base de datos db_owner y
RESTRICTED_USER | de las funciones fijas de servidor
MULTI_USER dbcreator y sysadmin se conecten a la
base de datos. MULTI_USER permite
que todos los usuarios con los permisos
adecuados se conecten a la base de
datos. MULTI_USER es la opción
predeterminada.

Creación de Tipos de Archivos

Uno de los mayores problemas en las bases de datos son su crecimiento y la cantidad de
consultas que se generan en una o varias bases de datos o tablas, los SGBD permiten
separar las tablas o archivos para que el administrador pueda controlar aquellas de mayor
acceso a través de la creación de grupos de archivos. Estos archivos pueden encontrarse
en discos duros diferentes y sin embargo el SGBD permite el acceso a cada uno de ellos
como si estuviesen en un solo disco o en un solo archivo.
Es importante mencionar que para que se encuentren en diferentes discos se debe
establecer la configuración de hardware que permita dicha manipulación. Los grupos de
archivos son colecciones de archivos con un nombre. Así por ejemplo en la figura 2, se
puede observar que existen en el disco C:\ varios objetos de nombre sysobjects y
archivos de tablas con el nombre de producto, clientes, etc. Mientras que en el D:\ existe
el archivo historial1, historial2.
Un grupo de archivo son todos ellos tanto los que se encuentran en el disco C:\ como los
del disco D:\, solo que se encuentran separados debido a que los archivos historial1 y 2
son muy consultados situación por la que el administrador decidió separarlos.

Otra de sus ventajas, es que el administrador del SGBD puede hacer respaldo y
recuperación de toda la base de datos o solo del grupo de archivos que le interesa.
Existen diferentes tipos de archivos, siendo estos:

El grupo de archivos principal, que contiene las tablas del sistema en el archivo de
datos principal, esto es, las bases datos del sistema y las creadas por el usuario
como primary.
Los grupos de archivos definidos por el usuario, que son los grupos de archivos
que se especifican mediante la palabra clave FILEGROUP.

12
Figura 2. Grupo de archivos.2

Otras de las funciones que tiene el SGBD al respecto, es la información que proporciona
de los grupos de archivos, a través de sentencias las cuales son:
FILE_NAME, FILE_ID, FILE_PROPERTY, FILEGROUP_NAME, FILEGROUP_ID y
FILEGROUP_PROPERTY.
Existen también procedimientos almacenados del sistema los cuales ofrecen una ayuda
sobre el mismo tema, los principales son:

sp_helpfile [[@filename =] 'nombre']


Devuelve los nombres físicos y los atributos de los archivos asociados con la base de
datos actual. Utilice este procedimiento almacenado de sistema para determinar los
nombres de los archivos que va a agregar o quitar del servidor.

sp_helpfilegroup [grupoDeArchivos]
Devuelve los nombres y los atributos de los grupos de archivos asociados con la base de
datos actual.

Administración del crecimiento de los archivos de datos y los registros.

Los archivos de datos pueden modificarse de acuerdo a su crecimiento, esto es, pueden
incrementarse sus capacidades, disminuirse o pueden eliminarse cuando no son
necesarias. Para incrementarlas puede desarrollarse de dos maneras: la automática la
cual se establece desde su definición y manualmente. Esta última es a través de las
siguientes sintaxis, recuerde que el crecimiento puede estar dado por Mb o Kb.
ALTER DATABASE baseDeDatos
{ ADD FILE < filespec > [ ,...n ] [ TO FILEGROUP nombreGrupoDeArchivos ]

2
Ídem.
13
| ADD LOG FILE < filespec > [ ,...n ]
| REMOVE FILE nombreArchivoLógico [ WITH DELETE ]
| ADD FILEGROUP nombreGrupoDeArchivos | REMOVE FILEGROUP
nombreGrupoDeArchivos | MODIFY FILE < filespec >
| MODIFY NAME = nuevoNombreBaseDatos
| MODIFY FILEGROUP nombreGrupoDeArchivos {propiedadGrupoDeArchivos
| NAME = nuevoNombreGrupoDeArchivos }
| SET < optionspec > [ ,...n ] [ WITH < termination > ]
| COLLATE < nombreIntercalación >

Asimismo esta sintaxis permite adicionar archivos secundarios. Para la reducción de la


base de datos o archivos, el procedimiento es el siguiente:
SQL Server reduce los archivos de registro mediante una operación de reducción diferida
y lo hace como si todos los archivos de registro fueran uno solo. Los archivos de registro
se restablecen cuando el registro se trunca; SQL Server intenta reducir los archivos de
registro truncados tanto como sea posible, hasta alcanzar el tamaño de destino, para ello
utiliza la sentencia SHRINKDATABASE, siendo su sintaxis.

DBCC SHRINKDATABASE (baseDeDatos [, porcentajeDestino] [, {NOTRUNCATE


| TRUNCATEONLY}])

La siguiente tabla describe las opciones de DBCC SHRINKDATABASE.


Opción Descripción
porcentajeDestino Especifica el porcentaje de espacio
libre que quedará en el archivo de la
base de datos una vez que SQL
Server haya reducido la base de
datos.
NOTRUNCATE Hace que SQL Server mantenga el
espacio liberado en los archivos de la
base de datos. La acción
predeterminada es pasar el espacio
liberado de los archivos al sistema
operativo.
TRUNCATEONLY Hace que el espacio no utilizado en
los archivos de datos pase al sistema
operativo y reduce el archivo hasta la
última extensión asignada, con lo que
disminuye el tamaño del archivo sin
mover ningún dato. No se vuelven a
asignar filas a páginas no asignadas.
Cuando se utiliza esta opción, SQL
Server omite porcentajeDestino.

Para reducir una base de datos la sintaxis es la siguiente:

DBCC SHRINKFILE ({archivo | IdArchivo } [, tamañoDestino] [, { EMPTYFILE |


NOTRUNCATE | TRUNCATEONLY}])

La siguiente tabla describe las opciones de DBCC SHRINKFILE.

Opción Descripción

14
tamañoDestino Especifica el tamaño deseado
para el archivo de datos, en
megabytes, expresado como
número entero. Si no se
especifica, DBCC SHRINKFILE
reduce el tamaño tanto como
sea posible.
EMPTYFILE Migra todos los datos desde el
archivo especificado a otros
archivos del mismo grupo de
archivos. SQL Server ya no
permite colocar datos en los
archivos en los que se ha
utilizado la opción
EMPTY_FILE. Utilice esta
opción para eliminar el archivo
mediante la instrucción ALTER
DATABASE.

Para eliminar una base de datos, en el analizador de consulta o new query se introduce la
siguiente sintaxis:
Drop database <nombre de la base de datos>
Si lo que se desea eliminar es la tabla, la sintaxis es:
Drop table <nombre de la tabla>.

Existen restricciones para eliminar una base de datos, siendo estas:


no se puede eliminar cuando esta en proceso de restauración.
La base de datos se encuentre abierta por un usuario ya sea que este realizando
una operación de lectura o escritura.
Se encuentre publicada una de sus tablas como parte de la duplicación de SQL
Server.
Ninguna de las bases de datos del sistema, estas son: model, master, tempdb y

Administración de cuentas usuarios.

Existen diferentes tipos de usuarios dentro de las bases de datos, desde los que son
simples usuarios de inserción y consultas de datos hasta los que desarrollan funciones
de administración dentro de ella. Microsoft SQL 2005 permite la autenticación de
usuarios tanto de tipo operativo como de funciones y administradores. Entre las
funciones se encuentran: administrador, creador y alterar bases de datos,
administrador de archivo de disco, etc. Ver figura 3.

15
Figura 3. Funciones y permisos en SQL 2005.

Asimismo el usuario puede definir las funciones sobre las bases de datos creadas por
él, además de los permisos que se le otorgan y que puede otorgar en ellas y que se
presentan más adelante.

Administración de Servicios.

El administrador de servicios, es aquel que permite configurar los servicios que


proporciona el servidor a las bases de datos, así los principales son:
Stop o parar, cuando el servidor desea pararse sin apagarse.
Pausa, este permite detenerlo cuando no se encuentre en uso.
Ejecución, cuando el servidor se encuentra activo y funcionando
correctamente.
Mensajes de alerta, cuando existe problemas de conexión con el servidor.

1.2.3 De edición para crear esquemas y consultas de BD

Existen diferentes modelos de datos, tal como jerárquico, red, entidad relación, orientado a
objeto, etc. Los SGBD en su mayoría están basados en el modelo relacional. Cada uno de
ellos se caracteriza por tener diferentes formas en su esquema, así por ejemplo el
jerárquico tiene una estructura de árbol, la cual en su esquema lo establece por círculos
relacionados con líneas que unen un circulo o estructura de datos con la otra.(Ver figura ).
Un esquema esta conformado por instancias las cuales son como un conjunto de datos
que conforman una entidad u objeto en el cual se advierten sus características de estos
datos, como son: tamaño, valores que puede tomar y que representa gráfica y
simbólicamente cosas inmateriales.
El esquema general se conforma de tres modelos: conceptual, el cual establece las
restricciones del problema real, su representación es a través de reglas de negocios o

16
supuestos; el modelo lógico el cual establece las relaciones entre una entidad u objeto y
otra, además de definir los atributos o instancias que pertenecen a cada entidad y,
finalmente el modelo interno o físico que establece la forma de almacenamiento de la
base de datos. En estos dos últimos modelos se basan los SGBD.
Por otra parte, los SGBD permiten la edición de las tablas y relaciones existentes en un
esquema de BD a través de editores de texto conocidos como analizadores de consultas
(new query), en los cuales utilizando LMD y LDD, se pueden crear bases de datos, tablas,
campos, modificar, eliminar, insertar y realizar operaciones de consultas tales como
proyecciones, producto cartesiano, etc. Además permiten definir procedimientos
almacenados así como desencadenadores.

El analizador de consulta también permite ver los resultados de las consultas en formato
de cuadricula o de texto. Entre las utilerías que ofrece se encuentran: permite crear un
plan de ejecución, esto es, analiza la compilación de la sentencia e identifica los errores.
Otra de las funciones del analizador de consulta es realizar gráficamente las relaciones
entre una tabla y otra. (Ver figura).

1.2.4 De control, monitoreo y estadísticas de acceso a BD

Cuando se habla de control, monitoreo y estadísticas de acceso a bases de datos, en


realidad se refiere a la capacidad de auditoria que tiene el SGBD. Una auditoria, es el
seguimiento de los accesos de los usuarios, las operaciones que realiza, los recursos
usados, etc. Existen diversas metodologías de auditoria, entre ellas las establecidas por
el Departamento de Seguridad de los Estados Unidos, la cual en su nivel C2 establece las
técnicas y métodos para capturar las conexiones de los usuarios, sino además la de
otorgar/denegar inicios de sesión, crear nuevas cuentas/funciones de usuario, etc.
La auditoria C2 es la capacidad de capturar todos los eventos que pueden comprometer
la seguridad del sistema computacional.3
En ella se incluyen los siguientes puntos:
• Restringir u otorgar el acceso a una base de datos o servidor, ya sea a un
individuo o a un grupo de usuarios.
• Debe tener la capacidad de identificar en forma única a un usuario en el sistema.
• Los administradores deben ser los únicos que pueden otorgar/denegar el acceso a
los recursos en la instancia.

1.2.5 Utilerías diversas

Dentro de las utilerías que proporciona un SGBD se encuentra la implementación de


trabajos los cuales pueden ser manuales o automáticos, estos trabajos pueden ser:
respaldo de la base de datos, desarrollo de procedimientos almacenados y disparadores,
programas de mantenimiento que de igual forma pueden ser manuales o automatizados,
así como emisión de reportes o informes de las actividades desarrolladas en la base de
datos.

1.3 Instalación y Configuración del entorno operativo.

3
Tomado de: Hawtorne, R. (2002) Desarrollo de bases de datos en Microsoft SQL Server 2000, Pearson
Educación. México.
17
2. Administración de la BD

2.1 Creación de BD

2.1.1 Creación de la estructura de BD

2.1.2 Creación de dominios definidos por el DBA

18
2.1.3 Definir esquemas generales de la BD (tablas, atributos, llaves primarias y
llaves heredadas)

2.1.4 Creación de vistas de BD

En la arquitectura de tres niveles de una base de datos, se describe una vista externa
como la estructura de la base de datos tal y como la ve un usuario en particular. En el
modelo relacional, el término `vista' tiene un significado un tanto diferente. En lugar de ser
todo el esquema externo de un usuario, una vista es una relación virtual, una relación que
en realidad no existe como tal. Una vista se puede construir realizando operaciones como
las del álgebra relacional: restricciones, proyecciones, concatenaciones, etc. a partir de
las relaciones base de la base de datos. Las relaciones base son aquellas que forman
parte directa de la base de datos, las que se encuentran almacenadas físicamente. Un
esquema externo puede tener tanto relaciones base como vistas derivadas de las
relaciones base de la base de datos.
Una vista es el resultado dinámico de una o varias operaciones relacionales realizadas
sobre las relaciones base. Una vista es una relación virtual que se produce cuando un
usuario la consulta. Al usuario le parece que la vista es una relación que existe y la puede
manipular como si se tratara de una relación base, pero la vista no está almacenada
físicamente. El contenido de una vista está definido como una consulta sobre una o varias
relaciones base. Cualquier operación que se realice sobre la vista se traduce
automáticamente a operaciones sobre las relaciones de las que se deriva. Las vistas son
dinámicas porque los cambios que se realizan sobre las tablas base que afectan a una
vista se reflejan inmediatamente sobre ella. Cuando un usuario realiza un cambio sobre la
vista (no todo tipo de cambios están permitidos), este cambio se realiza sobre las
relaciones de las que se deriva.
Las vistas son útiles por varias razones:

• Proporcionan un poderoso mecanismo de seguridad, ocultando partes de la base


de datos a ciertos usuarios. El usuario no sabrá que existen aquellos atributos que
se han omitido al definir una vista.
• Permiten que los usuarios accedan a los datos en el formato que ellos desean o
necesitan, de modo que los mismos datos pueden ser vistos con formatos distintos
por distintos usuarios.
• Se pueden simplificar operaciones sobre las relaciones base que son complejas.
Por ejemplo, se puede definir una vista como la concatenación de dos relaciones.
El usuario puede hacer restricciones y proyecciones sobre la vista, que el SGBD
traducirá en las operaciones equivalentes sobre la concatenación.

Se puede utilizar una vista para ofrecer un esquema externo a un usuario de modo que
éste lo encuentre `familiar'. Por ejemplo:

• Un usuario puede necesitar los datos de los directores junto con los de las
oficinas. Esta vista se crea haciendo una concatenación de las relaciones
PLANTILLA y OFICINA, y proyectando sobre los atributos que se desee mantener.
• Otro usuario puede que necesite ver los datos de los empleados sin ver el salario.
Para este usuario se realiza una proyección para crear una vista sin el atributo
salario.

19
• Los atributos se pueden renombrar, de modo que cada usuario los vea del modo
en que esté acostumbrado. También se puede cambiar el orden en que se
visualizan las columnas.
• Un miembro de la plantilla puede querer ver sólo los datos de aquellos inmuebles
que tiene asignados. En este caso, se debe hacer una restricción para que sólo
se vea el subconjunto horizontal deseado de la relación INMUEBLE.

Como se ve, las vistas proporcionan independencia de datos a nivel lógico, que también
se da cuando se reorganiza el nivel conceptual. Si se añade un atributo a una relación, los
usuarios no se percatan de su existencia si sus vistas no lo incluyen. Si una relación
existente se reorganiza o se divide en varias relaciones, se pueden crear vistas para que
los usuarios la sigan viendo como al principio.
Cuando se actualiza una relación base, el cambio se refleja automáticamente en todas las
vistas que la referencian. Del mismo modo, si se actualiza una vista, las relaciones base
de las que se deriva deberían reflejar el cambio. Sin embargo, hay algunas restricciones
respecto a los tipos de modificaciones que se pueden realizar sobre las vistas. A
continuación, se resumen las condiciones bajo las cuales la mayoría de los sistemas
determinan si se permite realizar una actualización:

• Se permiten las actualizaciones de vistas que se definen mediante una consulta


simple sobre una sola relación base y que contienen la clave primaria de la
relación base.
• No se permiten las actualizaciones de vistas que se definen sobre varias
relaciones base.
• No se permiten las actualizaciones de vistas definidas con operaciones de
agrupamiento ( GROUPBY).

Tipos de vistas

Vistas Estándar.

• La combinación de datos de una o más tablas mediante una vista estándar permite satisfacer la
mayor parte de las ventajas de utilizar vistas. Éstas incluyen centrarse en datos específicos y
simplificar la manipulación de datos. Estas ventajas se describen pormenorizadamente en
Escenarios de utilización de vistas.

• Vistas indizadas

• Una vista indizada es una vista que se ha materializado. Esto significa que se ha calculado y
almacenado. Se puede indizar una vista creando un índice agrupado único en ella. Las vistas
indizadas mejoran de forma considerable el rendimiento de algunos tipos de consultas. Las
vistas indizadas funcionan mejor para consultas que agregan muchas filas. No son adecuadas

20
para conjuntos de datos subyacentes que se actualizan frecuentemente. Para obtener más
información, vea Diseñar vistas indizadas.

• Vistas con particiones


• Una vista con particiones junta datos horizontales con particiones de un conjunto de tablas
miembro en uno o más servidores. Esto hace que los datos aparezcan como si fueran de una
tabla. Una vista que junta tablas miembro en la misma instancia de SQL Server es una vista con
particiones local.

Nota:
El método preferido para dividir datos localmente es mediante tablas con particiones. Para obtener más
información, vea Tablas e índices con particiones.

• Cuando una vista junta datos de tablas de servidores, es una vista con particiones distribuida. Las
vistas con particiones distribuidas se usan para implementar una federación de servidores de
bases de datos. Una federación es un grupo de servidores que se administran
independientemente, pero que colaboran para compartir la carga de proceso de un sistema.
Formar una federación de servidores de base de datos mediante la partición de datos es el
mecanismo que permite ampliar horizontalmente un conjunto de servidores para admitir los
requisitos de procesamiento de sitios Web de varios niveles y de gran tamaño. Para obtener más
información, vea Crear vistas con particiones

• Las vistas suelen utilizarse para centrar, simplificar y personalizar la percepción de la base de
datos para cada usuario. Las vistas pueden emplearse como mecanismos de seguridad, que
permiten a los usuarios obtener acceso a los datos por medio de la vista, pero no les conceden
el permiso de obtener acceso directo a las tablas base subyacentes de la vista. Las vistas pueden
utilizarse para proporcionar una interfaz compatible con versiones anteriores con el fin de
emular una tabla que existía pero cuyo esquema ha cambiado. También pueden utilizarse para
copiar datos entre Microsoft SQL Server 2005 a fin de mejorar el rendimiento y crear particiones
de los datos.
• Para centrarse en datos específicos

• Las vistas permiten a los usuarios centrarse en datos de su interés y en tareas específicas de las
que son responsables. Los datos innecesarios o sensibles pueden quedar fuera de la vista.
• Por ejemplo, una vista vBikes en la base de datos de ejemplo AdventureWorks permitiría a
un usuario ver las existencias de bicicletas disponibles actualmente. La vista filtra todos los
campos de la tabla Product salvo Name y sólo devuelve los nombres de las bicicletas
completas en lugar de los componentes de bicicleta.
• Copiar
• CREATE VIEW vBikes AS
• SELECT DISTINCT p.[Name] FROM Production.Product p

21
• JOIN Production.ProductInventory i ON p.ProductID = i.ProductID
• JOIN Production.ProductSubCategory ps
• ON p.ProductSubcategoryID = ps.ProductSubCategoryID
• JOIN Production.ProductCategory pc
• ON (ps.ProductCategoryID = pc.ProductCategoryID
• AND pc.Name = N'Bikes')
• AND i.Quantity > 0

2.2 Definición de esquemas de integridad

Se refiere a la corrección y completitud de los datos en una base de datos.


Cuando los contenidos de una base de datos se modifican, la integridad de
los datos almacenados puede perderse por las siguientes causas:
Pueden añadirse datos no validos a la base de datos, tales como un
pedido que especifica un producto no existente.
Pueden modificarse datos existentes tomando un valor incorrecto.
Los cambios en la base de datos pueden perderse debido a un error
del sistema o a un fallo.
Los cambios pueden ser aplicados parcialmente.

Para preservar la consistencia y corrección de los datos almacenados un SGBD,


impone restricciones de integridad de datos. Estas restringen los valores que
pueden ser insertados o creados mediante actualización de la base de datos.
Existen diferentes tipos de restricciones de seguridad, siendo estas:
Datos requeridos, ejemplo cuando se especifica que no puede contener un
registro valores nulos.
Chequeo de validez: cada columna un dominio especifico. Estas también se
conocen como restricciones de dominio.
Integridad de entidad, la clave primaria verifica que cada fila solo puede
contener uno y solo un valor.
Integridad referencial: una clave secundaria enlaza la fila de otra tabla en
una relación clave foránea/clave primaria.
Consistencia.

2.2.1 Validar y verificar integridad de entidad e integridad referencial

Regla de integridad de entidades


La primera regla de integridad se aplica a las claves primarias de las relaciones base:
ninguno de los atributos que componen la clave primaria puede ser nulo.

Por definición, una clave primaria es un identificador irreducible que se utiliza para
identificar de modo único las tuplas. Que es irreducible significa que ningún subconjunto
de la clave primaria sirve para identificar las tuplas de modo único. Si se permite que parte

22
de la clave primaria sea nula, se está diciendo que no todos sus atributos son necesarios
para distinguir las tuplas, con lo que se contradice la irreducibilidad.

Nótese que esta regla sólo se aplica a las relaciones base y a las claves primarias, no a
las claves alternativas.

Regla de integridad referencial


La segunda regla de integridad se aplica a las claves ajenas: si en una relación hay
alguna clave ajena, sus valores deben coincidir con valores de la clave primaria a la que
hace referencia, o bien, deben ser completamente nulos.

La regla de integridad referencial se enmarca en términos de estados de la base de datos:


indica lo que es un estado ilegal, pero no dice cómo puede evitarse. La cuestión es ¿qué
hacer si estando en un estado legal, llega una petición para realizar una operación que
conduce a un estado ilegal? Existen dos opciones: rechazar la operación, o bien aceptar
la operación y realizar operaciones adicionales compensatorias que conduzcan a un
estado legal.

Por lo tanto, para cada clave ajena de la base de datos habrá que contestar a tres
preguntas:

• Regla de los nulos: ¿Tiene sentido que la clave ajena acepte nulos?
• Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la
clave ajena?
o Restringir: no se permite borrar la tupla referenciada.
o Propagar: se borra la tupla referenciada y se propaga el borrado a las
tuplas que la referencian mediante la clave ajena.
o Anular: se borra la tupla referenciada y las tuplas que la referenciaban
ponen a nulo la clave ajena (sólo si acepta nulos).
• Regla de modificación: ¿Qué ocurre si se intenta modificar el valor de la clave
primaria de la tupla referenciada por la clave ajena?
o Restringir: no se permite modificar el valor de la clave primaria de la tupla
referenciada.
o Propagar: se modifica el valor de la clave primaria de la tupla referenciada
y se propaga la modificación a las tuplas que la referencian mediante la
clave ajena.
o Anular: se modifica la tupla referenciada y las tuplas que la referenciaban
ponen a nulo la clave ajena (sólo si acepta nulos).

2.2.2 Creación de disparadores

E s un procedimiento almacenado que se ejecuta automáticamente cuando


se modifica una fila utilizando los comandos INSERT, UPDATE o DELETE.
Sus ventajas son:
 SQL Server lo invoca automáticamente.
 Una BD más robusta
 Se utilizan para forzar reglas de negocios.
Los tipos de desencadenadores son:

23
 AFTER Se llaman después de ejecutar el comando para el que se ha
declarado.
 Se pueden crear para los comandos INSERT, UPDATE y DELETE.
 Solo pueden crearse para tablas pero no para vistas.
 Puede tener múltiples desencadenadores para cada uno de los tres
comandos
 Un desencadenador puede aplicar cualquier combinación de los tres
comandos.
 Este se invoca después que se procese la restricción de nivel mas bajo,
ejemplo la del primary key.

Desencadenadores INSTEAD OF

 Se pueden definir para los comandos INSERT, UPDATE o DELETE.


 Se pueden crear tanto para tablas como para vistas, pero solo puede
crearse uno para cada acción sobre la tabla o vista.
 Son incompatibles con la referencia en cascada

Restricciones

 No puede utilizar el create, alter o drop una BD.


 No se puede restaurar la BD o archivo de transacciones mediante
desencadenador

Su estructura:
 CREATE TRIGGER nombre_desencadenador
 On tabla o vista
 Tipo_Desencadenador lista_comando
 As
 Sentencias_SQL

2.2.3 Creación de procedimientos almacenados

L os procedimientos almacenados son lotes de sentencias en Transact-SQL,


almacenados en el servidor. Sus ventajas: Son objetos de BD, residen en un
archivo y se trasladan al archivo si desmonta o replica la BD, permiten pasar datos
al procedimiento para manejarlos y recibir datos y un código de resolución desde
el procedimiento. Se ejecutan de forma optimizada, lo que permite ejecuciones
rápidas. Existen dos tipos de procedimientos almacenados: Procedimientos del
sistema: los cuales son procedimientos almacenados de sistemas que se guardan
en la BD Master; comienzan con los caracteres sp; ejemplo: Sp_rename permite
cambiar el nombre del objeto de la BD; Sp_renamedb proporciona el método para
cambiar el nombre a la BD
También existen los procedimientos definidos por el usuario, los cuales son el
objetivo de esta práctica, Es un objeto asociado a la base de datos en la que
se crea. Se crean utilizando la sentencia CREATE PROCEDURE.
24
Su sintaxis es:
CREATE PROCEDURE nombre_proce
[lista de parametors]
AS
Sentencias_procedimiento

Los procedimientos almacenados pueden llamar a otros procedimientos en


anidamiento. Como limite su pueden llamar hasta 32 niveles de profundidad
anidados. Existen diferentes tipos de procedimientos almacenados, entre ellos:
• Procedimiento con parámetro de entrada. Este procedimiento
almacenado reciben un parámetro de entrada, que se asigna a una
variable, su estructura es:
@nombre_parametro tipo_dato [=valor_defecto] [OUTPUT]
Donde Nombre_parametro declara @, como una variable local, como
máximo puede recibir 2100 parámetros por procedimiento almacenado;
Valor_defecto es el valor que utilizará el procedimiento almacenado
• Procedimiento almacenado con valor por defecto. En este se declara e
inicializa la variable local del procedimiento, su estructura es:
CREATE PROCEDURE valor_def
@apellido_cli varchar(15)='Martinez'
AS
SELECT id_cliente, Apellidop FROM clientes
WHERE Apellidop=@apellido_cli
EXECUTE valor_def
• Procedimiento Almacenado con un Parámetro de Salida. Este
procedimiento al contrario del primero, lo que ofrece es un parámetro de
salida a monitor, su sintaxis es:
USE Almacen
GO
IF EXISTS (SELECT name FROM sysobjects
WHERE name='proc_salida' AND type='P')
DROP PROCEDURE proc_salida
GO

CREATE PROCEDURE proc_salida


@varsalida char(6)OUTPUT
AS
SET @varsalida='hola'
//Sintaxis para ejecutar el procedimiento//
DECLARE @misalida char(6)
EXECUTE proc_salida @misalida OUTPUT
SELECT @misalida

2.3 Definición de esquemas de seguridad


Seguridad.

25
La seguridad de la base de datos se refiere a la protección frente accesos
malintencionados. Las violaciones a la seguridad son:
 La lectura no autorizada de los datos (robo de información).
 La modificación no autorizada de los datos.
 La destrucción no autorizada de los datos.

Para proteger la base de datos se adoptan medidas de seguridad en varios niveles:

Sistema de base de datos. Quien otorga privilegios y autorizaciones a usuarios.


Sistema Operativo. Quien otorga acceso o inicio de sesión.
Red, el cual puede ser por hardware como tarjetas de encriptamiento y software
con programas o algoritmos de encriptamiento.
Físico. Políticas de acceso físico al área.
Humano. Selección de personal adecuado.

Todo usuario que intente conectarse a la base de datos, debe hacerlo con un nombre de
usuario y una contraseña, que autentique que esta autorizado para usar la cuenta. En
algunos SGBD la contraseña y nombre de usuarios pueden contener de 1 a 128
caracteres y pueden incluir letras, símbolos y números. No pueden contener el carácter
barra diagonal inversa (\).

2.3.1 Creación de usuarios de la BD

Creación de una Contraseña de Usuario para Acceso en SQL Server

Se expande un grupo de servidores y luego un servidor.


A continuación se busca la carpeta de seguridad, se da clic en el botón derecho del
Mouse, se oprime la opción inicio de sesión y luego nuevo inicio de sesión.
Se pueden crear diferentes usuarios, los cuales son administradores de la base de datos,
administradores de acceso y seguridad, operador de respaldo, usuarios invitados y
usuarios propietarios.
Un usuario que crea una base de datos (tablas, índices, vistas, procedimientos
almacenados, etc.) se denomina propietario del objeto de la base de datos. Este o el
administrador debe conceder el permiso(s) para crear otros objetos o poderlos utilizar.
El creador de la base de datos tiene implícitamente todos los permisos sobre el, pero
debe concederlos explícitamente a los demás usuarios para que tengan acceso al
mismo.

2.3.2 Asignación de privilegios sobre los objetos de información

Administración de Permisos.

La administración de permisos incluye la concesión o revocación de los derechos de


usuario para trabajar con datos o un elemento en la base de datos (permisos de
instrucción) y para utilizar los permisos concedidos a las funciones; se otorgan permisos
implícitos.

Los permisos son para:


Crear base de datos.

26
Crear procedimientos.
Crear tablas.
Crear restricciones.
Crear vistas.
Realización de respaldo de la base de datos.

Además de los permisos existen las autorizaciones las cuales son:

Autorización de lecturas.
Autorización de inserción.
Autorización de actualización (permite la modificación de los datos pero no su
borrado).
Autorización de borrado.
Actualización de índices.
Actualización de recursos (creación de nuevas relaciones)
Alteración (añadir o eliminar atributos de las relaciones).
Eliminación (borrado de relaciones).
Herramientas de Control, Monitoreo y Acceso a la base de datos.

El SGBD devuelve información estadística acerca de los siguientes accesos:

Numero de conexiones o intentos de conexión desde la última vez que se inicio


el SGBD.
Tiempo en milisegundos (/basado en la resolución del temporizador del
sistema) que la CPU ha estado funcionando desde que se inicio el SGBD.
De E/S de los archivos de la base de datos.

En cuanto a seguridad:

Devuelve la información de los sucesos trazados.


Devuelve información acerca si el usuario tiene acceso a la base de datos
específica.
Indica si el usuario actual es miembro del grupo.
Devuelve el login o identificador de seguridad que corresponde al usuario.
Devuelve el número de identificación de usuario.
Numero de accesos del usuario con fecha y hora

2.4 Definición de esquemas de recuperación

2.4.1 Diseño y creación de la bitácora

Concepto

Al igual que navegación, el concepto de bitácora proviene de la náutica: representa el


diario de un barco, el documento donde se registran los acontecimientos e incidentes de
una travesía; el registro es cronológico, sucesivo.

27
2.4.2 Recuperación a partir de la bitácora

2.4.3 Respaldar la BD

Sistema de Recuperación.

En un sistema pueden producirse varios tipos de fallos, cada uno debe tratarse de forma
diferente. Existen diferentes tipos, entre los más importantes:

Fallo de Transacciones. Puede ser por dos motivos:


 Error lógico, debido a que una condición interna, como una entrada de
datos sea incorrecta y esto lo ocasione.
 Error del sistema, este se encuentra en un estado no deseado como un
interbloqueo por lo que la transacción no puede continuar con su ejecución
normal.
Caída del sistema. Un mal funcionamiento de hardware y software.
Fallo de disco, bloques de disco dañado.

Para determinar como el sistema debe recuperarse de los fallos, es necesario identificar
los modos de fallos de los dispositivos de almacenamiento. Estos utilizan algoritmos de
recuperación los cuales constan de dos partes:
Acciones llevadas a cabo durante el procesamiento normal de transacciones
para asegurar que existe información suficiente para permitir la recuperación
frente a fallos, y
Acciones llevadas a cabo después de ocurrir un fallo para restablecer el
contenido de la base de datos a un estado que asegure la consistencia de la
base de datos, la atomicidad de la transacción y la durabilidad.

La recuperación se realiza desde los medios de almacenamiento en que se ha respaldado


la base de datos. Estos son:
Almacenamiento volátil.
Almacenamiento no volátil. En los sistemas de base de datos los discos se utilizan
fundamentalmente para el almacenamiento y para copias de seguridad de datos.
Almacenamiento estable. La información que reside en almacenamiento estable
nunca se pierde por lo que es útil para el respaldo de datos.

La implementación del almacenamiento estable, tiene como objetivo el replicar la


información necesaria en varios medios de almacenamiento no volátil con modos de fallos
independientes, y actualizar esa información de manera controlada para asegurar que un
fallo durante un transferencia de datos no dañara la información.
Para replicar la información existe la técnica de sistemas RAID (disposición redundante de
discos independientes) que garantizan que el fallo de un solo disco no conduce a la
perdida de los datos. La variante más sencilla y rápida de un RAID es el disco con
imagen, que guarda dos copias de cada bloque en distintos discos.
Existen dos esquemas de recuperación de datos, entre ellas:
Recuperación basada en registros históricos.
Paginación en la sombra.
Sistemas avanzados como ARIES.

28
En los esquemas basados en registros históricos, todas las modificaciones se escriben en
un registro histórico, el cual debe estar guardado en almacenamiento estable. Sus
características son:
En el esquema de modificación diferida, durante la ejecución de una transacción,
se difieren todas las operaciones de escribir hasta que la transacción se
compromete parcialmente, momento en el que se utiliza la información del registro
histórico asociada con la transacción para ejecutar las escrituras.
Con la técnica de modificación inmediata, todas las modificaciones se aplican
directamente sobre la base de datos. Si ocurre una caída se utiliza la información
del registro histórico para conducir a la base de datos a un estado estable previo.
Puede usarse la técnica de los puntos de revisión para reducir la sobrecarga que
conlleva la búsqueda en el registro histórico y rehacer las transacciones.
Es la estructura más utilizada para guardar las modificaciones de la base de datos. Se
define como una secuencia de registros que mantiene un registro de todas las
actividades de actualización de la base de datos. Existen varios tipos de registros del
registro histórico, como por ejemplo el registro de actualización del registro histórico, el
cual contiene los campos de identificador de la transacción , que es un identificador
único de la transacción que realiza la operación de escribir; un identificador del
elemento de datos, que identifica al elemento que se escribe,; el valor anterior que es
el valor que tenia el elemento de datos ante de la escritura; y el valor nuevo que es el
valor que tiene el elemento después de la escritura.
Dentro de este esquema se localizan dos técnicas de modificación: la diferida y la
inmediata. La técnica de la modificación diferida garantiza la atomicidad de las
transacciones mediante el almacenamiento de todas las modificaciones de la base de
datos en el registro histórico, pero retardando la ejecución de todas las operaciones de
escribir hasta que la transacción se encuentra parcialmente comprometida., esto es
hasta que se realiza la última operación de la transacción.
Cuando una transacción se compromete parcialmente, la información del registro
histórico asociada a esa transacción se utiliza para la ejecución de las escrituras
diferidas, si el sistema cae antes de que la transacción se complete su ejecución o si
la transacción es abortada, la información del registro histórico simplemente se ignora.
La técnica de modificación inmediata permite la salida de las modificaciones de la
base de datos a la propia base de datos mientras que la transacción esta todavía en
estado activo. En caso de una caída o de un fallo en la transacción, el sistema debe
utilizar el campo para el valor anterior de los registros del registro histórico, para
restaurar los elementos de datos modificados a los valores que tuvieron antes de
comenzar la transacción.

Paginación en la Sombra.

La paginación en la sombra es una técnica de recuperación alternativa a las basadas


en registros históricos. Su técnica consiste en: se divide la base de datos en un
número determinado de bloques de longitud fija a los que se les denomina páginas.
Se utiliza una tabla de páginas quien muestra el orden lógico de cada entrada la cual
contiene un puntero en cada una de ellas. Entonces se generan dos tablas de
páginas durante la vida de una transacción: la tabla de páginas actual y la tabla de
páginas en la sombra. Estas dos paginas son iguales cuando inicia la transacción,
mientras dura la transacción no se altera el contenido de la tabla de paginación en la
sombra, la operación de escritura en una transacción se realiza en la tabla de pagina
actual cuando la transacción se compromete o termina la tabla de pagina actual se
convierte en tabla de paginación en la sombra, la cual es almacenada en un medio no

29
volátil o estable mientras que la tabla de pagina actual se encuentra almacenada en la
RAM.
Cuando el sistema sufre una caída, este se recupera de la tabla de paginación en la
sombra, copiándose esta en la memoria RAM para continuar ejecutando
transacciones activas. (Ver figura 1)

Figura 1. Técnica de Recuperación de Paginación en la Sombra

Técnica de Recuperación Aries.

La técnica de recuperación ARIES representa a los métodos actuales de


recuperación. Soporta varias características para proporcionar mayor concurrencia,
reducir la sobrecarga del registro histórico y permitir operaciones deshacer lógicas. El
esquema procesa páginas continuamente y no necesita procesar todas las páginas en
el momento de un punto de revisión. Usa números de secuencia del registro histórico
(NSR) para implementar varias optimizaciones que reducen el tiempo de
recuperación. Usa tablas de paginas desfasadas para minimizar las operaciones
rehacer innecesarias durante la recuperación.

Sistemas Remotos de Copias de Seguridad.

30
Los sistemas tradicionales de procesamiento de transacciones son sistemas
centralizados o sistemas cliente-servidor. Estos sistemas son vulnerables frente a
desastres naturales como el fuego, inundaciones, terremotos, etc. Es necesario
sistemas de procesamiento que ofrezcan disponibilidad a pesar de los desastres
ambientales. Se puede tener una disponibilidad elevada realizando procesamiento de
transacciones en un solo sitio denominado sitio principal, pero tener un sitio remoto
copia de seguridad denominado sitio secundario.
Cuando falla el sitio principal, el sitio remoto secundario asume el procesamiento
utilizando para la recuperación copia de los datos del sitio principal y los registros del
registro histórico recibidos del sitio principal. (Ver figura 2)
Para diseñar un sitio secundario se deben considerar los siguientes aspectos:
Detección de fallos. Es necesario que el sitio secundario detecte los fallos del
sitio principal. Se deben mantener varios enlaces de comunicación para evitar
la falta entre ellos de comunicación.
Transferencia de control.
Tiempo de recuperación.
Tiempo de compromiso.

PRINCIPAL COPIA DE
RED SEGURIDAD

Registros del
registro
histórico

Figura 2. Arquitectura de los Sistemas Remotos de Copias de Seguridad.

2.4.4 Recuperar la BD

31
Creación de una estrategia de copia de seguridad de base de datos

Las copias de seguridad de base de datos son una parte fundamental en la creación de
esta estrategia, sin una estrategia de copias de seguridad efectiva podríamos
encontrarnos en una situación en que tengamos una base de datos corrupta pero no las
suficientes copias de seguridad para restaurarlo.

Los tipos de fallas que podrían ocurrir, entre ellas:

• Datos inválidos del usuario.


• Fallo en disco duro.
• Falla en el servidor.

Para evitar perderlo todo en una falla siga las siguientes recomendaciones:

• Realice copias de seguridad con frecuencia (esto depende del uso de la base de
datos).
• Mantenga copias de seguridad completas fuera del sitio.
• Realice comprobaciones de consistencia con cierta frecuencia.
• Administre sus copias de seguridad con efectividad.

Uso de registros de transacciones en la copia de seguridad y en la restauración.

Un registro de transacciones es utilizada internamente por SQL Server para llevar el


registro de las actualizaciones, inserciones y eliminaciones que ocurren en las bases de
datos.

El registro de transacciones junto con la copia de seguridad de la base de datos pueden


ser utilizadas para restaurar una base de datos y devolverla a un estado consistente.

MODELOS DE RECUPERACION

SQL Server 2005 soporta tres modelos de recuperación:

Completa: El más completo, si falla el disco duro; le permite recuperarse hasta el


momento justo de falla o en cualquier momento del tiempo. Para poder lograr esto todas
las operaciones se registran lo que hace que el registro crezca demasiado ya que las
operaciones masivas también se registran. Esta es una característica muy poderosa
cuando se tiene una base de datos 24*7, nos permite asegurar que se pierda la menor
cantidad de modificaciones posible.

A. Registro masivo: es una copia de seguridad completa. No obstante, si falla el disco


duro, puede recuperarse con el modelo de copia masiva, pero no le permite
recuperarse hasta cualquier momento del tiempo.

32
B. Simple: Es la más sencilla de todas, ocupa el menor espacio en disco, y es la que
ocupa menos recurso del sistema, pero también lo expone a mayores pérdidas de
datos, este modelo no nos permite recuperar hasta cualquier momento en el
tiempo ni hasta el momento de falla.

Todos estos modelos tienen ventajas y desventajas, determinar cual es el mejor depende
de sus requerimientos individuales. Por ejemplo, una base de datos que tenga muchas
transacciones y necesite recuperarse completamente lo mas pronto posible se
beneficiaría con el modelo de recuperación completa, Una base de datos que haya tenido
muchas actualizaciones masivas y no necesite recuperar las transacciones individuales
de los usuarios podría utilizar el modelo de registro masivo, y por último el modelo simple
se utiliza para aplicaciones que no sean cruciales o para aplicaciones en desarrollo.

TIPOS DE COPIAS DE SEGURIDAD

Aunque, se puede especificar el modelo de recuperación deseado, tambien se puede


especificar que porciones de la base de datos incluiremos en las copias de seguridad:

Base de datos completa: es copia incluye todos los objetos de la base de


datos (tables, views, stored procedure)

Base de datos diferencial: solo copia las modificaciones que se le hallan


hecho a la base de datos (DML, DDL) desde la última copia de seguridad
completa.

Registro de transacciones: Copia el registro de transacciones, todas las


transacciones de los usuarios (INSERT, UPDATE, DELETE), como se tienen
todas las transacciones se pueden rehacer todo el trabajo que los usuarios
haya hecho.

Archivo y grupo de archivos: Nos permite realizar una copia de seguridad de


una porción de la base de datos a la vez. Esta se debe de usar cuando la
base de datos es muy extensa, también se deben realizar copia del registro de
transacción para poder recuperarse.

Existen dos formas de realizar la copia de la base de datos, por medio del Enterprise
Manager o del Query Analizar.

33