Apuntes 1P
Apuntes 1P
Apuntes 1P
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
Realizado
por
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
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é.
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.
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.
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.
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.
1.2.2 De administración de BD
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.
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.
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_helpfilegroup [grupoDeArchivos]
Devuelve los nombres y los atributos de los grupos de archivos asociados con la base de
datos actual.
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 >
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 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.
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).
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
18
2.1.3 Definir esquemas generales de la BD (tablas, atributos, llaves primarias y
llaves heredadas)
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:
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:
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.
• 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
•
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.
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).
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
Restricciones
Su estructura:
CREATE TRIGGER nombre_desencadenador
On tabla o vista
Tipo_Desencadenador lista_comando
As
Sentencias_SQL
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.
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 (\).
Administración de Permisos.
26
Crear procedimientos.
Crear tablas.
Crear restricciones.
Crear vistas.
Realización de respaldo de la base de datos.
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.
En cuanto a seguridad:
Concepto
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:
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.
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.
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)
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
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.
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.
MODELOS DE RECUPERACION
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.
Existen dos formas de realizar la copia de la base de datos, por medio del Enterprise
Manager o del Query Analizar.
33