You are on page 1of 178

Excelencia Acadmica

TABLA DE CONTENIDOS
TABLA DE CONVERSIONES
PRESENTACIN

03

UNIDAD ACADMICA N 01:


TEMAS GENERALES DE ADMINISTRACION DE BASE DE
DATOS
QUE ES UN SISTEMA DE BASE DE DATOS?
QU ES UNA BASE DE DATOS?
POR QU UNA BASE DE DATOS?
LOS SISTEMAS RELACIONALES Y OTROS SISTEMAS
ADMINISTRACION DE DATOS Y ADMINISTRACION DE
BASE DE DATOS
SISTEMAS DE ADMINISTRACION DE BASE DE DATOS
INTERACCION DE LOS SGBD CON LOS SISTEMAS
OPERATIVOS
ACTIVIDAD
RESMEN
BIBLIOGRAFIA RECOMENDADA
AUTOEVALUACIN FORMATIVA

09
11
13
16
17
17
26
30
30
30
31

UNIDAD ACADMICA N 02:


INSTALACION Y CONFIGURACION DEL SISTEMA
GESTOR DE BASE DE DATOS
33
ELECCION DEL MODELO DE DATOS Y DEL SGBD
GESTORES DE BASE DE DATOS EN EL MERCADO
INSTALACION Y CONFIGURACION DE SQL SERVER 2005
ACTIVIDAD
RESMEN
BIBLIOGRAFIA RECOMENDADA
AUTOEVALUACIN FORMATIVA

37
40
57
57
58
59

UNIDAD ACADMICA N 03:


ADMINISTRACION DE ARCHIVOS DE BASES DE DATOS
INTRODUCCION A LA ESTRUCTURA DE DATOS
CREACION DE BASE DE DATOS
ADMINISTRACION DE LOS ARCHIVOS DE BASE DE
DATOS
UBICACIN DE ARCHIVOS Y REGISTROS DE BASE DE
DATOS
OPTIMIZACION DE UNA BD MEDIANTE RAID EN
HARDWARE

61
64
67
72
73

Excelencia Acadmica

OPTIMIZACION DE UNA BD MEDIANTE GRUPOS DE


ARCHIVOS
ACTIVIDAD
RESMEN
BIBLIOGRAFIA RECOMENDADA
AUTOEVALUACIN FORMATIVA

78
80
80
80
81

UNIDAD ACADMICA N 04:


COPIAS DE RESPALDO
COPIAS DE RESPALDO Y RESTAURACION DE BASE DE
DATOS
COMO IMPEDIR LA PERDIDAD DE DATOS
ESTABLECIMEINTO Y CAMBIO DE UN MODELO DE
RECUPERACION DE DATOS
PROCESO DE COPIA DE SEGURIDAD
EJECUCION Y ALMACENAMIENTO DE COPIAS DE
SEGURIDAD
DISENO DE UNA ESTRATEGIA DE COPIAS DE
RESPALDO
CONSIDERACIONES ACERCA DEL RENDIMIENTO
ACTIVIDAD
RESMEN
BIBLIOGRAFIA RECOMENDADA
AUTOEVALUACIN FORMATIVA

83
84
85
87
88
96
103
104
104
104
105

UNIDAD ACADMICA N 05:


ADMINISTRACION DE LA SEGURIDAD
IMPLEMANTACION DEL MODO DE AUTENTICACION
CUENTAS DE INICIO DE SESION
ASIGNACION DE CUENTAS DE INICIO DE SESION A
USUARIOS Y FUNCIONES
ASIGNACION DE CUENTAS DE INICIO DE SESION A
FUNCIONES
ADMINISTRACION DE LA SEGURIDAD DE SQL SERVER
EN LA EMPRESA
ACTIVIDAD
RESMEN
BIBLIOGRAFIA RECOMENDADA
AUTOEVALUACIN FORMATIVA

107
112
114
115
123
127
127
127
128

UNIDAD ACADMICA N 06:


MONITOREO DE LA BASE DE DATOS
POR QUE SUPERVISAR EL RENDIMIENTO DE LA BASE
DE DATOS?
6

129

Excelencia Acadmica

SUPERVISION Y OPTIMIZACION DEL RENDIMIENTO


HERRAMIENTAS PARA SUPERVISAR A;L SGBDR
TAREAS
HABITUALES
DE
SUPERVISION
OPTIMIZACION
RESMEN
BIBLIOGRAFIA RECOMENDADA
NEXO
AUTOEVALUACIN FORMATIVA

129
135
141
149
149
150
150

UNIDAD ACADMICA N 07:


AUTOMATIZACION DE TAREAS ADMINISTRATIVAS
AUTOMATIZACION DE TAREAS ADMINISTRATIVAS

151

COMPONENTES DE ADMINISTRACION AUTOMATICA


SEGURIDAD EN LA ADMINISTRACION DEL AGENTE SQL
SERVER
HERRAMIENTAS PARA AUTOMATIZAR LA
ADMINISTRACION
AGENTE SQL SERVER
ACTIVIDAD
RESMEN
BIBLIOGRAFIA RECOMENDADA
AUTOEVALUACIN FORMATIVA

152
153

UNIDAD ACADMICA N 08:


TOPICOS AVANZADOS DE ADMINISTRACION DE BASE
DE DATOS
REPLICACION
SQL SERVICE BROKER
SQL SERVICE NOTIFICATION SERVICES
BUSQUEDAS DE TEXTO
ACTIVIDAD
RESMEN
BIBLIOGRAFIA RECOMENDADA
AUTOEVALUACIN FORMATIVA

154
154
160
160
160
162

163
165
170
173
175
175
175
176

Excelencia Acadmica

Excelencia Acadmica

TEMAS GENERALES DE ADMINISTRACION DE BASE DE


DATOS

Las bases de datos se han utilizado desde los comienzos de la informtica, y a


medida que las capacidades de procesamiento fueron creciendo, aparecen las bases
de datos de uso general, y nace el inters por la estandarizacin.
Hoy, los sistemas de bases de datos relacionales (RDBMS) dominan el mercado
de las bases de datos, y las necesidades de administracin crecen en forma paralela.
En la presente unidad conoceremos el rol de un administrador de base de datos
(DBA) exploraremos conceptos relacionados a la administracin de base de datos.

Al finalizar el estudio de la presente unidad temtica el estudiante:


1. Define un sistema de base de datos
2. Comprende el rol del administrador de base de datos
3. Diferencia administracin de datos de administracin de base de datos
4. Describe las funciones de los sistemas gestores de base de datos
1. QU ES UN SISTEMA DE BASE DE DATOS?
Es un sistema computarizado cuya finalidad general es almacenar informacin y permitir a
los usuarios recuperar y actualizar esa informacin con base en peticiones. Esta
informacin puede ser cualquier cosa que sea de importancia para el individuo o la
organizacin; es decir, todo lo que sea necesario para auxiliarle en el proceso general de
su administracin.
Un sistema de bases de datos comprende cuatro componentes principales: datos,
hardware, software y usuarios.

a) Datos
Los sistemas de bases de datos estn disponibles en mquinas que van desde
las computadoras personales ms pequeas hasta las mainframes ms
grandes. En particular, los sistemas que se encuentran en mquinas grandes
(sistemas grandes) tienden a ser multiusuario, mientras que los que se
ejecutan en mquinas pequeas (sistemas pequeos) tienden a ser de un solo
usuario. Un sistema de un solo usuario es aquel en el que slo un usuario
puede tener acceso a la base de datos en un momento dado; un sistema
multiusuario es aquel en el cual mltiples usuarios pueden tener acceso
simultneo a la base de datos.
9

Excelencia Acadmica

En general, los datos de la base de datos, al menos en los sistemas grandes,


sern tanto integrados como compartidos. Integrado se refiere a una unificacin
de varios archivos que de otro modo seran distintos, con una redundancia
entre ellos eliminada al menos parcialmente. Compartido por que las piezas
individuales de datos en la base pueden ser compartidas entre diferentes
usuarios y que cada uno de ellos puede tener acceso a la misma pieza de
datos, probablemente con fines diferentes. Distintos usuarios pueden en efecto
acceder a la misma pieza de datos al mismo tiempo, lo que se conoce como
acceso concurrente. Este comportamiento, concurrente o no, es en parte
consecuencia del hecho de que la base de datos est integrada. Si la base de
datos no es compartida, se le conoce como personal o como especfica de la
aplicacin.
Que la base de datos sea integrada y compartida significa que cualquier
usuario ocupar normalmente slo una pequea parte de la base de datos
total; lo que es ms, las partes de los distintos usuarios se traslaparn de
diversas formas. En otras palabras, una determinada base de datos ser
percibida de muchas formas diferentes por los distintos usuarios. De hecho,
aun cuando dos usuarios tengan la misma porcin de la base de datos, su
visin de dicha parte podra diferir considerablemente a un nivel detallado.
b) Hardware
Los componentes de hardware del sistema constan de:
Los volmenes de almacenamiento secundario, como discos
magnticos, que se emplean para contener los datos almacenados,
junto con dispositivos asociados de E/S, los controladores de
dispositivos, los canales de E/S, entre otros.
Los procesadores de hardware y la memoria principal asociada usados
para apoyar la ejecucin del software del sistema de base de datos.
c) Software
El administrador de base de datos o servidor de base de datos conocido como
sistema de administracin de base de datos (DBMS) maneja todas las
solicitudes de acceso a la base de datos ya sea para agregar y eliminar
archivos, recuperar y almacenar datos desde y en dichos archivos. Por lo tanto,
una funcin general que ofrece el DBMS consiste en ocultar a los usuarios de
la base de datos los detalles al nivel de hardware. Es decir, que el DBMS
ofrece a los usuarios una percepcin de la base de datos que est en cierto
modo, por encima del nivel del hardware y que maneja las operaciones del
usuario expresadas en trminos de ese nivel ms alto de percepcin.
El DBMS es el componente de software ms importante del sistema en
general, aunque no es el nico
d) Usuarios
Existen tres grandes clases de usuarios:

10

Programadores de aplicaciones, que son los responsables de escribir


los programas de aplicacin de base de datos en algn lenguaje de
programacin. Estos programas acceden a la base de datos emitiendo
la solicitud apropiada al DBMS. Los programas en s pueden ser
aplicaciones convencionales por lotes o pueden ser aplicaciones en

Excelencia Acadmica

lnea, cuyo propsito es permitir al usuario final el acceso a la base de


datos desde una estacin de trabajo o terminal en lnea.

Los usuarios finales, quienes interactan con el sistema desde


estaciones de trabajo o terminales en lnea. Un usuario final puede
acceder a la base de datos a travs de las aplicaciones en lnea, o bien
puede usar una interfaz proporcionada como parte integral del software
del sistema de base de datos. Las interfaces proporcionadas por el
fabricante estn apoyadas tambin por aplicaciones en lnea, aunque
esas aplicaciones estn integradas, es decir, no son escritas por el
usuario. La mayora de los sistemas de base de datos incluyen por lo
menos una de estas aplicaciones integradas.

La mayora de los sistemas proporcionan adems interfaces integradas


adicionales en las que los usuarios no emiten en absoluto solicitudes
explcitas a la base de datos, sino que en vez de ello operan mediante la
seleccin de elementos en un men o llenando casillas de un formulario.
Estas interfaces controladas por mens o por formularios tienden a
facilitar el uso a personas que no cuentan con una capacitacin formal
en tecnologa de la informacin (IT). En contraste, las interfaces
controladas por comandos tienden a requerir cierta experiencia
profesional en IT, aunque tal vez no demasiada. Por otra parte, es
probable que una interfaz controlada por comandos sea ms flexible
que una controlada por mens o por formularios, dado que los lenguajes
de consulta por lo regular incluyen ciertas caractersticas que no
manejan esas otras interfaces.

El administrador de base de datos o DBA.

2. QU ES UNA BASE DE DATOS?


Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo
contexto y almacenados sistemticamente para su posterior uso
Datos Persistentes
Es una costumbre referirse a los datos de la base de datos como persistentes, esto se
refiere de manera intuitiva, que el tipo de datos de la base de datos difiere de otros datos
ms efmeros. En forma ms precisa, se dice que los datos de la base de datos persisten
debido a que una vez aceptados por el DBMS para entrar en la base de datos, en lo
sucesivo slo pueden ser removidos de la base de datos por alguna solicitud explcita al
DBMS, no solo como un efecto lateral de algn programa que termina su ejecucin. Por lo
tanto, esta nocin de persistencia permite dar una definicin ms precisa del trmino base
de datos:
Una base de datos es un conjunto de datos persistentes que es utilizado por los sistemas
de aplicacin de alguna empresa dada.
Hoy en da las bases de datos se utilizan cada vez ms tambin para otro tipo de
aplicaciones. De hecho, las empresas mantienen generalmente dos bases de datos
independientes; una que contiene los datos operacionales y otra, a la que con frecuencia
se le llama almacn de datos, que contiene datos de apoyo para la toma de decisiones. A
menudo el almacn de datos incluye informacin de resumen, la que a su vez se extrae
peridicamente de la base de datos operacional.

11

Excelencia Acadmica

Entidades y Relaciones
El trmino entidad es empleado comnmente en los crculos de bases de datos para
referirse a cualquier objeto distinguible que va a ser representado en la base de datos.
Adems de las propias entidades bsicas habr tambin vnculos que asocian dichas
entidades bsicas. El punto importante con respecto a estas relaciones es que son parte de
los datos tanto como lo son las entidades bsicas. Por lo tanto, deben estar representados
en la base de datos al igual que las entidades bsicas.
Ambos son utilizados en la elaboracin de los diagramas entidad/relacin (E/R), que son
usados frecuentemente por los diseadores para ayudar a modelar la base de datos.
Dentro de un diagrama E/R cada relacin puede relacionarse con una o ms de una
entidad. Las relaciones que comprenden dos tipos de entidad son relaciones binarias,
mientras los que se involucran con tres tipos de entidad se conocen como relaciones
ternarios. Los vnculos que se relacionan con una sola entidad siguen siendo binarios, solo
que los dos tipos de entidad que estn vinculados vienen a ser la misma entidad.
Datos y Modelos de Datos
Los datos en realidad son hechos dados, a partir de los cuales es posible inferir hechos
adicionales. Esto es exactamente lo que hace el DBMS cuando responde a una consulta
de un usuario. Un hecho dado corresponde a su vez a lo que en lgica se denomina
proposicin verdadera. En base a esto, una base de datos es en realidad una coleccin de
tales proposiciones verdaderas.
Una razn por la que los sistemas de bases de datos relacionales se han vuelto tan
dominantes, es que manejan en forma muy directa la interpretacin precedente de los
datos. Los sistemas relacionales estn basados en una teora formal denominada el
modelo de datos relacional, de acuerdo con el cual:

En tablas, los datos son representados por medio de filas, las que pueden
interpretarse directamente como proposiciones verdaderas.

Se proporcionan operadores para operar sobre las columnas de las tablas, y estos
operadores soportan directamente el proceso de inferir proposiciones verdaderas
adicionales a partir de las ya dadas.

Sin embargo, el modelo relacional no es el nico modelo de datos. Existen otros aunque la
mayora de ellos difieren del modelo relacional en que son hasta cierto grado especficos,
en vez de estar basados firmemente en la lgica formal.
Un modelo de datos es una definicin lgica, independiente y abstracta de los objetos,
operadores y dems que en conjunto constituyen la mquina abstracta con la que
interactan los usuarios. Los objetos permiten modelar la estructura de los datos. Los
operadores permiten modelar su comportamiento.
La implementacin de determinado modelo de datos es una realizacin fsica, en una
mquina real, de los componentes de la mquina abstracta que en conjunto constituyen
ese modelo.
Entonces, se puede decir que el modelo es aquello que los usuarios tienen que conocer, y
la implementacin es lo que los usuarios no tienen que conocer. La distincin entre ambos
es en realidad slo un caso de la conocida distincin entre lgico y fsico.
Aunque el trmino modelo de datos es utilizado con dos significados muy distintos, la
diferencia entre ambos puede ser caracterizada de esta manera:

12

Excelencia Acadmica

En el primer sentido, un modelo de datos es como un lenguaje de programacin


cuyos elementos pueden ser usados para resolver una amplia variedad de
problemas especficos, pero que en s y por s mismos no tienen una conexin
directa con ninguno de estos problemas especficos.

En el segundo sentido, un modelo de datos es como un programa especfico escrito


en ese lenguaje. En decir, un modelo de datos que toma las caractersticas que
ofrece algn modelo como el primero y las aplica a cierto problema especfico.
Puede ser visto como una aplicacin especfica de algn modelo con el primer
significado.

3. POR QU UNA BASE DE DATOS?


Algunas ventajas que proporciona el uso de un sistema de base de datos sobre los mtodos
tradicionales son:
Compactacin: Reduce la necesidad de archivos voluminosos en papel.
Velocidad: La mquina puede recuperar y actualizar datos ms rpidamente que un
humano. En particular, las consultas especficas sin mucha elaboracin pueden ser
respondidas con rapidez, sin necesidad de bsquedas manuales o visuales que
llevan tiempo.
Menos trabajo laborioso: Se puede eliminar gran parte del trabajo de llevar a los
archivos a mano.
Actualidad: En el momento que se necesite, se tiene a disposicin informacin precisa
y actualizada.
Desde luego, estos beneficios se aplican an con ms fuerza en un entorno multiusuario,
donde es probable que la base de datos sea mucho ms grande y compleja que en el caso
de un solo usuario. No obstante, en el entorno multiusuario hay una ventaja adicional: El
sistema de base de datos ofrece a la empresa un control centralizado de sus datos.
Beneficios del enfoque de base de datos

Los datos pueden compartirse


Compartir no solo significa que las aplicaciones existentes puedan compartir la
informacin de la base de datos, sino tambin que sea posible desarrollar nuevas
aplicaciones para operar sobre los mismos datos. Es decir, que sea posible
satisfacer los requerimientos de datos de aplicaciones nuevas sin tener que
agregar informacin a la base de datos.

Es posible reducir la redundancia


En sistemas que no son de bases de datos, cada aplicacin tiene sus propios
archivos exclusivos. A menudo este hecho puede conducir a una redundancia
considerable de los datos almacenados, con el consecuente desperdicio de
espacio de almacenamiento. Esto no significa que toda la redundancia puede o
debe necesariamente ser eliminada. Sin embargo, s debe ser controlada
cuidadosamente.

Es posible evitar la inconsistencia


En ocasiones en las que las entidades no coincidan; cuando unas de ellas han sido
actualizadas y otras no se dice que la base de datos es inconsistente. Si se elimina
la redundancia, entonces no puede ocurrir tal inconsistencia. Como alternativa, si
13

Excelencia Acadmica

no se elimina la redundancia pero se controla entonces se puede garantizar que la


base de datos nunca ser inconsistente, asegurando que todo cambio realizado a
cualquiera de las entidades ser aplicado tambin a las otras en forma automtica.
A este proceso se le conoce como propagacin de actualizaciones.

Es posible brindar un manejo de transacciones


Una transaccin es una unidad de trabajo lgica, que por lo regular comprende
varias operaciones de la base de datos, en particular varias operaciones de
actualizacin. Si se necesitan dos actualizaciones y se declara que ambas son
parte de la misma transaccin, entonces el sistema puede en efecto garantizar que
se hagan ya sea ambas o ninguna de ellas, aun cuando el sistema fallar a la
mitad del proceso.

Es posible mantener la integridad


La integridad se refiere a asegurar que los datos de la base de datos estn
correctos. La inconsistencia entre dos entradas que pretenden representar el
mismo hecho es un ejemplo de la falta de integridad. Desde luego, este problema
en particular puede surgir slo si existe redundancia en los datos almacenados. No
obstante, aun cuando no exista redundancia, la base de datos podra seguir
conteniendo informacin incorrecta. El control centralizado de la base de datos
puede ayudar a evitar estos problemas permitiendo que el administrador de datos
defina y el DBA implemente las restricciones de seguridad que sern verificadas
siempre que se realice una operacin de actualizacin.

Es posible hacer cumplir la seguridad


Al tener la completa jurisdiccin sobre la base de datos, el DBA puede, bajo la
direccin apropiada del DBA, asegurar que el nico medio de acceso a la base de
datos sea a travs de los canales adecuados y por lo tanto puede definir las reglas
o restricciones de seguridad que sern verificadas siempre que se intente acceder
a los datos sensibles. Es posible establecer diferentes restricciones para cada tipo
de acceso para cada parte de la informacin de la base de datos. Sin dichas
restricciones la seguridad de los datos podra de hecho estar en mayor riesgo que
en un sistema de archivos tradicionales. La naturaleza centralizada de un sistema
de base de datos requiere, en cierto sentido, que tambin sea establecido un buen
sistema de seguridad.

Es posible equilibrar los requerimientos en conflicto


Al conocer los requerimientos generales de la empresa, el DBA puede estructurar
los sistemas de manera que ofrezcan un servicio general que sea el mejor para la
empresa.

Es posible hacer cumplir los estndares


Con el control central de la base de datos, el DBA puede asegurar que todos los
estndares aplicables en la representacin de datos sean observados. Es
conveniente estandarizar la representacin de datos, en particular como un auxiliar
para el intercambio de datos o para el movimiento de datos entre sistemas. En
forma similar, los estndares en la asignacin de nombres y en la documentacin
de los datos tambin son muy convenientes como una ayuda para compartir y
entender los datos.

La Independencia de los Datos


Existen dos clases de independencia de los datos, fsica y lgica.
14

Excelencia Acadmica

Los sistemas anteriores a los de base de datos tienden a ser dependientes de los datos. Es
decir, la forma en que fsicamente son representados los datos en el almacenamiento
secundario y la tcnica empleada para su acceso, son dictadas por los requerimientos de la
aplicacin en consideracin, significa que el conocimiento de esa representacin fsica y
esa tcnica empleada para su acceso estn integrados dentro del cdigo de la aplicacin.
En un sistema de base de datos sera inconveniente permitir que las aplicaciones fuesen
dependientes de los datos por las razones siguientes:

Las distintas aplicaciones requerirn visiones diferentes de los mismos datos.

El DBA debe tener la libertad de cambiar las representaciones fsicas o la tcnica


de acceso en respuesta a los requerimientos cambiantes, sin tener que modificar
las aplicaciones existentes.

La independencia de los datos se puede definir como la inmunidad de las aplicaciones a


cambios en la representacin fsica y en la tcnica de acceso, lo que implica desde luego
que las aplicaciones involucradas no dependen de ninguna representacin fsica o tcnica
de acceso en particular.
Un campo general es la unidad ms pequea de datos almacenados. La base de datos
contendr muchas ocurrencias o ejemplares de los diversos tipos de campos almacenados.
Un registro almacenado es un conjunto de campos almacenados relacionados. Una
ocurrencia de registro almacenado consta de un grupo de ocurrencias de campos
almacenados relacionados.
Un archivo almacenado es la coleccin de todas las ocurrencias existentes actualmente
para un tipo de registro almacenado.
En los sistemas que no son de bases de datos, el caso normal es que cualquier registro
lgico dado es idntico a un registro almacenado correspondiente. Sin embargo, ste no es
necesariamente el caso en un sistema de base de datos, ya que tal vez el DBA necesita
hacer cambios a la representacin almacenada de datos aunque los datos, tal y como las
aplicaciones los ven, no cambien.
Entre algunos de los aspectos de la representacin almacenada que podran estar sujetos
a cambio se encuentran:

Representacin de datos numricos


Un campo numrico podra estar almacenado en la forma aritmtica interna o como
una cadena de caracteres. En ambas formas, el DBA debe elegir una base
apropiada (binaria o decimal), una escala (flotante o de punto fijo), un modo (real o
complejo) y una precisin (el nmero de dgitos). Podra ser necesario modificar
cualquiera de estos aspectos para mejorar el rendimiento, para apegarse a un
nuevo estndar o por muchas otras razones.

Representacin de datos de caracteres


Un campo de cadena de caracteres podra ser almacenado mediante cualquiera de
los distintos conjuntos de caracteres codificados (ASCII, Unicode).

Unidades para datos numricos


Las unidades en un campo numrico podran cambiar (pulgadas a centmetros).

Codificacin de los datos


15

Excelencia Acadmica

En ciertas situaciones podra ser conveniente representar los datos almacenados


por medio de valores codificados. Por ejemplo, los colores podran ser
almacenados como un solo digito decimal de acuerdo a un esquema de
codificacin; 1 = azul, 2 = verde, etc

Materializacin de los datos


El campo lgico corresponde por lo regular a cierto campo almacenado especfico;
aunque podra haber diferencias en el tipo de datos, la codificacin, etc. En tal caso
el proceso de materializacin, es decir, la construccin de una ocurrencia del
campo lgico a partir de la ocurrencia correspondiente del campo almacenado y
presentarla a la aplicacin, podra ser considerado como directo. Sin embargo en
ocasiones un campo lgico no tendr una sola contraparte almacenada; en su
lugar, sus valores se materializarn por medio de algn clculo, tal vez sobre varias
ocurrencias almacenadas, en este caso el campo sera un campo virtual. Para
estos campos el proceso de materializacin es indirecto. Sin embargo el usuario
podra ver una diferencia entre los campos real y virtual, en tanto que podra no ser
posible actualizar una ocurrencia de un campo virtual, al menos no directamente.

Estructura de los registros almacenados


Dos registros almacenados existentes podran combinarse en uno. Un cambio as
podra ocurrir cuando las aplicaciones existentes estn integradas dentro del
sistema de base de datos. Lo que implica que el registro lgico de una aplicacin
podra consistir en un subconjunto propio del registro almacenado correspondiente,
es decir, ciertos campos de ese registro almacenado seran invisibles para la
aplicacin en cuestin.
Como alternativa, un solo tipo de registro almacenado podra ser dividido en dos.
Esta separacin permitira que las porciones del registro original utilizadas con
menos frecuencia sean almacenadas en un dispositivo ms lento. Esto implica que
un registro lgico de una aplicacin podra contener campos de varios registros
almacenados distintos; es decir, podra ser un sper conjunto propio de cualquiera
de esos registros almacenados.

Estructura de los archivos almacenados


Un determinado archivo puede ser implementado fsicamente en el
almacenamiento en una amplia variedad de formas. Pero ninguna de estas
consideraciones deber afectar de alguna manera a las aplicaciones salvo el
rendimiento. Permitir que la base de datos crezca sin daar de manera lgica las
aplicaciones existentes es una de las razones ms importantes para requerir, en
primer lugar, la independencia de los datos.

4. LOS SISTEMAS RELACIONALES Y OTROS SISTEMAS


Un sistema relacional es aquel en el que:

Los datos son percibidos por el usuario como tablas.

Los operadores disponibles para el usuario son operadores que generan


nuevas tablas a partir de las anteriores.

El usuario de un sistema relacional ve tablas y nada ms que tablas. En contraste el


usuario de un sistema no relacional ve otras estructuras de datos, ya sea en lugar de las
tablas de un sistema relacional o adems de ellas. A su vez, esas otras estructuras
requieren de otros operadores para manipularlas. En un sistema jerrquico, los datos son
representados ante el usuario como un conjunto de estructuras de rbol y los operadores
16

Excelencia Acadmica

que se proporcionan para manipular dichas estructuras incluyen operadores para


apuntadores de recorrido; es decir, los apuntadores que representan las rutas jerrquicas
hacia arriba y hacia abajo en los rboles.
Los sistemas de bases de datos pueden de hecho ser divididos convenientemente en
categoras de acuerdo con los operadores y estructuras de datos que presentan al usuario.
De acuerdo con este esquema, los sistemas ms antiguos o prerrelacionales se ubican
dentro de tres categoras: los sistemas de listas invertidas, jerrquicos y de red
5. ADMINISTRACIN DE DATOS Y ADMINISTRACIN DE BASES DE DATOS
El administrador de datos y el administrador de la base de datos son las personas o grupos
de personas encargadas de gestionar y controlar todas las actividades que tienen que ver
con los datos de la empresa y con la base de datos, respectivamente.
El administrador de datos es quien entiende los datos y las necesidades de la empresa con
respecto a dichos datos. Su trabajo es decidir qu datos deben almacenarse en la base de
datos y establecer polticas para mantener y gestionar los datos una vez hayan sido
almacenados. Un ejemplo de tal poltica sera una que estableciera quin puede realizar
qu operaciones sobre qu datos y en qu circunstancias.
La persona (o personas) que se encarga de implementar las decisiones del administrador
de datos es el administrador de la base de datos. Su trabajo es crear la base de datos e
implementar los controles necesarios para que se respeten las polticas establecidas por el
administrador de datos. El administrador de la base de datos es el responsable de
garantizar que el sistema obtenga las prestaciones deseadas, adems de prestar otros
servicios tcnicos.
El administrador de datos juega un papel ms importante que el administrador de la base
de datos en las siguientes etapas del ciclo de vida: planificacin de la base de datos,
definicin del sistema, recoleccin y anlisis de los requisitos, diseo conceptual y diseo
lgico de la base de datos. En el resto de las etapas es donde el administrador de la base
de datos tiene el papel ms importante: seleccin del SGBD, diseo de las aplicaciones,
diseo fsico, prototipado, implementacin, conversin y carga de datos, prueba y
mantenimiento
La administracin de una base de datos consistir en asegurar que la informacin precisa y
consistente est disponible para los usuarios y para las aplicaciones en el momento y en la
forma requerida
6. SISTEMAS DE ADMINISTRACIN DE BASES DE DATOS (DBMS)
La base de datos, como depsito nico de los datos de toda la organizacin, debe ser
capaz de atender las necesidades de los distintos tipos de usuarios que interactan con
ella. Puede definirse un Sistema Gestor de la Base de Datos (SGBD) como: Un conjunto
coordinado de programas, procedimientos, lenguajes, etc., que suministra, tanto a los
usuarios no informticos como a los analistas, programadores o al administrador, los
medios necesarios para describir, recuperar y manipular los datos almacenados en la
base, manteniendo su seguridad.
Debido a la diversidad usuarios con necesidades cambiantes a lo largo del tiempo, es
imprescindible dotar al sistema de la adecuada flexibilidad para que pueda atender las
exigencias de todos los usuarios y para que sea capaz de responder a los cambios a un
coste no excesivo, es decir, el SGBD debe ser diseado de forma tal que optimice las
ventajas que se han indicado para una base de datos.

17

Excelencia Acadmica

Usos y Funciones de un DBMS:


Los sistemas de administracin de bases de datos son usados para:

Permitir a los usuarios acceder y manipular la base de datos proveyendo mtodos


para construir sistemas de procesamiento de datos para aplicaciones que requieran
acceso a los datos.

Proveer a los administradores las herramientas que les permitan ejecutar tareas de
mantenimiento y administracin de los datos.

Las funciones esenciales de un DBMS son:


a) Funcin de descripcin o de definicin. Esta funcin debe permitir al
administrador de la base especificar los elementos de datos que la integran , su
estructura, las relaciones que existen entre ellos, las reglas de integridad
semntica, los controles a efectuar antes de autorizar el acceso a la base, etc. Esta
funcin se lleva a cabo mediante el Lenguaje de Descripcin o de Definicin de
Datos (LDD) propio de cada SGBD y debe suministrar los medios para definir las
tres estructuras de datos externa, lgica global e interna -, especificando las
caractersticas de los datos a cada uno de estos niveles.
b) Funcin de manipulacin. Permite a los usuarios de la Base buscar, aadir,
suprimir o modificar los datos de la misma, siempre de acuerdo con las
especificaciones y las normas de seguridad establecidas por el administrador. Esta
funcin se realiza mediante el Lenguaje de Manipulacin de Datos (LMD) que
facilita los instrumentos necesarios para la realizacin de estas tareas.
c) Funcin de utilizacin. Rene todas las interfaces que necesitan los diferentes
usuarios para comunicarse con la base y proporciona un conjunto de
procedimientos para el administrador entre los que se encuentra el Lenguaje de
Control de Datos (LCD). Adems, en la mayora de los SGBD existentes en el
mercado existen funciones de servicio, como cambiar la capacidad de los ficheros,
obtener estadsticas de utilizacin, cargar archivos, etc., y otras relacionadas con la
seguridad fsica - copias de seguridad, rearranque en caso de cada del sistema,
etc. y proteccin frente a accesos no autorizados.
En resumen, las funciones esenciales de un Sistema Gestor de la Base de Datos
(SGBD) son:

18

Excelencia Acadmica

Permite describir:
Los elementos de la base de datos con
Su estructura
Sus Interrelaciones
Sus Validaciones

Descripcin

A tres niveles
Externo
Lgico Global
Interno
Mediante un Lenguaje de Definicin de Datos (LDD)

Permite:
Buscar
Aadir
Suprimir

Datos de la
Base de Datos

Modificar

Manipulacin

Mediante un Lenguaje de Manipulacin de Datos (LMD)


Lo cual supone
Definir un criterio de seleccin
(responsabilidad del usuario)
Definir la estructura externa a recuperar
(responsabilidad del usuario)
Acceder a la estructura
(responsabilidad del sistema)

fsica

Rene las Interfaces de los Usuarios

Control

Suministra procedimientos
Administrador

para

el

Mediante un Lenguaje de Control de Datos


(LCD)
19

Excelencia Acadmica

Las interrelaciones existentes entre estas funciones, el conjunto de los datos y los
usuarios se encuentran representados en la figura adjunta.

Usuarios Locales
Monitor de
Teleproceso
Usuarios Remotos

Funcin de
Utilizacin

Funcin de
Descripcin

Funcin de
Manipulacin

SGBD

Base de Datos

Figura 1.1: Interrelaciones entre las funciones del SGBD


Caractersticas de un DBMS:

Control de la redundancia de datos


Este consiste en lograr una mnima cantidad de espacio de almacenamiento para
almacenar los datos evitando la duplicacin de la informacin. De esta manera se
logran ahorros en el tiempo de procesamiento de la informacin, se tendrn menos
inconsistencias, menores costos operativos y har el mantenimiento ms fcil.

Compartimiento de datos
Una de las principales caractersticas de las bases de datos, es que los datos
pueden ser compartidos entre muchos usuarios simultneamente, proveyendo, de
esta manera, mxima eficiencia.

Mantenimiento de la integridad
La integridad de los datos es la que garantiza la precisin o exactitud de la
informacin contenida en una base de datos. Los datos interrelacionados deben
siempre representar informacin correcta a los usuarios.

20

Excelencia Acadmica

Soporte para control de transacciones y recuperacin de fallas.


Se conoce como transaccin toda operacin que se haga sobre la base de datos.
Las transacciones deben por lo tanto ser controladas de manera que no alteren la
integridad de la base de datos. La recuperacin de fallas tiene que ver con la
capacidad de un sistema DBMS de recuperar la informacin que se haya perdido
durante una falla en el software o en el hardware.

Independencia de los datos.


En las aplicaciones basadas en archivos, el programa de aplicacin debe conocer
tanto la organizacin de los datos como las tcnicas que el permiten acceder a los
datos. En los sistemas DBMS los programas de aplicacin no necesitan conocer la
organizacin de los datos en el disco duro. Este totalmente independiente de ello.

Seguridad
La disponibilidad de los datos puede ser restringida a ciertos usuarios. Segn los
privilegios que posea cada usuario de la base de datos, podr acceder a mayor
informacin que otros.

Velocidad
Los sistemas DBMS modernos poseen altas velocidades de respuesta y proceso.

Independencia del hardware


La mayora de los sistemas DBMS estn disponibles para ser instalados en
mltiples plataformas de hardware.
Los sistemas de bases de datos relacionales RDBMS (Relational Database
Management System, por sus siglas en Ingls) tales como Oracle, MySQL, SQL
Server, PostgreSQL, Informix, entre otros, le permiten ejecutar las tareas que se
mencionan a continuacin, de una forma entendible y razonablemente sencilla:

Le permiten ingresar datos al sistema.

Le permiten almacenar los datos.

Le permiten recuperar los datos y trabajar con ellos.

Le proveen herramientas para capturar, editar y manipular datos.

Le permiten aplicar seguridad.

Le permiten crear reportes e informes con los datos.

Arquitectura de los SGBD. Estandarizacin:


Desde comienzos de los aos setenta diversos grupos informticos se han ocupado del
tema de la estandarizacin de las bases de datos (ISO, INRIA, GESC, BSI, Codasyl,
ANSI, etc) con el fin de conseguir que, una vez desarrollado un sistema e instrumentado
en un determinado SGBD, el cambio de ste a otro producto comercial no implique tener
que disear de nuevo la base de datos, ni tampoco que los programas que acceden a
dicha base de datos tengan que ser reescritos. La estandarizacin ha de ofrecer tambin
la oportunidad de adquirir distintos componentes de un SGBD (lenguajes, diccionarios,
etc.) a diferentes suministradores.

21

Excelencia Acadmica

La arquitectura a tres niveles (interno, conceptual y externo) definidos anteriormente,


establecidos por el grupo ANSI/X3/SPARC marca la lnea de investigacin fundamental
para la normalizacin y estandarizacin de los SGBD.
Esta arquitectura triesquemtica de ANSI est parcialmente basada en el concepto de
mquinas anidadas (llamadas de tipo cebolla). El flujo de datos pasa a travs de las
distintas capas que estn separadas por interfaces que tienden a aislar los diversos
componentes del sistema para conseguir el objetivo de independencia.
En las arquitecturas se distinguen dos partes:

Definicin de la Base de Datos: La parte de definicin se facilita por medio de


una serie de funciones de programa e interfaces, que dan lugar a un conjunto de
datos llamados metadatos (datos acerca de los datos) que se almacenan en el
diccionario (catlogo o metabase en los sistemas relacionales), que es el eje
principal de la arquitectura alrededor del cual giran los dems elementos.
Una base de datos se define especificando primeramente el esquema conceptual
mediante un lenguaje de definicin del esquema conceptual o una herramienta
CASE integrada. Este esquema conceptual es compilado por el procesador del
esquema conceptual y se almacena en el catlogo de datos.
El procesador del esquema conceptual muestra, por ejemplo, mediante mens, la
informacin del esquema conceptual, mediante dicha informacin pueden definirse
los esquemas externo e interno a travs de distintas interfaces. Estos esquemas,
claramente diferenciado, llevan a considerar la existencia de tres tipos de
administraciones: Administracin por parte de la Empresa, Administracin de la
Base de Datos y Administracin de Aplicaciones

Manipulacin de la Base de Datos: El usuario puede manipular (insertar, borrar,


modificar y recuperar) los datos utilizando un interfaz que puede ser un lenguaje de
manipulacin de datos, por ejemplo SQL. Una peticin de datos por parte del
usuario se ejecuta por los transformadores externo / conceptual, conceptual /
interno e interno / almacenado que utilizan los metadatos devolviendo el resultado
al usuario.

Estos transformadores constituyen la funcin de vinculacin entre los distintos niveles


(conceptual, interno y externo).
La arquitectura a tres niveles de ANSI responde por tanto positivamente a las exigencias de
independencia, flexibilidad y capacidad de evolucin propuestas en la estandarizacin.
La consecucin de trabajos del grupo ANSI culmin en marzo de 1986 al presentar el
Modelo de referencia para la estandarizacin de los SGBD.
Se define como Modelo de Referencia a una estructura conceptual para la estandarizacin
de los SGBD, en la que se identifican una serie de componentes y se establece cmo
interrelacionan entre ellos. Los objetivos a cumplir por este Modelo de Referencia son:

Establecer un Marco comn para la descripcin de los SGBD

Lograr una Estandarizacin para impulsar la compatibilidad de los distintos


componentes de los SGBD facilitando su comparacin y evaluacin

El modelo de referencia no es en s un estndar pero sienta las bases para futuras


estandarizaciones ya que se contempla desde tres puntos de vista distintos:

22

El de los componentes que integran un SGBD

Excelencia Acadmica

El de las funciones que se deben especificar

El de los datos que se deben describir y utilizar

El Modelo de Referencia est basado en la arquitectura ANSI revisado, en aras de una


simplificacin, ocupndose del qu, por qu y para qu peno no del cmo. Es decir, su
objetivo es describir las interrelaciones del SGBD pero no indicar nada de su
instrumentacin.
En particular, recomienda que todos los datos relacionados con el control centralizado de la
Base de Datos (reglas de integridad y de seguridad) se encuentren en la metabase
(catlogo) y no se dejen en manos de los usuarios ya sean stos finales o programadores.
Recomienda as mismo la existencia de Herramientas de Gestin de Datos o componentes
software, como lenguajes de cuarta generacin, soporte de ayuda a la decisin, facilidades
para realizar el ajuste (tuning), utilidades para el volcado de ficheros, sistemas de
diccionario de datos, etc.
En el Modelo de Referencia se distingue un Sistema de Control de Transformacin de
Datos, que es el ncleo o kernel del SGBD, que provee de operadores para la descripcin
y manipulacin de los datos, y dos tipos de interfaces:

Interfaz de Lenguaje de Datos que permite a los usuarios y a los procesadores


especificar sus peticiones para la recuperacin y actualizacin de los datos por
parte del SGBD.
Interfaz de Lenguaje de Datos Interno que permite el uso de los procesadores que
soportan el funcionamiento de los SGBD, en particular los del SO.
Componentes de un Sistema Gestor de Base de Datos:
Puede presentarse de forma grfica la estructura general de un SGBD donde, adems del
ncleo del sistema, existe un conjunto de herramientas y facilidades.

Herramientas y facilidades

Acceso a Datos
Diccionario de Datos
Ncleo
Sistema Operativo
Datos

Figura 1.1: Componentes de un SGBD

El ncleo del SGBD est en mayor o menor medida soportado por el Sistema
Operativo; le corresponde transformar las instrucciones de peticin de datos que le
llegan en rdenes que el Sistema Operativo sea capaz de de entender y gestionar.
Los servidores de bases de datos poseen mdulos, facilidades de usuario que
realizan llamadas o funciones de Sistema Operativo, de modo que no haya que
cerrar las aplicaciones para realizar las acciones tpicas del S.O.

23

Excelencia Acadmica

Sobre el ncleo se sita el diccionario de datos (tambin llamado catlogo o


metabase) ya que a este nivel se produce la transformacin de las solicitudes de
los clientes en instrucciones inteligibles para el servidor.

El conjunto de herramientas y facilidades permiten el acceso a los datos, ya sea


directamente (facilidades de usuario) o mediante aplicaciones desarrolladas por
informticos con la ayuda de precompiladores, generadores de aplicaciones, etc.

Otros componentes (como las utilidades y el exportador/importador) facilitan la


tarea del administrador o ayudan a realizar el diseo de la base de datos
(herramientas CASE).
Existen productos comerciales que ofrecen una gran portabilidad, al disponer de
interfaces para la mayora de los SGBD con penetracin en el mercado.

FACILIDADES DE USUARIO

GENERADOR DE APLICACIONES (L4G)

DICCIONARIO DE RECURSOS DE LA INFORMACIN


EXPORTADOR/
IMPORTADOR

NCLEO DEL SGBD

GENERADORES DE
INFORMES

SISTEMA OPERATIVO
DATOS
UTILIDADES
DEL SGBD

LENGUAJE DEL SGBD


(Catlogo)
APLICACIONES DESARROLLADAS

PRECOMPILADOR
LENGUAJES

AYUDAS AL
DISEO (CASE)

Figura 1.2. Diccionario de datos


Diccionario de datos, concepto y estructura
Para el control de los objetos de las bases de datos se definen dos elementos que
pueden aparecer asociados o no: el diccionario de datos y el directorio de datos
En el uso coloquial de estos trminos se ha introducido el concepto de catlogo de
forma que suelen considerarse los tres trminos como sinnimos aunque se
refieren a conceptos muy diferentes.
El diccionario de datos contiene informacin los datos almacenados. Es lo que se
llama una metabase ya que contiene informacin sobre los elementos que
conforman cada una de las bases de datos, informacin para la manipulacin:
tablas, registros, campos, relaciones y sus estructuras, contenidos, descripciones,
significado, etc. de modo que siendo esta informacin legible por los usuarios,
puedan stos hacerse una buena idea sobre la estructuracin de los contenidos de
informacin almacenados en cada base de datos. Posee informacin sobre
posniveles de seguridad implementados para la definicin de datos.
A los contenidos del diccionario de datos se les denomina metadatos. Corresponde
al administrador de la base de datos la responsabilidad de la creacin y el
mantenimiento del diccionario de datos.
Los contenidos del diccionario de datos son:

24

Los esquemas externo y conceptual de la base de datos. Esto es, cada


uno de los elementos que los forman

Excelencia Acadmica

La informacin sobre tablas, consultas, campos, registros y


referencias cruzadas entre registros de varias tablas. Se guarda
informacin sobre las propiedades de esos elementos: nombre, tipo,
longitud, representacin, descripcin de los registros, reglas de validacin,
etc. Es decir, la descripcin de los datos y las estructuras.

Los niveles de autorizacin y derechos de acceso de cada uno de los


usuarios de la base de datos.

Los controles de seguridad de acceso a datos - gestin de usuarios - e


integridad.

Sinnimos y palabras polismicas con sus descripciones.

Aplicaciones que se relacionan con los datos de cada base de datos

El Directorio de datos
El Directorio de datos contiene informacin sobre el esquema interno, ya que se
encarga de que el Sistema Operativo sea capaz de reconocer las rdenes de la
base de datos, por lo que tanto su contenido como su estructura estn enfocados
al sistema, de modo que transforma los elementos del esquema externo al
esquema interno para facilitar su funcionamiento. De forma restrictiva, el concepto
de directorio se corresponde con el de catlogo.
A veces, los conceptos relativos a diccionario y directorio de datos se agrupan en
un solo elemento que posee la funcionalidad de ambos. A este conjunto se le llama
diccionario
o, mas generalmente, catlogo, segn el fabricante que lo
implemente.
El Repositorio de datos
El repositorio de datos es un diccionario de datos, diferente del anterior,
gestionado por una herramienta CASE, que almacena informacin textual y grfica
sobre las caractersticas de un determinado objeto.
Poseen funcionalidades de directorio de datos y de diccionario de datos ya que en
este caso almacena informacin de tipo texto y grficos que es recuperable por el
usuario. Los repositorios, que se emplean en la fase de anlisis (descripcin lgica
de los datos), facilitan la labor posterior de descripcin e implementacin de las
caractersticas all definidas.
El diccionario/directorio/catlogo de datos almacena la informacin del mismo
modo que si fuese una base de datos mas del sistema, emplendose las mismas
rdenes que para el resto de las bases de datos.
Desde el punto de vista del funcionamiento del diccionario de datos hay que
destacar los siguientes componentes software, transparentes para el usuario:

Un administrador de diccionario que se relaciona con el Lenguaje de


Definicin de Datos (DDL) encargado de procesar las peticiones al
diccionario y almacenar en una tabla las operaciones realizadas.

Un procesador de consulta que se encarga de procesar las peticiones de


los usuarios.

25

Excelencia Acadmica

Un generador de informes y un traductor del Lenguaje de Manipulacin


de Datos (DML) que permite a los usuarios modificar el contenido del
diccionario.

7. INTERACCIN DEL SISTEMA GESTOR DE BASES DE DATOS CON EL SISTEMA


OPERATIVO.
El SGBD constituye un subsistema del sistema informtico y, en particular, es un
subsistema del software. Su funcionamiento, por tanto, estar muy interrelacionado con el
de otros componentes del software y especialmente con el Sistema Operativo.
Aunque no es posible un estudio pormenorizado de dicho funcionamiento debido a la
diversidad de SGBD y la diversidad del equipo fsico en el que se apoya, si puede
obtenerse una visin general analizando aquellos aspectos comunes a la mayora de los
SGBD actualmente operativos.
La diferencia entre el modo de acceso a un fichero y a una base de datos se centra en
que, en el primer caso, el programa de aplicacin accede al fichero por medio del
subsistema de gestin de datos del Sistema Operativo, que es quien contiene los mtodos
de acceso.
Sin embargo, cuando se trata de una base de datos el programa de aplicacin (que
incluye en su lenguaje anfitrin el LMD embebido) se dirige al SGBD, el cual, a travs del
Sistema Operativo, accede a la base de datos.
La interaccin, en un entorno concurrente, entre el SGBD, el Sistema Operativo y los
Programas de Aplicacin se muestra en la figura adjunta.
E.L.G.
VE1

SISTEMA DE GESTIN DE
LA BASE DE DATOS
(SGBD)

VE2

5
6

12

SISTEMA
OPERATIVO

BASE DE
DATOS

8
7

10

Nombre de la
vista externa

Area de
Trabajo del

11

Programa de
Aplicacin

Unidad de Ejecucin 1 UE1

AC n

VE n

ATU n

Programa de
Aplicacin
UE n

Figura 1.3. Interaccion del SO con el SGBD

26

Area de
Comunicacin

ALMACENAMIENTO
INTERMEDIO

Excelencia Acadmica

Por cada Programa de Aplicacin (PA) que se est ejecutando, existe una Unidad de
Ejecucin (UE) donde se encuentra el rea de Trabajo del Usuario (ATU) con sus reas
de Entrada y Salida (E/S) y un rea de Comunicacin con el SGBD (AC) destinada a
recibir los mensajes y la informacin de control procedente del SGBD. Desde el programa
de aplicacin se hace referencia a la Vista Externa (VE) permitida a tal programa. En la
biblioteca del sistema se encuentran almacenados, adems de los datos, la estructura
lgica global y la estructura interna, as como las vistas externas que sern llamadas por
los programas de aplicacin de los usuarios.
El flujo de datos e instrucciones entre estos elementos es el siguiente:
1 Se produce una llamada desde una unidad de ejecucin al SGBD (flecha 1); en la
llamada se ha de hacer referencia a la vista externa implicada (flecha 2)
2 El SGBD analiza la llamada y completa los argumentos con la informacin de la
vista externa a la que se ha hecho referencia en la llamada, as como con la
informacin correspondiente a la estructura lgica global y la estructura interna
con ella relacionada; esta informacin se encuentra previamente almacenada en
los ficheros del sistema, desde donde pasa al SGBD (flechas 3 y 4).
3 Una vez comprobado el derecho del Programa de Aplicacin (PA) a utilizar esta
vista, y despus de verificar su correccin, el SGBD traduce la llamada en las
correspondientes rdenes para los mtodos de acceso del Sistema Operativo
(flecha 5).
4 El Sistema Operativo accede al soporte secundario (disco) donde se encuentran
los datos (flecha 6)
5 Los datos a recuperar pasan del soporte donde se encuentra almacenada la base
de datos al rea de almacenamiento intermedio (buffers), y, si se tratase de una
insercin o modificacin pasaran en sentido contrario (flecha 7).
6 Los datos son transferidos desde el rea de almacenamiento intermedio al rea de
trabajo del usuario de la unidad de ejecucin desde donde se hizo la llamada
(flecha 8) [o en sentido contrario si se hizo una insercin o una modificacin],
realizndose las correspondientes transformaciones entre las representaciones de
los datos.
7 El SGBD, una vez terminada la operacin de manipulacin pasa al rea de
comunicacin los indicadores de estado (flecha 9), en stos se seala si la
operacin ha acabado satisfactoriamente o no, al tiempo que se dan otras
informaciones sobre la operacin realizada.
8 El Programa de Aplicacin revisa el estado de los indicadores, que se encuentran
en el rea de control de la unidad de ejecucin desde la que se efectu la llamada,
y toma las decisiones oportunas (flecha 10).
9 Los datos, que se encuentran en el rea de E/S de la correspondiente unidad de
ejecucin, en el caso de que la operacin haya terminado satisfactoriamente, ya
pueden ser utilizados por el Programa de Aplicacin (flecha 11).

27

Excelencia Acadmica

8. INTERACCIN DEL SISTEMA GESTOR DE BASES DE DATOS CON EL USUARIO:


LENGUAJES.
Debido a las distintas funciones a las distintas funciones a realizar por el SGBD se hace
necesario disponer de diferentes lenguajes y procedimientos que permitan la
comunicacin con la base de datos, tanto dirigidos a las funciones indicadas (definicin,
manipulacin o control) como dirigidos a los diferentes tipos de usuarios a de procesos a
realizar.
La tipologa de los lenguajes de un SGBD se expresa en el cuadro adjunto:

Por tipo de
funcin

Por tipos de
Usuarios y de
Aplicaciones

Definicin
Manipulaci
n

Informticos
Aplicaciones

Finales

Aplicaciones no
formalizables

Como se ve, las distintas caractersticas del proceso y del usuario determinan el tipo de
lenguaje a realizar. En general, los usuarios informticos, como el diseador de la base, el
administrador, analistas, programadores, etc., requerirn medios potentes y flexibles con
los cuales consigan definir, administrar, extraer o manipular los datos de la base.
Normalmente se apoyarn en un lenguaje de programacin que estn habituados a
manejar (Lenguaje Anfitrin), para lo cual deber permitir hacer llamadas desde un
programa de aplicacin al SGBD.
El conjunto de sentencias de manipulacin del SGBD que pueden ser llamadas desde un
lenguaje de programacin permitiendo el acceso a la base de datos, se suele denominar
sublenguaje de datos o tambin lenguaje husped o lenguaje embebido.
Los SGBD admiten , en general, varios lenguajes de tipo anfitrin para manipular datos
(Cobol, Ensamblador, Fortran, PL/I, Basic, Pascal, C, etc.). As mismo, la prctica
totalidad de los SGBD admiten lenguajes de 4 generacin que permiten el acceso a la
base de datos, mediante sentencias embebidas en dicho lenguaje y escritas en un
lenguaje de datos como SQL.
El usuario final, por su parte, requerir medios simples para comunicarse con la base, lo
que puede conseguirse mediante un lenguaje de manipulacin autocontenido, que tenga
una sintaxis sencilla, pero potente como para soportar demandas de informacin muy
variadas o por medio de tratamientos parametrizados que suelen presentarse al usuario
en forma de mens.
La estructura y la sintaxis de estos tipos de lenguajes dependen de cada SGBD. Para
modelo de datos en red, las normas Codasyl proponen especificaciones concretas de la
sintaxis para los lenguajes de descripcin y manipulacin de los datos. Para modelos de
datos relacionales el SQL es un estndar muy extendido que proporciona estas
facilidades.
28

Excelencia Acadmica

Lenguajes de Definicin de Datos


Los instrumentos que permiten al administrador de la BD describir los datos con facilidad y
precisin, especificando sus distintas estructuras es lo que se denomina Lenguaje de
Definicin de Datos (LDD) . Suelen ser lenguajes autocontenidos y no necesitan apoyarse
en ningn lenguaje de programacin. El SGBD deber facilitar los medios para describir la
estructura lgica global, para hacer las especificaciones relativas a la estructura interna y
para declarar las estructuras externas que sean requeridas para el desarrollo de distintas
aplicaciones.
Lenguajes de definicin de la estructura lgica global
Desde el punto de vista lgico global el administrador debe disponer de un instrumento de
descripcin que permita asignar nombres a los campos, a los agregados de datos, a los
registros, etc. estableciendo sus longitudes y sus caractersticas as como las relaciones
entre estos elementos, especificar los identificadores e indicar restricciones semnticas
que se han de aplicar a los diferentes objetos descritos.
Lenguajes de definicin de la estructura lgica interna
En teora, el propio SGBD debera conseguir automticamente la optimizacin del
almacenamiento y recuperacin de los datos y encargarse, a partir de la estructura lgica
global, de definir la estructura interna adecuada sin intervencin del usuario
(administrador).
Para ello, habra que suministrar al SGBD las informaciones precisas sobre volmenes,
crecimiento previsto, tipos de registros mas accedidos, con indicaciones del nmero medio
de accesos, relacin entre actualizaciones y consultas, etc.
En la prctica, puede mejorarse sensiblemente la eficiencia si el administrador especifica
caractersticas respecto a la estructura fsica, por lo que deber disponer de un lenguaje
de definicin de la estructura interna o, simplemente, deber dar valores a ciertos
parmetros.
En muchos SGBD se suministra automticamente por defecto una estructura interna, que
es la que el sistema considera mas adecuada para la estructura lgica global definida,
aunque el administrador deber ajustar posteriormente dicha estructura interna para
conseguir una mayor eficiencia.
Lenguajes de definicin de las estructuras externas
El SGBD debe poner a disposicin de los usuarios los medios necesarios para recuperar o
actualizar los datos contenidos en la base de datos, de acuerdo con la visin lgica o
estructura externa (vista) que precise cada aplicacin.
Al definir una estructura externa es preciso darle un nombre e indicar qu datos y qu
interrelaciones de la estructura lgica global se encontrarn en la misma. Cuando se
desee utilizar un esquema externo ya definido se podr hacer referencia al mismo
invocando su nombre desde el lenguaje de manipulacin.
Lenguajes de manipulacin de datos
Para cumplir los objetivos asignados a la funcin de manipulacin debe disponerse de
lenguajes que ofrezcan a los usuarios la posibilidad de referirse a determinados conjuntos
de datos, que cumplan ciertas condiciones (criterio de seleccin) como que un atributo que
tenga un determinado valor, o un conjunto de atributos y valores que satisfagan cierta
expresin lgica. Adems del criterio de seleccin, es preciso indicar la estructura externa
que se desea actualizar o recuperar.
29

Excelencia Acadmica

Una vez especificados el criterio de seleccin y los datos a actualizar o recuperar el SGBD
debe ocuparse de acceder al correspondiente soporte fsico de donde se extraern los
datos definidos para su transferencia a un dispositivo de salida, o, si se trata de una
actualizacin, en donde se insertarn, modificarn o borrarn los datos.
Pero al igual que el programador precisa de un lenguaje de manipulacin que se embeba
en un lenguaje de programacin, el usuario no informtico deber disponer de tambin de
un instrumento anlogo (mucho ms sencillo) que le permita comunicarse con la base y
extraer de ella o introducir en ella las informaciones que precise. Para ello, los SGBD
suelen disponer de lenguajes autocontenidos para que, desde un terminal y en modo
interactivo, el usuario pueda acceder a la base y manipular los datos almacenados en ella
sin necesidad de apoyarse en un lenguaje de programacin.
La mayora de los SGBD utilizan como lenguaje de manipulacin de datos el Lenguaje
Estructurado de Consultas o SQL.
1. Elabore una lista de las funciones que el administrador de base de datos tiene
a su cargo
2. Investigue si Ms. Acces y Visual fox Pro son sistemas gestores de base de
datos. Explique por qu si o por que no.
En el captulo I se han visto temas acerca de administracin de datos, administracin
de base de datos, funciones del administrador de base de datos y la estructura de una
base de datos.
Una Base de Datos es una coleccin de archivos, datos, informacin; ordenada,
organizada, y relacionada, con la finalidad de permitir el manejo de la informacin para
su procesamiento.
El DBMS es un conjunto de programas que se encargan de manejar la creacin y todos
los accesos a las bases de datos.
El Administrador de Bases de Datos es responsable primordialmente de administrar la
estructura de la Base de Datos, la actividad de los datos, asegurar la confiabilidad de
los datos y confirmar la seguridad de la Base de Datos.

[1] CONOLLY T., BEGG C.


Addison-Wesley. 2005

Sistemas de Bases de Datos. 4 Edicin

[2] C.J. DATE. Introduccin a los Sistemas de Bases de Datos. 7 Pearson


Educacion. 2001
[3] RAMAKRISHNAN R., GEHRKE J.; Database Management systems. 2 Edicin.
McGraw-Hill. 2 edicin. 2000
[3] C. BATINI, S. CERI, S.B. NAVATHE. Diseo Conceptual de Bases de Datos. Un
enfoque de entidades-interrelaciones. 1994

En la siguiente unidad temtica detallaremos aspectos tcnicos relacionados a la eleccin, instalacin y


configuracin de sistemas gestores de base de datos relacionales

30

Excelencia Acadmica

ADMINISTRACION DE BASE DE DATOS


UNIDAD ACADMICA N 1
NOMBRE:__________________________________________________________________
APELLIDOS:________________________________________FECHA; ____/_____/______
CIUDAD:_______________________________SEMESTRE:_________________________
Responda:
1.

Qu es base de datos?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

2.

Cules son los componentes de un sistema gestor de base de datos?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

3.

Qu caracteriza a un sistema gestor de base de datos?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

4.

Qu es un sistema gestor de base de datos?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

5.

Cmo define Ud. a un diccionario de datos?


_____________________________________________________________________________________
_____________________________________________________________________________________

6.

De qu manera se da la interaccin del sistema gestor de base de datos con el sistema operativo?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_

31

Excelencia Acadmica

32

Excelencia Acadmica

INSTALACION Y CONFIGURACION DEL SISTEMA


GESTOR DE BASE DE DATOS
Una de las tareas ms comunes de todo Administrador de Base de Datos (DBA) es la instalacin y
configuracin del sistema gestor de base de datos, lo cual no solo involucra la eleccin del SGBD, adems de la
edicin y versin, si no tambin determinar el software y hardware que soportara a dicho gestor.
Adems es necesario considerar que las decisiones que se tomen de cmo se configurara el ambiente del
SGBDR es crucial para obtener alto rendimiento, disponibilidad y seguridad de la base de datos
.

Al finalizar el estudio de la presente unidad temtica el estudiante:

1. Conoce criterios de eleccin de un modelo de base de datos


2. Conoce y analiza criterios de eleccin del sistema gestor de base de datos
3. Entiende los criterios a tomar en cuanta en la configuracin de un sistema gestor de
base de datos.
4. Instala y configura un sistema gestor de base de datos.

1. ELECCIN DEL MODELO DE DATOS Y DEL SISTEMA GESTOR DE BASES DE


DATOS

a) Eleccin del modelo de datos:


Los modelos ms comunes de organizacin de bases de datos son el jerrquico,
en red, relacional y orientado a objetos.

Base de datos jerrquica:


Estructura los campos en nodos en una estructura jerrquica. Los nodos
son puntos conectados entre s formando una especie de rbol invertido.
Cada entrada tiene un nodo padre, que puede tener varios nodos hijos;
esto suele denominarse relacin uno a muchos. Los nodos inferiores se
subordinan a los que se hallan a su nivel inmediato superior. Un nodo que
no tiene padre es llamado raz, en tanto que los que no tienen hijos son
conocidos como hojas. Cuando se desea hallar un campo en particular, se
empieza por el tope, con un nodo padre, descendiendo por el rbol en
direccin a un nodo hijo.
Por ejemplo, un sistema de reservaciones de una lnea area nacional
puede ser representado mediante una organizacin jerrquica. El nodo
padre es la ciudad de salida (Caracas), este nodo puede tener nodos hijos
representando las ciudades destino. Uno de estos nodos hijos, Maracay
por ejemplo, tiene a su vez nodos hijos, que son el nmero de vuelo. El
nmero de vuelo tendr tambin nodos hijos, que son los pasajeros.

33

Excelencia Acadmica

Entre las limitaciones de este tipo de base de datos se tiene que al borrar
un nodo padre, desaparecen tambin sus nodos subordinados. Slo podr
aadirse un nodo hijo si existe el nodo padre. Pero lo ms significativo es
la rigidez de su estructura: slo un padre por hijo y ausencia de relaciones
entre los nodos hijos.

Figura 2.1: Modelo jerrquico

Base de datos en red:


Se trata tambin de una organizacin jerrquica de nodos, pero un nodo
hijo puede tener ms de un solo nodo padre (relacin muchos a muchos).
Existen los punteros, que son conexiones adicionales entre nodos padres y
nodos hijos, que permiten acceder a un nodo por vas distintas accediendo
al mismo en direccin descendente por las diversas ramas.
Representa una mejora al modelo jerrquico. Los vendedores destacados
para distribuir determinados productos en algunas ciudades pueden ilustrar
este modelo. Cada producto puede ser distribuido por ms de un
vendedor, as mismo cada vendedor puede encargarse de diferentes
ciudades.

Figura 2.2: Modelo en red

34

Base de datos relacional:

Excelencia Acadmica

Esta organizacin ofrece la mayor flexibilidad ya que los datos se


almacenan en tablas diferentes, conformadas por filas y columnas.
En una tabla las filas contienen los registros y las columnas representan
los campos. Las tablas relacionadas poseen un campo comn, el campo
clave, mediante el cual la informacin almacenada en una tabla puede
enlazarse con la informacin almacenada en otra. El acceso a los datos se
realiza mediante consultas escritas en SQL.
La organizacin de bases de datos relacional es la ms difundida en la
actualidad motivada a su sencillez para realizar operaciones de adicin,
eliminacin y modificacin en contraste con la mayor rigidez de las
organizaciones jerrquicas y de red. Por ejemplo en un modelo relacional
para un pequeo negocio, se puede contar con una tabla de clientes y otra
de rdenes. Las rdenes que pertenecen a un determinado cliente son
identificadas colocando el campo de identificacin del cliente en la orden
(campo clave de la tabla de clientes), lo cual permite enlazar las dos tablas.

Figura 2.3: Modelo relacional

Bases de datos orientadas a objetos:


Es una estructura relativamente nueva que ha suscitado gran inters.
El modelo de datos orientado a objetos es una adaptacin para los
sistemas de bases de datos del paradigma de la programacin orientada a
objetos.
Se basa en el concepto de encapsular elementos de datos, sus
caractersticas, atributos y el cdigo que opera sobre ellos en elementos
complejos llamados objetos.

35

Excelencia Acadmica

Los objetos estructurados se agrupan en clases. El conjunto de las clases


se estructura en subclases y superclases.
El modelo de datos orientado a objetos usa los conceptos de la
programacin orientada a objetos
.

Figura 2.3: Modelo orientado a objetos


b) Eleccin del sistema gestor de bases de datos
Por ejemplo: Oracle 9i2, IBM DB2 UDB, Microsoft SQL Server, Interbase,etc.
Un sistema gestor de base de datos es un software con capacidad de definir,
mantener y utilizar una base de datos, por lo tanto debe permitir definir estructuras
de almacenamiento, acceso a los datos de forma eficiente y segura, entre otros.
Por lo tanto, al momento de elegir el gestor de base de datos debe considerarse
los siguientes factores:

36

Factores tcnicos:

Organizacin de los datos independientemente de las aplicaciones


que los vayan a usar (independencia lgica) y de los ficheros en
los que vayan a almacenarse (independencia fsica).

Datos y aplicaciones accesibles a los usuarios y a otras


aplicaciones de la manera ms amigable posible (lenguajes de
consulta: SQL, etc)

Datos gestionados de forma centralizada e independiente de las


aplicaciones.

No redundancia (los datos


consistencia e integridad.

Fiabilidad (proteccin frente a fallos).

Seguridad (no todos los datos deben ser accesibles a todos los
usuarios).

Capacidad de replicacin y distribucin

Disponibilidad de herramientas de desarrollo de software

Portabilidad

Factores no tcnicos

no

deben

estar

duplicados),

Excelencia Acadmica

Coste de la adquisicin del software, del hardware y coste de


mantenimiento.

Coste de creacin y conversin de la base de datos

Coste de personal (formacin y operacin).

Disponibilidad de servicios del proveedor

2. GESTORES DE BASES DATOS EN EL MERCADO.


a) Oracle:
Oracle es un sistema de gestin de base de datos relacional (o RDBMS por el
acrnimo en ingls de Relational Data Base Management System), fabricado por
Oracle Corporation.
Surge a finales de los 70 bajo el nombre de Relational Software a partir de un
estudio sobre SGBD (Sistemas Gestores de Base de Datos) de George Koch.
Computer World defini este estudio como uno de los ms completos jams
escritos sobre bases de datos. Este artculo inclua una comparativa de productos
que eriga a Relational Software como el ms completo desde el punto de vista
tcnico. Esto se deba a que usaba la filosofa de las bases de datos relacionales,
algo que por aquella poca era todava desconocido.
En la actualidad, Oracle (Nasdaq: ORCL) todava encabeza la lista. La tecnologa
Oracle se encuentra prcticamente en todas las industrias alrededor del mundo y
en las oficinas de 98 de las 100 empresas Fortune 100. Oracle es la primera
compaa de software que desarrolla e implementa software para empresas 100
por ciento activado por Internet a travs de toda su lnea de productos: base de
datos, aplicaciones comerciales y herramientas de desarrollo de aplicaciones y
soporte de decisiones. Oracle es el proveedor mundial lder de software para
administracin de informacin, y la segunda empresa de software.
Oracle a partir de la versin 10g Release 2, cuenta con 5 ediciones:

Oracle Database Enterprise Edition(EE).

Oracle Database Standard Edition (SE).

Oracle Database Standard Edition One (SE1).

Oracle Database Express Edition (XE).

Oracle Database Personal Edition (PE).

La nica edicin gratuita es la Express Edition, que es compatible con las dems
ediciones de Oracle Database 10gR2 y Oracle Database 11g.
Se considera a Oracle como uno de los sistemas de bases de datos ms
completos, destacando su:

Soporte de transacciones.

Estabilidad.

Escalabilidad.

Soporte multiplataforma.
37

Excelencia Acadmica

Ha sido criticada por algunos especialistas la seguridad de la plataforma, y las


polticas de suministro de parches de seguridad, modificadas a comienzos de 2005
y que incrementan el nivel de exposicin de los usuarios. En los parches de
actualizacin provistos durante el primer semestre de 2005 fueron corregidas 22
vulnerabilidades pblicamente conocidas, algunas de ellas con una antigedad de
ms de 2 aos.
Aunque su dominio en el mercado de servidores empresariales ha sido casi total
hasta hace poco, recientemente sufre la competencia del Microsoft SQL Server de
Microsoft y de la oferta de otros RDBMS con licencia libre como PostgreSQL,
MySql o Firebird. Las ltimas versiones de Oracle han sido certificadas para poder
trabajar bajo Linux.
b) SQL Server:
Microsoft SQL Server es un sistema de gestin de bases de datos relacionales
(SGBD) basado en el lenguaje Transact-SQL, capaz de poner a disposicin de
muchos usuarios grandes cantidades de datos de manera simultnea. Algunas de
las caractersticas de SQL Server son:

Soporte de transacciones.

Escalabilidad, estabilidad y seguridad.

Soporta procedimientos almacenados.

Incluye tambin un potente entorno grfico de administracin, que permite


el uso de comandos DDL y DML grficamente.

Permite trabajar en modo cliente-servidor, donde la informacin y datos se


alojan en el servidor y las terminales o clientes de la red slo acceden a la
informacin.

Adems permite administrar informacin de otros servidores de datos.

Este sistema incluye una versin reducida, llamada MSDE con el mismo motor de
base de datos pero orientado a proyectos ms pequeos, que en su versin 2005
pasa a ser el SQL Express Edition, que se distribuye en forma gratuita.
c) MySQL:
MySQL es un sistema de gestin de base de datos relacional, multihilo y
multiusuario.
MySQL AB - desde enero de 2008 una subsidiaria de Sun Microsystems desarrolla MySQL como software libre en un esquema de licenciamiento dual.
Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta
licencia, pero las empresas que quieran incorporarlo en productos privativos
pueden comprar a la empresa una licencia especfica que les permita este uso.
Est desarrollado en su mayor parte en ANSI C.
Al contrario que proyectos como Apache, donde el software es desarrollado por
una comunidad pblica y el copyright del cdigo est en poder del autor individual,
MySQL es propiedad y est patrocinado por una empresa privada, que posee el
copyright de la mayor parte del cdigo. Esto es lo que posibilita el esquema de
licenciamiento anteriormente mencionado.

38

Excelencia Acadmica

Adems de la venta de licencias privativas, la compaa ofrece soporte y servicios.


Para sus operaciones contratan trabajadores alrededor del mundo que colaboran
va Internet. MySQL AB fue fundado por David Axmark, Allan Larsson, y Michael
Widenius.
Las principales caractersticas de este gestor de base de datos son:

Aprovecha la potencia de sistemas multiprocesador, gracias a su


implementacin multihilo.

Soporta gran cantidad de tipos de datos para las columnas.

Dispone de API's en gran cantidad de lenguajes (C, C++, Java, PHP, etc).

Gran portabilidad entre sistemas.

Soporta hasta 32 ndices por tabla.

Gestin de usuarios y passwords, manteniendo un muy buen nivel de


seguridad en los datos.

d) Postgre SQL:
PostgreSQL es un servidor de base de datos relacional orientada a objetos de
software libre, liberado bajo la licencia BSD.
Como muchos otros proyectos open source, el desarrollo de PostgreSQL no es
manejado por una sola compaa sino que es dirigido por una comunidad de
desarrolladores y organizaciones comerciales las cuales trabajan en su desarrollo.
Dicha comunidad es denominada el PGDG (PostgreSQL Global Development
Group).
PostgreSQL ha tenido una larga evolucin, comenzando con el proyecto Ingres en
la Universidad de Berkeley. Este proyecto, liderado por Michael Stonebraker, fue
uno de los primeros intentos en implementar un motor de base de datos relacional.
Despus de haber trabajado un largo tiempo en Ingres y de haber tenido una
experiencia comercial con el mismo, Michael decidi volver a la Universidad para
trabajar en un nuevo proyecto sobre la experiencia de Ingres, dicho proyecto fue
llamado post-ingres o simplemente POSTGRES.
El proyecto post-ingres pretenda resolver los problemas con el modelo de base de
datos relacional que haban sido aclarados a comienzos de los aos 1980. El
principal de estos problemas era la incapacidad del modelo relacional de
comprender "tipos", es decir, combinaciones de datos simples que conforman una
nica unidad. Actualmente estos son llamados objetos. Se esforzaron en introducir
la menor cantidad posible de funcionalidades para completar el soporte de tipos.
Estas funcionalidades incluan la habilidad de definir tipos, pero tambin la
habilidad de describir relaciones - las cuales hasta ese momento eran ampliamente
utilizadas pero mantenidas completamente por el usuario. En POSTGRES la base
de datos comprenda las relaciones y poda obtener informacin de tablas
relacionadas utilizando reglas.
La siguiente lista muestra los hitos ms importantes en la vida del proyecto
POSTGRES.

1986: se publicaron varios papers que describan las bases del sistema.

1988: ya se contaba con una versin utilizable.

1989: el grupo liberaba la versin 1 para una pequea comunidad de


usuarios.

39

Excelencia Acadmica

1990: se liberaba la versin 2 la cual tena prcticamente reescrito el


sistema de reglas.

1991: liberacin de la versin 3, esta aada la capacidad de multiples


motores de almacenamiento.

1993: crecimiento importante de la comunidad de usuarios, la cual


demandaba ms caractersticas.

1994: antes de la liberacin de la versin 4, el proyecto termin y el grupo


se disolvi.

Despus de que el proyecto POSTGRES terminara, dos graduados de la


universidad, Andrew Yu y Jolly Chen, comenzaron a trabajar sobre el cdigo de
POSTGRES, esto fue posible dado que POSTGRES estaba licenciado bajo la
BSD, y lo primero que hicieron fue aadir soporte para el lenguaje SQL a
POSTGRES, dado que anteriormente contaba con su propio lenguaje de consultas,
creando as el sistema al cual denominaron Postgres95.
Para el ao 1996 se unieron al proyecto personas ajenas a la Universisdad como
Marc Fournier, Bruce Momjian y Vadim B. Mikheev quienes comenzaron a trabajar
para estabilizar el cdigo de Postgres95.
En el ao 1996 decidieron cambiar el nombre de Postgres95 de tal modo que
refleje la caracterstica del lenguaje SQL y lo terminaron llamando PostgreSQL.
Con el pasar del tiempo muchos desarrolladores entusiastas de los motores de
base de datos se unieron al proyecto y entre todos comenzaron a incorporar
muchas caractersticas al motor.
e) DB2:
DB2 es una marca comercial, propiedad de IBM, bajo la cual se comercializa el
sistema de gestin de base de datos.
DB2 versin 9 es un motor de base de datos relacional que integra XML de manera
nativa, lo que IBM ha llamado pureXML, que permite almacenar documentos
completos dentro del tipo de datos xml para realizar operaciones y bsquedas de
manera jerrquica dentro de ste, e integrarlo con bsquedas relacionales.
DB2 Express-C es la versin gratuita soportada por la comunidad, de DB2 que
permite desarrollar, implementar y distribuir aplicaciones que no usen las
caractersticas avanzadas de las versiones comerciales de DB2. Esta versin de
DB2 puede ser concebida como el ncleo de DB2, las diferentes ediciones incluyen
las caractersticas de Express-C ms funcionalidades especficas.

3. INSTALACION Y CONFIGURACION DE SQL SERVER 2005.


El Asistente para la instalacin de SQL Server 2005 est basado en Microsoft Windows
Installer y proporciona un solo rbol de caractersticas para la instalacin de todos los
componentes de Microsoft SQL Server 2005:

40

SQL Server Database Engine (Motor de base de datos de SQL Server)

Analysis Services

Reporting Services

Excelencia Acadmica

Notification Services

Integration Services

Herramientas de administracin

Documentacin y ejemplos

SQL Server 2005 est disponible en ediciones de 32 bits y de 64 bits. Las ediciones de
64 bits de SQL Server 2005 se instalan con los mismos mtodos que las ediciones de
32 bits: a travs del Asistente para la instalacin o del smbolo del sistema.
Independientemente de si utiliza el Asistente para la instalacin de SQL Server 2005 o
el smbolo del sistema para instalar SQL Server 2005, el proceso del programa de
instalacin incluir los siguientes pasos.
a) Paso 1: Prepare el equipo para instalar SQL Server 2005
A fin de preparar el equipo para SQL Server 2005, revise los requisitos de
hardware y software, los requisitos del Comprobador de configuracin del sistema,
los problemas de bloqueo, y las consideraciones de seguridad.
Dependiendo de sus requisitos, el programa de instalacin de Microsoft SQL
Server 2005 instalar una nueva instancia de SQL Server, actualizar una
instancia existente o proporcionar opciones de mantenimiento.
Para todas las instalaciones de SQL Server 2005, debe considerar lo siguiente:

Asegrese de que el equipo cumple con los requisitos del sistema para
SQL Server 2005.

Asegrese de tener permisos de administrador en el equipo en el que vaya


a instalar SQL Server. Si instala SQL Server desde un recurso compartido
remoto, deber utilizar una cuenta de dominio que tenga permisos de
lectura y ejecucin en el recurso compartido remoto. Para crear un clster
de conmutacin por error, debe ser un administrador local con permisos
para iniciar una sesin como un servicio y para actuar como parte del
sistema operativo en todos los nodos del servidor virtual.

Cree una o varias cuentas de usuario de dominio si va a instalar SQL


Server 2005 en un equipo en el que se ejecuta Microsoft Windows XP o
Windows 2003 y desea que SQL Server 2005 se comunique con otros
clientes y servidores.

No instale SQL Server 2005 en un controlador de dominio.

Realice una copia de seguridad de la instalacin de SQL Server si va a


ejecutar una instancia de SQL Server en el equipo en el que vaya a instalar
SQL Server 2005.

Compruebe que el disco en el que se instalar SQL Server no est


comprimido. Si intenta instalar SQL Server en una unidad comprimida, se
producir un error en el programa de instalacin.

Salga del software antivirus mientras instala SQL Server.

Detenga todos los servicios que dependan de SQL Server, incluidos


aquellos que utilizan la Conectividad abierta de bases de datos (ODBC),
como es el caso de los Servicios de Internet Information Server (IIS). Salga

41

Excelencia Acadmica

del Visor de sucesos y de los editores del Registro (Regedit.exe o


Regedt32.exe).

Revise todas las opciones de instalacin de SQL Server y preprese para


realizar las selecciones apropiadas cuando ejecute el programa de
instalacin.

b) Paso 2: Instale SQL Server 2005


Para instalar SQL Server 2005, ejecute el programa de instalacin mediante el
Asistente para la instalacin de SQL Server 2005 o realice la instalacin desde el
smbolo del sistema. Tambin puede agregar componentes a una instancia de SQL
Server 2005, o actualizar a SQL Server 2005 desde una versin anterior de SQL
Server.
Instalar componentes de SQL Server 2005
El Asistente para la instalacin proporciona instrucciones para la configuracin
inicial de SQL Server 2005, lo que incluye seleccin de caractersticas, reglas de
nomenclatura de instancias, configuracin de cuentas de servicio, directrices para
contraseas seguras y escenarios para establecer intercalaciones.
Para asegurarse de una instalacin correcta, revise los siguientes requisitos antes
de instalar SQL Server 2005:
Requisitos de hardware (32 bits)
En la siguiente tabla se muestran los requisitos de hardware para instalar y
ejecutar SQL Server 2005 en la plataforma de 32 bits.
SQL Server 2005 (32
bits)

Tipo de
procesador1

SQL
Server
2005
Enterprise Edition 4

Procesador
compatible
con
Pentium III o
superior

SQL
Server
2005
Developer Edition

Velocidad de
procesador2
Mnimo: 600 MHz

Mnimo: 512 MB

Recomendado:
1 GHz o ms

Recomendado: 1 GB
o ms
Mximo: mximo del
sistema
operativo
mximo

SQL
Server
2005
Standard Edition
SQL
Server
2005
Workgroup Edition

Memoria (RAM)3

Procesador
compatible
con
Pentium III o
superior

Mnimo: 600 MHz

Mnimo: 512 MB

Recomendado:
1 GHz o ms

Recomendado: 1 GB
o ms
Mximo: mximo del
sistema
operativo
mximo

SQL
Server
Express Edition

42

2005

Procesador
compatible
con
Pentium III o

Mnimo: 500 MHz

Mnimo: 192 MB

Recomendado:

Recomendado:

512

Excelencia Acadmica

superior

1 GHz o ms

MB o ms
Mximo: mximo del
sistema
operativo
mximo

SQL
Server
2005
Express Edition with
Advanced Services

Procesador
compatible
con
Pentium III o
superior

Mnimo: 600 MHz

Mnimo: 512 MB

Recomendado:
1 GHz o ms

Recomendado: 1 GB
o ms
Mximo: mximo del
sistema operativo

El Comprobador de configuracin del sistema (SCC) bloquear el programa de


instalacin si no se cumple el requisito del tipo de procesador.

El SCC avisar al usuario si no se cumple el requisito de comprobacin de


velocidad mnima o recomendada del procesador, pero no bloquear el programa
de instalacin. No se mostrarn advertencias en equipos multiprocesador.

El SCC avisar al usuario si no se cumple el requisito de comprobacin de RAM


mnima o recomendada, pero no bloquear el programa de instalacin. Los
requisitos de memoria se refieren slo a esta versin y no reflejan los requisitos de
memoria adicionales del sistema operativo. El SCC comprobar la memoria
disponible al iniciar el programa de instalacin.

SQL Server Evaluation Edition admite el mismo conjunto de caractersticas que


SQL Server 2005 Enterprise Edition.
Requisitos de espacio en disco duro (32 y 64 bits)
Durante la instalacin de SQL Server 2005, Windows Installer crea archivos
temporales en la unidad del sistema. Antes de ejecutar el programa de instalacin
para instalar o actualizar SQL Server 2005, compruebe que dispone de 2,0 GB de
espacio en disco en la unidad del sistema para estos archivos. Este requisito es
aplicable incluso si instala todos los componentes de SQL Server en una unidad
(del sistema) distinta de la predeterminada. Muchos de los archivos se instalarn
en la unidad del sistema, que normalmente es C:. Por ejemplo, los archivos de
registro de la instalacin se copiarn en la unidad del sistema, y es posible que
requieran hasta 80 MB para una instalacin independiente y ms espacio para una
instalacin en un clster de conmutacin por error.
Los requisitos de disco duro actuales dependen de la configuracin del sistema y
las aplicaciones y caractersticas que haya decidido instalar. En la siguiente tabla
se muestran los requisitos de espacio en disco de los componentes de SQL Server
2005.

Caracterstica
Database Engine (Motor de base de datos) y archivos de
datos, Rplica y Bsqueda de texto

Requisito de
espacio en
disco
280 MB

43

Excelencia Acadmica

Analysis Services y archivos de datos

90 MB

Reporting Services y Administrador de informes

120 MB

Componentes del motor de Notification


componentes de cliente y componentes de reglas

Services,

50 MB

Integration Services

120 MB

Componentes de cliente

850 MB

Libros en pantalla de SQL Server y Libros en pantalla de SQL


Server Compact Edition

240 MB

Ejemplos y bases de datos de ejemplo. Tenga en cuenta que,


de forma predeterminada, los ejemplos y las bases de datos
de ejemplo no se instalan.

410 MB

Requisitos del sistema operativo (32 bits)


En la siguiente tabla se muestran los sistemas operativos que ejecutan el software
de servidor para cada versin de 32 bits de SQL Server 2005

44

Enterpris
e
Edition1

Develop
er
Edition

Standar
d
Edition

Workgrou
p Edition

Express
Edition y
Express
with
Advance
d
Services

Windows 2000

No

No

No

No

No

No

SP4 de Windows
2000 Professional
Edition2, 4

No

SP4 de Windows
2000 Server2

SP2 de Windows
XP Home Edition

No

No

No

S5

No

Evalua
tion
Editio
n

Excelencia Acadmica

SP2 de Windows
XP Professional
Edition4

No

SP1 de Windows
Server
2003
Enterprise
Edition6

Windows
Vista
Starter Edition

No

No

No

No

No

No

Windows
Home
Edition

No

S7

No

No

S8

S7

Windows
Vista
Home Premium
Edition

No

S7

No

No

S8

S7

Windows
Vista
Ultimate Edition

No

S7

S7

S7

S8

S7

Windows
Vista
Business Edition

No

S7

S7

S7

S8

S7

Windows
Vista
Enterprise Edition

No

S7

S7

S7

S8

S7

Vista
Basic

Consideraciones de seguridad para una instalacin de SQL Server


La seguridad resulta importante, no slo para Microsoft SQL Server y Microsoft,
sino tambin para todos los productos y empresas. Si aplica las siguientes
prcticas recomendadas de seguridad, puede evitar muchas vulnerabilidades de
seguridad.
Antes de instalar SQL Server
Siga estas prcticas recomendadas cuando configure el entorno del servidor.

Mejorar la seguridad fsica


El aislamiento fsico y lgico constituye la base de la seguridad de SQL
Server. Para mejorar la seguridad fsica de la instalacin de SQL Server,
realice las siguientes tareas:
Coloque el servidor en una sala inaccesible para personas no
autorizadas.

45

Excelencia Acadmica

Coloque los equipos que alojan bases de datos en una


ubicacin protegida fsicamente, como una sala de equipos
cerrada con sistemas supervisados de deteccin de
inundaciones y de extincin o deteccin de incendios.
Instale las bases de datos en una zona segura de la intranet
corporativa que nunca est conectada directamente a Internet.
Realice peridicamente una copia de seguridad de los datos y
almacene las copias en una ubicacin segura fuera de las
instalaciones.

Usar firewalls
Los firewalls son fundamentales para garantizar la seguridad de la
instalacin de SQL Server. Los firewalls sern ms efectivos si sigue estas
instrucciones:
Instale un firewall entre el servidor e Internet.
Divida la red en zonas de seguridad separadas por firewalls.
Bloquee todo el trfico y, a continuacin, admita slo el
necesario.
En un entorno de varios niveles, utilice varios firewalls para
crear subredes filtradas.
Si instala el servidor en un dominio de Windows, configure
firewalls internos para permitir la autenticacin de Windows.
En un dominio de Windows en el que todas las versiones de
Windows son Windows XP o Windows Server 2003 o versiones
posteriores, deshabilite la autenticacin NTLM. .
Si la aplicacin utiliza transacciones distribuidas, debe
configurar el firewall para permitir que el trfico del
Coordinador de transacciones distribuidas de Microsoft (MS
DTC) fluya entre instancias independientes de MS DTC y entre
MS DTC y administradores de recursos como SQL Server.

Aislar servicios
El aislamiento de servicios reduce el riesgo de que se utilice un servicio
cuya seguridad se haya vulnerado para vulnerar la seguridad de otros
servicios. Para aislar los servicios, siga estas instrucciones:
Siempre que sea posible, no instale SQL Server en un
controlador de dominio.
Ejecute los servicios de SQL Server por separado en distintas
cuentas de Windows.
En un entorno de varios niveles, ejecute la lgica Web y la
lgica de negocios en equipos independientes.

46

Excelencia Acadmica

Crear cuentas de servicio con privilegios mnimos


La instalacin de SQL Server configura automticamente las cuentas de
servicio con los permisos necesarios para SQL Server. Cuando se
modifican o se configuran los servicios de Windows utilizados por SQL
Server 2005, slo debera otorgar los permisos que precisan.

Deshabilitar NetBIOS y Bloque de mensajes de servidor


Los servidores de la red perimetral deberan tener los protocolos
innecesarios deshabilitados, incluido NetBIOS y Bloque de mensajes de
servidor (SMB).
NetBIOS utiliza los siguientes puertos:
UDP/137 (servicio de nombre NetBIOS)
UDP/138 (servicio de datagrama NetBIOS)
TCP/139 (servicio de sesin NetBIOS)
SMB utiliza los siguientes puertos:
TCP/139
TCP/445
Los servidores Web y los servidores del Sistema de nombres de dominio
(DNS) no requieren NetBIOS o SMB. En estos servidores, deshabilite los
dos protocolos para mitigar la amenaza de enumeracin de usuarios.

Despus de instalar SQL Server


Tras la instalacin, puede mejorar la seguridad de la instalacin de SQL Server si
sigue estas prcticas recomendadas relativas a las cuentas y los modos de
autenticacin:

Cuentas de servicio
Ejecute servicios de SQL Server con los privilegios mnimos.
Asocie los servicios de SQL Server con cuentas de Windows.

Modo de autenticacin
Requiera la autenticacin de Windows para las conexiones a
SQL Server.

Contraseas seguras
Asigne una contrasea segura a la cuenta sa.
Habilite siempre la comprobacin de directivas de contraseas.
Utilice contraseas seguras en todos los inicios de sesin de
SQL Server.

47

Excelencia Acadmica

A continuacin se muestra la instalacin del servidor de base de datos:

48

Introduciremos el CD de instalacin. Nos aparecer la primera ventana del


asistente de instalacin. Marcaremos "I accept the licensing terms and
conditions" y pulsaremos en "Next":

Previamente, SQL Server instalar algunos componentes necesarios


(Microsoft SQL Native Client y Microsoft SQL Server 2005 Setup Support
Files). Pulsaremos en "Install":

Excelencia Acadmica

Pulsaremos en "Finish" para iniciar el proceso de instalacin de SQL


Server:

Se iniciar el asistente de instalacin de SQL Server, pulsaremos en


"Next":

El asistente de instalacin har un chequeo previo de posibles problemas


con algn componente de la instalacin, si no hay problemas pondr
"Success" en "Status" y pulsaremos en "Continue":

49

Excelencia Acadmica

50

Nos pedir el nmero de serie y nombre de la compaa

A continuacin marcaremos los componentes de SQL Server a instalar:


SQL Server, Analysis Services, Reporting Services, Notification Services,
Data Transformation Services, etc:

Excelencia Acadmica

Si queremos mostrar los componentes que se instalar en detalle


pulsaremos en "Advanced" (en esta ventana nos aparecer una
descripcin de cada componente). Tras seleccionar los componentes a
instalar pulsaremos en "Next":

51

Excelencia Acadmica

52

Selecconaremos "Defautl instance" para instalar la instancia por defecto o


"Named instance" para especificar un nombre de instancia personalizado:

Si queremos iniciar todos los servicios de SQL Server con el mismo


usuario desmarcaremos "Customize for each service account", de esta
forma se utilizar el mismo usuario para iniciar todos los servicios del
equipo que har de Servidor de SQL Server. Si queremos utilizar un
usuario existente de un dominio de Windows 2000/2003 marcaremos "Use
a Domain User account" y especificaremos el usuario, la contrasea y el
dominio. Si, por el contrario, queremos que el usuario con que se inicien
los servicios sea el local del equipo donde estemos instalando SQL Server
marcaremos "Use the Local System account" (conviene que sea
administrador del equipo). Para iniciar los servicios de SQL Server
automticamente en el arranque del equipo marcaremos "Auto-start
service". Tras configurar estos parmetros pulsaremos en "Next":

Excelencia Acadmica

Indicaremos el modo de autenticacin que queramos usar para el acceso a


SQL Server: Windows Authentication Mode (SQL Server utilizar los
usuarios del Sistema Operativo para el acceso) Mixed Mode (usuarios
del sistema operativo y usuarios de SQL Server). Introduciremos la
contrasea para acceder a la administracin de SQL Server (como
superusuario) y pulsaremos en "Next":

Indicaremos las opciones del idioma. SQL Server permite especificar


distintos valores segn el servicio marcando "Customize for each service
account". Tras configurar estos valores pulsaremos "Next":

53

Excelencia Acadmica

54

Por tlimo nos aparecer una ventana con el resumen de los componentes
y opciones seleccionadas en el asistente de instalacin. Si todo es correcto
pulsaremos en "Install" para iniciar la instalacin de SQL Server:

Si todo se ha instalado correctamente en "status" aparecer "Setup


finished". Pulsaremos en "Next":

Excelencia Acadmica

El programa de instalacin ha concluido, ahora podremos comprobar en


"Inicio" - "Programas" que se ha creado una nueva carpeta llamada
"Microsoft SQL Server 2005" con el siguiente contenido (depender de los
componentes instalados):

Para comprobar que la instalacin se ha realizado correctamente


ejecutaremos "SQL Server Management Studio", nos aparecer la ventana
de conexin "Connect to Server", donde deberemos indicar el tipo de
servidor "SQL Server", el nombre del servidor (nombre del equipo
direccin ip/nombre de la instancia) y el tipo de autenticacin, en nuestro
caso "Windows Authentication":

Si SQL Server se ha instalado correctamente nos aparecer la consola de


SQL Server Management Studio:

55

Excelencia Acadmica

c)

Paso 3: Configure la instalacin de SQL Server 2005


Despus de que el programa de instalacin complete la instalacin de SQL Server
2005, puede configurar SQL Server mediante utilidades grficas o del smbolo del
sistema.
Configurar una instalacin de SQL Server
Despus de que el programa de instalacin complete la instalacin de Microsoft
SQL Server 2005, puede configurar posteriormente SQL Server mediante
utilidades grficas o del smbolo del sistema. En la siguiente tabla se describe la
compatibilidad con las herramientas utilizadas para administrar una instancia de
SQL Server 2005.
Herramienta o utilidad
SQL Server
Studio

Descripcin

Management SQL Server Management Studio se utiliza para


editar y ejecutar consultas, y para iniciar tareas
estndar del asistente..

Analizador de SQL Server

Analizador de SQL Server proporciona una interfaz


grfica de usuario para supervisar una instancia de
Database Engine (Motor de base de datos) de
SQL Server o una instancia de Analysis Services..

Asistente
para
la El Asistente para la optimizacin de Database
optimizacin de Database Engine (Motor de base de datos) crea conjuntos
Engine (Motor de base de ptimos de ndices, vistas indizadas y particiones.
datos)
Business
Intelligence Business Intelligence Development Studio es un
Development Studio
entorno de desarrollo integrado para las
soluciones de Analysis Services y Integration
Services..
Utilidades del smbolo del Administre los objetos de SQL Server desde el

56

Excelencia Acadmica

sistema

smbolo del sistema..

Administrador
de Administre los valores de configuracin de red de
configuracin de SQL Server cliente y servidor..
Importar y exportar datos

Integration Services proporciona un conjunto de


herramientas grficas y objetos programables para
mover, copiar y transformar datos..

Programa de instalacin de Instale, actualice o cambie componentes en una


SQL Server
instancia de SQL Server 2005.

Configuracin predeterminada
Las configuraciones predeterminadas para las nuevas instancias de SQL Server
2005 deshabilitan algunos componentes y caractersticas para reducir la superficie
atacable del producto.
Los siguientes componentes y caractersticas estn desactivados de manera
predeterminada:

Integration Services

Agente SQL Server

Explorador SQL Server

Bsqueda de texto

1. Elabore un cuadro comparativo de los diferentes modelos de datos.


2. Elabore un cuadro comparativo de tres gestores de base de datos ms conocidos en el
mercado.
3. Instale SQL Server 2005 siguiendo la gua de instalacin.

Se ha visto los criterios a tomarse en cuenta para la eleccin de un sistema gestor


de base de datos
Se realizo una gua de la instalacin de SQL Server 2005 y de la configuracin
bsica del SGBDR despus de conocer los requerimientos bsicos de software y
hardware para que la instalacin se lleve a cabo de manera exitosa.

57

Excelencia Acadmica

[1] ELMASRI Y NAVATHE. Fundamentos de los Sistemas de Base de Datos. Tercera Edicin. The
Benjamin/Cummings Publishing Company Inc.. 2001.
[2] DATE, C.J. Date. Introduccin a los Sistemas de Base de Datos. 7 Edicin. Vol I. Addison-Wesley
Iberoamericana.
[3] JEFFREY D. Ullman. Database and Knowledge-Base Systems. Vol. I y II. Computer Science Press.
1988.
[4] MIGUEL, Adoracin de y PIATTINI, Mario G. Fundamentos y modelos de bases de datos. Madrid:
RA-MA, 1997
[5]

KORTH, Henry F. y SILBERSCHATZ, Abraham. Fundamentos de bases de datos. Madrid:


McGraw-Hill, 1993

Bibliografa electrnica:
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

En la siguiente unidad temtica detallaremos aspectos relacionados a las bases de datos y su almacenamiento
en archivos (archivos de datos y archivo de registro de transacciones) y su administracin.

58

Excelencia Acadmica

ADMINISTRACION DE BASE DE DATOS


UNIDAD ACADMICA N 2
NOMBRE:__________________________________________________________________
APELLIDOS:________________________________________FECHA; ____/_____/______
CIUDAD:_______________________________SEMESTRE:_________________________
Responda brevemente:
1.

Por qu es importante la eleccin del modelo de datos adecuado?


_____________________________________________________________________________________
_____________________________________________________________________________________
___________________________________________

2.

Qu factores influyen en la eleccin de un SGBDR?


_____________________________________________________________________________________
_____________________________________________________________________________________
___________________________________________

3.

Cules son los requisitos previos de instalacin de SQL Server 2005 ?


_____________________________________________________________________________________
_____________________________________________________________________________________
___________________________________________

4.

Qu es una instancia de SQL Server?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

5.

Mencione algunas consideraciones de seguridad para la instalacin de SQL Server 2005


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

59

Excelencia Acadmica

60

Excelencia Acadmica

ADMINISTRACION DE ARCHIVOS DE BASES DE


DATOS
Al crear una base de datos, se configura la estructura de almacenamiento de los datos. Esta estructura
incluye al menos un archivo de datos, que contiene objetos de la base de datos como tablas e ndices y un archivo
de registro de transacciones que contiene el diario de transacciones de la base de. Antes de crear una base de
datos, es importante que comprenda cmo SQL Server almacena los datos, as como la funcin del registro de
transacciones.
Esta unidad proporciona a los alumnos los conocimientos y la capacidad necesarios para crear una base
de datos. En l se describe cmo Microsoft SQL Server 2005 almacena los datos y procesa las transacciones.
Adems veremos cmo crear, administrar y colocar archivos y registros de transacciones de bases de datos, as
como la manera de optimizar bases de datos mediante RAID basado en hardware, grupos de archivos definidos por
el usuario y una combinacin de ambos. Concluye con informacin acerca de cmo asignar, administrar y supervisar
los requisitos de espacio y almacenamiento de una base de datos, as como algunas consideraciones acerca del
rendimiento.

Al finalizar el estudio de la presente unidad temtica el estudiante:

1. Describe el modo en que SQL Server almacena los datos y trata las transacciones.
2. Amplia o reduce el tamao de una base de datos.
3. Determina la ubicacin de archivos y registros de transacciones de bases de datos
para mejorar el rendimiento y la tolerancia a errores.

4. Optimiza una base de datos mediante RAID basado en hardware.


5. Determina cundo y cmo usar grupos de archivos para optimizar una base de datos.
6. Optimiza una base de datos mediante grupos de archivos con RAID basado en
hardware.

7. Estima la cantidad de espacio que requiere una base de datos.


1. INTRODUCCION A LAS ESTRUCTURAS DE DATOS
a) Cmo se almacenan los datos?
Al crear una base de datos, es importante comprender cmo SQL Server
almacena los datos para poder calcular y especificar la cantidad de espacio en
disco que hay que asignar a los archivos de datos y registros de transacciones.
Tenga en cuenta los siguientes hechos y directrices acerca del almacenamiento de
los datos:

Todas las bases de datos tienen un archivo de datos principal (.mdf), y uno
o varios archivos de registro de transacciones (.ldf). Una base de datos
tambin puede tener archivos de datos secundarios (.ndf). Estos archivos
61

Excelencia Acadmica

fsicos tienen nombres del sistema operativo y nombres de archivo lgicos


que se pueden utilizar en instrucciones Transact-SQL. La ubicacin
predeterminada para todos los archivos de datos y registros de
transacciones
es
C:\Archivos
de
programa\Microsoft
SQL
Server\MSSQL\Data.

Cuando se crea una base de datos, se hace una copia de la base de datos
model, que incluye las tablas del sistema.

Los datos se almacenan en bloques de 8 kilobytes (KB) de espacio


contiguo en disco, llamados pginas. Esto significa que una base de datos
puede almacenar 128 pginas por megabyte (MB).

Las filas no pueden abarcar ms de una pgina. Por tanto, la mxima


cantidad de datos de una fila, quitando el espacio necesario para la
cabecera de la fila, es 8060 bytes.

Las tablas y los ndices se almacenan en extensiones. Una extensin son


ocho pginas contiguas, o 64 KB. Por tanto, una base de datos tiene 16
extensiones por megabyte. Las tablas pequeas pueden compartir
extensiones con otros objetos de la base de datos.

Los archivos del registro de transacciones contienen toda la informacin


necesaria para recuperar la base de datos en caso de un error del sistema

Figura 3.1: La base de datos y sus archivos


b) Las Transacciones:
Una transaccin es un conjunto de una o varias instrucciones Transact-SQL que se
tratan como una sola unidad de trabajo y recuperacin. La unidad se debe ejecutar
completamente, o no ejecutarse. Las aplicaciones controlan las transacciones
cuando se especifica el principio y el final de stas ltimas. Para especificar el

62

Excelencia Acadmica

principio y el final de las transacciones puede usar tanto las instrucciones TransactSQL como las funciones de la interfaz de programacin de aplicaciones (API) de
bases de datos. SQL Server realiza transacciones implcitas y explcitas.
Transaccin implcita:
SQL Server realiza una transaccin implcita cuando se ejecuta como una
transaccin cualquiera de las instrucciones Transact-SQL siguientes:

Alter table

Drop

Insert

Select

Create

Fetch

Open

Truncate table

Delete

Grant

Revoke

Update

De manera predeterminada, SQL Server funciona en modo de consignacin


automtica. Esto significa que una transaccin implcita se consigna tras su
ejecucin sin necesidad de finalizar la transaccin con una instruccin COMMIT
TRANSACTION.
SQL Server puede funcionar tambin en modo de transaccin implcita. Esto
significa que cuando cualquiera de las instrucciones Transact-SQL citadas
anteriormente comienza una transaccin, dicha transaccin debe tener una
instruccin COMMIT TRANSACTION para finalizar la misma.
Transaccin explcita:
SQL Server realiza una transaccin explcita cuando el principio y el final de una
transaccin se definen explcitamente. Puede definir el principio y el final de la
transaccin en Transact-SQL mediante las instrucciones BEGIN TRANSACTION y
COMMIT TRANSACTION.
Qu es el registro de transacciones?
SQL Server graba todas las transacciones en un registro de transacciones para
mantener la coherencia de la base de datos y facilitar la recuperacin. El registro
es un rea de almacenamiento que efecta automticamente el seguimiento de
todos los cambios en la base de datos. SQL Server graba las modificaciones en el
registro en disco cuando se ejecutan, antes de escribirse en la base de datos
El registro de transacciones graba las modificaciones de los datos a medida que se
producen. El proceso de registro es el siguiente:

La aplicacin enva una modificacin de datos.

Cuando la modificacin se ejecuta, las pginas de datos afectadas se


cargan en memoria (llamada cach del bfer) desde el disco si las pginas
no estn ya cargadas en la cach del bfer por una consulta anterior.

Cada instruccin de modificacin de datos se graba en el registro mientras


se ejecuta. El cambio siempre se graba en el registro y se escribe en disco

63

Excelencia Acadmica

antes de hacer la modificacin en la base de datos. Este tipo de registro se


denomina registro de prescritura.

De forma repetitiva, el proceso de punto de comprobacin escribe en disco


todas las transacciones completadas en la base de datos.

Si se produce un error del sistema, el proceso automtico de recuperacin utiliza el


registro de transacciones para aplicar todas las transacciones confirmadas y
deshacer las transacciones incompletas.
Los marcadores de transaccin del registro se utilizan durante la recuperacin
automtica para determinar los puntos de inicio y fin de cada transaccin. Una
transaccin se considera completa cuando el marcador BEGIN TRANSACTION
tiene un marcador COMMIT TRANSACTION asociado. Las pginas de datos se
escriben en disco cuando tiene existe un punto de comprobacin

Figura 3.2: Funcionamiento del registro de transacciones


2. CREACION DE LAS BASES DE DATOS
a) Que ocurre durante la creacin de una base de datos?
Puede crear una base de datos desde el Administrador corporativo de SQL Server
o mediante la instruccin Transact-SQL CREATE DATABASE en el Analizador de
consultas de SQL Server.
Cuando se crea una base de datos, SQL Server:

64

Crea un archivo de datos y un registro de transacciones para esa base de


datos.

Requiere que el propietario y creador de la nueva base de datos tenga


permiso para usar la base de datos master, ya que sta contiene las tablas
sysdatabases y sysaltfiles en las que se graba la informacin acerca de
cada base de datos de SQL Server.

Excelencia Acadmica

Permite definir:
El nombre de la base de datos.
Las propiedades de la base de datos.
La ubicacin de los archivos de la base de datos.

SQL Server usa una copia de la base de datos model para inicializar la
base de datos y sus metadatos. Las opciones o configuraciones de la base
de datos model se copian en la nueva base de datos.

A continuacin, SQL Server llena el resto de la base de datos con pginas


vacas, excepto aquellas pginas que contienen datos internos que graban
cmo se usa el espacio en la base de datos

b) Especificacin de opciones durante la creacin de la base de datos


Al crear una base de datos se pueden especificar las opciones siguientes:

Archivo principal:
El archivo principal consta del archivo de datos inicial del grupo de archivos
principal. Un grupo de archivos es una coleccin de archivos de datos con
nombre. El grupo de archivos principal contiene todas las tablas del
sistema de la base de datos. Tambin contiene todos los objetos y datos
no asignados a grupos de archivos definidos por el usuario. El archivo de
datos principal es el punto de inicio de la base de datos y seala los dems
archivos de la base de datos. Todas las bases de datos tienen un archivo
de datos principal y un grupo de archivos principal. La extensin de nombre
de archivo recomendada para los archivos principales de datos es .mdf.

Archivos secundarios:
Las bases de datos pueden tener archivos secundarios de datos. Algunas
bases de datos pueden ser lo suficientemente grandes como para
necesitar varios archivos secundarios de datos, o pueden usar archivos
secundarios en unidades de disco independientes para repartir los datos
por varios discos. Los archivos secundarios pueden estar en el grupo de
archivos principal o agrupados en grupos de archivos definidos por el
usuario. La extensin de nombre de archivo recomendada para los
archivos secundarios de datos es .ndf.

Registro de transacciones
Cada base de datos debe tener un registro de transacciones. A menos que
se indique lo contrario, se crea automticamente un archivo de registro de
transacciones con un nombre generado por el sistema. La extensin de
nombre de archivo recomendada para los archivos de registro de
transacciones es .ldf. Por lo general, el archivo de registro de
transacciones supone aproximadamente el 10 o el 15 por ciento de los
archivos de la base de datos

Nombre y ubicacin de archivo


Cada archivo de base de datos tiene un nombre lgico y una ubicacin
fsica para el archivo. Por lo general, los archivos deben repartirse entre
varios discos para mejorar el rendimiento y la redundancia.

65

Excelencia Acadmica

Tamao
Puede especificar el tamao de cada archivo de datos y de registro. El
tamao mnimo es de 512 KB, tanto para los archivos de datos como para
los archivos de registro. El tamao especificado para el archivo de datos
principal tiene que ser, al menos, como el tamao del archivo principal de
la base de datos model.

Crecimiento de archivo
Puede especificar si un archivo aumentar o no su tamao si es necesario.
Para referirse a esta opcin se habla de crecimiento automtico. De forma
predeterminada, est habilitado el crecimiento de archivo.
Puede especificar el crecimiento de archivo en megabytes o mediante
porcentaje. El porcentaje slo se aplica al crecimiento de archivo, no al
tamao mximo.

Tamao mximo
Puede especificar el tamao mximo de crecimiento de archivo en
megabytes o mediante porcentaje. El valor predeterminado de crecimiento
es del 10 por ciento. Se recomienda especificar un tamao mximo de
crecimiento para el archivo. Si no especifica un tamao y est habilitada la
opcin de crecimiento de archivo, el archivo crecer de manera
predeterminada hasta que el disco se llene.
Mencione que la ruta de acceso del archivo variar si se utiliza una
instancia con nombre de SQL Server en lugar de una instancia
predeterminada.

Intercalacin
Este parmetro especifica la intercalacin predeterminada para la base de
datos. De manera predeterminada, una base de datos hereda la
intercalacin de la instancia de SQL Server en la que se crea la base de
datos

c) Cambio de opciones de la base de datos despus de creada


Despus de crear una base de datos, puede cambiar las opciones de base de
datos. Para establecer opciones de base de datos puede utilizar el Administrador
corporativo de SQL Server, la instruccin Transact-SQL ALTER DATABASE o el
procedimiento almacenado sp_dboption.
Puede configurar un nmero de opciones de base de datos para cada base de
datos. Para que las opciones afecten a todas las bases de datos nuevas, cambie la
base de datos model.
Hay cinco categoras de opciones de base de datos:

66

Las opciones automticas controlan determinados comportamientos


automticos.

Las opciones de cursor controlan el comportamiento y el alcance del


cursor.

Excelencia Acadmica

Las opciones de recuperacin controlan el modelo de recuperacin de la


base de datos.

Las opciones de SQL controlan las opciones que cumplen el estndar


ANSI.

Las opciones de estado controlan:

Si la base de datos est en lnea o no.

Quin puede conectarse a la base de datos.

Si la base de datos est o no en modo de slo lectura

d) Presentacin de las propiedades de bases de datos


Para obtener propiedades e informacin de la base de datos, puede usar el
Administrador corporativo de SQL Server, o bien las funciones del sistema, los
procedimientos almacenados del sistema o las instrucciones de Comprobador de
coherencia de la base de datos (DBCC) del Analizador de consultas de SQL.
La tabla siguiente enumera los procedimientos e instrucciones utilizados
habitualmente.
Procedimiento almacenado del
sistema / instruccin DBCC

Descripcin

sp_helpdb

Informa acerca de todas las bases


de datos de un servidor.
Proporciona el nombre, el tamao,
el propietario, el Id., la fecha de
creacin y las opciones de la base
de datos.
sp_helpdb baseDeDatos
Informa slo acerca de la base de
datos especificada. Proporciona el
nombre, el tamao, el propietario,
el Id., la fecha de creacin y las
opciones de la base de datos.
Tambin enumera los archivos de
datos y de registro.
sp_spaceused [nombreObjeto]
Resume el espacio de
almacenamiento que utiliza una
base de datos o un objeto de base
de datos.
DBCC SQLPERF (LOGSPACE)
Proporciona estadsticas acerca
del uso del espacio del registro de
transacciones en todas las bases
de datos
3. ADMINISTRACION DE LOS ARCHIVOS DE BASE DE DATOS
A medida que la base de datos crece o cambia, puede expandir o reducir manualmente el
tamao de los archivos de datos y de registro o bien configurarlos para que lo hagan
automticamente. Cuando ya no necesite una base de datos, puede eliminarla, junto con
todos sus archivos asociados
a) Administracin del crecimiento de los archivos de datos y de registro de
transacciones

67

Excelencia Acadmica

Cuando los archivos de datos crecen o cuando aumenta la actividad de


modificacin de datos, puede que necesite ampliar el tamao de los archivos de
datos o de registro. Puede administrar el crecimiento de la base de datos mediante
el Administrador corporativo de SQL Server o con la instruccin ALTER
DATABASE. Para utilizar la instruccin ALTER DATABASE, debe encontrarse en
la base de datos master.
Puede controlar el tamao de la base de datos si configura los archivos de base de
datos y de registro para que crezcan automticamente, si aumenta manualmente
los archivos de base de datos y de registro existentes o si crea archivos
secundarios de base de datos y de registro.

Uso del crecimiento automtico de los archivos


Siempre que sea necesario, puede establecer la propiedad de crecimiento
automtico de archivos de cualquier archivo de base de datos para que
especifique que el archivo se expanda automticamente mediante una
cantidad o porcentaje determinado. El uso del crecimiento automtico de
los archivos reduce las tareas administrativas relacionadas con la
ampliacin manual del tamao de la base de datos.
Puede especificar el espacio asignado, el tamao mximo y el incremento
de crecimiento de cada archivo. Si no especifica un tamao mximo, un
archivo puede seguir creciendo hasta ocupar todo el espacio disponible en
disco.
Para un rendimiento ptimo, debe:

Asignar espacio suficiente a la base de datos y al registro para


evitar que se active con frecuencia la caracterstica de crecimiento
automtico.

Establecer un tamao mximo para los archivos de datos.

Establecer los incrementos de crecimiento del archivo de datos y


de registro con unos tamaos suficientes como para evitar que se
active con frecuencia la caracterstica de crecimiento automtico.

Expansin manual
transacciones

de

archivos

de

datos

de

registro

de

Tambin puede aumentar manualmente el tamao de cualquier archivo de


datos o de registro de transacciones mediante el Administrador corporativo
de SQL Server o la instruccin ALTER DATABASE en Transact-SQL.
Quiz prefiera expandir manualmente los archivos de base de datos para
controlar cundo se produce la expansin. Expandir archivos en
incrementos pequeos aumenta la fragmentacin y puede afectar al
rendimiento si los archivos se expanden mientras la base de datos est
ocupada

Determinacin de la expansin automtica o manual de archivos


Dado que puede establecer que los archivos de base de datos crezcan de
forma automtica o manual, debe tener en cuenta lo siguiente:

68

En entornos de produccin grandes, debe asignar espacio


suficiente para los archivos de datos para los que cre la base de

Excelencia Acadmica

datos y expandirlos manualmente, si es necesario. Esto permite


controlar cundo se expanden los archivos.

En un entorno de produccin pequeo o de escritorio, como un


agente de ventas de viaje, al establecer que los archivos de base
de datos crezcan automticamente se reduce la carga
administrativa.

Creacin de archivos secundarios de datos y de registro de


transacciones
Puede crear tambin archivos secundarios de datos y de registro de
transacciones para ampliar el tamao de la base de datos. Use archivos
secundarios de datos y de registro de transacciones para colocar archivos
en discos fsicos independientes. Tambin puede usar RAID para repartir
los datos en varios discos.

b) Reduccin automtica de una base de datos o de un archivo de base de


datos
Cuando hay demasiado espacio asignado o cuando los requisitos de espacio
disminuyen, puede reducir la base de datos completa o archivos de datos o de
registro de transacciones especficos.

Habilitacin de la reduccin automtica:


Para configurar una base de datos o archivos de base de datos para que
se reduzcan automticamente, puede:

Especificar la opcin autoshrink en el SQL Server Management


Studio

Ejecutar la instruccin ALTER DATABASE AUTO_SHRINK.

Ejecutar el procedimiento almacenado del sistema sp_dboption.

Actividades de SQL Server durante la reduccin automtica


De manera predeterminada, la opcin para reducir archivos de manera
automtica est deshabilitada en todas las ediciones de SQL Server,
excepto en la edicin Desktop. Cuando se habilita SQL Server para que
reduzca archivos automticamente, SQL Server:

Reduce los archivos de datos y de registro de transacciones


cuando ms del 25 por ciento de los archivos contienen espacio
que no se utiliza.
No se puede configurar el porcentaje de espacio libre que hay que
quitar. SQL Server quita todo el espacio libre que resulta posible. El
registro de transacciones slo se reduce si no contiene porciones
activas del registro lgico que se requieran para la restauracin de
la base de datos.

Realiza esta actividad en segundo plano y no se ve afectada la


actividad de ningn usuario de la base de datos.

69

Excelencia Acadmica

c) Reduccin manual de una base de datos o de un archivo de base de datos


La reduccin manual de toda una base de datos o de archivos de base de datos
por separado resulta til en un entorno de produccin, ya que permite controlar
cundo se realiza esta actividad.

Mtodos de reduccin
Para reducir manualmente bases de datos y archivos de base de datos a
un tamao especfico, puede usar el Administrador corporativo de SQL
Server o ejecutar la instruccin DBCC SHRINKDATABASE o DBCC
SHRINKFILE. Puede:

Reducir los archivos de datos y de transacciones en grupo o


individualmente.

Reducir los archivos individuales de datos y de registro de


transacciones menores que su tamao inicial de creacin mediante
la instruccin DBCC SHRINKFILE.

Reduccin de una base de datos y de archivos de datos


SQL Server reduce al instante una base de datos y los archivos
individuales de datos. No se puede reducir toda una base de datos a un
tamao menor que el tamao inicial de creacin o que el de la base de
datos model.

Reduccin de archivos de registro de transacciones


Al reducir manualmente archivos de registro de transacciones, SQL Server
intenta reducir inmediatamente el registro de transacciones. SQL Server:

Reduce las partes inactivas del registro de transacciones mayores


que el tamao deseado.

Si esto no es suficiente para reducir el registro de transacciones al


tamao deseado, SQL Server:
a. Devuelve un mensaje donde se informa que parte del registro
activo supera el tamao deseado.
b. Notifica qu hacer para mover el registro activo del final del
archivo de registro de transacciones, como por ejemplo
realizar una copia de seguridad de la base de datos para
truncar el registro. Mover el archivo de registro del final
permite a SQL Server reducir el archivo de registro de
transacciones.

Cuando recibe mensajes de SQL Server, puede realizar la actividad


sugerida y, a continuacin, volver a ejecutar la instruccin DBCC
SHRINKDATABASE o DBCC SHRINKFILE para finalizar el proceso de
reduccin.

70

Excelencia Acadmica

Configuracin de las opciones de reduccin de la base de datos


Puede usar las opciones de base de datos siguientes al reducir archivos de
base de datos mediante el Administrador corporativo de SQL Server.
Opcin

Descripcin

Espacio libre mximo de los


archivos tras la reduccin

El porcentaje de espacio libre deseado en


el archivo de la base de datos una vez que
SQL Server ha reducido la base de datos.

Mover pginas al principio del


archivo antes de la reduccin

Mueve pginas al principio del archivo


antes de reducir la base de datos. La
seleccin de esta opcin puede afectar al
rendimiento, pero puede ser necesaria
para lograr los objetivos de reduccin
deseados.

Reducir la base de datos en


funcin de esta programacin

Reduce la base de datos segn una


programacin seleccionada.

Archivos

Especifica los archivos de base de datos


individuales que se van a reducir. Esto
proporciona un control ms preciso a la
hora de reducir la base de datos

d) Eliminacin de una base de datos


Puede eliminar una base de datos cuando ya no la necesite. La eliminacin de una
base de datos quita la base de datos y los archivos de disco que utiliza la base de
datos.

Mtodos de eliminacin de una base de datos


Para eliminar bases de datos, puede utilizar el Administrador corporativo de
SQL Server o ejecutar la instruccin DROP DATABASE. Despus de
eliminar una base de datos, todos los Id. de inicio de sesin que utilizaban
esa base de datos como base de datos predeterminada ya no tendrn una
base de datos predeterminada.

Restricciones de la eliminacin de bases de datos


Las siguientes restricciones se aplican a la eliminacin de bases de datos.
No se puede eliminar:

Una base de datos que est en proceso de restauracin.

Una base de datos que un usuario haya abierto para leer o escribir
en ella.

Una base de datos que est publicando alguna de sus tablas como
parte de la duplicacin de SQL Server.

Una base de datos de sistema.

71

Excelencia Acadmica

4. UBICACIN DE ARCHIVOS Y REGISTROS DE BASES DE DATOS


Puede mejorar el rendimiento e implementar la tolerancia a errores si administra la
colocacin de archivos de datos y registros de transacciones en discos.
SQL Server usa llamadas de entrada y salida (E/S) de Microsoft Windows para leer y
escribir en el disco. SQL Server administra cundo y cmo se realiza la E/S en el disco
pero delega en Windows la realizacin de las operaciones de E/S subyacentes. El
subsistema de E/S incluye el bus del sistema, tarjetas controladoras de disco, discos,
unidades de cinta, unidades de CD-ROM y muchos otros dispositivos de E/S. Los discos
representan habitualmente el cuello de botella ms grande de un sistema.
a) Administracin del almacenamiento en disco
En el contexto de la administracin de almacenamiento en disco para SQL Server,
Rendimiento se refiere en parte a la velocidad de las operaciones de lectura y
escritura.
Tolerancia a errores se refiere a la capacidad del sistema para continuar
funcionando sin prdida de datos cuando se produce un error en una parte del
sistema.
En general, use discos formateados con NTFS que use 64 KB como unidad de
asignacin. No use volmenes comprimidos
b) Distribucin de archivos de datos
Debe distribuir la mayor cantidad de datos entre tantas unidades fsicas como sea
posible. De esta forma se mejora el rendimiento a travs de acceso paralelo a
datos al usar varios archivos. En general, cree un archivo para cada disco fsico y
agrupe los archivos en uno o ms grupos de archivos. SQL Server puede realizar:

Exploraciones paralelas de los datos si el equipo tiene varios procesadores


y varios discos.

Varias exploraciones paralelas para una sola tabla si el grupo de archivos


de sta contiene varios archivos.

Para distribuir con uniformidad los datos entre todos los discos, use RAID y, a
continuacin, grupos de archivos definidos por el usuario para distribuir los datos
entre varios conjuntos de bandas de hardware, si es necesario.
Una tcnica avanzada es separar las tablas a partir de ndices no agrupados en
clsteres. Un ndice no agrupado en clsteres es un ndice que tiene un orden
lgico distinto del orden fsico de las filas almacenado en el disco.
c) Creacin de registros de transacciones en discos independientes
Debe crear el registro de transacciones en un disco independiente o usar RAID.
Dado que el archivo de registro de transacciones se escribe en serie, al usar un
disco independiente dedicado, los cabezales del disco pueden permanecer en el
lugar adecuado para la siguiente operacin de escritura. El uso de RAID
proporciona tolerancia a errores.
Por ejemplo, si su entorno de produccin tiene varias bases de datos en un
servidor, quiz desee usar discos independientes para cada registro de
transacciones. Esta estrategia permite obtener un rendimiento ptimo.

72

Excelencia Acadmica

d) Ubicacin de la base de datos tempdb


Para asegurar un rendimiento ptimo debe colocar la base de datos tempdb en un
subsistema rpido de E/S que sea independiente de las bases de datos de usuario.
Puede usar RAID para crear bandas de la base de datos tempdb entre varios
discos para mejorar el rendimiento.
5. OPTIMIZACIN DE UNA BASE DE DATOS MEDIANTE RAID BASADO EN HARDWARE
El uso de RAID basado en hardware permite administrar varios discos al tratar una matriz
de discos como un solo disco.
a) Uso de RAID basado en hardware
Para obtener un mejor rendimiento conviene usar RAID basado en hardware en
lugar de RAID basado en sistemas operativos. El uso de RAID basado en sistemas
operativos quita ciclos de CPU a otros procesos del sistema. El uso de RAID
basado en hardware permite adems reemplazar una unidad con errores sin
necesidad de apagar el sistema. Sin embargo, esta ventaja depende de la
implementacin concreta del RAID de hardware que adquiera.
b) Aplicacin de los tipos de RAID
Cuando use RAID basado en hardware para optimizar la base de datos, considere
la posibilidad de usar los tipos de RAID siguientes:

Reflejos en disco o duplicacin de disco (RAID 1) para mejorar la


redundancia del registro de transacciones.

Creacin de bandas de disco con paridad (RAID 5) para mejorar el


rendimiento y la redundancia de los archivos de datos y registros de
transacciones.

Reflejos en disco con creacin de bandas (RAID 10 o RAID 1 + RAID 0)


para obtener el mximo rendimiento de los archivos de datos.

El uso de RAID para tolerancia a errores no sustituye a las estrategias de copia de


seguridad adecuadas. Debe realizar copias de seguridad peridicas para proteger las
bases de datos y los datos de cualquier prdida irreparable.
6. OPTIMIZACIN DE UNA BASE DE DATOS MEDIANTE GRUPOS DE ARCHIVOS
Los grupos de archivos mejoran el rendimiento gracias a la distribucin de los datos entre
varios discos y mediante subprocesos paralelos para procesar consultas. Los grupos de
archivos tambin pueden facilitar el mantenimiento de las bases de datos.
a) Introduccin a Grupos de archivos definidos por el usuario

73

Excelencia Acadmica

Figura 3.3: Grupo de archivos definidos por el usuario


Si la configuracin de hardware incluye varias unidades de disco, puede colocar
objetos y archivos especficos en discos individuales y agrupar los archivos de
base de datos en uno o ms grupos de archivos.

Tipos de grupos de archivos


SQL Server tiene un grupo de archivos principal y puede tener tambin
grupos de archivos definidos por el usuario.

El grupo de archivos principal contiene el archivo de datos principal


con las tablas del sistema.

Un grupo de archivos definido por el usuario consta de archivos de


datos agrupados con fines administrativos y de asignacin.

Sugerencia: Si Ordhist1 .ndf y Ordhst2.ndf se van a consultar a menudo,


deben colocarse en discos independientes.

Colocacin de archivos en discos independientes


La ilustracin (Figura 3.3) es un ejemplo de cmo se pueden colocar
archivos de base de datos en discos independientes.

74

Puede crear grupos de archivos definidos por el usuario para


separar los archivos que se consultan con frecuencia de los que se
modifican a menudo. En la ilustracin, los archivos OrdHist1.ndf y
OrdHist2.ndf se colocan en un disco independiente de las tablas
Products, Customers y Orders porque stas se consultan como
ayuda para la toma de decisiones ms que actualizarse con
informacin actualizada de pedidos.

Excelencia Acadmica

Tambin puede colocar los archivos Ordhist1.ndf y Ordhst2.ndf en


discos independientes si ambos se consultan con frecuencia.

Los archivos de registro de transacciones no forman parte de los


grupos de archivos. El espacio de registro de transacciones se
administra de forma separada del espacio de datos

b) Creacin de grupos de archivos definidos por el usuario


Puede crear varios archivos de datos en discos independientes y un grupo de
archivos definido por el usuario que contenga dichos archivos. Si usa grupos de
archivos definidos por el usuario, intente tener un archivo por disco fsico.

Mtodos de creacin de grupos de archivos definidos por el usuario


Puede crear un grupo de archivos definido por el usuario a la vez que crea
una base de datos o posteriormente. Puede utilizar el Administrador
corporativo de SQL Server o la instruccin CREATE DATABASE o ALTER
DATABASE.

Eleccin de un grupo de archivos predeterminado


SQL Server designa un grupo de archivos como el predeterminado. El
grupo de archivos predeterminado se establece como el principal al crear la
base de datos, a menos que se indique lo contrario. El grupo de archivos
predeterminado contiene las pginas de todas las tablas e ndices que no
especificaron un grupo de archivos durante su creacin.

Definicin del tamao del grupo de archivos principal predeterminado


Si el grupo de archivos predeterminado se deja como grupo de archivos
principal, deber establecer adecuadamente el tamao del grupo de
archivos principal o definirlo automticamente para no quedarse sin
espacio. El grupo de archivos principal debe ser lo bastante grande como
para almacenar todas las tablas del sistema y las tablas e ndices que no
estn asignadas a un grupo de archivos definido por el usuario.
Si el grupo de archivos principal se queda sin espacio, no podr agregar
informacin a las tablas del sistema. Sin embargo, si un grupo de archivos
definido por el usuario se queda sin espacio, slo se vern afectados los
archivos de usuario que estn asignados especficamente a ese grupo de
archivos.

Presentacin de la informacin de los grupos de archivos


Puede ver informacin acerca de los grupos de archivos mediante el
Administrador corporativo de SQL Server o los procedimientos
almacenados del sistema en Transact-SQL.
Procedimiento
almacenado de sistema
sp_helpfile [[@filename =]
'nombre']

Descripcin
Devuelve los nombres fsicos 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

75

Excelencia Acadmica

archivos que vaya 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.

c) Uso de grupos de archivos para mejorar el rendimiento

Figura 3.4: Uso de Grupo de archivos para mejorar el rendimiento


El uso de grupos de archivos definidos por el usuario puede mejorar el rendimiento
al equilibrar la carga de datos entre varios discos y utilizar subprocesos paralelos
para mejorar el acceso a los datos.

Equilibrio de la carga de datos entre varios discos


Al crear una tabla, puede asignrsela a un grupo de archivos definido por el
usuario. Los grupos de archivos usan una estrategia de llenado
proporcional entre todos los archivos del grupo. A medida que los datos se
escriben en el grupo de archivos, cada archivo se llena en paralelo.
Cada archivo se coloca fsicamente en un disco o en un conjunto de discos.
SQL Server mantiene una asignacin de archivos que asocia cada objeto
de base de datos con su ubicacin en el disco. La ilustracin muestra que:

76

Si se crea un archivo en un grupo de archivos que comprende


cuatro discos, una asignacin de archivos seala la ubicacin de
los datos de los cuatro discos fsicos.

Si se crean dos archivos en un grupo de archivos que abarca


cuatro discos, dos asignaciones de archivos (una asignacin para

Excelencia Acadmica

cada archivo) sealan la ubicacin de los datos en los cuatro


discos fsicos.

Uso de subprocesos paralelos para mejorar el acceso a los datos


Siempre que se tiene acceso a una base de datos secuencialmente, el
sistema crea un subproceso independiente para cada archivo en paralelo.
Cuando el sistema realiza una exploracin de una tabla perteneciente a un
grupo de archivos con cuatro archivos, utiliza cuatro subprocesos
independientes para leer los datos en paralelo.
En general, usar varios archivos en discos independientes mejora el
rendimiento. Sin embargo, demasiados archivos en un grupo de archivos
pueden producir demasiados subprocesos paralelos y crear cuellos de
botella.

d) Uso de grupos de archivos para realizar tareas de mantenimiento


Adems de utilizar grupos de archivos para equilibrar las cargas de datos con el fin
de mejorar el rendimiento, puede usar grupos de archivos para facilitar las tareas
de mantenimiento.
Para usar grupos de archivos con el fin de simplificar las tareas de mantenimiento,
puede:

Realizar copias de seguridad y restaurar archivos o grupos de archivos


individuales en lugar de hacer la copia de seguridad o la restauracin de
toda la base de datos. Realizar copias de seguridad de los archivos o
grupos de archivos puede ser necesario en bases de datos grandes con el
fin de disponer de una estrategia eficaz de copia de seguridad y
restauracin.

Agrupar tablas e ndice con requisitos de mantenimiento similares en los


mismos grupos de archivos.
Quiz desee realizar tareas de mantenimiento en algunos objetos con ms
frecuencia que en otros. Por ejemplo, si crea dos grupos de archivos y les
asigna tablas, podr ejecutar diariamente tareas de mantenimiento en
dichas tablas en un grupo diario y tareas de mantenimiento semanales en
ellas en un grupo semanal. Esto limita los conflictos de disco entre los dos
grupos de archivos.

Asigne una tabla individual de alto mantenimiento a su propio grupo de


archivos.
Por ejemplo, una tabla que se actualiza con frecuencia podra necesitar
que sus copias de seguridad y sus procesos de restauracin se realicen
por separado en la base de datos.

e) Consideraciones acerca de la creacin de grupos de archivos


La creacin de grupos de archivos definidos por el usuario es una tcnica
avanzada de diseo de bases de datos. Debe comprender en detalle la estructura
de la base de datos, los datos, las transacciones y las consultas para determinar la
mejor forma de colocar las tablas y los ndices en grupos de archivos especficos.
Al crear grupos de archivos, debe hacer lo siguiente:

77

Excelencia Acadmica

Use requisitos de mantenimiento en lugar de consideraciones de


rendimiento para determinar el nmero de grupos de archivos.
En muchos casos, el uso de la capacidad de creacin de conjuntos de
bandas de RAID proporciona casi el mismo rendimiento que el que se
puede conseguir con los grupos de archivos definidos por el usuario, sin la
pesada carga administrativa de definirlos y administrarlos.

Cambie el grupo de archivos predeterminado si usa grupos de archivos


definidos por el usuario. Si la base de datos tiene varios grupos de
archivos, debe asignar uno de los grupos definidos por el usuario como el
predeterminado. Esto impedir que el crecimiento inesperado de la tabla
exceda la capacidad de las tablas de sistema del grupo de archivos
principal.

Tenga en cuenta que los grupos de archivos no proporcionan tolerancia a


errores. Para incluir tolerancia a errores, puede reflejar cada disco si utiliza
RAID 1. Sin embargo, sta es una opcin cara

7. OPTIMIZACIN DE LA BASE DE DATOS MEDIANTE GRUPOS DE ARCHIVOS CON


RAID BASADO EN HARDWARE
Puede combinar grupos de archivos con soluciones RAID basadas en hardware. Primero,
configure la creacin de bandas de hardware y, despus, use los grupos de archivos para
repartir los datos entre los diversos conjuntos de bandas de hardware.
La ilustracin (Figura 3.5) muestra dos controladores que sealan dos conjuntos de bandas
de hardware. Hay cuatro archivos asociados con cada conjunto de bandas. Un grupo de
archivos contiene todos los archivos de ambos conjuntos de bandas. Esta opcin reparte
los datos de manera uniforme entre todos los discos a la vez que conserva la facilidad de
administracin.
Esta configuracin usa las mejores caractersticas de los grupos de archivos y RAID
basado en hardware. Adems de proporcionar acceso paralelo a los datos mediante un
subproceso independiente para cada archivo, distribuye la carga entre varios discos para
reducir posibles conflictos. Dado que esta solucin crea una agrupacin lgica, resulta fcil
de configurar y administrar para un administrador de bases de datos o de sistemas

Figura 3.5: Combinacin de grupos de archivos con soluciones RAID basadas en hardware

78

Excelencia Acadmica

8. ESTIMACIN DE LA CAPACIDAD.
Una de las principales funciones de un administrador de bases de datos o de sistemas es
asignar, administrar y supervisar los requisitos de espacio y almacenamiento de SQL
Server y sus bases de datos. La estimacin del espacio que requiere una base de datos le
puede ayudar a planear el esquema de almacenamiento y determinar los requisitos de
hardware
a) Estimacin del tamao de una base de datos
Al planear una base de datos, se establece su estructura lgica. Bajo esa
estructura hay varios archivos y objetos fsicos que ocupan espacio en disco. Entre
stos se encuentran el registro de transacciones y las tablas e ndices que
componen los archivos de datos.
Cuando se crea una base de datos, SQL Server crea una copia de la base de
datos model, que incluye las tablas del sistema que contienen informacin acerca
de archivos, objetos, permisos y restricciones. Estas tablas aumentan de tamao a
medida que se crean ms objetos en la base de datos. Cada objeto que se crea
genera una nueva fila en una o varias tablas del sistema.
Factores que debe tener en cuenta cuando calcule el tamao de una base de
datos
Al calcular la cantidad de espacio que va a ocupar una base de datos, tenga en
cuenta los siguientes factores:

Tamao de la base de datos model y de las tablas del sistema, incluida la


previsin de crecimiento.

Cantidad de datos en las tablas, incluida la previsin de crecimiento.

Nmero y tamao de los ndices, especialmente el tamao del valor de las


claves, el nmero de filas y el valor del factor de relleno

Tamao del registro de transacciones, al que afectan la cantidad y la


frecuencia de la actividad de modificacin, el tamao de cada transaccin y
la frecuencia de las copias de seguridad o el volcado del registro.

Tamao de las tablas del sistema, como el nmero de usuarios, objetos,


etc., que no suele ser un porcentaje alto del tamao de la base de datos.

b) Estimacin de la cantidad de datos en las tablas


Despus de considerar la cantidad de espacio que se asigna a la base de datos
model, debe calcular la cantidad de datos de las tablas, incluido el crecimiento
previsto. Para calcularlo, puede determinar el nmero total de filas, el tamao de
las filas, el nmero de filas que caben en una pgina y el nmero total de pginas
que se requieren para cada tabla de la base de datos.
Puede calcular el nmero de pginas necesarias para una tabla y el espacio de
disco que ocupa la tabla si conoce el nmero de caracteres de cada fila y el
nmero aproximado de filas que la tabla va a tener. Utilice el siguiente mtodo:

Calcule el nmero de bytes de una fila sumando el nmero de bytes que


contiene cada columna. Si una o varias columnas estn definidas con
longitud variable (por ejemplo, una columna de nombres), puede sumar el
valor medio de la columna para hallar el total.

79

Excelencia Acadmica

Determine el nmero de filas que caben en cada pgina de datos. Para


hacerlo, divida 8060 entre el nmero de bytes de una fila. Redondee hacia
abajo el resultado al nmero entero siguiente.

Divida el nmero aproximado de filas de la tabla por el nmero de filas que


caben en cada pgina de datos. El resultado es igual al nmero de pginas
que se necesitan para almacenar la tabla.

1. Cree una base de datos y utilice el SQL Server Management Studio para
incrementar archivos a la base de datos.
2. Utilice el SQL Server Management Studio para reducir la base de datos.
3. Investigue acerca de los comandos para realizar las tareas anteriores a travs de
ellos.

En esta unidad se describi cmo Microsoft SQL Server almacena los datos y
procesa las transacciones adems de cmo crear, administrar y colocar archivos y
registros de transacciones de bases de datos, as como la manera de optimizar bases
de datos mediante RAID basado en hardware, grupos de archivos definidos por el
usuario y una combinacin de ambos.

[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

80

Excelencia Acadmica

En la siguiente unidad trataremos temas sobre cmo crear copias de respaldo de bases de datos y las
estrategias a utilizar para no perder los datos en caso de algn desastre.

ADMINISTRACION DE BASES DE DATOS


UNIDAD ACADMICA N 3
NOMBRE:__________________________________________________________________
APELLIDOS:________________________________________FECHA; ____/_____/______
CIUDAD:_______________________________SEMESTRE:_________________________
PARTE I: Marque la alternativa correcta:
1.

Cul de las siguientes sentencias puede ser usado para crear un grupo de archivo?:
a) ALTER DATABASE ADD FILE
b) ALTER DATABASE MODIFY FILEGROUP
c) ALTER DATABASE ADD FILEGROUP
d) ALTER DATABASE REMOVE FILEGROUP

2.

Estas diseando la estructura fsica para el nuevo servidor de tu compaa corriendo SQL Server 2005. El
servidor tiene las siguientes caractersticas: dos discos en RAID 1, cinco discos en RAID 5, y otros diez
discos en RAID 5. Dnde almacenaras los archivos de base de datos para un mejor rendimiento?
a)

Usar RAID 5 para instalar el sistema operativo. Usar el primer set de discos RAID 5 para instalar
los archivos ejecutables de SQL Server 2005 y el segundo set de discos RAID 5 para almacenar
los archivos de base de datos.

b)

Usar RAID 1 para instalar el sistema operativo. Usar el primer set de discos RAID 5 para instalar
los archivos ejecutables de SQL Server 2005 y los registros de datos y transacciones. Usar el
segundo set de discos RAID 5 para almacenar los backups de base de datos.

c)

Usar RAID 1 para instalar el sistema operativo y los archivos ejecutables de SQL Server 2005.
Usar el primer set de discos RAID 5 para almacenar los archivos de registro de transacciones.
Usar el segundo set de discos RAID 5 para almacenar los archivos de datos.

d)

3.

Usar el primer set de discos RAID 5 para instalar el sistema operativo y los archivos ejecutables
de SQL Server 2005. Guardar los archivos de datos en el segundo set de discos RAID 5. Usar el
segundo set de discos RAID 5 para almacenar los archivos de registro de transacciones.
Cul de las siguientes opciones son tipos de grupos de archivos validos?
a) Solo lectura
b) Solo escritura
c) Por defecto
d) Primario

81

Excelencia Acadmica

PARTE II: Responda brevemente:

82

4.

Cmo se almacenan los datos en SQL Server 2005?


_____________________________________________________________________________________
_____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________

5.

Qu almacena el registro de transacciones?


_____________________________________________________________________________________
____________________________________________________________________________________
_____________________________________________________________________________________
____________________________________________________________________________________

6.

Mencione los mtodos para la reduccin de la base de datos


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
____________________________________________________________________________________

7.

Cmo puede calcularse el tamao de una base de datos?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
____________________________________________________________________________________

Excelencia Acadmica

COPIAS DE RESPALDO
Con frecuencia, los datos en una base de datos justifican las operaciones de una organizacin, es decir almacenan
todo el historial de las transacciones de una empresa. Sin la base de datos, la organizacin no podra funcionar
correctamente. Es importante que todas las bases de datos de misin crtica del sistema realicen adecuados
procedimientos de recuperacin en casos de desastre en el lugar.
Las copias de seguridad y restauracin de operaciones son una parte vital de la gestin de datos y son esenciales
para la recuperacin de datos en caso de daos y/o desastres. Por lo tanto, una funcin importante de un
administrador de base de datos es garantizar que los datos sean respaldados y puedan ser restaurados
rpidamente en caso de un desastre.

Al finalizar el estudio de la presente unidad temtica el estudiante:

1. Crea archivos de copia de seguridad


2. Determina y cambia un modelo de recuperacin de bases de datos.
3. Realiza copias de seguridad de las bases de datos de usuario y del sistema mediante
instrucciones de Transact-SQL y el SQL Server Management Studio

4. Aplica las opciones de copia de seguridad apropiadas para cada uno de los distintos
mtodos de copia de seguridad de SQL Server.

5. Disea una estrategia de copia de seguridad apropiada.


1. COPIAS DE SEGURIDAD Y RESTAURACIN DE BASES DE DATOS
Microsoft SQL Server 2005 proporciona funciones de copia de seguridad y restauracin de
alto rendimiento. El componente de copia de seguridad y restauracin de SQL Server
ofrece una proteccin esencial para los datos crticos almacenados en las bases de datos
de SQL Server. La implementacin de una estrategia correctamente planeada de copia de
seguridad y restauracin contribuye a la proteccin de las bases de datos de la prdida de
datos derivada de daos causados por diferentes errores. La comprobacin de la estrategia
mediante la restauracin de las copias de seguridad y la recuperacin de la base de datos
permite estar preparado para responder de forma eficaz ante un desastre.
Una copia de los datos que se puede utilizar para restaurar y recuperar los datos se
denomina copia de seguridad. Las copias de seguridad le permiten restaurar los datos
despus de un error. Con las copias de seguridad correctas, puede recuperarse de multitud
de errores, por ejemplo:

Errores de medios.

Errores de usuario, por ejemplo, quitar una tabla por error.

83

Excelencia Acadmica

Errores de hardware, por ejemplo, una unidad de disco daada o la prdida


permanente de un servidor.

Desastres naturales.

Adems, las copias de seguridad de una base de datos son tiles para fines
administrativos habituales, como copiar una base de datos de un servidor a otro, configurar
la creacin de reflejo de la base de datos y el archivo, etc.

2. COMO IMPEDIR LA PRDIDA DE LOS DATOS


Impedir la prdida de datos es uno de los problemas ms importantes que afrontan los
administradores de sistemas.
a) Disponer de una estrategia de copia de seguridad
Debe tener una estrategia de copia de seguridad para aminorar la prdida de datos
y recuperar los datos perdidos. Los datos se pueden perder como consecuencia de
errores de hardware o de software, o bien por:

El uso accidental o malintencionado de una instruccin DELETE.

El uso accidental o malintencionado de una instruccin UPDATE; por


ejemplo, no utilizar la clusula WHERE con una instruccin UPDATE (se
actualizan todas las filas en lugar de una fila concreta de la tabla).

Virus destructivos.

Desastres naturales, como incendios, inundaciones y terremotos.

Robo.

Si utiliza una estrategia de copia de seguridad adecuada, puede restaurar los datos
con un costo mnimo sobre la produccin y reducir la posibilidad de que los datos
se pierdan definitivamente. Piense en la estrategia de copia de seguridad como un
seguro. Su estrategia de copia de seguridad debe devolver el sistema al punto en
el que se encontraba antes del problema. Al igual que con una pliza de seguros,
pregntese: cunto estoy dispuesto a pagar y cuntas prdidas puedo
permitirme?.
Los costos asociados con la estrategia de copia de seguridad incluyen la cantidad
de tiempo que se emplea en disear, implementar, automatizar y probar los
procedimientos de copia de seguridad. Aunque la prdida de datos no se puede
impedir completamente, debe disear una estrategia de copia de seguridad para
reducir el alcance de los daos. Cuando disee una estrategia de copia de
seguridad, considere la cantidad de tiempo que se puede permitir que el sistema
est parado, as como la cantidad de datos que se puede admitir perder (si puede
perderse alguno) en el caso de un error del sistema.
b) Hacer copias de seguridad con regularidad
La frecuencia con que haga las copias de seguridad de la base de datos depende
de la cantidad de datos que est dispuesto a perder y la actividad de la base de
datos. Cuando haga copias de seguridad de bases de datos de usuario, tenga en
cuenta los siguientes hechos e instrucciones:

84

Excelencia Acadmica

Puede hacer copias de seguridad de la base de datos con frecuencia si el


sistema se encuentra en un entorno de proceso de transacciones en lnea
(OLTP, Online Transaction Processing).

Puede hacer copias de seguridad de la base de datos con menos


frecuencia si el sistema tiene poca actividad o se utiliza, principalmente,
para la toma de decisiones.

Debe programar las copias de seguridad cuando no se estn efectuando


muchas actualizaciones en SQL Server.

Tras determinar la estrategia de realizacin de copias de seguridad, puede


automatizar el proceso con el Asistente para planes de mantenimiento de
bases de datos.

3. ESTABLECIMIENTO Y CAMBIO DE UN MODELO DE RECUPERACIN DE BASES DE


DATOS

a) Modelos De Recuperacin
Los modelos de recuperacin se han diseado para controlar el mantenimiento del
registro de transacciones. Existen tres modelos de recuperacin: simple, completa
y por medio de registros de operaciones masivas. Normalmente, en las bases de
datos se usa el modelo de recuperacin completa o el modelo de recuperacin
simple.

Modelo de recuperacin simple


El modelo de recuperacin simple minimiza la sobrecarga administrativa
del registro de transacciones, ya que no se realiza una copia de seguridad
de este registro. El modelo de recuperacin simple tiene un alto riesgo de
prdida de trabajo si la base de datos sufre daos. Slo se pueden
recuperar los datos de la copia de seguridad ms reciente de los datos
perdidos. Por lo tanto, en el modelo de recuperacin simple, los intervalos
de copia de seguridad deben ser lo bastante cortos como para evitar la
prdida de cantidades importantes de datos. No obstante, los intervalos
deben ser lo bastante largos como para evitar que la sobrecarga de copias
de seguridad afecte al trabajo de produccin. La inclusin de copias de
seguridad diferenciales en la estrategia de copias de seguridad puede
ayudar a reducir la sobrecarga.
Por lo general, para una base de datos de usuario, el modelo de
recuperacin simple es til para bases de datos de prueba y desarrollo, o
bien para bases de datos que contienen sobre todo datos de slo lectura,
como puede ser un almacn de datos. El modelo de recuperacin simple
no es apropiado para sistemas de produccin en los que la prdida de
cambios recientes es inadmisible. En estos casos, se recomienda el
modelo de recuperacin completa.

Modelos de recuperacin completa y por medio de registros de


operaciones masivas
Los modelos de recuperacin completa y por medio de registros de
operaciones masivas ofrecen mayor proteccin de los datos que el modelo
de recuperacin simple. Estos modelos de recuperacin se basan en hacer
copias de seguridad de registros de transacciones para ofrecer una
recuperacin completa y evitar la prdida de trabajo en una amplia
variedad de casos de error.
85

Excelencia Acadmica

Modelo de recuperacin completa


Ofrece el modelo de mantenimiento normal de base de datos
para bases de datos en las que es necesario garantizar la
durabilidad
de
las
transacciones.
Se requieren copias de seguridad de registros. Este modelo
registra completamente todas las transacciones y conserva las
entradas del registro de transacciones hasta que se realiza una
copia de seguridad de las mismas. El modelo de recuperacin
completa permite recuperar una base de datos hasta el punto
en que se produjo el error, suponiendo que se pueda hacer una
copia de seguridad del final del registro despus del error. El
modelo de recuperacin completa admite tambin la
restauracin de pginas de datos individuales.
Modelo de recuperacin por medio de registros de operaciones
masivas:
Este modelo de recuperacin registra la mayora de las
operaciones masivas. Se ha creado exclusivamente como
complemento del modelo de recuperacin completa. Para
determinadas operaciones masivas a gran escala, como la
importacin masiva o la creacin de ndices, el cambio
temporal al modelo de recuperacin por medio de registros de
operaciones masivas aumenta el rendimiento y reduce el uso
de espacio de registro. Sigue siendo necesario realizar copias
de seguridad de registros. Al igual que el modelo de
recuperacin completa, el modelo de recuperacin por medio
de registros de operaciones masivas conserva todas las
entradas del registro de transacciones hasta que se realiza
una copia de seguridad de las mismas. Los inconvenientes son
mayores copias de seguridad de registros y mayor riesgo de
prdida de trabajo, porque el modelo de recuperacin por
medio de registros de operaciones masivas no admite la
recuperacin a un momento dado.
b) Cambio de un modelo de recuperacin de bases de datos
De forma predeterminada, SQL Server 2005 Standard Edition y SQL Server 20005
Enterprise Edition usan el modelo de recuperacin completa. Puede cambiar el
modelo de recuperacin en cualquier momento pero debe hacer una copia de
seguridad adicional en el momento del cambio. Para averiguar qu modelo est
utilizando una base de datos, use la funcin DATABASEPROPERTYEX.
Sintaxis
ALTER DATABASE nombreBaseDeDatos SET RECOVERY {FULL | SIMPLE |
BULK_LOGGED}
Ejemplo
En este ejemplo se establece el modelo de recuperacin de registro masivo
como tipo de recuperacin de la base de datos AdventureWorks.
ALTER DATABASE AdventureWorks SET RECOVERY BULK_LOGGED
Tambin puede realizarse el cambio a traves del SQL Server Management Studio.
Para ello debe hacer anticlic a la base de datos y buscar la opcin Propiedades

86

Excelencia Acadmica

4. PROCESO DE COPIA DE SEGURIDAD DE SQL SERVER


Durante la operacin de copia de seguridad, SQL Server:

Le permite hacer copias de seguridad de bases de datos mientras los usuarios


siguen trabajando con ellas.

Hace la copia de seguridad de los archivos originales de la base de datos y registra


sus ubicaciones. La copia de seguridad contiene:

Estructura del esquema y de los archivos.

Datos.

Partes de los archivos de registro de transacciones. La parte del registro de


transacciones que se copia contiene la actividad de la base de datos desde
el inicio del proceso de copia de seguridad.

SQL Server utiliza estas copias de seguridad para volver a crear los archivos en sus
ubicaciones originales, completos con objetos y datos. Cuando se restaura una base de
datos:

Captura la actividad de la base de datos que tiene lugar durante el proceso de


copia de seguridad.
El proceso de copia de seguridad de SQL Server es dinmico y, salvo algunas
excepciones, puede tener lugar mientras la base de datos est en funcionamiento y
se est modificando. El proceso de copia de seguridad dinmica se produce
cuando SQL Server:

Emite un punto de comprobacin en la base de datos y registra el nmero


de secuencia de registro (LSN) del registro de transacciones activo ms
antiguo.

87

Excelencia Acadmica

Lee los discos directamente (pasa por alto la cach del bfer) para escribir
todas las pginas en el medio de copia de seguridad.

Escribe todas las entradas del registro de transacciones escritas durante el


proceso de copia de seguridad. Concretamente, SQL Server escribe las
entradas del registro de transacciones desde el ltimo LSN grabado hasta
el final del registro

5. EJECUCIN Y ALMACENAMIENTO DE COPIAS DE SEGURIDAD


Para hacer una copia de seguridad de una base de datos en SQL Server, debe tener en
cuenta a quin le est permitido hacer la copia de seguridad y dnde se va a almacenar.
Puede realizar copias de seguridad de bases de datos mediante instrucciones de TransactSQL o con el Administrador corporativo de SQL Server.
a) Quin hace las copias de seguridad?
Los miembros de las siguientes funciones tienen permiso para hacer copias de
seguridad de una base de datos:

La funcin fija de servidor sysadmin

La funcin fija de base de datos db_owner

La funcin fija de base de datos db_backupoperator

Se pueden crear funciones adicionales y concederles permisos para hacer copias


de seguridad de una base de datos.
b) Dnde almacenar las copias de seguridad?
SQL Server puede hacer las copias de seguridad en un archivo del disco duro, en
cinta o en una Canalizacin con nombre.

Los archivos de disco (locales o de red) son el medio ms comn que se


utiliza para almacenar las copias de seguridad.

Cuando se hace una copia de seguridad en una cinta, la unidad de cinta


debe estar conectada al servidor SQL Server local.

SQL Server proporciona la posibilidad de hacer copias de seguridad en


una Canalizacin con nombre para permitir que los usuarios aprovechen
las caractersticas de copia de seguridad y restauracin de los paquetes de
software de otros fabricantes.

c) Cundo se hacen las copias de seguridad de las bases de datos?


El momento y la frecuencia con que se hacen las copias de seguridad de una base
de datos depende del entorno de trabajo particular. Sin embargo, hay veces en las
que hay que complementar la estrategia de copia de seguridad. Por ejemplo,
puede que ocasionalmente necesite hacer la copia de seguridad de las bases de
datos del sistema o de una base de datos de usuario especfica.
Copia de seguridad de bases de datos del sistema:
SQL Server y todas las bases de datos de usuario. Por tanto, debe hacer copias de
seguridad de las bases de datos del sistema con regularidad, como una actividad
habitual y, especficamente, cuando las modifique.
88

Excelencia Acadmica

Despus de modificar la base de datos master:


La base de datos master contiene informacin acerca de todas las bases
de datos de un servidor SQL Server. Haga una copia de seguridad de esta
base de datos cuando cree cualquier base de datos definida por el usuario.
Esto le permite recuperar y restaurar fcilmente las bases de datos de
usuario si la base de datos master se daa.
Despus de volver a generar y restaurar la base de datos master, puede
restaurar otras copias de seguridad de las bases de datos del sistema o
que hagan referencia a bases de datos de usuario existentes.
Sin una copia de seguridad actual de la base de datos master que
contenga referencias a las bases de datos de usuario, deber volver a
generar completamente todas las bases de datos del sistema con el
programa de smbolo del sistema rebuildm, mediante la ejecucin de
C:\Archivos
de
programa\Microsoft
SQL
Server\80\Tools\Binn\Rebuildm.exe. Este programa vuelve a generar todas
las bases de datos del sistema como una unidad.
Cuando se ejecutan ciertas instrucciones o procedimientos almacenados
del sistema, SQL Server modifica automticamente la base de datos
master. Por tanto, haga una copia de seguridad de esta base de datos
cuando ejecute lo siguiente:

Las instrucciones CREATE DATABASE, ALTER DATABASE o


DROP DATABASE, que crean, alteran o quitan una base de datos,
respectivamente.

El procedimiento almacenado del sistema sp_logdevice, que


altera el registro de transacciones.

Los procedimientos almacenados del sistema sp_addserver,


sp_dropserver y sp_addlinkedserver, que agregan o quitan
servidores.

El procedimiento almacenado del sistema sp_addmessage o al


agregar mensajes de error con el Administrador corporativo de
SQL Server.

Despus de modificar la base de datos msdb


Haga una copia de seguridad de la base de datos msdb despus de
modificarla, puesto que msdb contiene informacin acerca de los trabajos,
alertas y operadores utilizados por el Agente SQL Server. Si no tiene una
copia de seguridad actual de la base de datos msdb, deber volver a
generar todas las bases de datos del sistema en el caso de que se
produzca un error del sistema y, despus, volver a crear todos los trabajos,
alertas y operadores.

Despus de modificar la base de datos model


Haga una copia de seguridad de la base de datos model si realiza
modificaciones para incluir la configuracin predeterminada de todas las
nuevas bases de datos de usuario. Como las bases de datos de usuario se
vuelven a generar cuando se vuelven a generar las bases de datos master
o msdb, los cambios de la base de datos model tambin se pierden.
Puede restaurar una copia de seguridad de la base de datos model
personalizada si se produce un error del sistema
89

Excelencia Acadmica

Copia de seguridad de bases de datos de usuario:


Debe planear las copias de seguridad de las bases de datos de usuario para que
se hagan de forma regular. Tambin debe hacer copias de seguridad despus de
crear una base de datos o un ndice, y cuando se ejecutan ciertas operaciones no
registradas.

Despus de crear bases de datos


Debe hacer una copia de seguridad de una base de datos despus de su
creacin o despus de cargar datos. Sin la copia de seguridad completa de
la base de datos, no se pueden restaurar las copias de seguridad del
registro de transacciones porque es necesario tener una lnea de base a la
que se puedan aplicar los registros de transacciones.

Despus de crear ndices


Debe hacer una copia de seguridad de la base de datos siempre que cree
un ndice. Aunque esto no es necesario, si la base de datos se pierde,
ahorrar tiempo durante el proceso de restauracin. La copia de seguridad
de una base de datos despus de crear un ndice asegura que el archivo
de copia de seguridad de la base de datos contiene los datos y las
estructuras del ndice.
Si slo hace la copia de seguridad del registro de transacciones despus
de crear un ndice y, posteriormente, restaura ese registro de
transacciones en cualquier momento, SQL Server deber generar el ndice
de nuevo. La cantidad de tiempo que se requiere para volver a generar el
ndice puede ser mayor que el tiempo necesario para restaurar una copia
de seguridad completa de la base de datos.

Despus de limpiar el registro de transacciones


Debe hacer una copia de seguridad de una base de datos despus de
limpiar el registro de transacciones con las instrucciones BACKUP LOG
WITH TRUNCATE_ONLY o BACKUP LOG WITH NO_LOG. Cuando
ejecuta estas instrucciones, el registro de transacciones ya no contiene el
registro de la actividad de la base de datos y no se puede utilizar para
recuperar los cambios realizados en la base de datos.

Despus de operaciones no registradas


Las operaciones que no se graban en el registro de transacciones se
llaman operaciones no registradas.

Con algunos modelos de recuperacin no se pueden recuperar los cambios


efectuados por las siguientes operaciones no registradas:

90

Instrucciones BACKUP LOG WITH TRUNCATE_ONLY o BACKUP LOG


WITH NO_LOG. SQL Server quita la parte inactiva del registro de
transacciones sin hacer una copia de seguridad. Adems, la accin de
truncar el registro de transacciones no se graba en el registro.

Instrucciones WRITETEXT o UPDATETEXT. SQL Server modifica los


datos de las columnas de texto y, de forma predeterminada, no graba esta
actividad en el registro de transacciones. Sin embargo, puede especificar la

Excelencia Acadmica

opcin WITH LOG para escribir estas actividades en el registro de


transacciones.

Instruccin SELECTINTO al crear una tabla permanente o el programa


de copia masiva.

Haga una copia de seguridad de una base de datos despus de ejecutar


cualquier operacin no registrada porque, si se produce un error del sistema,
puede que el registro de transacciones no contenga toda la informacin
necesaria para restaurar la base de datos a un estado coherente.
d) Actividades restringidas durante la copia de seguridad
Puede hacer una copia de seguridad de una base de datos mientras sta est en
funcionamiento y activa. Sin embargo, no es conveniente realizar algunas
operaciones durante el proceso de copia de seguridad.
Evite efectuar las acciones siguientes durante la operacin de copia de seguridad
de una base de datos:

Crear o modificar bases de datos con las instrucciones CREATE


DATABASE o ALTER DATABASE.

Realizar operaciones de crecimiento automtico.

Crear ndices.

Ejecutar operaciones no registradas, incluidas la copia masiva de datos y


las instrucciones SELECTINTO, WRITETEXT y UPDATETEXT.

Reducir una base de datos.

6. TIPOS DE COPIA DE SEGURIDAD


a) Copia de seguridad completa de la base de datos

Figura 4.1: Full backup

Si su base de datos es, principalmente, de slo lectura, una copia de seguridad


completa puede ser suficiente para evitar que se pierdan datos. Este tipo de copia
de seguridad sirve como lnea de base en el caso de que se produzca un error del
sistema. Cuando se hace una copia de seguridad completa de una base de datos,
SQL Server:

Copia toda la actividad que ha tenido lugar durante la copia de seguridad.

91

Excelencia Acadmica

Copia todas las transacciones sin confirmar en el registro de transacciones.

SQL Server utiliza las partes del registro de transacciones que se capturan en el
archivo de copia de seguridad para asegurar la coherencia de los datos cuando se
restaura la copia de seguridad.
Ejemplo 1
En este ejemplo se crea un dispositivo de copia de seguridad con el nombre
lgico AWorksBac y se hace una copia de seguridad completa de la base de
datos.
USE master
EXEC sp_addumpdevice 'disk', 'AWorksBac', 'C:\MyBackupDir\AWorksBac.bak'
BACKUP DATABASE AdventureWorks TO AWorksBac
Ejemplo 2
En este ejemplo se hace una copia de seguridad completa de la base de datos
en el archivo AWorksBac y se sobrescriben las copias de seguridad anteriores
de ese archivo.
BACKUP DATABASE AdventureWorks TO AWorksBac WITH INIT
Ejemplo 3
En este ejemplo se anexa una copia de seguridad completa de la base de
datos al archivo AWorksBac. Las copias de seguridad anteriores del archivo
siguen intactas.
BACKUP DATABASE AdventureWorks TO AWorksBac WITH NOINIT
Ejemplo 4
En este ejemplo se crea un archivo de copia de seguridad en disco y se hace la
copia de seguridad completa de la base de datos en ese archivo.
BACKUP DATABASE Northwind TO DISK = D:\Temp\MyTempBackup.bak
b) Copia de seguridad diferencial de la base de datos
Debe hacer una copia de seguridad diferencial para reducir el tiempo necesario
para la restauracin de una base de datos que se modifica con frecuencia. Haga
una copia de seguridad diferencial slo si ha hecho una copia de seguridad
completa de la base de datos. En una copia de seguridad diferencial, SQL Server:

Copia las partes de la base de datos que han cambiado desde la ltima
copia de seguridad completa.
Para determinar qu pginas han cambiado desde la ltima copia de
seguridad completa de la base de datos, SQL Server compara el LSN de la
pgina con el LSN de sincronizacin de la ltima copia de seguridad
completa.
Cuando se hace una copia de seguridad diferencial, SQL Server copia
extensiones en lugar de pginas individuales. Se hace una copia de una

92

Excelencia Acadmica

extensin cuando el LSN de cualquier pgina de la extensin es mayor que


el LSN de la ltima copia de seguridad completa de la base de datos.

Se copia toda la actividad que haya tenido lugar durante la copia de


seguridad diferencial, as como las transacciones sin confirmar del registro
de transacciones.

Cuando haga una copia de seguridad diferencial, tenga en cuenta los siguientes
hechos e instrucciones:

Si una determinada fila de la base de datos ha sido modificada varias veces


desde la ltima copia de seguridad completa de la base de datos, la copia
de seguridad diferencial slo contiene el ltimo conjunto de valores de esa
fila. Esto es diferente de una copia de seguridad del registro de
transacciones, que contiene un historial de los cambios en las filas.

Disminuye el tiempo necesario para hacer la copia de seguridad de una


base de datos porque los conjuntos de copia de seguridad son ms
pequeos que los de las copias de seguridad completas.

Disminuye el tiempo necesario para restaurar una base de datos porque no


hay que aplicar varios registros de transacciones.

Debe establecer una convencin de denominacin para los archivos que


contienen copias de seguridad diferenciales, de forma que puedan
distinguirse de los que contienen copias de seguridad completas de la base
de datos.

Sintaxis parcial
BACKUP DATABASE {nombreBaseDeDatos | @varNombreBaseDeDatos} TO
<dispositivoDeCopia> [, ...n] [WITH [DIFFERENTIAL] ]
Ejemplo
En este ejemplo se crea una copia de seguridad diferencial en un archivo de copia
de seguridad temporal.
BACKUP DATABASE AdventureWorks TO
DISK = 'D:\MyData\MyDiffBackup.bak'
WITH DIFFERENTIAL
c) Copia de seguridad del registro de transacciones de la base de datos
Las copias de seguridad del registro de transacciones se hacen para grabar todos
los cambios que se realizan en la base de datos. Se suelen hacer cuando se
efectan copias de seguridad completas de la base de datos:

No debe hacer una copia de seguridad del registro de transacciones a


menos que ya haya hecho una copia de seguridad completa de la base de
datos.

Los registros de transacciones no se pueden restaurar


correspondiente copia de seguridad de la base de datos.

Con el modelo de recuperacin sencilla no puede realizar copias de


seguridad del registro de transacciones.

sin

la

93

Excelencia Acadmica

Cmo copia SQL Server el registro de transacciones


Cuando se hace una copia de seguridad del registro de transacciones, SQL Server:

Copia el registro de transacciones desde la ltima ejecucin correcta de la


instruccin BACKUP LOG hasta el final del registro de transacciones
actual.

Trunca el registro de transacciones hasta el comienzo de la parte activa del


registro de transacciones y descarta la informacin de la parte inactiva.
La parte activa del registro de transacciones empieza en el momento de la
transaccin abierta ms antigua y sigue hasta el final del registro de
transacciones.

Sintaxis parcial
BACKUP LOG {baseDeDatos | @varDeBaseDeDatos} TO <dispositivoDeCopia
> [, n] [WITH [{INIT | NOINIT}] ]
Ejemplo
En este ejemplo se crea un dispositivo de copia de seguridad para el registro y se
hace la copia de seguridad del registro de transacciones de la base de datos
AdventureWorks.
USE master
EXEC
sp_addumpdevice
'D:\Backup\AWorksBacLog.bak'

'disk',

'AWorksBacLog',

BACKUP LOG AdventureWorks TO AWorksBacLog


Uso de la opcin NO_TRUNCATE
Si se pierden o se daan los archivos de la base de datos, debe hacer copias de
seguridad de los registros de transacciones con la opcin NO_TRUNCATE. El uso
de esta opcin hace la copia de seguridad de toda la actividad reciente de la base
de datos.
SQL Server:

Guarda todo el registro de transacciones (todo lo que haya ocurrido desde


la ltima instruccin BACKUP LOG), incluso si no se puede tener acceso a
la base de datos.

No purga las transacciones confirmadas del registro de transacciones.

Permite recuperar los datos hasta el momento en que se produjo el error


del sistema.

Cuando restaure la base de datos, podr restaurar la copia de seguridad de la


base de datos y aplicar la copia de seguridad del registro de transacciones creada
con la opcin NO_TRUNCATE para recuperar todos los datos.
d) Copia de seguridad de un Archivo o Grupo de Archivos de la base de datos
Si no es posible hacer una copia de seguridad completa de una base de datos de
gran tamao (VLDB, Very Large Database), puede hacer copias de seguridad de
94

Excelencia Acadmica

archivos o grupos de archivos de la base de datos. Cuando SQL Server hace la


copia de seguridad de archivos o grupos de archivos:

Slo copia los archivos de base de datos que especifique en la opcin FILE
o FILEGROUP.

Le permite hacer una copia de seguridad de archivos de base de datos


especficos en lugar de copiar toda la base de datos.

Cuando haga copias de seguridad de un archivo o grupo de archivos de una base


de datos:

Debe especificar los archivos o grupos de archivos lgicos.

Debe hacer copias de seguridad del registro de transacciones para que los
archivos restaurados sean coherentes con el resto de la base de datos.

Debe establecer un plan para hacer la copia de seguridad de cada archivo


de forma rotativa; as se asegurar de que se cree una copia de seguridad
de todos los archivos o grupos de archivos de la base de datos con
regularidad.

Puede especificar hasta 16 archivos o grupos de archivos.

Sintaxis parcial
BACKUP DATABASE {baseDeDatos | @varDeBaseDeDatos}
[<archivoOGrupoDeArchivos> [, ...m]] TO <dispositivoDeCopia> [, n]]
Donde <archivoOGrupoDeArchivos> es: {FILE = {nombreArchivoLgico |
@varNombreArchivoLgico} | FILEGROUP = {nombreGrupoLgico |
@varNombreGrupoLgico } }
e) Copia de seguridad Parcial

f)

Una copia de seguridad parcial es similar a un full backup pero un backup parcial
no contiene todos los grupos de archivos.
Una copia de seguridad parcial es una copia de seguridad de todos los datos del
grupo de archivos principal, todos los grupos de archivos de lectura y escritura, y
los archivos o grupos de archivos de slo lectura opcionalmente especificados.
Una copia de seguridad parcial de una base de datos de slo lectura contiene
nicamente el grupo de archivos principal
.
Copia de seguridad Solo Copia
Normalmente, la realizacin de una copia de seguridad cambia la base de datos y
afecta a la forma de restaurar las copias de seguridad posteriores. Sin embargo, a
veces es til realizar una copia de seguridad con un fin especfico sin afectar a los
procedimientos generales de copia de seguridad y restauracin de la base de
datos. Con este propsito, SQL Server 2005 introduce copias de seguridad de slo
copia. Estas copias de seguridad son independientes de la secuencia peridica de
copias de seguridad de SQL Server

g) Copia de seguridad Tail-Log de la base de datos


Es un backup del log de transacciones que incluye la porcin del log que no fue
guardado previamente (conocido como la porcin activa del log)

95

Excelencia Acadmica

7. DISENO DE UNA ESTRATEGIA DE COPIA DE SEGURIDAD


Cuando disee una estrategia de copia de seguridad, su entorno de trabajo concreto
determinar el mtodo o combinacin de mtodos de copia de seguridad que debe elegir.
Cuando determine qu estrategia de copia de seguridad va a implementar, tenga en cuenta
el proceso de restauracin, as como los requisitos de cada una de las estrategias que se
presentan en este mdulo.
Una estrategia de copia de seguridad y restauracin contiene:

Una parte de copia de seguridad que define el tipo y la frecuencia de las copias de
seguridad, la naturaleza y la velocidad del hardware necesario, cmo se prueban
las copias de seguridad, y dnde y cmo se almacenan los medios de copia de
seguridad.

Una parte de restauracin de la estrategia que define quin es responsable de


llevar a cabo las operaciones de restauracin y cmo se deben realizar para
satisfacer sus objetivos de disponibilidad de la base de datos y minimizar la prdida
de datos.

Factores para disear una estrategia:

Los requisitos de disponibilidad y proteccin de datos frente a prdidas.

La naturaleza de cada una de las bases de datos: el tamao, los patrones de uso,
la naturaleza del contenido, los requisitos de los datos, etc.

Restricciones de los recursos, como hardware, personal, espacio para almacenar


los medios de copia de seguridad, seguridad fsica de los medios almacenados,
etc.

Modelos de estrategias de copias de seguridad:


a) Estrategia de copia de seguridad completa de la base de datos:

Figura 4.2: Copia de seguridad completa


El tamao de la base de datos y la frecuencia de modificacin de los datos
determinan el tiempo y los recursos involucrados en la implementacin de una
estrategia de copia de seguridad completa de la base de datos.

96

Excelencia Acadmica

Debe hacer copias de seguridad completas de una base de datos si:


La base de datos es pequea. La cantidad de tiempo que se requiere para
hacer la copia de seguridad de una base de datos pequea es razonable.
La base de datos es de slo lectura o sus datos sufren pocas
modificaciones. La copia de seguridad completa de la base de datos captura
un conjunto de datos razonablemente completo. Puede que desee conseguir
una menor prdida de datos si se produce un error entre dos copias de
seguridad y hay que restaurar la base de datos.
Ejemplo de estrategia 1:
Considere el siguiente ejemplo de un plan de copia de seguridad y los pasos que
debera realizar para restaurar la base de datos. Supongamos que:

La base de datos slo contiene 10 megabytes (MB) de datos.

El proceso de la copia de seguridad completa de la base de datos dura


unos pocos minutos.

La base de datos se utiliza, principalmente, como ayuda en la toma de


decisiones y sufre pocas modificaciones al da.

La posibilidad de perder los cambios de la base de datos de un da es


aceptable. Dichos cambios se pueden volver a repetir fcilmente.

El administrador del sistema no desea supervisar el tamao del registro ni


realizar ningn mantenimiento en el registro de transacciones.

La copia de seguridad completa de la base de datos se hace todas las


noches a las 6:00 p.m.

La base de datos se daa a las 10:00 a.m.

Proceso de restauracin:
Para recuperar la base de datos debe restaurar la copia de seguridad completa
de la base de datos a partir de la copia de las 6:00 p.m. del da anterior con el
fin de sobrescribir la versin daada de la base de datos.
La limitacin de esta solucin es que se pierden todas las modificaciones
realizadas en los datos desde la ltima copia de seguridad.

97

Excelencia Acadmica

b) Estrategia de copia de seguridad completa de la base de datos y el registro


de transacciones

Figura 4.3: Copia de seguridad completa y del registro de transacciones


Adems de hacer una copia de seguridad completa de la base de datos, tambin
debe hacer la copia de seguridad del registro de transacciones para tener un
registro de toda la actividad de la base de datos que ha tenido lugar entre las
copias de seguridad completas de la base de datos. sta es una estrategia de
copia de seguridad muy comn.
Cuando implemente una estrategia de copia de seguridad completa de la base de
datos y del registro de transacciones, puede restaurar la base de datos a partir de
la copia de seguridad completa de la base de datos ms reciente y, despus,
aplicar todas las copias de seguridad del registro de transacciones que se hayan
creado desde la ltima copia de seguridad completa de la base de datos.
Establezca una estrategia de copia de seguridad completa de la base de datos y
del registro de transacciones para las bases de datos modificadas con mucha
frecuencia. Tambin debe considerar si la copia de seguridad de la base de datos
y de los registros de transacciones se pueden hacer en un intervalo de tiempo
aceptable.
Ejemplo de estrategia:
Considere el siguiente ejemplo de un plan de copia de seguridad y los pasos que
debera realizar para restaurar la base de datos. Supongamos que:

98

La base de datos y los registros de transacciones estn almacenados en


archivos y medios fsicos independientes.

Excelencia Acadmica

La copia de seguridad completa de la base de datos se hace todas las


noches a las 6:00 p.m.

Las copias de seguridad del registro de transacciones se hacen todos los


das a las 9:00 a.m., a las 12:00 del medioda y a las 3:00 p.m.

El medio fsico que contiene la base de datos se daa a la 1:30 p.m.

Proceso de restauracin :
Para recuperar la base de datos, debera realizar los pasos siguientes:

Haga una copia de seguridad del registro de transacciones, si es posible.


Utilice la opcin WITH NO_TRUNCATE.

Restaure la copia de seguridad completa de la base de datos que se cre


la noche anterior a las 6:00 p.m.

Aplique todos los registros de transacciones que se hayan creado durante


el da (9:00 a.m. y 12:00 p.m.).

Aplique la copia de seguridad del registro de transacciones que se ha


creado al comienzo del proceso de restauracin (si se ha creado uno).

c) Estrategia de copia de seguridad diferencial

Figura 4.4: Copia de seguridad diferencial

99

Excelencia Acadmica

Cuando implemente una estrategia de copia de seguridad diferencial, debe incluir


una copia de seguridad completa de la base de datos, as como copias de
seguridad del registro de transacciones. Las copias de seguridad diferenciales slo
contienen las partes de la base de datos que han cambiado desde la ltima copia
de seguridad completa de la base de datos. En una copia de seguridad diferencial,
SQL Server:

No captura los cambios en los registros de transacciones. Por tanto, debe


hacer copias de los registros de transacciones peridicamente.

Requiere restaurar slo la copia de seguridad diferencial ms reciente para


recuperar la base de datos. Esta copia contiene todos los cambios
efectuados en la base de datos desde la ltima copia de seguridad
completa de la base de datos.

Utilice esta estrategia para reducir el tiempo de recuperacin si la base de datos se


daa. Por ejemplo, en lugar de aplicar varios registros de transacciones grandes,
puede utilizar una copia de seguridad diferencial para aplicar los cambios que se
hayan efectuado en la base de datos desde la ltima copia de seguridad completa
de la base de datos.
Ejemplo de estrategia :
Considere el siguiente ejemplo de un plan de copia de seguridad y los pasos que
debera realizar para restaurar la base de datos. Supongamos que:

Se hace una copia de seguridad completa de la base de datos una vez a la


semana. La ltima copia de seguridad completa de la base de datos se hizo
el domingo a la 1:00 a.m.

Todos los das, al terminar la jornada laboral, se hace una copia de


seguridad diferencial. Se han hecho copias de seguridad diferenciales el
lunes y el martes a las 6:00 p.m.

Las copias de seguridad del registro de transacciones se hacen cada hora,


durante la jornada laboral (entre las 8:00 a.m. y las 5:00 p.m.). Se han
hecho copias de seguridad del registro de transacciones a las 8:00 a.m. y a
las 9:00 a.m. del mircoles.

La base de datos se daa a las 9:30 a.m. del mircoles.

Proceso de restauracin
Para recuperar la base de datos, debera realizar los pasos siguientes:
1. Haga una copia de seguridad del registro de transacciones, si es posible.
Utilice la opcin WITH NO_TRUNCATE.
2. Restaure la copia de seguridad completa de la base de datos que se cre el
domingo a la 1:00 a.m.
3. Restaure la copia de seguridad diferencial que se cre el martes a las 6:00
p.m. Este archivo de copia de seguridad es la copia de seguridad diferencial
ms reciente y contiene todos los cambios realizados en la base de datos
desde la copia de seguridad completa de la base de datos del domingo a la
1:00 a.m.

100

Excelencia Acadmica

4. Aplique las copias de seguridad del registro de transacciones creadas el


mircoles a las 8:00 a.m. y las 9:00 a.m.
5. Aplique la copia de seguridad del registro de transacciones que ha creado al
comienzo del proceso de restauracin (paso 1) para asegurar la coherencia
de los datos.
d) Estrategia de copia de seguridad de archivos o grupos de archivos

Figura 4.5: Copia de seguridad de archivos o grupo de afrchivos


Cuando se implementa una estrategia de copia de seguridad de archivos o grupos
de archivos de una base de datos, como parte de dicha estrategia se suele hacer
la copia de seguridad del registro de transacciones.
Utilice esta estrategia en las bases de datos de gran tamao (VLDB) que estn
repartidas en varios archivos. Cuando se combina con las copias de seguridad
regulares del registro de transacciones, esta tcnica ofrece una ventaja de tiempo
sobre las copias de seguridad completas de la base de datos. Por ejemplo, si slo
dispone de una hora para hacer la copia de seguridad completa de la base de
datos (que normalmente dura cuatro horas), podra hacer la copia de seguridad de
archivos individuales todas las noches, con lo que se sigue asegurando la
coherencia de los datos.
Sin embargo, esta estrategia es complicada y no mantiene la integridad referencial
de forma automtica.
Ejemplo de estrategia :
Considere el siguiente ejemplo de un plan de copia de seguridad y los pasos que
debera realizar para restaurar la base de datos. Supongamos que:

101

Excelencia Acadmica

Los datos de la base de datos estn divididos entre Archivo1, Archivo2 y


Archivo3.

Todas las semanas se hace una copia de seguridad completa de la base de


datos. La ltima copia de seguridad completa de la base de datos se hizo el
lunes a la 1:00 a.m.

Los archivos seleccionados se copian de forma rotativa, todos los das a la


1:00 a.m:

Archivo1 se copi el martes a la 1:00 a.m.

Archivo2 se copi el mircoles a la 1:00 a.m.

Archivo3 se copi el jueves a la 1:00 a.m.

Las copias de seguridad del registro de transacciones se hacen todos los


das a las 12:00 del medioda y a las 6:00 p.m.

El jueves a las 8:00 a.m., se daa el medio fsico de Archivo2.

Proceso de restauracin
Para recuperar la base de datos, debera realizar los pasos siguientes:
1. Haga una copia de seguridad del registro de transacciones, si es posible.
Utilice la opcin WITH NO_TRUNCATE.
2. Restaure la copia de seguridad de Archivo2 que se cre el mircoles a la
1:00 a.m.
3. Aplique todas las copias de seguridad del registro de transacciones que se
hayan creado desde la 1:00 a.m. del mircoles.
4. Aplique el registro de transacciones creado al comienzo del proceso de
restauracin para recuperar los datos. Al aplicar todos los registros de
transacciones hace que los objetos de Archivo2 sean coherentes con el
resto de la base de datos.
El rendimiento que se obtiene con esta estrategia es el resultado de que
slo se aplican los sucesos del registro de transacciones que afectan a los
datos que estn almacenados en Archivo2. Los sucesos del registro de
transacciones anteriores a la 1:00 a.m. del mircoles no se utilizan. Slo se
aplican las transacciones de Archivo2 posteriores a la 1:00 a.m. del
mircoles.

8. CONSIDERACIONES ACERCA DEL RENDIMEINTO


Cuando se hacen copias de seguridad de bases de datos, hay que considerar algunos de
los aspectos que afectan al rendimiento de SQL Server:

102

La copia de seguridad en varios dispositivos fsicos suele ser ms rpida que la


copia en un solo dispositivo fsico. SQL Server aprovecha la copia de seguridad en
varios dispositivos al escribir los datos en paralelo en cada uno de los dispositivos
de copia de seguridad.

Excelencia Acadmica

El tiempo necesario para hacer la copia de seguridad de una base de datos


depende de la velocidad del dispositivo fsico. Las unidades de cinta suelen ser ms
lentas que los dispositivos de disco.

Debe disminuir la cantidad de actividades simultneas cuando haga una copia de


seguridad de una base de datos. Las actividades simultneas en SQL Server
pueden afectar al tiempo necesario para hacer la copia de seguridad de la base de
datos.

1. Crear una copia de seguridad completa de la base de datos AdventureWorks


utilizando el SQL Server Management Studio
2. Eliminar la base de datos AdventureWorks
3. Restaurar la base de datos AdventureWorks a partir de la copia de seguridad
completa generada en el ejercicio 1.
4. Crear una copia diferencial de AdventureWorks y despus restaurarla.

Esta unidad proporciono los fundamentos para la realizacin de copias


de seguridad de bases de datos Microsoft SQL Server 2005, as como
sugerencias acerca de cundo hacerlas y los pasos necesarios. Despus de
aprender los diferentes mtodos de copia de seguridad de SQL Server, puede
determinar la estrategia de copia de seguridad apropiada para su entorno
empresarial.

[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
103

Excelencia Acadmica

http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

En la siguiente unidad temtica trataremos aspectos relacionados a la administracin de seguridad de una base
de datos.

ADMINISTRACION DE BASE DE DATOS


UNIDAD ACADMICA N 4
NOMBRE:__________________________________________________________________
APELLIDOS:________________________________________FECHA; ____/_____/______
CIUDAD:_______________________________SEMESTRE:_________________________
Responda brevemente:
1.

2.

3.

4.
5.
6.
7.

104

Si realiza un backup diferencial de AdventureWorks cada cuatro horas empezando a las 4:00, con un full
backup que se ejecute a la media noche. Qu data obtiene el backup diferencial que se ejecut a media
noche?
_____________________________________________________________________________________
_____________________________________________________________________________________
___________________________________________
Se realiza un full backup de AdventureWorks que se completa a media noche. Backups diferenciales son
programados para ejecutarse cada 4 horas empezando de las 4:00. Backups del log de transacciones son
programados para correr cada cinco minutos. Que informacin contiene el backup del log de
transacciones creado a las 9:15?
_____________________________________________________________________________________
_____________________________________________________________________________________
___________________________________________
Qu estrategia de copias de seguridad elegira si trabajara en una entidad financiera? Explique su
respuesta
_____________________________________________________________________________________
_________________________________________________________
_____________________________________________________________________________________
Qu acciones debe tomar en cuenta al momento de crear copias de seguridad?
_____________________________________________________________________________________
_____________________________________________________________________________________
En qu casos usara copias de seguridad diferenciales?
_____________________________________________________________________________________
_____________________________________________________________________________________
En qu casos usara copias de seguridad del archivo de registro de transacciones?
_____________________________________________________________________________________
_____________________________________________________________________________________
Cules son los pasos para realizar ccpias de seguridad programadas?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

Excelencia Acadmica

105

Excelencia Acadmica

106

Excelencia Acadmica

ADMINISTRACION DE LA SEGURIDAD
La seguridad es uno de las principales preocupaciones de los administradores de sistemas, redes y base
de datos. Mientras un administrador est implementando la seguridad es natural que pueda estar preocupado por
los ataques externos. Pero existe ms que eso. Es esencial primero implementar la seguridad dentro de la
organizacin, para asegurar que solo las personas autorizadas tengan acceso a los datos. Si no se establece estas
medidas de seguridad, lo ms seguro es encontrar a alguien destruyendo nuestros datos o vendiendo los secretos
de la compaa a nuestros competidores, o alguien accediendo a la informacin privada de otros. Lo primero que se
tiene que hacer es un plan de seguridad, el cual identifique que usuarios en la organizacin pueden ver
determinados datos y que actividades deben realizar en la base de datos.

Al finalizar el estudio de la presente unidad temtica el estudiante:

Implementa el Modo de autenticacin y el Modo mixto de Microsoft Windows.

Asigna cuentas de inicio de sesin a cuentas de usuario y funciones de la base de


datos.

Asigna permisos a cuentas de usuario y funciones.

Administra la seguridad en SQL Server.

Administra la seguridad de SQL Server en un entorno empresarial.

1. IMPLEMENTACION DEL MODO DE AUTENTICACION:


a) Proceso de autenticacin:
SQL Server puede delegar en Windows (Windows 2003 por ejemplo) la
autenticacin de las cuentas de inicio de sesin o puede autenticar las cuentas de
inicio de sesin por s mismo.

Cmo procesa SQL Server las cuentas de inicio de sesin que


autentica Windows?

107

Excelencia Acadmica

Figura 5.1: Proceso de autenticacin

Cuando un usuario se conecta con SQL Server, el cliente abre una


conexin de confianza con SQL Server, que pasa las credenciales
de seguridad de Windows 2003 del usuario a SQL Server.
Como el cliente tiene abierta una conexin de confianza, SQL
Server sabe que Windows 2003 ya ha validado la cuenta de inicio
de sesin.

Si SQL Server encuentra la cuenta de usuario o de grupo de


Windows 2003 del usuario en la lista de cuentas de inicio de sesin
de SQL Server que se encuentra en la tabla del sistema
sysxlogins, acepta la conexin.
SQL Server no necesita volver a validar la contrasea porque
Windows 2003 ya la ha validado.

Si varios equipos que ejecutan SQL Server participan en un


dominio o en grupo de dominios de confianza, el inicio de sesin en
un solo dominio de red es suficiente para permitir el acceso a todos
los equipos que ejecutan SQL Server.

Cmo procesa SQL Server las cuentas de inicio de sesin que l


mismo autentica?
SQL Server emplea los siguientes pasos para procesar las cuentas de
inicio de sesin que l mismo autentica:

Cuando un usuario conecta con una cuenta de inicio de sesin y


contrasea de SQL Server, ste comprueba si existe la cuenta de
inicio de sesin en la tabla sysxlogins y si la contrasea
especificada coincide con la contrasea registrada.

Si SQL Server no tiene configurada una cuenta de inicio de sesin


para el usuario, la autenticacin falla y la conexin se rechaza.

b) Eleccin del modo de autenticacin:


Las necesidades de seguridad del servidor y de los entornos de red determinarn
el modo de autenticacin que se deba utilizar con SQL Server. Puede utilizar el
Administrador corporativo de SQL Server para establecer el modo de autenticacin
del servidor.
Ventajas del Modo de autenticacin de Windows:
Utilice el modo de Autenticacin de Windows en entornos de red en los que todos
los clientes admiten conexiones de confianza.
La autenticacin de Windows ofrece varias ventajas frente a la autenticacin de
SQL Server, ya que:

108

Proporciona ms caractersticas, como la validacin y el cifrado seguros de


contraseas, la auditora, la caducidad de las contraseas, la longitud
mnima de la contrasea y el bloqueo de las cuentas despus de
contraseas no vlidas.

Excelencia Acadmica

Permite agregar grupos de usuarios a SQL Server con slo agregar una
nica cuenta de inicio de sesin.

Permite que los usuarios tengan acceso a SQL Server rpidamente, sin
necesidad de recordar otra cuenta de inicio de sesin y contrasea.

Ventajas del Modo mixto


El Modo mixto, y los mecanismos de autenticacin de SQL Server en particular,
permiten que clientes que no utilicen Windows, clientes de Internet y grupos de
clientes mixtos se conecten a SQL Server
c) Autenticacin mutua con Kerberos

Figura 5.2: Autenticacin mutua con kerberos


Kerberos es el principal protocolo de seguridad para la autenticacin en un dominio
de Windows. Define el modo en que los clientes interactan con los servicios de
autenticacin de red.
El protocolo Kerberos comprueba tanto la identidad del usuario como los servicios
de red. Esta doble autenticacin es conocida como autenticacin mutua. SQL
Server utiliza Kerberos para posibilitar la autenticacin mutua entre el cliente y el
servidor.
Cuando se inicia sesin, Windows ubica un servidor de servicio de directorio Active
Directory y un servicio de autenticacin Kerberos. El servicio Kerberos emite un
vale de concesin de vales (TGT, ticket-granting ticket) que contiene datos cifrados
que confirman la identidad del usuario al Centro de distribucin de claves (KDC,
Key Distribution Center). Cuando el usuario solicita acceso a un servicio, ste enva
el TGT al KDC, que enviar un vale de sesin al usuario para el servicio solicitado.
El usuario presenta entonces el vale de sesin, que confirma su identidad, al
servicio.
Si es necesaria la autenticacin mutua, el servidor responde con un mensaje
cifrado para identificarse a s mismo. El vale de sesin se puede volver a utilizar
para tener acceso al mismo servicio hasta que caduque, lo cual elimina la
necesidad de que el KDC est emitiendo constantemente vales repetidos. El
tiempo de caducidad lo determina el KDC, pero normalmente no dura ms de ocho
horas, la duracin de un inicio de sesin normal.

109

Excelencia Acadmica

Una autenticacin correcta con Kerberos requiere que tanto el sistema cliente como
el servidor que ejecutan el servicio deseado tengan instalado el sistema operativo
Windows 2000/2003 y que utilicen la biblioteca de red de sockets TCP/IP, y que el
nombre principal de servicio (SPN) est adecuadamente configurado para el
servicio de SQL Server.
d) Representacin y delegacin:
La representacin y la delegacin permiten que SQL Server utilice las credenciales
de seguridad del cliente original al tener acceso a recursos de los servidores
locales o remotos.

Representacin
En ciertas circunstancias, SQL Server debe presentar una identidad del
cliente a los recursos a los que tiene acceso en representacin del cliente,
por ejemplo, al sistema de archivos. El servidor puede representar el
contexto de seguridad del cliente para permitir que se realicen
comprobaciones de acceso o autenticaciones en la identidad del cliente, lo
que garantiza que el acceso a los recursos ni se restringe ni se ampla ms
all de los propios permisos del cliente.

Delegacin
SQL Server 2000 tambin admite la delegacin, que es la capacidad de
conectarse a varios servidores y, en cada cambio de servidor, conservar
las credenciales del cliente original. Por ejemplo, si un usuario
(AWorks\SQLAdmin) se conecta a ServerA, que se conecta a ServerB a su
vez, ServerB sabe que la identidad de seguridad de la conexin es
AWorks\SQLAdmin.
Para utilizar la delegacin, todos los servidores a los que se conecte el
usuario deben ejecutar Windows 2000/2003 con la compatibilidad con
Kerberos habilitada, y el usuario debe utilizar Active Directory.

Configuracin de Active Directory para la delegacin


Para que la delegacin funcione, se deben establecer las siguientes
opciones de cuenta en Active Directory:

La cuenta es importante y no se puede delegar

No debe seleccionar esta opcin para la delegacin de la solicitud


del usuario.

Se confa en la cuenta para su delegacin

Debe seleccionar esta opcin para la cuenta del servicio de SQL


Server.

Este equipo est aprobado para su delegacin. Debe seleccionar


esta opcin para el equipo que ejecuta SQL Server.

Configuracin de SQL Server para la delegacin


Para utilizar la delegacin de la cuenta de seguridad, SQL Server debe
tener asignado un SPN por el administrador de dominio de cuentas de
Windows 2000/2003 a la cuenta de servicio de SQL Server y estar

110

Excelencia Acadmica

utilizando el Protocolo de control de transporte/Protocolo Internet (TCP/IP).


Si el servicio de SQL Server se est ejecutando bajo la cuenta
LocalSystem, al inicio del servicio el servicio de SQL Server registra
automticamente un SPN y lo deja de registrar cuando se cierra SQL
Server.

Figura 5.3: Representacin y delegacin


e) Cifrado.
El cifrado es un mtodo de proteccin de la informacin confidencial que se crea
pasando los datos a un formato ilegible. Garantiza la seguridad de los datos,
incluso si se ven directamente.
Cifrado interno:
SQL Server puede cifrar:

Las contraseas de inicio de sesin almacenadas en SQL Server.


Las contraseas de inicio de sesin almacenadas en tablas del sistema
que siempre estn cifradas. Esto impide que todos los usuarios, incluidos
los administradores del sistema, vean ninguna contrasea, incluso la suya
propia.

Las definiciones de Transact-SQL.


Las definiciones de procedimientos almacenados, los desencadenadores y
las vistas almacenadas en la tabla de sistema syscomments se pueden
cifrar.

Cifrado de red
SQL Server permite que se cifren los datos que se envan entre el cliente y el
servidor. Esto garantiza que cualquier aplicacin o usuario que intercepte los
paquetes de datos de la red no pueda ver los datos confidenciales, por ejemplo,
contraseas enviadas a travs de la red cuando los usuarios inician sesin en SQL
Server, o datos personales que contienen informacin acerca de los salarios

111

Excelencia Acadmica

f)

Pasos para implementar un Modo de autenticacin


Para implementar la autenticacin, debe realizar las tareas siguientes desde una
cuenta de administracin del sistema. Para el Modo de autenticacin de Windows,
siga los pasos del 1 al 4; para el Modo mixto, siga los pasos del 1 al 5:
1. Utilice el Administrador corporativo de SQL Server para establecer el modo
de autenticacin de SQL Server.
2. Detenga y vuelva a iniciar el servicio MSSQLServer para que surta efecto la
opcin de seguridad.
3. Cree los grupos y usuarios de Windows 2000/2003 que tengan autorizacin
de acceso a SQL Server a travs de conexiones de confianza.
Si no tiene permisos para administrar grupos y usuarios en Windows
2000/2003, haga que un administrador de Windows 2000/2003 realice esta
tarea.
4. Utilice el Administrador corporativo de SQL Server para conceder acceso a
SQL Server a los grupos y usuarios de Windows 2000/2003.
5. Utilice el Administrador corporativo de SQL Server para crear cuentas de
inicio de sesin de SQL Server a fin de que los usuarios se conecten a
conexiones en las que no se confa.

2. CUENTAS DE INICIO DE SESION:


Puede crear cuentas de inicio de sesin a partir de usuarios y grupos de Windows
2000/2003 existentes, o puede crear nuevas cuentas de inicio de sesin en SQL Server.
Tambin puede utilizar una de las cuentas de inicio de sesin predeterminadas. Las
cuentas de inicio de sesin estn almacenadas en la tabla del sistema master.sysxlogins.
Cuando se agrega una cuenta de inicio de sesin a SQL Server, se le suele asignar una
base de datos predeterminada. La asignacin de una base de datos predeterminada a una
cuenta de inicio de sesin no crea una cuenta de usuario en esa base de datos, sino que
establece el contexto predeterminado para las acciones que el usuario realice.
a) Agregar una cuenta de inicio de sesin de Windows 2000/2003 a SQL
Server
Puede utilizar el Administrador corporativo de SQL Server o el procedimiento
almacenado del sistema sp_grantlogin para permitir que una cuenta de usuario o
de grupo de Windows 2000/2003 se conecte con SQL Server. Slo los
administradores del sistema o de seguridad pueden ejecutar sp_grantlogin.
El nombre especificado al crear una cuenta es el nombre del usuario o grupo de
Windows 2000/2003 que se va a agregar. Este nombre se debe cualificar con un
nombre de dominio de Windows 2000/2003.
Al agregar cuentas de inicio de sesin de Windows 2000 a SQL Server, tenga en
cuenta los siguientes hechos y directrices:

112

Como SQL Server tiene una sola cuenta de inicio de sesin para un grupo
de Windows, no es necesario realizar cambios en SQL Server cuando
cambia la pertenencia a los grupos de Windows. Esto impide que haya
objetos hurfanos (objetos cuyo propietario es un usuario que ya no existe
en SQL Server), siempre y cuando no elimine el grupo.

Excelencia Acadmica

La eliminacin de un grupo o usuario de Windows no elimina ese grupo o


usuario en SQL Server. Esto impide que haya objetos hurfanos.

Cuando quita usuarios o grupos de Windows, primero debe quitarlos de


Windows para denegar el acceso desde la red. Despus, debe quitarlos de
SQL Server.

Agregue una cuenta de inicio de sesin para una cuenta de grupo de


Windows si todos los miembros del grupo se van a conectar con SQL
Server.

Agregue una cuenta de inicio de sesin para una cuenta de usuario de


Windows si el usuario no es miembro de un grupo al que se le puede
conceder permiso de forma colectiva.

Incluso si los usuarios inician sesiones en SQL Server como miembros de


grupos de Windows, SQL Server sigue conociendo las identidades de los
usuarios. La funcin SUSER_SNAME() devuelve los nombres de la cuenta
de inicio de sesin y el dominio de los usuarios cuando los usuarios son
miembros de un grupo de Windows 2000/2003.

SQL Server slo admite la especificacin de cuentas de Windows con el


formato DOMINIO\nombreUsuario. SQL Server no permite que se
agreguen cuentas de Windows mediante la utilizacin de nombres
principales
de
usuario
(UPN),
nombres
con
el
formato
alguien@microsoft.com.

En la tabla siguiente se enumeran otros procedimientos almacenados del


sistema que se pueden utilizar para administrar cuentas de inicio de sesin
de Windows 2000. Slo los administradores del sistema o de seguridad
pueden ejecutar estos procedimientos almacenados del sistema.

b) Cuentas de inicio de sesin predeterminadas


BUILTIN\Administradores se proporciona como cuenta de inicio de sesin
predeterminada para todos los administradores de Windows 2000/2003. Tiene
todos los derechos sobre SQL Server y todas las bases de datos.
El administrador del sistema (sa) es una cuenta de inicio de sesin especial
que tiene todos los derechos sobre SQL Server y todas las bases de datos. Se
proporciona para la compatibilidad con versiones anteriores y no se debe
utilizar rutinariamente. Esta cuenta se habilita slo cuando SQL Server utiliza el
Modo mixto de autenticacin.
c) Como crear un inicio de sesin de SQL Server
La mayora de usuarios de Windows necesitan un inicio de sesin de SQL Server
para conectarse a SQL Server.

Para crear un inicio de sesin de SQL Server que use la autenticacin


de Windows (SQL Server Management Studio)
1 En SQL Server Management Studio, abra el Explorador de objetos
y expanda la carpeta de la instancia de servidor en la que se crear
el nuevo inicio de sesin.
2 Haga clic con el botn secundario en la carpeta Seguridad,
seleccione Nuevo y, a continuacin, Inicio de sesin.
113

Excelencia Acadmica

3 En la pgina General, escriba el nombre de un usuario de


Windows en el cuadro Nombre de inicio de sesin.
4 Seleccione Autenticacin de Windows.
5 Haga clic en Aceptar.

Para crear un inicio de sesin de SQL Server que use la autenticacin


de SQL Server (SQL Server Management Studio)
1 En SQL Server Management Studio, abra el Explorador de objetos
y expanda la carpeta de la instancia de servidor en la que se crear
el nuevo inicio de sesin.
2 Haga clic con el botn secundario en la carpeta Seguridad,
seleccione Nuevo y, a continuacin, Inicio de sesin.
3 En la pgina General, escriba un nombre para el nuevo inicio de
sesin en el cuadro Nombre de inicio de sesin.
4 Seleccione Autenticacin de SQL Server. La autenticacin de
Windows es la opcin ms segura.
5 Escriba una contrasea de inicio de sesin.
6 Seleccione las opciones de la directiva de contraseas que deben
aplicarse al nuevo inicio de sesin. En general, exigir la directiva de
contraseas es la opcin ms segura.
7 Haga clic en Aceptar.

Para crear un inicio de sesin de SQL Server que use la autenticacin


de Windows con Transact-SQL
En el Editor de consultas, escriba el siguiente comando Transact-SQL:
CREATE LOGIN <name of Windows User> FROM WINDOWS; GO

Para crear un inicio de sesin de SQL Server que use la autenticacin


de SQL Server (Transact-SQL)
En el Editor de consultas, escriba el siguiente comando Transact-SQL:
CREATE LOGIN <login name> WITH PASSWORD = '<password>' ;
GO

3. ASIGNACION DE CUENTAS DE INICIO DE SESION A USUARIOS Y FUNCIONES

Figura 5.4: Relacin entre tablas del sistema

114

Excelencia Acadmica

Despus de agregar cuentas de inicio de sesin a SQL Server, puede asignarlas a cuentas
de usuario o funciones en cada una de las bases de datos a las que los usuarios tengan
acceso.
La tabla del sistema sysusers de una base de datos contiene una fila por cada usuario de
Windows, grupo de Windows, usuario de SQL Server o funcin de la base de datos. Los
permisos se aplican a las entradas de la tabla sysusers y se almacenan en la tabla
sysprotects de la base de datos actual.
Por ejemplo, en la ilustracin anterior, se les ha concedido a los miembros del grupo de
Windows payroll acceso a la base de datos Northwind. Despus de conectarse con SQL
Server, el usuario:

Tiene una conexin validada con SQL Server, porque su cuenta de usuario de
Windows 2000/2003 est en el grupo global de Windows 2000/2003 payroll.

No tiene permisos individuales en la base de datos Northwind, slo tiene permisos


el grupo global payroll.

4. CREACION DE USUARIOS DE BASE DE DATOS


Para crear un usuario de base de datos asignado a un inicio de sesin de SQL Server se
asume que existe el correspondiente inicio de sesin.

Para crear un usuario de base de datos mediante SQL Server Management


Studio
1 En SQL Server Management Studio, abra el Explorador de objetos y
expanda la carpeta Bases de datos.
2 Expanda la base de datos en la que se va a crear el usuario de la misma.
3 Anticlic en Seguridad, Nuevo y, a continuacin, Usuario.
4 En la pgina General, escriba un nombre para el usuario en el cuadro
Nombre de usuario.
5 En el cuadro Nombre de inicio de sesin, escriba el nombre de un inicio de
sesin de SQL Server para asignarlo al usuario de la base de datos y
acepte.

Para crear usuarios de bases de datos mediante Transact-SQL


1 En el Editor de consultas, conctese a la base de datos en que se va a
crear el usuario de la base de datos; para ello, ejecute el siguiente
comando Transact-SQL: USE <database name> GO
2 Cree el usuario ejecutando el siguiente comando Transact-SQL: CREATE
USER <new user name> FOR LOGIN <login name> ; GO

5. ASIGNACIN DE CUENTAS DE INICIO DE SESIN A FUNCIONES


Las funciones proporcionan un medio para agrupar usuarios en una sola unidad a la que se
pueden aplicar permisos.
SQL Server proporciona funciones de servidor y de base de datos predefinidas para las
funciones administrativas comunes, de forma que pueda conceder fcilmente una seleccin
de permisos administrativos a un usuario especfico.
115

Excelencia Acadmica

Tambin puede crear sus propias funciones de base de datos para representar las tareas
que realiza un tipo de empleados de la organizacin. Cuando un empleado cambia de
puesto de trabajo, slo tiene que agregar al empleado como miembro de la funcin o quitar
al empleado de la funcin cuando el empleado cambie de puesto de trabajo. No es
necesario conceder y revocar permisos de forma repetitiva cuando los empleados
empiezan o terminan una labor concreta. Si la funcin de un puesto de trabajo cambia, es
muy sencillo modificar los permisos de la funcin y hacer que los cambios se apliquen
automticamente a todos los miembros de la funcin.
a) Funciones fijas del servidor

Las funciones fijas del servidor permiten agrupar los privilegios


administrativos en el nivel del servidor. Se administran de forma independiente de
las bases de datos de usuario en el nivel del servidor y se almacenan en la tabla
del sistema master.sysxlogins.
Asignacin de una cuenta de inicio de sesin a una funcin fija de servidor
Para agregar una cuenta de inicio de sesin como miembro de una funcin fija del
servidor, puede utilizar Propiedades de inicio de sesin en el Administrador
corporativo de SQL Server o el procedimiento almacenado del sistema
sp_addsrvrolemember. Slo los miembros de las funciones fijas del servidor
pueden ejecutar el procedimiento almacenado del sistema sp_addsrvrolemember.
Cuando se agrega una cuenta de inicio de sesin a una funcin del servidor, la fila
correspondiente de la cuenta de inicio de sesin en la tabla sysxlogins se actualiza
para indicar que la cuenta de inicio de sesin es miembro de la funcin y tiene
permisos asociados con la funcin del servidor.
Al asignar cuentas de inicio de sesin a funciones fijas del servidor, tenga en
cuenta los siguientes hechos:

116

No puede agregar, modificar ni quitar funciones fijas de servidor.

Excelencia Acadmica

Cualquier miembro de una funcin fija del servidor puede agregar otras
cuentas de inicio de sesin a esa funcin.

El procedimiento almacenado del sistema sp_addsrvrolemember no se


puede ejecutar en una transaccin definida por el usuario.

Tambin puede utilizar el procedimiento almacenado del sistema


sp_dropsrvrolemember para quitar un miembro de una funcin fija del servidor.
b) Funciones fijas de base de datos (Roles)
Las funciones fijas de base de datos permiten agrupar los privilegios
administrativos en el nivel de base de datos. Las funciones fijas de base de datos
estn almacenadas en la tabla del sistema sysusers de cada base de datos.
La funcin publica:
La funcin public es una funcin de base de datos especial a la que pertenecen
todos los usuarios de la base de datos y que no se puede quitar. La funcin public:
Mantiene todos los permisos predeterminados de los usuarios de una base
de datos.
No puede tener usuarios, grupos o funciones asignados, ya que los
usuarios, grupos y funciones ya pertenecen a ella de forma
predeterminada.

Se encuentra en todas las bases de datos, incluidas las bases de datos


master, msdb, tempdb, model y todas las bases de datos de usuario.

No se puede eliminar.
Sin los permisos apropiados, un usuario se puede conectar a SQL Server, pero
slo puede llevar a cabo unas tareas limitadas. Sin permisos, los usuarios poseen
todos los permisos que se hayan concedido a la funcin public y pueden:
Ejecutar instrucciones que no requieran permisos, como la instruccin
PRINT.
Ver informacin de las tablas del sistema y ejecutar ciertos procedimientos
almacenados del sistema para obtener informacin de la base de datos
master y las bases de datos de usuario a las que tengan acceso.
Tener acceso a cualquier base de datos con una cuenta guest.

117

Excelencia Acadmica

Asignacin de una cuenta de seguridad a una funcin fija de base de


datos
Para agregar una cuenta de seguridad como miembro de una funcin fija de
base de datos, utilice el Administrador corporativo de SQL Server o el
procedimiento almacenado del sistema sp_addrolemember. Slo los
miembros de la funcin db_owner pueden ejecutar el procedimiento
almacenado del sistema sp_addrolemember para cualquier funcin de la base
de datos.
Al asignar cuentas de seguridad a una funcin fija de base de datos, tenga en
cuenta los siguientes hechos:

Las funciones fijas de base de datos no se pueden agregar, modificar


ni quitar.

Cualquier miembro de una funcin fija de base de datos puede agregar


otras cuentas de inicio de sesin a esa funcin.

Tambin puede utilizar el procedimiento almacenado del sistema


sp_droprolemember para eliminar una cuenta de seguridad de una funcin
c) Funciones de base de datos definidas por el usuario.
La creacin de una funcin de base de datos definida por el usuario permite crear
un grupo de usuarios con un conjunto de permisos comunes. Debe agregar una
funcin definida por el usuario a la base de datos en los casos siguientes:

Cuando un grupo de personas necesite realizar un conjunto de actividades


especificado en SQL Server y no exista un grupo de Windows aplicable.

Si no tiene permisos para administrar las cuentas de usuario de Windows.

Por ejemplo, una compaa puede constituir un comit benfico que incluya
empleados de diferentes departamentos en distintos niveles. Los empleados
necesitan tener acceso a una tabla especial del proyecto en la base de datos. No
existe ningn grupo de Windows que incluya slo a esos empleados y no hay
ninguna otra razn para crear uno en Windows. Podra crear una funcin definida
por el usuario, CharityEvent, para ese proyecto y luego agregar cuentas de
usuario de Windows individuales a la funcin. Cuando se apliquen los permisos, las
cuentas de usuario individuales de la funcin obtendrn acceso a la tabla.
Creacin de una funcin de base de datos definida por el usuario
Para crear una nueva funcin de base de datos, utilice el Administrador
corporativo de SQL Server o el procedimiento almacenado del sistema
sp_addrole. Por cada funcin definida por el usuario se agrega una entrada a
la tabla sysusers de la base de datos actual. Slo los miembros de la funcin
db_securityadmin o db_owner pueden ejecutar sp_addrole.
Al crear una funcin de base de datos, tenga en cuenta lo siguiente:
Cuando aplique permisos a la funcin, todos los miembros de la funcin
obtendrn el efecto del permiso, igual que si el permiso se hubiera aplicado
directamente a las propias cuentas de los miembros.
Asignacin de una cuenta de seguridad a una funcin de base de datos
definida por el usuario
118

Excelencia Acadmica

Despus de crear una funcin, utilice el Administrador corporativo de SQL


Server o el procedimiento almacenado del sistema sp_addrolemember para
agregar usuarios o funciones como miembros de la funcin. Slo los miembros
de la funcin fija del servidor sysadmin o de las funciones fijas de base de
datos db_securityadmin y db_owner, o el propietario de la funcin pueden
ejecutar sp_addrolemember para agregar un miembro a una funcin de base
de datos definida por el usuario.
Al asignar cuentas de seguridad a una funcin de base de datos definida por el
usuario, tenga en cuenta los siguientes hechos:

Cuando agregue una cuenta de seguridad a una funcin, todos los


permisos aplicados a la funcin se aplican al nuevo miembro.

Cuando agrega una funcin de SQL Server como miembro de otra


funcin de SQL Server, no se pueden crear funciones recursivas. Por
tanto, cuentaDeSeguridad no se podra agregar como miembro de
funcin si funcin ya fuera miembro de cuentaDeSeguridad.

6. ASIGNACIN DE PERMISOS A USUARIOS Y FUNCIONES


Despus de haber asignado cuentas de inicio de sesin a cuentas de usuario y funciones,
debe asignar permisos para exigir la seguridad de la base de datos.
Los permisos especifican para qu objetos de la base de datos tienen autorizacin los
usuarios y qu pueden hacer los usuarios con esos objetos. Los permisos que un usuario
tiene en una base de datos dependen de los permisos de la cuenta de usuario y de las
funciones a las que pertenezca el usuario. Es importante disear los permisos que vaya a
conceder a cada usuario o cada grupo. Todas las bases de datos tienen su propio sistema
de permisos independiente.

a) Tipos de Permisos:

Figura 5.5: Tipos de permisos

119

Excelencia Acadmica

Hay tres tipos de permisos en SQL Server: de instruccin, de objeto y predefinidos.

Permisos de instruccin:
Las actividades relativas a la creacin de bases de datos o de elementos
en una base de datos requieren una clase de permisos llamada permisos
de instruccin. Los permisos de instruccin ofrecen a los usuarios el
privilegio de emitir ciertas instrucciones Transact-SQL. Los permisos de
instruccin, como CREATE DATABASE, se aplican a la misma instruccin,
no al elemento especfico que se define en la base de datos. Slo los
miembros de la funcin sysadmin, db_owner o db_securityadmin
pueden conceder permisos de instruccin.

Permisos de objeto:
Las actividades relacionadas con los datos o la ejecucin de
procedimientos requieren una clase de permisos conocida como permisos
de objeto.
Permisos de tablas y vistas
Los permisos de objeto para tablas y vistas controlan la capacidad de
que los usuarios ejecuten las instrucciones SELECT, INSERT,
UPDATE y DELETE en la tabla o la vista.
Permisos de columna
Los permisos SELECT, UPDATE y REFERENCES se pueden aplicar
de forma selectiva a columnas individuales.
Cuando un usuario agrega una fila a una tabla que tiene una restriccin
FOREIGN KEY, o cambia los datos de una columna que tiene una
restriccin FOREIGN KEY, SQL Server tiene que validar los datos de la
columna con los datos a los que se haga referencia en la restriccin
FOREIGN KEY. Si el usuario no tiene permisos SELECT en la columna
o la tabla de referencia, se le debe conceder el permiso REFERENCES
para la columna.
Permisos de procedimientos almacenados
El permiso EXECUTE es el nico permiso de objeto para los
procedimientos almacenados.

Permisos predefinidos
Slo los miembros de funciones fijas o los propietarios de los objetos de
base de datos pueden desempear ciertas actividades. Los permisos que
ejecutan dichas actividades se conocen como permisos predefinidos o
implcitos.
Permisos de funcin fija
Las funciones fijas tienen permisos administrativos implcitos. Por
ejemplo, un usuario que sea a miembro de la funcin sysadmin hereda
automticamente todos los permisos para hacer o leer cualquier cosa
en una instalacin de SQL Server. La funcin sysadmin tiene permisos
que no se pueden cambiar, as como permisos implcitos que no se

120

Excelencia Acadmica

pueden aplicar a otras cuentas de usuario, como la posibilidad de


configurar la instalacin de SQL Server.
Permisos de los propietarios de objetos
Los propietarios de objetos tambin tienen permisos implcitos que les
permiten realizar todas las actividades con los objetos de su propiedad.
Por ejemplo, un usuario que sea el propietario de una tabla o un
miembro de un grupo que se haya definido como propietario de la
tabla, puede desempear cualquier actividad relativa a la tabla. El
usuario puede ver, agregar o eliminar datos; alterar la definicin de la
tabla y controlar los permisos que permiten que otros usuarios trabajen
con ella.

7. CONCESIN, DENEGACIN Y REVOCACIN DE PERMISOS

Figura 5.6: Concesin, denegacin y revocacin de permisos

Los permisos de un usuario o una funcin pueden estar en uno de tres estados: concedido,
denegado o revocado. Los permisos que no se han concedido ni denegado a un usuario
son neutros, como si se hubieran revocado. Los permisos se almacenan como entradas de
la tabla del sistema sysprotects en cada base de datos. En la tabla siguiente se describen
los tres estados de un permiso.
Instruccin

Estado de la entrada en la
tabla sysprotects

Descripcin

GRANT

Positivo

Puede ejecutar una accin.

DENY

Negativo

No puede ejecutar una accin y no


puede ser sobrescrito por la
pertenencia a una funcin.

REVOKE

Ninguno

No puede ejecutar una accin, pero


puede ser sobrescrito por la
pertenencia a una funcin.

121

Excelencia Acadmica

a) Concesin de permisos para permitir el acceso


Puede conceder permisos a cuentas de seguridad y permitir que las cuentas
realicen actividades o trabajen con los datos de una base de datos.
Al conceder permisos, tenga en cuenta los siguientes hechos:

Slo puede conceder permisos en la base de datos actual.

El derecho para conceder permisos corresponde de forma predeterminada


a los miembros de las funciones sysadmin, db_owner y
db_securityadmin, y a los propietarios de objetos.

Puede conceder permisos con el Administrador corporativo de SQL Server o con la


instruccin GRANT.
Los permisos disponibles varan en funcin de los objetos seleccionados. Por
ejemplo, un procedimiento almacenado tiene permisos EXECUTE; una tabla o
una vista tienen los permisos SELECT, INSERT, UPDATE, DELETE y
permisos de integridad referencial; y las columnas individuales de una tabla o
vista tienen los permisos SELECT y UPDATE

Figura 5.7: oncesin de permisos


b) Denegacin de permisos para impedir el acceso
Puede que, ocasionalmente, desee limitar los permisos de un usuario o una
funcin; para ello, puede denegar los permisos a esa cuenta de seguridad. La
denegacin de permisos de una cuenta de seguridad:

Quita los permisos previamente concedidos al usuario o funcin.

Desactiva los permisos heredados de otra funcin.

Asegura que el usuario o funcin no herede permisos de otra funcin en el


futuro.

Al denegar permisos, tenga en cuenta los siguientes hechos:

Slo puede denegar permisos en la base de datos actual.

El permiso para denegar permisos corresponde de forma predeterminada a


los miembros de las funciones sysadmin, db_owner y db_securityadmin, y
a los propietarios de los objetos.

Para denegar permisos, puede utilizar el Administrador corporativo de SQL Server


o la instruccin DENY.
122

Excelencia Acadmica

c) Revocacin de permisos concedidos y denegados


Para desactivar un permiso concedido o denegado, puede revocarlo. La revocacin
de permisos es similar a la denegacin de permisos en que ambas acciones quitan
un permiso concedido. La diferencia estriba en que mientras la revocacin de un
permiso quita un permiso concedido, no impide que el usuario o la funcin hereden
ese permiso en el futuro.
Tambin puede quitar un permiso previamente denegado si revoca la instruccin
DENY del permiso.
Al revocar permisos, tenga en cuenta los siguientes hechos:

Slo puede revocar permisos en la base de datos actual.

La revocacin de un permiso quita las entradas de la tabla del sistema


syspermissions que se crearon al conceder o denegar el permiso.

Los permisos para revocar permisos corresponden de forma


predeterminada a los miembros de las funciones sysadmin, db_owner y
db_securityadmin, y a los propietarios de los objetos.

Para quitar un permiso previamente concedido o denegado, puede utilizar el


Administrador corporativo de SQL Server o la instruccin REVOKE.

Figura 5.7: Revocacin de permisos

8. ADMINISTRACIN DE LA SEGURIDAD DE SQL SERVER EN LA EMPRESA


Al utilizar SQL Server en un entorno empresarial, se deben tener en cuenta ciertas
cuestiones relacionadas con la seguridad. Puede utilizar Directivas de grupo para
proporcionar configuraciones de seguridad a varios usuarios y equipos. Los servidores
proxy, servidores de seguridad y enrutadores pueden proteger la red interna de accesos
internos no autorizados, y usted podr utilizar funciones de cifrado en las comunicaciones
en Windows para garantizar no se puedan leer los paquetes de datos en caso de que se
tenga acceso a ellos.
a) Utilizacin de directivas de grupo para proteger SQL Server:
En Windows 2000/2003 puede utilizar directivas de grupo para definir las
configuraciones de usuario y equipo para grupos de usuarios y equipos. Las
directivas de grupo se puede utilizar para configurar muchas opciones, entre las
que se incluyen directivas basadas en el Registro, opciones de seguridad, e
instalacin de software.

123

Excelencia Acadmica

Directivas de cuenta: Las directivas de cuenta son configuraciones de


seguridad de equipos para la directiva de contrasea, la directiva de
bloqueo y directiva Kerberos en dominios de Windows 2000/2003

Grupos restringidos. Los grupos restringidos permiten controlar quin


pertenece a un grupo determinado as como los grupos a los que debera
pertenecer un grupo restringido. Los grupos restringidos permiten a los
administradores exigir directivas de seguridad relacionadas con grupos
importantes, como Administradores de la empresa o Nminas
Por ejemplo, puede decidir que slo Jos y Mara sean miembros del grupo
Administradores de la empresa. Se pueden utilizar grupos restringidos para
exigir dicha directiva. Si se agrega un tercer usuario al grupo (por ejemplo,
para llevar a cabo alguna tarea en una situacin de emergencia), la
siguiente vez que se exija la directiva se quitar a ese tercer usuario
automticamente del grupo Administradores de la empresa.

Directivas de software. Se puede utilizar la directiva de grupo para definir


los valores predeterminados que se aplicarn automticamente a los
usuarios y equipos. Estos valores de configuracin pueden determinar las
opciones de seguridad y controlar qu software est disponible para
determinados grupos de usuarios.

b) Utilizacin de servidores proxy, servidores de seguridad y enrutadores:

Figura 5.8: Seguridad en la empresa


Si conecta SQL Server a internet se pueden originar problemas de seguridad
adicionales. Es necesario que se asegure que solo los usuarios autorizados
pueden tener acceso a la base de datos del servidor y que stos slo pueden tener
acceso a los recursos necesarios para el proceso empresarial.
Conexiones a SQL Server a travs de un servidor proxy
Puede permitir conexiones a SQL Server a travs de Microsoft Proxy Server, una
aplicacin independiente que proporciona acceso seguro a y desde internet. Esto le
permite impedir que usuarios no autorizados se conecten a su red privada. Protege
124

Excelencia Acadmica

los datos confidenciales mediante el control de todos los permisos y del acceso al
puerto escucha.
Seguridad mediante servidores de seguridad
Los servidores de seguridad constituyen una de las mejores maneras de proteger
el sistema frente a ataques de usuarios a travs de Internet. Un servidor de
seguridad restringe tanto el acceso entrante como el saliente, concediendo
permisos a los usuarios de Windows o impidiendo que los datos pasen a travs de
determinados puertos TCP/IP. Tambin analizan todo el trfico que se produce
entre la red e Internet.
Puede utilizar las caractersticas del servidor de seguridad de Proxy Server para
controlar el flujo de informacin que va a Proxy Server y el que viene de l. Proxy
Server admite el filtrado de paquetes entrantes y salientes. Determina de forma
dinmica qu paquetes pueden pasar al circuito de red interno y a los servicios
proxy de nivel de aplicacin. Los filtros de paquetes individuales se configuran para
que slo los paquetes especificados pasen a travs de Proxy Server. Esto permite
que los puertos se abran automticamente, slo cuando es necesario, y que se
cierren en cuanto finalice la comunicacin. Esta prctica reduce el nmero de
puertos expuestos en cualquier direccin y proporciona un alto nivel de seguridad a
la red.
A los sitios Web normalmente se tiene acceso a travs del puerto 80 y este puerto
se debe habilitar para que los usuarios de Internet puedan tener acceso a su sitio
web. Si el sitio utiliza pginas Active Server (ASP) o algn otro mecanismo de
secuencias de comandos para tener acceso a los datos desde SQL Server y
devolverlos al cliente como Lenguaje de marcado de hipertexto (HTML), entonces
no necesitara habilitar ningn otro puerto.
Muchas aplicaciones basadas en Web utilizan dos servidores de seguridad. El
primero separa el servidor Web de Internet y permite el acceso slo a travs del
puerto 80. El servidor Web reside en un rea semisegura denominada red de
permetro y tiene acceso a la base de datos de SQL Server a travs de un segundo
servidor de seguridad situado entre la red de permetro y la corporativa. El nmero
de socket oficial de la Autoridad para la asignacin de nmeros en Internet (IANA,
Internet Assigned Numbers Authority) para SQL Server es 1433 (aunque se puede
configurar estableciendo una clave de Registro). Al configurar el acceso a SQL
Server mediante TCP/IP, es necesario dejar que pasen los datos a travs de este
puerto. A una instancia con nombre de SQL Server se le asignar automticamente
un puerto cuando se inicie la instancia, pero si desea utilizar servicios proxy con
una instancia con nombre, debera sobrescribir sta o asignar un puerto fijo a la
instancia con nombre utilizando la Herramienta de red de SQL Server. Si la
comunicacin se efecta a travs de COM+, el puerto 135 debe estar habilitado
junto con un intervalo de valores que el protocolo COM+ utiliza para negociar la
conectividad con el cliente.
Enrutadores
Las caractersticas de enrutador incorporadas en los servidores Windows permiten
a los servidores actuar como enrutadores. Un enrutador (o puerta de enlace) es un
dispositivo que reenva paquetes de Protocolo Internet (IP) de una red a otra. Para
configurar los datos que entran en la red y que salen de ella, puede utilizar un
enrutador junto con un servidor de seguridad.

125

Excelencia Acadmica

c) Utilizacin del cifrado en las comunicaciones para proteger datos.


Al transmitir paquetes de datos a travs de una red o de Internet, debe asegurarse
de que no se puedan leer los paquetes en caso de que se tenga acceso a ellos
Seguridad del protocolo Internet.
Windows Server incorpora Seguridad del protocolo Internet (IPSec) para la
proteccin de los datos a travs del trfico de la red. Es un conjunto de estndares
de Internet que utiliza seguridad de cifrado para proporcionar:

Confidencialidad. El trfico IPSec est cifrado. El trfico IPSec capturado


no es inteligible sin la clave de cifrado.

Autenticacin. IPSec autentica al emisor de paquetes de datos IP


mediante la autenticacin Kerberos, certificados digitales o una clave
secreta compartida.

Integridad de los datos. El trfico IPSec contiene una suma de


comprobacin cifrada que incorpora la clave de cifrado. El receptor puede
comprobar que el paquete no ha sido modificado por el camino.

Se puede configurar la directiva de seguridad IPSec para cada dominio o para cada
equipo local definiendo un conjunto de reglas y filtros que se aplicarn para regular
la comunicacin segura con clientes IPSec determinados.
Capa de sockets seguros
SQL Server puede utilizar el nivel de socket seguro (SSL) para cifrar todos los
datos transmitidos entre un cliente y un servidor.
El cifrado SSL slo funciona con instancias de SQL Server a las que se ha
asignado un certificado de una autoridad emisora de certificados (CA) pblica (CA).
Los certificados de servidor permiten al cliente identificar con toda seguridad el
servidor antes de compartir informacin confidencial. El equipo cliente debe tener
tambin un certificado de una entidad emisora de certificados raz de la misma
autoridad. Los certificados de cliente contienen informacin personal acerca de los
clientes que solicitan acceso al servidor.
La informacin de los certificados se utiliza para cifrar los datos. De esta manera se
garantiza que slo el servidor y el cliente pueden descifra la informacin.
Se puede utilizar la Herramienta de red de SQL Server para habilitar el cifrado SSL
para todos los protocolos de servidor habilitados. El cifrado se activa o desactiva
para todos los protocolos de servidor habilitados y no se puede especificar el
cifrado para un protocolo concreto.

126

Excelencia Acadmica

1. Implementar el modo de autenticacin Windows. Crear un login y asignarle usuarios de


base de datos. Asgnele diferentes permisos al usuario y pruebe.

Esta unidad trato detalles de implementacin de la seguridad, comenzando con la


descripcin de cmo se configura el modo de autenticacin en un servidor y cmo se
concede acceso a usuarios y grupos de Microsoft Windows 2000/2003 y a usuarios de
Microsoft SQL Server 2005. Despus se vio cmo se asignan cuentas de inicio de sesin
a usuarios y funciones, y cmo se asignan permisos a usuarios y funciones.

[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

En la siguiente unidad temtica detallaremos aspectos relacionados al monitoreo de la base de datos

127

Excelencia Acadmica

ADMINISTRACION DE BASES DE DATOS


UNIDAD ACADMICA N 5
NOMBRE:__________________________________________________________________
APELLIDOS:________________________________________FECHA; ____/_____/______
CIUDAD:_______________________________SEMESTRE:_________________________

1.

Qu pueden hacer los usuarios despus de ser autenticados si sus cuentas de inicio de sesin no tienen
permisos en ninguna base de datos?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

2.

Cul es la diferencia entre la autenticacin Windows y la autenticacin del modo mixto?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

3.

Qu es una cuenta de inicio de sesin?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

4.

Cuntos usuarios pueden ser asignados a una cuenta de inicio de sesin?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

5.

Cmo se asigna un rol de base de datos?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

128

Excelencia Acadmica

MONITOREO DE LA BASE DE DATOS


SQL Server acta como un servicio para proporcionar datos a las aplicaciones. El ajuste del
rendimiento tiene como objetivo la optimizacin de dicho servicio para la aplicacin. La optimizacin debe
concentrarse en reducir al mnimo el tiempo de respuesta de cada consulta y aumentar lo mximo posible
el rendimiento de todo el servidor de bases de datos mediante la reduccin del trfico de red, la entrada y
salida (E/S) en disco, y el tiempo de CPU. Para conseguir este objetivo, debe comprender los requisitos de
la aplicacin, la estructura lgica y fsica de los datos, y el equilibrio entre los usos conflictivos de la base
de datos, por ejemplo, entre el proceso de transacciones en lnea (OLTP, Online Transaction Processing) y
la toma de decisiones.

Al finalizar el estudio de la presente unidad temtica el estudiante:

Describe las razones por las que es importante la supervisin de SQL Server.

Desarrolla una metodologa de supervisin y optimizacin del rendimiento.

Describe las herramientas disponibles para supervisar SQL Server.

Realiza tareas de supervisin y optimizacin habituales mediante los contadores y


herramientas apropiadas.

1. POR QUE SUPERVISAR EL RENDIMIENTO DE LA BASE DE DATOS?


SQL Server acta como un servicio para proporcionar datos a las aplicaciones. El ajuste
del rendimiento tiene como objetivo la optimizacin de dicho servicio para la aplicacin. La
optimizacin debe concentrarse en reducir al mnimo el tiempo de respuesta de cada
consulta y aumentar lo mximo posible el rendimiento de todo el servidor de bases de
datos mediante la reduccin del trfico de red, la entrada y salida (E/S) en disco, y el
tiempo de CPU. Para conseguir este objetivo, debe comprender los requisitos de la
aplicacin, la estructura lgica y fsica de los datos, y el equilibrio entre los usos conflictivos
de la base de datos, por ejemplo, entre el proceso de transacciones en lnea (OLTP, Online
Transaction Processing) y la toma de decisiones.
Los problemas de rendimiento deben considerarse durante el ciclo de desarrollo, no slo
en la fase final de implementacin del sistema. Muchas de las soluciones que mejoran
significativamente el rendimiento se obtienen gracias a un diseo pormenorizado desde el
comienzo del proyecto.
Por lo general, SQL Server administra automticamente los recursos de hardware
disponibles. Es evidente que otros problemas de rendimiento del sistema, como la memoria
y el hardware, afectan al rendimiento, aunque las mejoras que pueden obtenerse en estas
reas a menudo son incrementales

2. SUPERVISION Y OPTIMIZACION DEL RENDIMIENTO

129

Excelencia Acadmica

La supervisin de un sistema puede ser una tarea compleja debido al gran nmero de
variables implicadas. Puede utilizar diferentes estrategias para plantear la optimizacin del
rendimiento del sistema en reas especficas. Dichas estrategias deben integrarse de
modo que sea posible localizar cualquier causa y efecto relacionados. El desarrollo de este
plan se inicia con las fases de requisitos del usuario y diseo de aplicaciones. A partir de
este punto, el plan debe abarcar la identificacin de las mejoras de rendimiento en las
reas ms tradicionales.
a) Estrategias para la optimizacin del rendimiento
El objetivo de la optimizacin es mejorar el rendimiento. Hay muchos factores que
pueden afectar al rendimiento, por lo que necesitar varias estrategias para
optimizar una instancia de la base de datos. Dichas estrategias deben mejorar el
rendimiento en ambos extremos de la aplicacin, el servidor y el usuario o cliente
empresarial. Hay dos indicadores del rendimiento:

Tiempo de respuesta. Mide el intervalo de tiempo necesario para devolver


la primera fila del conjunto de resultados.
Normalmente, se llama tiempo de respuesta al tiempo que percibe el
usuario hasta que recibe una confirmacin visual de que una consulta se
ha procesado.

Rendimiento. Mide el nmero total de consultas que el servidor puede


procesar en un intervalo de tiempo dado.

Deber supervisar ambas reas, ya que los problemas de conflictos aumentan a


medida que el nmero de usuarios se incrementa; esto podra causar un aumento
de los tiempos de respuesta del servidor y una reduccin del rendimiento global. Si
supervisa exclusivamente el rendimiento del servidor no tendr informacin acerca
del rendimiento de la aplicacin para los usuarios. Y al contrario, si supervisa
exclusivamente la aplicacin averiguar cules son los problemas, pero no podr
resolverlos.
Optimizacin del tiempo de respuesta
Para optimizar las necesidades comerciales y los tiempos de respuesta es
necesario conocer la aplicacin, el entorno, los usuarios y los datos. Para usar este
enfoque debe disponer de informacin acerca de las consultas que los usuarios
emiten y realizar, a continuacin, los ajustes necesarios en las consultas y la
aplicacin. Por lo general, el objetivo consiste en mejorar el rendimiento de
consultas especficas o de aplicaciones seleccionadas
Optimizacin del rendimiento
La optimizacin del rendimiento y el procesamiento del servidor requiere
conocimientos acerca de cmo SQL Server tiene acceso a los datos, controla las
actividades simultneas e interacta con el sistema operativo. Esto podr ayudarle
a crear un diseo lgico y fsico ms eficaz para configurar el sistema, disear
transacciones y escribir consultas con el fin de optimizar el rendimiento
b) Seleccin de un mtodo para optimizar el rendimiento
Es posible plantear la optimizacin de la empresa y el servidor en varios
elementos, ya que factores como el diseo de la aplicacin, los recursos del
sistema y el sistema operativo pueden afectar al rendimiento. Para mejorar el
rendimiento puede:

130

Excelencia Acadmica

Optimizar la aplicacin de cliente. Para ello debe:

Escribir consultas que limiten las bsquedas.

Crear ndices tiles.

Reducir el nmero de conflictos de bloqueo y evitar los


interbloqueos.

Usar procedimientos almacenados que reduzcan los conflictos y


aumenten la simultaneidad.

Descargar y procesar datos desde el servidor siempre que sea


apropiado.

Optimizar la base de datos. Esto puede mejorar el tiempo de respuesta


de las consultas. Para optimizar la base de datos, perfeccione el diseo
lgico y fsico.

Optimizar SQL Server. Para optimizar SQL Server puede evaluar el


diseo de almacenamiento o, en algunos casos, ajustar las opciones de
configuracin.

Optimizar la configuracin del hardware. El cambio de la configuracin


de hardware tambin puede mejorar el rendimiento del sistema. Por
ejemplo, puede agregar ms memoria, procesadores o equipos; conseguir
discos duros ms rpidos; o incrementar el rendimiento de red.

Al planear el ajuste y la optimizacin de la base de datos, debe considerar los


elementos citados anteriormente como cuellos de botella e identificar su
impacto en el rendimiento del servidor y en los tiempos de respuesta de los
usuarios.
c) Desarrollo de una metodologa de optimizacin del rendimiento
La metodologa de optimizacin del rendimiento debe considerarse durante el ciclo
de desarrollo de la aplicacin, no slo en la fase de implementacin del sistema. Es
necesario administrarla y documentarla cuidadosamente para evitar
investigaciones innecesarias en direcciones que no lleven a ninguna conclusin.
Diseo para mejorar el rendimiento:
Algunos elementos que afectan al rendimiento son difciles de optimizar una vez
que la base de datos est en funcionamiento. La preocupacin acerca del
rendimiento de SQL Server debe ser una parte integral del proceso de diseo de la
aplicacin. Debe:

Analizar las expectativas y requisitos del usuario. Considerar si la


aplicacin tiene destinatarios de datos secundarios, por ejemplo, clientes
que telefonean a operadores de centralitas que emplean aplicaciones de
entrada de pedidos u ofertas de productos.

Conocer los datos y cmo se seleccionan, cules son los posibles valores,
qu informacin representan y cmo se utilizan.

Disear una base de datos que utilice apropiadamente la normalizacin y la


desnormalizacin, y aplicar diseos de esquema relacionales, en estrella y
de copo de nieve, siempre que sea necesario.

Desarrollar y probar procedimientos almacenados.


131

Excelencia Acadmica

Disear la estrategia de indizacin y optimizar las consultas.

Programar un mantenimiento y una monitorizacin continuada

Plan para mejorar el rendimiento:


Como parte del plan de optimizacin del rendimiento, desarrolle una referencia
basada en el entorno de prueba del diseo. El diseo y la prueba son procesos
continuos para garantizar que los cambios realizados realmente mejorarn el
rendimiento. Debe:

Definir los parmetros de funcionamiento del servidor para los recursos, la


carga y el rendimiento.

Establecer objetivos para el rendimiento y los tiempos de respuesta.

Documentar todas las acciones y medir sus efectos.

Probar un entorno de produccin simulado.

Analizar las transacciones de cada base de datos.

Identificar los problemas de rendimiento.

Establecer una referencia de rendimiento.

d) Establecimiento de una referencia de rendimiento


No siempre es necesario que las tareas se realicen de la forma ms rpida. Si una
consulta o resultado se necesita en dos segundos, SQL Server deber
proporcionarla en dos segundos. Es posible que el tiempo y los recursos
necesarios para optimizar todava ms una consulta no sean rentables.
Cinco factores clave influyen en el rendimiento de una base de datos:

Carga de trabajo. El volumen de actividad del servidor.

Rendimiento. Nmero total de consultas en un intervalo de tiempo dado.

Recursos de sistema. Capacidad fsica del hardware del equipo.

Optimizacin. Diseo de la aplicacin y la base de datos.

Conflictos. La competencia por los registros de datos.

El plan de rendimiento y las medidas de referencia deben considerar estas reas.


Cuando haya definido los parmetros de funcionamiento, as como los recursos,
las cargas y los objetivos necesarios para el plan de rendimiento, deber
supervisar el sistema. Identifique y establezca la referencia de rendimiento a lo
largo de un perodo. Realice mediciones para determinar:

132

Las horas de actividad mxima y mnima de la base de datos.

Los tiempos de respuesta de los comandos de proceso por lotes y consulta


de produccin.

Los tiempos de ejecucin de los procesos de restauracin y copia de


seguridad de la base de datos.

Excelencia Acadmica

Una vez establecida la referencia, podr comparar con ella el rendimiento real del
servidor en cada momento y as determinar las reas que requieren investigacin.
Las cifras que estn por encima o por debajo de la referencia indican las reas en
las que podra realizarse una investigacin ms detallada

Figura 6.1: Establecimiento de una referencia de rendimiento


e) Deteccin de cuellos de botella en el rendimiento
Un cuello de botella es cualquier componente o actividad que limita el rendimiento.
Todos los sistemas tienen cuellos de botella, pero uno de los objetivos de la
supervisin de un servidor es localizar aqullos que reducen el rendimiento por
debajo de sus expectativas. Para ello, debe comprender la naturaleza y el
funcionamiento interno de las operaciones.
Decida qu examinar:
Debe supervisar el uso de la memoria, el uso de la CPU, el rendimiento de la
entrada y salida de disco, las conexiones de usuario y los bloqueos. Para
determinar el origen de un cuello de botella, observe las cuestiones relativas al
sistema antes de examinar las cuestiones referentes al cliente y a las consultas.
Por ejemplo, los cuellos de botella relacionados con el sistema y ocasionados por
el uso de los discos y la memoria pueden afectar al rendimiento general de toda la
aplicacin, incluidas las consultas individuales. La resolucin de cuestiones como
la hiperpaginacin en disco, antes de examinar el rendimiento de una consulta en
particular, resulta muy til.
Conozca el intervalo de rendimiento aceptable:
Como ocurre con cualquier tcnica para solucionar problemas, el conocimiento del
grado de rendimiento aceptable ayuda a identificar las reas problemticas. Las
cifras pequeas pueden ser tan significativas como las grandes. Una cifra menor o
mayor de lo esperado puede indicar un posible problema. En ocasiones, un
problema en un rea afecta desfavorablemente o disimula problemas en otra. Por
ejemplo:

Un componente puede evitar que la carga alcance a otro componente.

La congestin de la red puede impedir que las solicitudes de los clientes


lleguen al servidor.

133

Excelencia Acadmica

Los clientes pueden tener cuellos de botella que les impidan el acceso al
servidor.

Para descubrir los lmites reales, puede simular una carga de trabajo en SQL
Server mientras supervisa el sistema con las herramientas descritas en este
mdulo.
f) Tareas de supervisin habituales:
SQL Server proporciona herramientas que puede utilizar para examinar diversos
aspectos de su rendimiento. Estas herramientas ofrecen distintos grados de detalle
para ayudarle a aislar las reas con problemas. Su objetivo debe ser determinar el
factor que tiene un mayor efecto en el rendimiento. A menudo, para aislar el cuello
de botella es necesario repetir varias veces este proceso de supervisin.
Supervisin del sistema:
Al evaluar el sistema, obsrvelo primero desde una perspectiva ms general, para
asegurarse de que dispone de hardware suficiente para satisfacer los requisitos de
las tareas que debe realizar. A continuacin, valore los efectos de la configuracin
del sistema operativo y el diseo de la aplicacin. Para este tipo de supervisin,
puede utilizar:

Visor de sucesos de Windows 2000.

Monitor de sistema de Windows.

Supervisin especfica de SQL Server


A continuacin, supervise reas especficas de SQL Server. Observe la actividad
de SQL Server y la coherencia de los datos. Supervise la cantidad de bloqueos y
conflictos por los recursos, y el uso de conexiones de usuarios. Para este tipo de
supervisin, puede utilizar:

La ventana Actividad actual del Administrador corporativo de SQL Server.

Procedimientos almacenados del sistema e instrucciones de Transact-SQL.

Analizador de SQL.

Utilice instrucciones del comprobador de coherencia de la base de datos (DBCC,


Database Consistency Checker) para asegurar que las estructuras internas de
datos son correctas.
Rendimiento de consultas especficas
Por ltimo, examine consultas especficas para evaluar su rendimiento. Entre los
elementos que puede revisar se encuentran el uso de ndices, el tiempo de CPU de
una consulta y la E/S efectiva. Para este grado detallado de supervisin puede usar
el Analizador de SQL, el Analizador de consultas SQL y el Asistente para
optimizacin de ndices.

134

Excelencia Acadmica

3. HERRAMIENTAS PARA SUPERVISAR AL SGBDR:


a) Herramientas de supervisin y optimizacin del rendimiento de SQL
Server
Microsoft SQL Server incluye un conjunto de herramientas para supervisar los
eventos de SQL Server y para optimizar el diseo de la base de datos fsica. La
eleccin de la herramienta depende del tipo de supervisin u optimizacin que se
realice y de los eventos particulares que se supervisen.
A continuacin se describen las herramientas de supervisin y optimizacin de SQL
Server:

Herramienta

Analizador de SQL
Server

Supervisar el uso
de recursos
(Monitor de
sistema)

Descripcin
El Analizador de SQL Server realiza un seguimiento de
los eventos de procesos del motor, como el inicio de
un lote o una transaccin, que permite supervisar la
actividad del servidor y de la base de datos (por
ejemplo, interbloqueos, errores graves o actividad de
inicio de sesin). Puede capturar datos del Analizador
de SQL Server en un archivo o una tabla de SQL
Server para su anlisis posterior y tambin reproducir
paso a paso los eventos capturados en SQL Server,
para ver qu sucedi exactamente.
La funcin principal del Monitor de sistema es hacer un
seguimiento del uso de los recursos, como el nmero
de solicitudes de pgina del administrador de bfer
activas, que permite supervisar el rendimiento y
actividad del servidor mediante objetos y contadores
predefinidos o contadores definidos por el usuario para
supervisar eventos. El Monitor de sistema (Monitor de
rendimiento en Microsoft Windows NT 4.0) recopila
contadores y porcentajes en lugar de datos acerca de
los eventos (por ejemplo, uso de la memoria, nmero
de transacciones activas, nmero de bloqueos
bloqueados o actividad de la CPU). Puede establecer
umbrales en contadores especficos para generar
alertas que notifiquen a los operadores.
El Monitor de sistema funciona en los sistemas
operativos Microsoft Windows Server y Windows.
Puede supervisar (remota o localmente) una instancia
de SQL Server en Windows NT 4.0 o posterior.
La diferencia clave entre el Analizador de SQL Server
y el Monitor de sistema es que el Analizador de SQL
Server supervisa los eventos del motor de base de
datos, mientras que el Monitor de sistema supervisa el
uso de los recursos asociado con los procesos del
servidor.

Monitor de
actividad (SQL
Server
Management
Studio)

El Monitor de actividad de SQL Server Management


Studio muestra informacin grfica acerca de:
Los procesos que se ejecutan en una instancia de SQL
Server.

135

Excelencia Acadmica

Los procesos bloqueados.


Bloqueos.
La actividad de los usuarios.
Esto resulta til para vistas ad hoc de la actividad
actual.
Procedimientos almacenados de Transact-SQL que
crean, filtran y definen trazas:
sp_trace_create (Transact-SQL)
Introduccin a
Traza de SQL

sp_trace_generateevent (Transact-SQL)
sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)
sp_trace_setstatus (Transact-SQL)

Supervisar los
registros de
errores

El registro de sucesos de aplicacin de Windows


proporciona una imagen global de los eventos que
ocurren en todos los sistemas operativos Windows
Server y Windows, as como de los eventos de SQL
Server, el Agente SQL Server y la bsqueda de texto.
Contiene informacin acerca de los eventos de SQL
Server que no est disponible en ningn otro lugar.
Puede utilizar la informacin del registro de errores
para solucionar problemas relacionados con SQL
Server.
Los siguientes procedimientos almacenados del
sistema de SQL Server suponen una alternativa muy
eficaz para realizar muchas tareas de supervisin:
sp_who (Transact-SQL)
Notifica informacin de instantneas acerca de los
usuarios y procesos actuales de SQL Server, incluida
la informacin sobre la instruccin que se ejecuta
actualmente y si la instruccin est bloqueada.

Procedimientos
almacenados del
motor de base de
datos (TransactSQL)

sp_lock (Transact-SQL)
Proporciona informacin de instantnea acerca de
bloqueos, incluidos los identificadores de objeto y de
ndice, el tipo de bloqueo y el tipo o recurso al que se
aplica el bloqueo.
sp_spaceused (Transact-SQL)
Muestra una estimacin de la cantidad actual de
espacio en disco que utiliza una tabla (o toda la base
de datos).
sp_monitor (Transact-SQL)
Muestra estadsticas que incluyen el uso de la CPU, el
uso de E/S y el tiempo de inactividad desde la ltima
vez que se ejecut sp_monitor.

136

DBCC (TransactSQL)

Las instrucciones DBCC (Comandos de consola de


base de datos) permiten comprobar las estadsticas de
rendimiento y la coherencia lgica y fsica de una base
de datos.

Funciones

Las funciones integradas muestran estadsticas de

Excelencia Acadmica

(Transact-SQL)

instantneas acerca de la actividad de SQL Server


desde el inicio del servidor; estas estadsticas se
almacenan en contadores de SQL Server predefinidos.
Por ejemplo, @@CPU_BUSY contiene el tiempo que
la CPU ha estado ejecutando cdigo de SQL Server,
@@CONNECTIONS
contiene
el
nmero
de
conexiones o intentos de conexiones de SQL Server y
@@PACKET_ERRORS contiene el nmero de
paquetes de red generados en conexiones de SQL
Server.

Marcas de traza
(Transact-SQL)

Las marcas de traza muestran informacin acerca de


una actividad especfica en el servidor para
diagnosticar problemas o causas de bajo rendimiento
(por ejemplo, cadenas de interbloqueos).

Optimizar el
diseo fsico de
las bases de datos

El Asistente para la optimizacin de motor de base de


datos analiza los efectos en el rendimiento de las
instrucciones Transact-SQL ejecutadas en las bases
de datos que desea optimizar. El Asistente para la
optimizacin de motor de base de datos proporciona
recomendaciones para agregar, quitar o modificar
ndices, vistas indizadas y particiones.

Instrucciones DBCC
Puede utilizar instrucciones DBCC para comprobar el rendimiento y la actividad, as
como la coherencia lgica y fsica de una base de datos. La tabla siguiente
contiene algunas instrucciones DBCC que puede utilizar para supervisar el
rendimiento.
Instruccin DBCC

Proporciona informacin acerca de

SQLPERF

Estadsticas desde la ltima vez que se inici el


servidor.
Puede
establecerlas
para
reunir
informacin acerca del uso del espacio del registro
de transacciones en todas las bases de datos
(LOGSPACE), la entrada y salida de disco
(IOSTATS), el uso de memoria y cach
(LRUSTATS), o la actividad de red (NETSTATS).

OPENTRAN

La transaccin activa ms antigua, as como las


transacciones duplicadas distribuida y no distribuida
ms antiguas, si las hay, en la base de datos
especificada. Los resultados slo se muestran si hay
una transaccin activa o si la base de datos contiene
informacin de duplicacin.

SHOW_STATISTICS

Selectividad de un ndice, lo que supone la base


para determinar si un ndice es til para el
optimizador de consultas.

CHECKDB

Asignacin e integridad estructural de todos los


objetos de una base de datos.

137

Excelencia Acadmica

CHECKFILEGROUP

Asignacin e integridad estructural de todas las


tablas del grupo de archivos.

CHECKTABLE

Integridad de las pginas de datos, ndice o de


datos de tipo text, ntext o image de la base de
datos especificada.

Variables globales
Puede utilizar las variables globales siguientes para obtener estadsticas
especficas o informacin que pueda consultar.
Variable global

Objetivo

@@connections

Contiene el nmero de inicios de sesin o intentos de inicio


de sesin desde la ltima vez que se inici SQL Server.

@@error

Contiene el nmero de error de la ltima instruccin de


Transact-SQL ejecutada.

@@spid

Contiene el identificador de proceso de servidor del


proceso de usuario actual. Puede usar este valor para
identificar el proceso de usuario actual en la salida de
sp_who.

@@procid

Contiene el identificador de procedimiento almacenado del


procedimiento actual.

b) Herramientas de supervisin de Windows


Los sistemas operativos Windows y Windows Server 2003 proporcionan adems
estas herramientas de supervisin:
Herramienta

Descripcin

Administrador de
tareas

Muestra una sinopsis de los procesos y las


aplicaciones que se ejecutan en el sistema.

Agente de supervisin
de red

Supervisa el trfico de red.

Visor de sucesos de Windows 2000/2003


Utilice el Visor de sucesos de Windows 2000 para identificar sucesos que puedan
estar causando cuellos de botella en el rendimiento. Con esta informacin podr
determinar qu sucesos o reas del rendimiento conviene examinar con ms
detalle.
El Visor de sucesos de Windows 2000/2003 permite ver los registros de sucesos
descritos en la tabla siguiente.
138

Excelencia Acadmica

Tipo

Descripcin

Registro de aplicacin de Windows

Contiene los sucesos que registran


las aplicaciones, como SQL Server.
Por ejemplo, una aplicacin de
base de datos podra anotar un
error de archivo en el registro de
aplicacin.

Registro de sistema de Windows

Contiene sucesos que registran los


componentes de sistema de
Windows. Por ejemplo, un error al
cargar un controlador u otro
componente del sistema durante el
inicio del equipo se anotar en el
registro de sistema.

Registro de seguridad de Windows

Registra los sucesos de seguridad


de Windows, como los intentos de
iniciar una sesin en el sistema.

Monitor de sistema de Windows con SQL Server


Al supervisar SQL Server y el sistema operativo Microsoft Windows para investigar
problemas relacionados con el rendimiento, hay tres reas principales en las que
debe concentrarse inicialmente:

Actividad del disco

Uso del procesador

Uso de la memoria

Puede resultar til supervisar el sistema operativo Windows y los contadores de


SQL Server al mismo tiempo para determinar las posibles correlaciones entre el
rendimiento de SQL Server y el de Windows. Por ejemplo, la supervisin
simultnea de los contadores de E/S de disco de Windows y los contadores del
Administrador de bfer de SQL Server puede mostrar el comportamiento del
sistema en su totalidad.
La supervisin de un equipo en el que se ejecuta el Monitor de sistema puede
afectar un poco al rendimiento del equipo. Por tanto, registre los datos del Monitor
de sistema en otro disco o en otro equipo para reducir as el efecto en el equipo
que est supervisando, o bien ejecute el Monitor de sistema desde un equipo
remoto. Supervise slo los contadores en los que est interesado. Si supervisa
demasiados contadores, la sobrecarga de uso de los recursos se agrega al
proceso de supervisin y afecta al rendimiento del equipo que se est
supervisando.
El Monitor de sistema permite obtener estadsticas sobre la actividad y el
rendimiento actuales de SQL Server. Con el Monitor de sistema, puede:

Ver simultneamente datos de cualquier nmero de equipos.

Ver y cambiar grficos para reflejar la actividad actual y mostrar valores


de contadores que se actualizan con la frecuencia definida por el
usuario.

139

Excelencia Acadmica

Exportar datos desde grficos, registros, registros de alertas e informes


a aplicaciones de hoja de clculo o de base de datos para manipularlos
e imprimirlos.

Agregar alertas del sistema que muestran un evento en el registro de


alertas y que pueden notificarse mediante una alerta de red.

Ejecutar un programa predefinido la primera vez, o todas las veces,


que el valor de un contador sea superior o inferior a un valor definido
por el usuario.

Crear archivos de registro que contengan datos relativos a diversos


objetos de equipos diferentes.

Anexar a un archivo secciones seleccionadas de otros archivos de


registro existentes para crear un archivo de almacenamiento a largo
plazo.

Ver informes de la actividad actual o crear informes a partir de archivos


de registro existentes.

Guardar la configuracin de grficos, alertas, registros o informes


individuales, o bien de toda el rea de trabajo, para volverla a utilizar.

Elegir una herramienta de supervisin


La eleccin de la herramienta de supervisin depende del evento o de la actividad
que se va a supervisar.

Evento o actividad

Analizad
or de
SQL
Server

Monitor
de
sistema

Anlisis de
tendencias

Reproduccin de los
eventos capturados

Supervisin ad hoc

Generacin de
alertas

Monitor
de
activida
d

Transac
t-SQL

Registro
s de
errores

Interfaz grfica

Uso en aplicaciones
personalizadas

S1

S
S

4. TAREAS HABITUALES DE SUPERVISIN Y OPTIMIZACIN


Para supervisar una instancia de SQL Server es necesario realizar un anlisis de algunas
reas clave que se tratan en este mdulo. La eliminacin de los cuellos de botella fsicos
puede afectar al rendimiento de forma inmediata y aislar todava ms los problemas de
diseo en la base de datos, las consultas de Transact-SQL o las aplicaciones de cliente.

Mediante procedimientos almacenados del sistema del Analizador de SQL Server.


140

Excelencia Acadmica

a) Supervisin del uso de la memoria

SQL Server requiere memoria para necesidades de memoria esttica (sobrecarga


del ncleo, objetos abiertos y bloqueos) as como para la cach de datos, tambin
llamada cach del bfer).
Cmo utiliza SQL Server la memoria para la cach de datos
De manera predeterminada, SQL Server adquiere y libera memoria para la cach
de datos dinmicamente, segn los recursos del sistema disponibles y la demanda
simultnea de dichos recursos. Si SQL Server precisa memoria adicional para la
cach de datos, consulta al sistema operativo para determinar si hay disponible
memoria fsica. En caso afirmativo, SQL Server la utiliza para la cach de datos y
conserva los datos ledos previamente.
SQL Server aumenta y reduce la cach de datos para mantener libre una cantidad
de memoria fsica comprendida entre 4 MB y 10 MB, en funcin de la actividad del
servidor, e impedir as la paginacin de Windows 2000. Si se ha asignado o hay
disponible una cantidad de memoria insuficiente en SQL Server, el rendimiento
disminuye, ya que los datos se leen de forma continua en lugar de residir en la
cach de datos.
Si varias instancias de SQL Server se ejecutan en el mismo equipo, cada una
utilizar de forma independiente el algoritmo estndar de administracin de
memoria dinmica.
Supervisin del uso de los archivos de paginacin y la memoria
Los contadores siguientes indican la cantidad de bytes disponibles actualmente
para los procesos, el nmero de pginas relacionadas con los fallos de pgina y la
tasa de fallos de pgina atribuibles a SQL Server.
Objeto: Contador

Descripcin

Pautas

141

Excelencia Acadmica

Memoria: Bytes
disponibles

Supervisa el nmero de bytes


disponibles
para
que
se
ejecuten los procesos

Este contador siempre debe


mostrar una cifra mayor de
5000 KB. Un valor inferior
indicara que la memoria fsica
global es insuficiente y debe
incrementarse.

Memoria:
Pginas/seg.

Supervisa el nmero de pginas


que el sistema operativo
Windows 2000 leer o escribir
en el disco duro para resolver
los fallos de pgina

Este contador nunca debe ser


mayor de cero de forma regular.
En caso contrario, el sistema
operativo Windows 2000 est
utilizando
el
archivo
de
paginacin
para
rellenar
solicitudes de memoria.

Proceso: Fallos de
pgina/seg./Instanc
ia de SQL Server

Supervisa los fallos de pgina


causados por Windows 2000 al
recortar los tamaos de los
conjuntos de trabajo de dichos
procesos

Un nmero alto en este


contador indica un exceso de
paginacin e hiperpaginacin en
disco. Compruebe si SQL
Server u otro proceso provoca
el exceso de paginacin.

b) Supervisin del uso de procesador y subprocesos

Para obtener un rendimiento ptimo del procesador debe haber un equilibrio entre
el rendimiento y los tiempos de respuesta.
Rendimiento del procesador
Al examinar el uso del procesador, tenga en cuenta el tipo de trabajo que realizar
la instancia de SQL Server. Si SQL Server debe realizar un gran nmero de
clculos, como consultas que requieran agregados o consultas limitadas a la
memoria que no requieran E/S de disco, puede utilizarse todo el tiempo del
procesador.
En los sistemas multiprocesador deber supervisar una instancia independiente de
este contador en cada procesador. Para determinar el promedio de todos los
procesadores, utilice el contador Sistema: % de tiempo de procesador total.

142

Excelencia Acadmica

Una tasa de procesador que se mantiene alta de forma continuada puede indicar
que necesita realizar una actualizacin de CPU o agregar ms procesadores.
Asimismo, una tasa de utilizacin de CPU que se mantiene alta de forma
continuada podra indicar un ajuste o un diseo deficientes de la aplicacin
Subprocesos
Cada instancia de SQL Server constituye un proceso de sistema operativo
independiente. Las instancias de SQL Server emplean subprocesos de Windows y,
en ocasiones, intraprocesos, para administrar estas tareas simultneas de forma
eficaz.

Los procesos son instancias de una aplicacin, por ejemplo, SQL Server,
que pueden tener una o varias tareas.

Los subprocesos son mecanismos que procesan las tareas y se utilizan


para programar el tiempo en los procesadores.

Para lograr la mxima utilizacin de los procesadores, el sistema operativo cambia


entre los subprocesos cuando un subproceso queda inactivo mientras espera a que
una operacin se complete, como una lectura o escritura en el disco duro. El
cambio entre subprocesos se denomina cambio de contexto. Adems, cada
instancia de SQL Server mantiene un grupo de subprocesos para las conexiones
del usuario. Los subprocesos de este grupo se denominan subprocesos de trabajo.
Los cuellos de botella pueden identificarse cuando Procesador: % de tiempo de
procesador se aproxima de forma regular al 100 por ciento y Sistema: Longitud
de cola de procesador muestra varios procesos de la aplicacin a la espera de
ser procesados, o cuando el valor de Sistema: Cambios de contexto/Seg. es alto.
Si Procesador: % de tiempo de procesador se aproxima al 100 por ciento y
Sistema: Cambios de contexto/Seg. se aproxima a 8.000, considere la
posibilidad de utilizar procesadores ms rpidos, procesadores adicionales o de
comenzar a utilizar intraprocesos.
Un solo subproceso puede contener varios intraprocesos. Para habilitar el uso de
intraprocesos dentro de un subproceso en SQL Server en lugar de utilizar varios
subprocesos para tareas de SQL, cambie el valor de lightweight pooling a 1. Esto
se denomina programacin en modo de intraproceso.
Al utilizar la programacin en modo de intraproceso, SQL Server:

Asigna los intraprocesos del sistema operativo Windows 2000 desde un


grupo de intraprocesos a las tareas del usuario, en lugar de asignar los
subprocesos del sistema operativo Windows 2000 a un grupo de
subprocesos.

Realiza todos los cambios entre intraprocesos, en lugar de permitir que el


sistema operativo Windows 2000 se ocupe de esta tarea.

Cuando SQL Server cambia entre intraprocesos dentro de un subproceso,


Windows 2000 ahorra recursos, ya que no necesita cambiar entre modos. La
sobrecarga asociada con la habilitacin de la programacin en el modo de
intraproceso suele ser mayor que cuando se permite que Windows 2000 realice el
cambio de contexto. Basndose en la referencia, debe asegurarse de que todos los
cambios se prueban y tienen un efecto favorable.
La tabla siguiente enumera las descripciones y pautas para los contadores tiles de
los objetos Sistema y Procesador.

143

Excelencia Acadmica

Objeto: Contador

Descripcin

Pautas

Supervisa el porcentaje de
tiempo que el procesador
emplea en procesar
subprocesos no inactivos

El valor de este contador


debe ser inferior al 90 por
ciento. Si el valor es
superior, reduzca la carga
de trabajo, aumente la
eficacia de la carga de
trabajo o la capacidad del
procesador.

Supervisa el nmero de
veces por segundo que el
procesador realiza cambios
entre subprocesos

En equipos con
multiprocesador, si el valor
de este contador llega a
8000 y el valor del contador
Procesador: % de tiempo
de procesador est por
encima del 90%, considere
la posibilidad de habilitar la
programacin en modo de
intraproceso de SQL Server.

Sistema: Longitud
de cola de
procesador

Supervisa el nmero de
subprocesos a la espera de
utilizar el tiempo de
procesador

Este contador nunca debe


superar de forma regular el
valor de 2. Si ste es el
caso, reduzca la carga de
trabajo, incremente la
eficacia de la carga de
trabajo o aumente la
capacidad o el nmero de
procesadores de un sistema
multiprocesador.

Procesador:
%Tiempo
privilegiado

Supervisa el porcentaje de
tiempo que el procesador
emplea del tiempo
privilegiado en la ejecucin
de los comandos del ncleo
del sistema operativo
Windows 2000, como el
procesamiento de
solicitudes de E/S de SQL
Server

Si se emplea un porcentaje
significativo de tiempo de
procesador en ejecutar
comandos del ncleo del
sistema y el valor de los
contadores de disco duro es
alto, considere la posibilidad
de mejorar el rendimiento
del subsistema de E/S del
disco duro.

Procesador:
%Tiempo del
usuario

Supervisa el porcentaje de
tiempo que el procesador
emplea en ejecutar
procesos del usuario, como
el propio SQL Server

Puede indicar que otros


procesos o aplicaciones
estn ejecutando e
impidiendo operaciones de
SQL Server.

Procesador: % de
tiempo de
procesador

Sistema: Cambios
de contexto/Seg.

c) Supervisin de la entrada y salida en el disco duro

144

Excelencia Acadmica

SQL Server usa llamadas de entrada y salida (E/S) de Windows para leer y escribir
en el disco, y administra cundo y cmo se realiza la entrada y salida en el disco
pero delega en Windows la realizacin de las operaciones de E/S subyacentes. El
subsistema de E/S incluye el bus del sistema, tarjetas controladoras de disco,
discos, unidades de cinta, unidades de CD-ROM y muchos otros dispositivos de
E/S. Habitualmente, los discos representan el mayor cuello de botella de un
sistema.
Supervisin de la E/S de disco fsico
La supervisin de la entrada y salida en el disco duro le ayudar a determinar si la
escritura y lectura de pginas supera la capacidad del subsistema de disco duro.
Un subsistema de disco duro ocupado tambin puede indicar un exceso de entrada
y salida de archivos de paginacin provocada por una cantidad de memoria
insuficiente. La tabla siguiente describe los contadores de rendimiento de objeto
que puede usar para supervisar el rendimiento del subsistema del disco duro.
Objeto: Contador

Descripcin

Pautas

Disco fsico: %Tiempo


de disco

Supervisa el porcentaje
de tiempo que el disco
duro emplea en atender
las solicitudes de lectura
y escritura

El valor de este contador


debe ser inferior al 90
por ciento, de forma
regular.

Disco fsico: Promedio


de longitud de cola de
disco

Supervisa el promedio
de solicitudes de lectura
y escritura que se ponen
en cola

El valor de este contador


no debe ser superior al
doble del nmero de
discos del cilindro.

Disco fsico: Lecturas de


disco/seg.

Supervisa la tasa de
operaciones de lectura

El valor de este contador


debe ser inferior de
forma regular a la
capacidad del
subsistema de disco
duro.

Disco fsico: Escritura de


disco/seg.

Supervisa la tasa de
operaciones de escritura

El valor de este contador


debe ser inferior de
forma regular a la
capacidad del
subsistema de disco
145

Excelencia Acadmica

duro.

Si estos contadores de disco duro indican que est sobrecargando la capacidad del
subsistema de disco duro, considere la posibilidad de:

Ajustar la aplicacin o la base de datos para reducir las operaciones de E/S


en el disco duro (como cobertura y mejora de ndices, o normalizacin).

Aumentar la capacidad de E/S de disco duro del hardware mediante el uso


de un disco duro ms rpido.

Transferir algunos archivos a un disco duro o servidor adicional.

Agregar una matriz de discos duros.

Aumentar la cantidad de memoria, lo que podra contribuir a aliviar la


hiperpaginacin en el disco.

d) Supervisin de bloqueos
SQL Server bloquea los recursos mediante distintos modos de bloqueo que
determinan el tipo de acceso que las transacciones actuales tendrn a los
recursos. El bloqueo de filas aumenta la simultaneidad, pero tambin la
sobrecarga, ya que ser necesario mantener ms bloqueos en caso de que se
bloquee un gran nmero de filas. El bloqueo de tablas es caro en lo que respecta a
la simultaneidad pero produce una sobrecarga menor, ya que reduce el nmero de
bloqueos que mantener.
Interbloqueos
Los interbloqueos pueden producirse cuando dos o ms procesos esperan
simultneamente a que finalicen los bloqueos que ha establecido cada uno.
Ninguno de los procesos liberar el bloqueo que mantiene hasta que pueda
obtener el recurso que permanece bloqueado por el otro proceso. Cuando se haya
identificado un interbloqueo, para finalizarlo, SQL Server elegir automticamente
el subproceso (la vctima del interbloqueo) que puede romper el interbloqueo sin
que se produzcan tiempos de espera. Puede utilizar la opcin prioridad para
definir el intervalo de tiempo durante el que SQL Server esperar entre la deteccin
de un bloqueo y la declaracin de que se trata de un interbloqueo.
Bloqueos de cierre
La mayor parte de los problemas de bloqueo se producen debido a que un nico
proceso mantiene bloqueos durante un perodo prolongado, lo que causa una
cadena de procesos bloqueados a la espera de que otros procesos liberen sus
bloqueos. SQL Server no identifica los bloqueos de cierre y los resuelve
automticamente, lo que deja el recurso bloqueado. Debe supervisar la existencia
de bloqueos de cierre para poder eliminarlos manualmente. Mediante la creacin
de una configuracin de tiempo de espera de bloqueo en la aplicacin podr
impedir que se produzcan bloqueos de cierre. Esto permitir a la aplicacin
identificar la existencia de bloqueos de cierre y deshacer la transaccin, en lugar de
esperar indefinidamente o volver a emitir la instruccin bloqueada.

146

Excelencia Acadmica

Administracin de bloqueos
El Monitor de sistema de Windows supervisa la actividad global de bloqueo del
sistema mediante el Contador de objetos de bloqueo de SQL Server. Para trazar y
registrar la actividad de bloqueo de forma detallada, use el Analizador de SQL. El
objeto Bloqueos del Administrador corporativo de SQL Server proporciona
informacin acerca de los bloqueos de SQL Server en tipos de recursos
individuales. Adems, puede supervisar la actividad de SQL Server mediante los
procedimientos almacenados de sistema sp_who y sp_lock.

El procedimiento almacenado de sistema sp_who proporciona informacin


de instantneas acerca de los procesos y usuarios actuales de SQL
Server, incluida la instruccin que est ejecutndose e independientemente
de que la instruccin est bloqueada.

El procedimiento almacenado de sistema sp_lock proporciona informacin


de instantneas acerca de los bloqueos, incluido el identificador de objeto y
de ndice, el tipo de bloqueo y el tipo de recurso al que se aplica el
bloqueo.

Es posible que el uso de sp_lock para presentar informacin de bloqueo no resulte


prctico si se aplican y liberan varios bloqueos ms rpido de lo que sp_lock
puede mostrarlos.
Tras usar una de estas herramientas para identificar el tipo de bloqueo y el
identificador de proceso, o el objeto que lo causa, puede usar la ventana Actividad
actual del SQL Server Management Studio para administrar el bloqueo.
e) Supervisin de consultas de bajo rendimiento
Para solucionar un problema de rendimiento quizs le tiente la idea de optimizar
nicamente el rendimiento del servidor en el sistema, por ejemplo, el tamao de la
memoria, ubicacin, nmero y tipo de procesadores. Sin embargo, normalmente no
es posible solucionar los problemas relacionados con consultas de bajo
rendimiento de esta forma. Para ello debe analizar la aplicacin, las consultas y las
actualizaciones que la aplicacin emite a la base de datos, y la forma en que las
consultas y las actualizaciones interactan con el esquema de base de datos.
Identificacin del rendimiento de las consultas
El Analizador de SQL puede supervisar las consultas en funcin del tiempo
transcurrido con el fin de identificar las consultas de bajo rendimiento del sistema.
Para trazar las consultas de peor rendimiento, cree una traza que capture sucesos
relacionados con las clases de suceso TSQL y Procedimiento almacenado, en
concreto, RPC:Completed (Completo) y SQL: BatchCompleted (Proceso por
lotes completado)
Causas del bajo rendimiento en las consultas
Las consultas y actualizaciones cuya duracin se prolonga de forma imprevista
pueden deberse a:

Comunicaciones de red lentas.

Consultas de Transact-SQL que transfieren una gran cantidad de datos


entre el cliente y el servidor.

Memoria insuficiente para SQL Server.


147

Excelencia Acadmica

148

Ausencia de estadsticas tiles.

Estadsticas obsoletas o ausencia de ndices tiles.

Ausencia de creacin de bandas de datos tiles.

Bloqueos de cierre o interbloqueos causados por transacciones de larga


duracin emitidos por otros usuarios.

Utilizacin de aplicaciones de proceso de transacciones y de ayuda a la


toma de decisiones en el mismo equipo.

Excelencia Acadmica

1. Utilizar el monitor de sistema de Windows para monitorear la actividad del disco, el


uso del procesador y el uso de la memoria
2. Utilizar el monitor de actividades de SQL Server para monitorear las actividades de
los usuarios de las bases de datos

En este captulo se abarcaron temas acerca de la importancia de la supervisin y los


factores que afectan al rendimiento. Tambin como desarrollar un plan para optimizar el
rendimiento de SQL Server.
La supervisin de un sistema puede ser una tarea compleja. Por ello, puede utilizar
diferentes estrategias para plantear la optimizacin del rendimiento del sistema.

[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

149

Excelencia Acadmica

En la siguiente unidad temtica detallaremos aspectos relacionados a la automatizacin de tareas


administrativas

ADMINISTRACION DE BASES DE DATOS


UNIDAD ACADMICA N 6
NOMBRE:__________________________________________________________________
APELLIDOS:________________________________________FECHA; ____/_____/______
CIUDAD:_______________________________SEMESTRE:_________________________
1.

Mencione algunas razones que sustenten la necesidad de supervisar la base de datos


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

2.

Qu herramientas pueden utilizarse para el monitoreo de base de datos?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

3.

Qu aspectos son necesarios monitorear para asegurar un buen rendimiento de la base de datos?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

4.

Qu debe tomarse en cuenta para obtener un ptimo rendimiento del procesador?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
5. Qu debe tomarse en cuenta para obtener un ptimo rendimiento de la memoria?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

150

Excelencia Acadmica

AUTOMATIZACION DE TAREAS
ADMINISTRATIVAS

SQL Server Agent es el componente de SQL Server responsable de automatizar las tareas administrativas
de SQL Server. Para que SQL Server Agent ejecute trabajos y active alertas, debe estar en ejecucin en todo
momento y disponer de los permisos necesarios.

Al finalizar el estudio de la presente unidad temtica el estudiante:

Realiza tareas de configuracin comunes de Microsoft SQL Server 2005.

Describe tareas administrativas de base de datos rutinarias.

Automatiza tareas de mantenimiento rutinarias mediante la creacin y programacin de


trabajos.

1. AUTOMATIZAR LAS TAREAS ADMINISTRATIVAS (AGENTE SQL SERVER)


Microsoft SQL Server le permite automatizar las tareas administrativas. Para automatizar la
administracin, se definen las tareas administrativas previsibles y, despus, se especifican
las condiciones en las que se produce cada tarea. El uso de la administracin
automatizada para controlar las tareas y eventos habituales le permite disponer de tiempo
para realizar otras funciones administrativas.
El Agente SQL Server
El Agente SQL Server es un servicio de Microsoft Windows que ejecuta tareas
administrativas programadas, denominadas trabajos. El Agente SQL Server utiliza SQL
Server para almacenar informacin de los trabajos. Los trabajos contienen uno o ms
pasos. Cada paso contiene su propia tarea; por ejemplo, realizar una copia de seguridad
de una base de datos. El Agente SQL Server puede ejecutar un trabajo segn una
programacin, como respuesta a un evento especfico o a peticin. Por ejemplo, si desea
realizar una copia de seguridad de todos los servidores de la organizacin todos los das
entre semana despus del horario de trabajo, puede automatizar esta tarea. Por ejemplo,
programe la copia de seguridad para que se ejecute despus de las 22:00 h de lunes a
viernes; si la copia de seguridad encuentra un problema, el Agente SQL Server puede
registrar el evento y notificrselo.
De forma predeterminada, el servicio Agente SQL Server est deshabilitado al instalar SQL
Server 2005, a menos que el usuario elija de forma explcita iniciarlo automticamente.
Para automatizar la administracin, siga estos pasos:
1 Establezca las tareas administrativas o eventos del servidor que se realizan con
regularidad y si estas tareas o eventos se pueden administrar mediante
programacin. Una tarea es una buena candidata a la automatizacin si consta de
151

Excelencia Acadmica

una secuencia de pasos predecible y se produce en un momento especfico o en


respuesta a un evento concreto.
2 Defina un conjunto de trabajos, programaciones, alertas y operadores usando SQL
Server Management Studio, secuencias de comandos Transact-SQL u objetos de
administracin de SQL Server (SMO). Ejecute los trabajos del Agente SQL Server
que haya definido.
Si ejecuta varias instancias de SQL Server, utilice la administracin multiservidor para
automatizar las tareas comunes a todas las instancias.

2. COMPONENTES DE ADMINISTRACIN AUTOMTICA


El Agente SQL Server utiliza los siguientes componentes para definir las tareas que se
realizarn, cundo se llevarn a cabo y cmo se informar de si se han realizado
correctamente o no. El Agente SQL Server tambin proporciona seguridad para la
administracin automtica.

Trabajos
Un trabajo es una serie especificada de acciones que realiza el Agente SQL
Server. Utilice los trabajos para definir tareas administrativas de manera que se
ejecuten una o ms veces, y se pueda supervisar si se realizan o no
correctamente. Un trabajo se puede ejecutar en un servidor local o en varios
servidores remotos. Existen varias maneras de ejecutar trabajos:

Conforme a una o ms programaciones.

Como respuesta a una o varias alertas.

Ejecutando el procedimiento almacenado sp_start_job.

Cada accin de un trabajo es un paso de trabajo. Por ejemplo, un paso de trabajo


puede consistir en la ejecucin de una instruccin Transact-SQL, la ejecucin de un
paquete SSIS o la emisin de un comando en un servidor de Analysis Services.
Los pasos de trabajo se administran como parte de un trabajo.

Programaciones
Una programacin especifica cundo se ejecuta un trabajo. Se puede ejecutar ms
de un trabajo en la misma programacin y se puede aplicar ms de una
programacin al mismo trabajo. Una programacin puede definir las condiciones
siguientes del momento en el que se ejecuta un trabajo:

Cuando se inicia el Agente SQL Server.

Cuando el uso de la CPU del equipo se encuentre en un nivel que se haya


definido como inactivo.

Una vez, a una hora y una fecha especficas.

Peridicamente.

Alertas
Una alerta es una respuesta automtica a un evento especfico. Por ejemplo, un
evento puede ser el inicio de un trabajo o que los recursos del sistema alcancen un
umbral especfico. Debe definir las condiciones en las que se genera una alerta.
Una alerta puede responder a una de las condiciones siguientes:

152

Excelencia Acadmica

Eventos de SQL Server

Condiciones de rendimiento de SQL Server

Eventos de Instrumental de administracin de Microsoft Windows (WMI) en


el equipo en el que se ejecuta el Agente SQL Server
Una alerta puede realizar las acciones siguientes:

Notificar a uno o varios operadores

Ejecutar un trabajo

Operadores
Los operadores definen informacin de contacto para las personas responsables
del mantenimiento de una o varias instancias de SQL Server. En algunas
compaas, las responsabilidades de operador estn asignadas a una sola
persona. En compaas con varios servidores, muchas personas comparten las
responsabilidades de operador. Un operador no contiene informacin de seguridad
y no define una entidad de seguridad.
SQL Server puede notificar a los operadores de alertas mediante una o varias de
las opciones siguientes:

Correo electrnico

Localizador (por correo electrnico)

NET SEND
Para enviar a los operadores notificaciones por correo electrnico o localizador,
deber configurar el Agente SQL Server para utilizar Correo electrnico de base de
datos o SQL Mail.
Puede definir un operador como alias de un grupo de personas. De esta manera,
todos los miembros de este alias pueden recibir notificaciones al mismo tiempo.

3. SEGURIDAD EN LA ADMINISTRACIN DEL AGENTE SQL SERVER


El Agente SQL Server especifica las funciones fijas de base de datos SQLAgentUserRole,
SQLAgentReaderRole y SQLAgentOperatorRole en la base de datos msdb que controla
el acceso al Agente SQL Server para aquellos usuarios que no son miembros de la funcin
fija de servidor sysadmin. Adems de estas funciones fijas de base de datos, los
subsistemas y los servidores proxy ayudan a los administradores de bases de datos a
garantizar que cada paso de trabajo se ejecuta con los permisos mnimos necesarios para
realizar la tarea.
Funciones:
Los miembros de las funciones fijas de base de datos SQLAgentUserRole,
SQLAgentReaderRole y SQLAgentOperatorRole de msdb y los miembros de la funcin
fija de servidor sysadmin tienen acceso al Agente SQL Server. Un usuario que no
pertenezca a ninguna de estas funciones no puede utilizar el Agente SQL Server.
Subsistemas:
Un subsistema es un objeto predefinido que representa las funciones disponibles para un
paso de trabajo.

153

Excelencia Acadmica

Servidores proxy:
El Agente SQL Server utiliza servidores proxy para administrar contextos de seguridad. Se
puede utilizar un servidor proxy en ms de un paso de trabajo. Los miembros de la funcin
fija de servidor sysadmin pueden crear servidores proxy.
Cada proxy se corresponde con unas credenciales de seguridad. Cada proxy puede
asociarse a un conjunto de subsistemas y un conjunto de inicios de sesin. El proxy slo se
puede utilizar con pasos de trabajo que utilizan un subsistema asociado al proxy. Para
crear un paso de trabajo que utilice un proxy determinado, el propietario del trabajo debe
utilizar un inicio de sesin asociado al proxy o debe ser miembro de una funcin con
acceso ilimitado a los servidores proxy. Los miembros de la funcin fija de servidor
sysadmin tienen acceso ilimitado a los servidores proxy. Los miembros de
SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole slo pueden
utilizar servidores proxy para los que dispongan de acceso especfico. Cada usuario que
sea miembro de alguna de estas funciones fijas de base de datos del Agente SQL Server
debe tener acceso a servidores proxy especficos para poder crear pasos de trabajo que
utilicen estos proxy.

4. HERRAMIENTAS PARA AUTOMATIZAR LA ADMINISTRACIN


SQL Server incluye las siguientes herramientas para ayudarle a automatizar la
administracin.
a) SQL Server Management Studio
Puede utilizar SQL Server Management Studio para automatizar la administracin
mediante la creacin de trabajos, alertas, operadores y servidores proxy en el nodo
Agente SQL Server del Explorador de objetos.
b) Asistente para planes de mantenimiento
El Asistente para planes de mantenimiento es una utilidad que puede ayudarle a
crear trabajos, alertas y operadores para automatizar una instancia de SQL Server.

5. AGENTE SQL SERVER


El Agente SQL Server es un servicio de Microsoft Windows que le permite automatizar
algunas tareas administrativas. El Agente SQL Server ejecuta trabajos, supervisa SQL
Server y procesa alertas. El servicio Agente SQL Server debe estar en ejecucin para
poder ejecutar automticamente los trabajos administrativos locales o multiservidor.
a) Configurar el Agente SQL Server
Puede especificar algunas opciones de configuracin para el Agente SQL Server
durante la instalacin de SQL Server. El conjunto completo de opciones de
configuracin del Agente SQL Server slo est disponible en SQL Server
Management Studio, SMO (objetos de administracin de SQL Server) o los
procedimientos almacenados del Agente SQL Server.
El Agente SQL Server almacena la mayor parte de la informacin de configuracin
en las tablas que residen en la base de datos msdb. El Agente SQL Server utiliza
los objetos de credenciales de SQL Server para almacenar la informacin de
autenticacin para los servidores proxy.
Establecer los permisos necesarios:
154

Excelencia Acadmica

Para realizar sus funciones, el Agente SQL Server debe configurarse de modo que
utilice las credenciales de una cuenta que sea miembro de la funcin fija de
servidor sysadmin en SQL Server. La cuenta debe tener los siguientes permisos
de Windows:
Adjust memory quotas for a process (Ajustar las cuotas de memoria de un
proceso)
Act as part of the operating system (Actuar como parte del sistema
operativo)
Bypass traverse checking (Omitir la comprobacin transversal)
Log on as a batch job (Iniciar sesin como proceso por lotes)
Log on as a service (Iniciar sesin como servicio)
Replace a process level token (Reemplazar un smbolo de nivel de
proceso)
Para comprobar que todos estos permisos necesarios de Windows estn
establecidos:
1 Haga clic en Inicio, Panel de control, Herramientas administrativas y
Directiva de seguridad local.
2 Expanda la carpeta Directivas locales y, a continuacin, haga clic en la
carpeta Asignacin de derechos de usuario.
3 Repita los pasos siguientes para cada permiso:

Haga clic con el botn secundario en un permiso (como Iniciar


sesin como servicio) y, a continuacin, haga clic en
Propiedades.

En el cuadro de dilogo de propiedades (por ejemplo Propiedades


de Iniciar sesin como servicio), compruebe que se muestre la
cuenta bajo la que se ejecuta el Agente SQL Server.

Si no aparece, haga clic en Agregar usuario o grupo, escriba la


cuenta bajo la que se ejecuta el Agente SQL Server y, a
continuacin, haga clic en Aceptar.

Normalmente, la cuenta seleccionada para el Agente SQL Server es una cuenta de


dominio creada para ese propsito cuyos permisos de acceso estn muy
controlados. No es necesario utilizar una cuenta de dominio, pero si utiliza una
cuenta en el equipo local, el Agente SQL Server no tendr permiso para obtener
acceso a los recursos de otros equipos. Es muy habitual que SQL Server necesite
permisos en otros equipos, por ejemplo, cuando crea una copia de seguridad de
una base de datos y almacena el archivo en otro equipo.
b) Iniciar, pausar y detener el servicio del Agente SQL Server
Para poder automatizar las tareas administrativas, el Agente SQL Server debe
estar ejecutndose como un servicio. Puede configurar el servicio del Agente SQL
Server para que se inicie automticamente cuando se inicie el sistema operativo, o
puede iniciarlo manualmente cuando necesite completar trabajos. El servicio del
Agente SQL Server se puede detener o pausar con el fin de suspender trabajos,
notificaciones para los operadores y alertas.
Cmo iniciar el Agente SQL Server (Administrador de configuracin de SQL
Server)
155

Excelencia Acadmica

El Agente SQL Server se puede detener e iniciar desde el Administrador de


configuracin de SQL Server.
Para iniciar el servicio del Agente SQL Server
1 En el men Inicio, seleccione Todos los programas, Microsoft SQL
Server 2005, Herramientas de configuracin y haga clic en
Administrador de configuracin de SQL Server.
2 En el Administrador de configuracin de SQL Server, expanda
Servicios y, a continuacin, haga clic en Agente SQL.
3 En el panel de resultados, haga clic con el botn secundario en una
instancia y, a continuacin, haga clic en Iniciar.
Una flecha verde en el icono situado junto al Agente SQL Server y en la
barra de herramientas indica que el Agente SQL Server se inici
correctamente.
4 Haga clic en Aceptar.
Cmo detener el Agente SQL Server (Administrador de configuracin de SQL
Server)
El Agente SQL Server se puede detener e iniciar desde el Administrador de
configuracin de SQL Server.
Para detener el servicio del Agente SQL Server
1 En el men Inicio, seleccione Todos los programas, Microsoft SQL Server
2005, Herramientas de configuracin y, a continuacin, haga clic en
Administrador de configuracin de SQL Server.
2 En Administrador de configuracin de SQL Server, expanda Servicios y, a
continuacin, haga clic en Agente SQL Server.
3 En el panel de resultados, haga clic con el botn secundario en cualquier
instancia del Agente SQL Server y, a continuacin, haga clic enDetener.
4 Un cuadro rojo en el icono situado al lado del Agente SQL Server y en la
barra de herramientas indica que el Agente SQL Server se ha detenido
correctamente.
5 Haga clic en Aceptar.
c) Seleccionar una cuenta para el servicio del Agente SQL Server
La cuenta de inicio del servicio define la cuenta de Microsoft Windows en la que se
ejecuta el Agente SQL Server y sus permisos de red. El Agente SQL Server se
ejecuta como una cuenta de usuario especificada. Por compatibilidad con
versiones anteriores de SQL Server, el Agente SQL Server tambin se puede
ejecutar en la cuenta del sistema local.
Se puede seleccionar una cuenta para el servicio del Agente SQL Server mediante
el Administrador de configuracin de SQL Server, donde se pueden seleccionar las
opciones siguientes:

156

Excelencia Acadmica

Cuenta integrada. Puede elegirla de una lista con las siguientes cuentas
de servicio de Windows integradas:

Cuenta Sistema local. El nombre de esta cuenta es NT


AUTHORITY\System. Es una cuenta eficaz con acceso sin
restricciones a todos los recursos del sistema local. Es miembro del
grupo Administradores de Windows del equipo local y, por tanto,
miembro de la funcin fija de servidor sysadmin en SQL Server.
La opcin Cuenta del sistema local se mantiene slo por motivos
de compatibilidad con versiones anteriores. La cuenta del sistema
local tiene permisos que el Agente SQL Server no necesita. Evite
ejecutar el Agente SQL Server en la cuenta del sistema local. Para
mejorar la seguridad, utilice una cuenta de dominio de Windows
con los permisos que se enumeran en la seccin siguiente,
"Permisos de cuentas de dominio de Windows"

Cuenta Servicio de red. El nombre de esta cuenta es NT


AUTHORITY\NetworkService. Est disponible en Microsoft
Windows XP y Microsoft Windows Server 2003. Todos los servicios
que se ejecutan en la cuenta de servicio de red se autentican en
los recursos de red como el equipo local.

Esta cuenta. Permite especificar la cuenta de dominio de Windows en la


que se ejecuta el servicio del Agente SQL Server. Se recomienda que la
cuenta de usuario de Windows que elija no sea miembro del grupo
Administradores de Windows. Sin embargo, existen limitaciones en el uso
de la administracin multiservidor cuando la cuenta de servicio del Agente
SQL Server no es miembro del grupo Administradores local.

6. IMPLEMENTAR TRABAJOS
Puede utilizar los trabajos del Agente SQL Server para automatizar tareas administrativas
rutinarias y ejecutarlas peridicamente, lo que permite que la administracin sea ms
eficaz.
Un trabajo es una serie especfica de operaciones que el Agente SQL Server realiza
secuencialmente. Un trabajo puede realizar una amplia variedad de actividades, incluidos
scripts Transact-SQL, aplicaciones de lnea de comandos, scripts de Microsoft ActiveX,
paquetes de Integration Services, comandos y consultas de Analysis Services o tareas de
replicacin. Los trabajos pueden ejecutar tareas repetitivas o que se pueden programar y
pueden notificar automticamente a los usuarios el estado del trabajo mediante alertas,
simplificando mucho la administracin de SQL Server.
Puede ejecutar los trabajos manualmente o configurarlos para que se ejecuten de acuerdo
con una programacin o en respuesta a alertas.
a) Crear trabajos
Un trabajo es una serie especfica de operaciones que el Agente SQL Server
realiza secuencialmente. Un trabajo puede realizar una amplia variedad de
actividades, incluidas secuencias de comandos Transact-SQL, aplicaciones de
smbolo del sistema, secuencias de comandos de Microsoft ActiveX, paquetes de
Integration Services, comandos y consultas de Analysis Services o tareas de
rplica. Los trabajos pueden ejecutar tareas repetitivas o que se pueden
programar, y pueden notificar automticamente a los usuarios el estado del trabajo
mediante alertas, lo cual simplifica en gran medida la administracin de SQL
Server.

157

Excelencia Acadmica

Para crear un trabajo, el usuario debe ser miembro de una de las funciones fijas de
base de datos del Agente SQL Server o de la funcin fija de servidor sysadmin.
Slo pueden editar el trabajo el propietario de ste o los miembros de la funcin
sysadmin.
Se puede escribir un trabajo para que se ejecute en la instancia local de SQL
Server o en varias instancias de una empresa. Para ejecutar trabajos en varios
servidores, debe configurar al menos un servidor principal, y uno o ms servidores
de destino.
b)

Crear pasos de trabajo


Los pasos de trabajo son acciones que el trabajo realiza en una base de datos o en
un servidor. Cada trabajo debe estar formado por un paso, como mnimo. Los
pasos de trabajo pueden ser:

Programas ejecutables y comandos del sistema operativo.

Instrucciones Transact-SQL, incluidos los procedimientos almacenados y


los procedimientos almacenados extendidos.

Secuencias de comandos Microsoft ActiveX.

Tareas de rplica.

Tareas de Analysis Services.

Paquetes de Integration Services.

Todos los pasos de trabajo se ejecutan en un contexto de seguridad determinado.


Si en el paso de trabajo se especifica un proxy, se ejecuta en el contexto de
seguridad de la credencial del proxy. Si en el paso de trabajo no se especifica un
proxy, se ejecuta en el contexto de la cuenta de servicio del Agente SQL Server.
Slo los miembros de la funcin de servidor fija sysadmin pueden crear trabajos
en los que no se especifique un proxy de forma explcita.
Puesto que los pasos de trabajo se ejecutan en el contexto de un usuario
especfico de Microsoft Windows, dicho usuario debe disponer de los permisos y la
configuracin necesarios para que se ejecute el paso de trabajo. Por ejemplo, si
crea un trabajo que requiere una letra de unidad o una ruta de acceso UNC
(Convencin de nomenclatura universal), los pasos de trabajo se pueden ejecutar
con la cuenta de usuario de Microsoft Windows durante la comprobacin de las
tareas. Sin embargo, el usuario de Windows para el paso de trabajo debe tener
tambin los permisos y configuraciones de letra de unidad necesarios, o acceso a
la unidad requerida. De lo contrario, se producir un error en el paso de trabajo.
Para evitar este problema, asegrese de que el proxy para cada paso de trabajo
dispone de los permisos necesarios para la tarea que realiza dicho paso.
c) Crear programaciones
La programacin de trabajos administrativos consiste en definir las condiciones que
provocan el inicio de la ejecucin de stos. Se puede programar cualquier tipo de
trabajo. Varios trabajos pueden utilizar la misma programacin. Los usuarios
pueden adjuntar y separar programaciones de los trabajos.
Por ejemplo, puede programar un trabajo para que se ejecute en los casos
siguientes:

158

Cuando se inicia el Agente SQL Server.

Excelencia Acadmica

Cuando el uso de la CPU del equipo se encuentre en un nivel que se haya


definido como inactivo.

Una vez, a una hora y una fecha especficas.

Peridicamente.

Como alternativa a las programaciones de trabajo, tambin puede crear una alerta
que responda a un evento ejecutando un trabajo.
Para impedir que se ejecute un trabajo programado, debe deshabilitar la
programacin, deshabilitar el trabajo, quitar la programacin del trabajo o detener
el servicio del Agente SQL Server. Aunque no est habilitada la programacin, se
puede ejecutar el trabajo en respuesta a una alerta o cuando un usuario lo ejecute
manualmente. Si no est habilitada una programacin de trabajo, no estar
habilitada para ningn trabajo que la utilice.
Las programaciones deshabilitadas se deben volver a habilitar de manera explcita.
La modificacin de una programacin no la vuelve a habilitar automticamente.

Figura 7.1: Creando programaciones


Programar fechas de inicio
Al adjuntar una programacin a un trabajo, se debe revisar la fecha de inicio que
usa la programacin para ejecutar por primera vez el trabajo. La fecha de inicio
depende del da y la hora en que se adjunte la programacin al trabajo. Por
ejemplo, si se crea una programacin que se ejecuta cada dos lunes a las 8:00
a.m. Si se crea un trabajo a las 10:00 a.m. del lunes 3 de marzo de 2008, la fecha
de inicio de la programacin ser lunes 17 de marzo de 2008. Si se crea otro
trabajo el martes 4 de marzo de 2008, la fecha de inicio de la programacin ser
lunes 10 de marzo de 2008.

159

Excelencia Acadmica

Puede cambiar la fecha de inicio de la programacin despus de adjuntar la


programacin a un trabajo
Programaciones de inactividad de CPU
Para maximizar los recursos de CPU, puede definir una condicin de CPU inactiva
para el Agente SQL Server. El Agente SQL Server utiliza la configuracin de la
condicin de CPU inactiva para determinar el momento ms conveniente para
ejecutar trabajos. Por ejemplo, puede programar la ejecucin de un trabajo de
generacin de ndices durante el tiempo de inactividad de CPU y en periodos de
baja produccin.
Antes de definir trabajos para que se ejecuten durante el tiempo de inactividad de
CPU, determine la carga de la CPU durante el procesamiento normal. Para ello,
utilice el Analizador de SQL Server o el Monitor de rendimiento para supervisar el
trfico del servidor y obtener estadsticas. La informacin que obtenga puede
utilizarla para establecer el porcentaje y la duracin del tiempo de inactividad de
CPU.
Defina la condicin de CPU inactiva como un porcentaje por debajo del cual el uso
de CPU debe permanecer durante un intervalo de tiempo especificado. A
continuacin, establezca la duracin. Cuando el uso de CPU est por debajo del
porcentaje especificado para el tiempo determinado, el Agente SQL Server iniciar
todos los trabajos que tengan una programacin de tiempo de inactividad de CPU.

3. Inicie el SQL Server Agent


4. Programe una tarea para generar un backup completo todos los das a las 9 pm.

Mediante el uso del componente del Agente SQL Server de Microsoft SQL Server,
se pueden programar tareas administrativas de SQL Server

[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.

160

Excelencia Acadmica

Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

En la siguiente unidad temtica tocaremos temas avanzados de administracin de base de datos.

161

Excelencia Acadmica

ADMINISTRACION DE BASES DE DATOS


UNIDAD ACADMICA N 7
NOMBRE:__________________________________________________________________
APELLIDOS:________________________________________FECHA; ____/_____/______
CIUDAD:_______________________________SEMESTRE:_________________________
1.

Cmo se inicia el SQL Server Agent?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

2.

Cmo se automatiza una tarea?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

3.

Cmo se ejecuta un paso?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

4.

Qu tipo de usuarios pueden programar tareas administrativas?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

5.

Qu herramientas nos ayudan a automatizar la administracin?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

162

Excelencia Acadmica

TOPICOS AVANZADOS DE GESTION DE BASE DE DATOS


En la actualidad, las organizaciones deben afrontar numerosos retos relacionados con los datos;
por ejemplo, la necesidad de toma de decisiones ms rpidas y controladas por datos, la necesidad de
aumentar la productividad y flexibilidad del personal de desarrollo y la presin para reducir los
presupuestos generales relacionados con la tecnologa de la informacin, a la vez que se exige escalar la
infraestructura para que se adapte a exigencias cada vez mayores. Es as que surgen nuevos conceptos
tratando de cumplir con esas exigencias como por ejemplo la rplica, que es un conjunto de tecnologas
destinadas a la copia y distribucin de datos y objetos de base de datos desde una base de datos a otra,
para luego sincronizar ambas bases de datos y mantener su coherencia. La rplica permite distribuir datos
entre diferentes ubicaciones y entre usuarios remotos o mviles mediante redes locales y de rea extensa,
conexiones de acceso telefnico, conexiones inalmbricas e Internet, los servicios de de notificacin que
ayudan a generar y enviar a tiempo mensajes personalizados a miles o millones de suscriptores, y
entregar los mensajes a una amplia variedad de dispositivos, las bsquedas de texto que permiten realizar
bsquedas complejas de palabras o frases y de manera rpida, o service broker que proporciona
compatibilidad nativa del Motor de base de datos de SQL Server para facilitar a los programadores
aplicaciones de mensajera y de cola.

Al finalizar el estudio de la presente unidad temtica el estudiante:

Conoce temas avanzados de administracin de base de datos

Comprende los beneficios de utilizar replicacin de base de datos, servicios de


notificacin, service brker y bsquedas de texto

1. REPLICACION

La rplica es un conjunto de tecnologas destinadas a la


copia y distribucin de datos y objetos de base de datos
desde una base de datos a otra, para luego sincronizar
ambas bases de datos y mantener su coherencia. La
rplica permite distribuir datos entre diferentes
ubicaciones y entre usuarios remotos o mviles mediante
redes locales y de rea extensa, conexiones de acceso
telefnico, conexiones inalmbricas e Internet.
a) Modelo de publicacin de rplica
La rplica utiliza una metfora del sector editorial para representar los
componentes de una topologa de rplica, que incluyen el publicador, el
distribuidor, los suscriptores, las publicaciones, los artculos y las suscripciones.
Resulta til pensar en la rplica de Microsoft SQL Server como si fuera una revista:

El publicador (editor) de una revista produce una o ms publicaciones.

Una publicacin contiene artculos.

163

Excelencia Acadmica

El publicador distribuye la revista directamente o a travs de un distribuidor.

Los suscriptores reciben las publicaciones a las que se han suscrito.

Aunque la metfora de la revista es til para comprender la rplica, es importante


sealar que la rplica de SQL Server incluye funciones que no estn representadas
en esta metfora, en particular, la posibilidad de que un suscriptor realice
actualizaciones y de que un publicador enve cambios incrementales a los artculos
de una publicacin.
Una topologa de rplica define la relacin entre los servidores y las copias de los
datos, y aclara la lgica que determina cmo fluyen los datos entre los servidores.
Hay varios procesos de rplica (denominados agentes) que son responsables de
copiar y mover los datos entre el publicador y los suscriptores. En la siguiente
ilustracin se muestra informacin general acerca de los componentes y procesos
que participan en la rplica.

Figura 8.1: Componentes y procesos participantes en la replica


Publicador
El publicador es una instancia de base de datos que permite que los datos estn
disponibles para otras ubicaciones a travs de la rplica. El publicador puede tener
una o ms publicaciones, cada una de las cuales representa un conjunto de
objetos y datos relacionados lgicamente para replicar.
Distribuidor
El distribuidor es una instancia de base de datos que funciona como almacn para
datos especficos de rplica asociados con uno o ms publicadores. Cada
publicador est asociado con una sola base de datos (conocida como la base de
datos de distribucin) en el distribuidor. La base de datos de distribucin almacena
los datos de estado de la rplica, metadatos acerca de la publicacin y, en algunos
casos, funciona como cola para los datos que se transfieren del publicador a los
suscriptores. En muchos casos, una sola instancia de servidor de bases de datos
funciona como publicador y como distribuidor Esto se conoce como un distribuidor
local. Cuando el publicador y el distribuidor se configuran en instancias distintas del
servidor de bases de datos, el distribuidor se denomina un distribuidor remoto.

164

Excelencia Acadmica

Suscriptores
Un suscriptor es una instancia de base de datos que recibe datos replicados. Un
suscriptor puede recibir datos de varios publicadores y publicaciones. En funcin
del tipo de rplica elegida, el suscriptor tambin puede devolver los datos
modificados al publicador o volver a publicar los datos en otros suscriptores.
Artculo
Un artculo identifica un objeto de base de datos incluido en una publicacin. Una
publicacin puede contener diferentes tipos de artculos, como tablas, vistas,
procedimientos almacenados y otros objetos. Cuando las tablas se publican como
artculos, se pueden usar filtros para restringir las columnas y filas de datos que se
envan a los suscriptores.
Publicacin
Una publicacin es un conjunto de uno o ms artculos de una base de datos. La
agrupacin de varios artculos en una publicacin permite especificar ms
fcilmente un conjunto de objetos y datos de bases de datos relacionados
lgicamente, que se replican como una unidad.
Suscripcin
Una suscripcin es una solicitud de una copia de una publicacin que se entrega a
un suscriptor. La suscripcin define qu publicacin se recibir, dnde y cundo.
Hay dos tipos de suscripciones: de insercin y de extraccin

2. SQL SERVER SERVICE BROKER


SQL Server SQL Server Service Broker proporciona
la compatibilidad nativa de SQL Server Database
Engine (Motor de base de datos de SQL Server)
para las aplicaciones de mensajera y de cola. De
este modo, resulta ms fcil para los programadores
crear aplicaciones complejas que usan los
componentes de Database Engine (Motor de base
de datos) para la comunicacin entre bases de
datos distintas. Los programadores pueden usar
Service Broker para crear con facilidad aplicaciones
distribuidas y confiables.
Los programadores de aplicaciones que usan
Service Broker pueden distribuir las cargas de
trabajo de datos en varias bases de datos sin tener
que programar complejas funciones internas de comunicacin y mensajera. As se reduce
el trabajo de programacin y realizacin de pruebas, ya que Service Broker controla las
vas de comunicacin del contexto de una conversacin. Tambin aumenta el rendimiento.
Por ejemplo, las bases de datos front-end compatibles con sitios web pueden grabar
informacin y enviar tareas con muchos procesos a colas de bases de datos back-end.
Service Broker garantiza que todas las tareas se administren en el contexto de las
transacciones para que sean confiables y coherentes tcnicamente.
a) En qu consiste Service Broker?
Service Broker ayuda a los programadores a crear aplicaciones asincrnicas de
acoplamiento flexible en las que los componentes independientes funcionan
conjuntamente para llevar a cabo una tarea. Estos componentes de aplicacin

165

Excelencia Acadmica

intercambian mensajes que contienen la informacin necesaria para finalizar la


tarea. En este tema se describen los aspectos fundamentales de Service Broker:

Conversaciones

Coordinacin y ordenacin de mensajes

Programacin asincrnica transaccional

Compatibilidad con aplicaciones de acoplamiento flexible

Componentes de Service Broker

Conversaciones
Service Broker est diseado segn las funciones bsicas de envo y recepcin de
mensajes. Cada mensaje forma parte de una conversation, un canal de
comunicacin confiable y persistente. Cada mensaje y conversacin tienen un tipo
especfico que impone Service Broker para ayudar a los programadores a escribir
aplicaciones confiables.
Las nuevas instrucciones Transact-SQL permiten a las aplicaciones enviar y recibir
los mensajes de forma segura. Una aplicacin enva mensajes a un servicio, que
es un nombre para un conjunto de tareas relacionadas. Una aplicacin recibe
mensajes de una cola, que es una vista de una tabla interna.
Los mensajes para la misma tarea forman parte de la misma conversacin. En
cada conversacin, Service Broker garantiza que una aplicacin reciba cada
mensaje exactamente una vez en el orden en el que se envi. El programa que
implementa un servicio puede asociar conversaciones relacionadas para el mismo
servicio en un grupo de conversacin.
La seguridad basada en certificados ayuda a proteger los mensajes confidenciales
y controla el acceso a los servicios.
Una forma de entender Service Broker consiste en compararlo con el servicio
postal. Para mantener una conversacin con un amigo que est lejos, puede
comunicarse mediante cartas enviadas a travs del servicio postal, que ordena y
entrega las cartas. Ambos retiran las cartas de sus buzones, las leen, escriben
respuestas y envan nuevas cartas, hasta que la conversacin finaliza. La entrega
de cartas sucede de forma "asincrnica", mientras los dos llevan a cabo otras
tareas.

Figura 8.2: Analoga entre un servicio postal y service broker


En la analoga del servicio postal, las cartas son los mensajes. El servicio de
Service Broker es la direccin a la que la oficina postal entrega las cartas. Las
colas son los buzones que guardan las cartas una vez entregadas. Las
aplicaciones reciben los mensajes, actan sobre los mismos y envan respuestas.
166

Excelencia Acadmica

Un programa que utiliza Service Broker mantiene conversaciones con otros


programas de forma similar a la entrega postal.
No hay que saber especficamente cundo lee su amigo el correo o escribe la
respuesta. De igual forma, una aplicacin que utiliza Service Broker no tiene que
conocer cmo otro servicio procesa el mensaje, cmo se entrega o cundo la otra
aplicacin va a procesar el mensaje.
Coordinacin y ordenacin de mensajes
Service Broker controla las colas, una tcnica de programacin de base de datos
comn, de forma diferente a los productos tradicionales en dos aspectos clave:

Las colas de Service Broker estn integradas en la base de datos.

Las colas coordinan y ordenan los mensajes relacionados.

Las colas integradas suponen que el mantenimiento y la administracin ordinarios


de la base de datos tambin incluyen a Service Broker. Normalmente, un
administrador no tiene tareas de mantenimiento rutinarias relacionadas con Service
Broker.
La estructura de Service Broker proporciona una interfaz Transact-SQL sencilla
para enviar y recibir mensajes combinada con un conjunto de slidas garantas
para el procesamiento y la entrega de los mensajes. Service Broker garantiza que
un programa reciba cada mensaje de una conversacin exactamente una vez en el
orden en el que se envi, no en el orden en el que entr en la cola. Los productos
de cola tradicionales proporcionan los mensajes en el orden en el que entran en la
cola, lo que hace necesario que una aplicacin determine el orden y la agrupacin
de los mensajes. Service Broker garantiza que dos lectores de cola no puedan
procesar mensajes simultneamente desde la misma conversacin o desde el
mismo grupo de conversaciones relacionadas.
El programa iniciador inicia una conversacin para cada tarea y, a continuacin,
enva un mensaje al servicio de destino. El mensaje contiene los datos necesarios
para llevar a cabo un paso especfico de una tarea. El servicio de destino recibe el
mensaje. El programa del servicio de destino procesa el mensaje y, a continuacin,
responde al servicio iniciador. La conversacin contina y acaba finalizando segn
las reglas determinadas por el programador.
Service Broker controla las tareas ms difciles implicadas en la creacin de
aplicaciones de mensajera, como la coordinacin de mensajes, la entrega
confiable de mensajes, el bloqueo y el inicio de los lectores de cola; de este modo,
se deja libre a los programadores de la base de datos para que se concentren en
resolver otros problemas.
Programacin asincrnica transaccional
En la infraestructura de Service Broker, la entrega de mensajes entre aplicaciones
es transaccional y asincrnica. Como la mensajera de Service Broker es
transaccional, si una transaccin se revierte, todas las operaciones de Service
Broker de la transaccin tambin lo harn, incluidas las operaciones de envo y
recepcin. En una entrega asincrnica, Database Engine (Motor de base de datos)
controla la entrega mientras la aplicacin contina ejecutndose. Para mejorar la
escalabilidad,
Service
Broker
proporciona
mecanismos
para
iniciar
automticamente programas que procesan una cola cuando existen tareas
pendientes.

167

Excelencia Acadmica

La programacin asincrnica ayuda a los programadores a escribir aplicaciones


que usan las colas. Muchas aplicaciones de base de datos incluyen tablas que
funcionan como colas de trabajo que debe realizarse segn permitan los recursos.
Las colas permiten que la base de datos contine dando respuesta a los usuarios
interactivos a la vez que utilizan los recursos disponibles de forma eficaz. Service
Broker proporciona colas como parte integral de Database Engine (Motor de base
de datos).
Las colas permiten que una aplicacin realice un trabajo en una transaccin
distinta de la transaccin que solicita el trabajo. Service Broker ampla esta idea, de
forma que las aplicaciones puedan llevar a cabo el trabajo en una instancia o en un
equipo diferentes. Service Broker ayuda a los programadores de bases de datos,
ya que proporciona colas integradas en la base de datos y una mensajera
transaccional confiable entre instancias.
Compatibilidad con aplicaciones de acoplamiento flexible
Service Broker es compatible con las aplicaciones de acoplamiento flexible. Estas
aplicaciones estn formadas por varios programas que envan y reciben mensajes
de forma independiente. Tales aplicaciones deben contener las mismas
definiciones para los mensajes intercambiados y definir la misma estructura global
para la interaccin entre los servicios. Sin embargo, las aplicaciones no tienen que
ejecutarse al mismo tiempo, ni ejecutarse en la misma instancia de SQL Server, ni
compartir los detalles de la implementacin. Una aplicacin no necesita conocer la
ubicacin fsica ni la implementacin del otro participante de la conversacin.
b) Componentes de Service Broker
Service Broker utiliza tres tipos de componentes:
Componentes de conversacin. Los grupos de conversacin, las conversaciones
y los mensajes conforman la estructura de tiempo de ejecucin de una aplicacin
de Service Broker. Las aplicaciones intercambian mensajes como parte de una
conversacin. Cada conversacin forma parte de un grupo de conversacin; un
grupo de conversacin puede contener varias conversaciones. Las conversaciones
de Service Broker son dilogos, es decir, conversaciones entre dos participantes.
Componentes de definicin de servicio. stos son los componentes de tiempo
de diseo que especifican la estructura bsica de las conversaciones que utiliza la
aplicacin. Definen los tipos de mensajes, el flujo de conversacin y el
almacenamiento de base de datos de la aplicacin.
Componentes de red y de seguridad. Estos componentes definen la
infraestructura para intercambiar mensajes fuera de una instancia de SQL Server.
Para ayudar a los administradores de base de datos a administrar entornos
cambiantes, Service Broker les permite configurar estos componentes
independientemente del cdigo de la aplicacin.
Los componentes de definicin de servicio, los componentes de red y los
componentes de seguridad forman parte de los metadatos de la base de datos y de
la instancia de SQL Server. Los grupos de conversacin, las conversaciones y los
mensajes forman parte de los datos que contiene la base de datos

c) Usos habituales de Service Broker


168

Excelencia Acadmica

Service Broker puede resultar til en cualquier aplicacin que necesita realizar el
procesamiento de forma asincrnica o que necesita distribuir el procesamiento
entre varios equipos. Entre los usos habituales de Service Broker se incluyen:

Desencadenadores asincrnicos

Procesamiento confiable de consultas

Recopilacin confiable de datos

Procesamiento distribuido en el servidor para aplicaciones cliente

Consolidacin de datos para aplicaciones cliente

Procesamiento por lotes a gran escala

Desencadenadores asincrnicos
Muchas aplicaciones que utilizan desencadenadores, como los sistemas de
procesamiento de transacciones en lnea (OLTP), pueden beneficiarse de Service
Broker. Un desencadenador pone en cola un mensaje que solicita trabajo de un
servicio de Service Broker. El desencadenador no realiza realmente el trabajo
solicitado. En realidad, crea un mensaje que contiene informacin sobre el trabajo
que se va a hacer y enva este mensaje a un servicio que realiza el trabajo. A
continuacin, el desencadenador vuelve.
Cuando la transaccin original se confirma, Service Broker entrega el mensaje al
servicio de destino. El programa que implementa el servicio realiza el trabajo en
una transaccin independiente. Al realizar este trabajo en una transaccin
independiente, la transaccin original puede confirmarse inmediatamente. La
aplicacin evita que el sistema se ralentice por mantener la transaccin original
abierta mientras se realiza el trabajo.
Procesamiento confiable de consultas
Algunas aplicaciones deben procesar de forma confiable las consultas,
independientemente de los errores del equipo, de problemas de suministro
elctrico o de problemas similares. Una aplicacin que necesita el procesamiento
confiable de consultas puede enviar consultas mediante el envo de mensajes a un
servicio de Service Broker. La aplicacin que implementa el servicio lee el
mensaje, ejecuta la consulta y devuelve los resultados. Estas tres operaciones
tienen lugar en la misma transaccin. Si se produce un error antes de que la
transaccin se confirme, se revierte toda la transaccin y el mensaje vuelve a la
cola. Cuando el equipo se recupera, la aplicacin se reinicia y vuelve a procesar el
mensaje.
Recopilacin confiable de datos
Las aplicaciones que recopilan datos de un conjunto grande de orgenes pueden
sacar partido de Service Broker para recopilar datos de forma confiable. Por
ejemplo, una aplicacin comercial con varios sitios puede utilizar Service Broker
para enviar informacin sobre transacciones a un almacn central de datos. Dado
que Service Broker proporciona una entrega de mensajes asincrnica confiable,
cada sitio puede continuar procesando transacciones incluso si el sitio pierde
temporalmente la conexin con el almacn central de datos. La seguridad de
Service Broker ayuda a garantizar que los mensajes no se envan a un destino
incorrecto y a proteger los datos en trnsito.

Procesamiento distribuido en el servidor para aplicaciones cliente


169

Excelencia Acadmica

Las aplicaciones grandes que tienen acceso a varias bases de datos de SQL
Server pueden beneficiarse de Service Broker. Por ejemplo, una aplicacin Web
para hacer pedidos de libros puede utilizar Service Broker en el servidor para
intercambiar informacin entre las distintas bases de datos que contienen datos
sobre pedidos, clientes, inventario y crdito. Dado que Service Broker proporciona
una cola de mensajes y la entrega confiable de mensajes, la aplicacin puede
continuar aceptando pedidos incluso si una de las bases de datos no est
disponible o est sobrecargada. En este escenario, Service Broker funciona como
un marco para un sistema OLTP distribuido.
Consolidacin de datos para aplicaciones cliente
Las aplicaciones que deben utilizar o mostrar informacin simultneamente desde
varias bases de datos pueden aprovecharse de Service Broker. Por ejemplo, una
aplicacin de servicio al cliente que consolida datos de varias ubicaciones en una
pantalla puede utilizar Service Broker para ejecutar estas solicitudes en paralelo en
lugar de hacerlo de forma secuencial, lo cual reduce el tiempo de respuesta de la
aplicacin. La aplicacin de servicio al cliente enva las solicitudes a distintos
servicios en paralelo; a medida que los servicios responden a las solicitudes, la
aplicacin de servicio al cliente recopila las respuestas y muestra los resultados.
Procesamiento por lotes a gran escala
Las aplicaciones que deben realizar procesamiento por lotes a gran escala pueden
aprovecharse de las colas y el procesamiento en paralelo que ofrece Service
Broker para controlar grandes volmenes de trabajo de forma rpida y eficaz. La
aplicacin almacena datos que se procesan en una cola de Service Broker. Un
programa lee peridicamente la cola y procesa los datos. Una aplicacin puede
aprovecharse de la mensajera confiable que proporciona Service Broker para
realizar el procesamiento por lotes en un equipo distinto del equipo donde se
origina la solicitud.

3. SQL SERVER NOTIFICATION SERVICES


Microsoft SQL Server 2005 Notification Services
es una plataforma para desarrollar e implementar
aplicaciones que generan y envan notificaciones.
Puede utilizar Notification Services para generar y
enviar a tiempo mensajes personalizados a miles
o millones de suscriptores, y entregar los
mensajes a una amplia variedad de dispositivos.

Microsoft SQL Server Notification Services es una


plataforma para desarrollar e implementar
aplicaciones que generan y envan notificaciones
a los suscriptores. Las notificaciones generadas
son mensajes personalizados y oportunos que
pueden enviarse a una amplia gama de dispositivos y que reflejan las preferencias del
suscriptor.
Los suscriptores crean suscripciones para las aplicaciones de notificacin. Una suscripcin
es un inters manifiesto en un tipo determinado de evento. Por ejemplo, las suscripciones
pueden expresar preferencias como sta: "avisarme cuando el precio de los valores
alcance los $70,00" o "avisarme cuando se actualice el documento de estrategia que est
redactando mi equipo".
170

Excelencia Acadmica

Una notificacin puede generarse y enviarse al suscriptor tan pronto como se produzca un
evento que la desencadene. O bien, puede generarse y enviarse segn una programacin
predeterminada especificada por el suscriptor.
Las notificaciones pueden enviarse a una gran variedad de dispositivos. Por ejemplo, se
puede enviar una notificacin al telfono mvil de un suscriptor, a su asistente digital
personal (PDA), a Microsoft Windows Messenger o a su cuenta de correo electrnico. Dado
que el suscriptor suele llevar consigo estos dispositivos, las notificaciones son el medio
ideal para enviar informacin importante.
Las aplicaciones de notificacin son valiosas por numerosas razones, entre las que se
incluyen:

Permiten enviar informacin importante a clientes, socios y empleados. Las


notificaciones pueden contener vnculos a un sitio Web para obtener ms
informacin o para confirmar la recepcin de la informacin.

Mejoran y fortalecen las relaciones con los clientes, ya que permiten ofrecerles
servicios ms personalizados en el momento oportuno.

Ayudan a incrementar los ingresos, ya que facilitan el establecimiento de


relaciones comerciales con los clientes.

Ayudan a aumentar la productividad de los empleados, ya que les proporcionan la


informacin que necesitan en el momento y lugar oportunos.

Permiten la comunicacin con suscriptores mviles a travs de una gran variedad


de dispositivos.

a) En qu consiste Notification Services?


Una aplicacin de Notification Services (o "aplicacin de notificaciones") genera y
enva mensajes a usuarios y otras aplicaciones que se hayan suscrito a la
aplicacin. Para comprender las aplicaciones de notificaciones, es importante
definir algunos trminos clave:

Un suscriptor es una persona o aplicacin que se suscribe y recibe


notificaciones.

Una suscripcin es una solicitud de informacin especfica, por


ejemplo, el precio de un valor burstil o el resultado de un partido, que
se entrega a un dispositivo concreto, como una direccin de correo
electrnico o un telfono celular.

Un evento es una informacin que interesa a los suscriptores y que


reciben de la aplicacin de notificaciones. El precio de un valor burstil
en un momento determinado es un evento, como lo es tambin un
resultado deportivo o un mensaje de entrega de producto.
Prcticamente cualquier acontecimiento del mundo real puede
expresarse como un evento de Notification Services.

Una notificacin es un mensaje que contiene informacin relacionada


con una suscripcin. Puede contener un mensaje acerca de un nuevo
valor a la alza de un valor burstil determinado o el resultado final de
un partido.

En la ilustracin siguiente se muestra el funcionamiento bsico de una aplicacin


de Notification Services.
171

Excelencia Acadmica

Figura 8.3: Funcionamiento bsico de Notificaction Services

La aplicacin produce notificaciones del siguiente modo:

Los suscriptores crean suscripciones relacionadas con la aplicacin.

La aplicacin recopila eventos.

Notification Services hace corresponder las suscripciones con los eventos.

Cuando un evento y una suscripcin coinciden, Notification Services


genera una notificacin.

Notification Services aplica formato a la notificacin y la enva al dispositivo


especificado en la suscripcin.

Un buen ejemplo de una aplicacin de notificaciones es una aplicacin de valores


burstiles. Un suscriptor podra crear una suscripcin para recibir notificaciones en
su telfono celular sobre los valores de ADCP si el precio supera los 70 dlares.
La aplicacin de notificaciones recopila datos de los valores a partir de un tablero
de cotizaciones. Cada vez que se recibe un "evento" de un lote de precios de
valores, Notification Services compara las suscripciones con el conjunto de
eventos actual. Si el precio del valor de ADCP supera los 70 dlares, Notification
Services crea una notificacin, le aplica formato y la enva a un servicio de entrega
que reenva el mensaje al telfono celular del suscriptor.
Notification Services incluye caractersticas para evitar el envo de notificaciones
por duplicado. Por ejemplo, puede registrar que un suscriptor determinado ya ha
recibido una notificacin sobre la cotizacin de ADCP. Si el siguiente valor burstil
de ADCP tambin es superior a los 70 dlares, la lgica de notificacin cancelar
el envo de ms notificaciones al suscriptor.

4. BSQUEDA DE TEXTO

172

Excelencia Acadmica

Microsoft SQL Server 2005 contiene la funcionalidad necesaria para realizar consultas de
texto en datos basados en caracteres sin formato contenidos en tablas de SQL Server. Las
consultas de texto pueden contener palabras y frases, o formas diversas de una palabra o
frase.
La bsqueda de texto permite la indizacin rpida y flexible en consultas basadas en
palabras clave de datos de texto almacenados en una base de datos de Microsoft SQL
Server. A diferencia del predicado LIKE, que slo funciona en patrones de caracteres, las
consultas de texto realizan bsquedas lingsticas en estos datos y operan en palabras y
frases basndose en las reglas de un idioma en concreto.
En Microsoft SQL Server 2005, la bsqueda de texto ofrece funcionalidad de bsqueda
empresarial. Se han realizado importantes mejoras en el rendimiento, la facilidad de uso y
la funcionalidad, que proporcionan funciones de bsqueda excepcionales para aplicaciones
de cualquier tamao.
La mejor forma de comprobar la ventaja de rendimiento que aporta el uso de la bsqueda
de texto es realizar una consulta en una gran cantidad de datos de texto sin estructura. Una
consulta LIKE realizada en millones de filas de datos de texto puede tardar minutos en
devolver resultados, mientras que una consulta de texto en los mismos datos puede tardar
nicamente segundos, en funcin del nmero de filas que se devuelvan.
Puede crear ndices de texto en columnas que contengan datos char, varchar y nvarchar.
Tambin es posible crear ndices de texto en columnas que contengan datos binarios con
formato, como documentos de Microsoft Word, almacenados en una columna
varbinary(max) o image. No es posible utilizar el predicado LIKE para consultar datos
binarios con formato.
Para crear un ndice de texto en una tabla, sta debe tener una nica columna que no
contenga valores NULL. Tomemos como ejemplo un ndice de texto de la tabla Document
en Adventure Works cuya columna DocumentID es la columna de clave principal. Un
ndice de texto indica que la palabra "instructions" se encuentra en la palabra nmero 24 y
en la palabra 44 de la columna DocumentSummary para la fila asociada con el valor de
DocumentID igual a 3. Esta estructura de ndices permite realizar una bsqueda eficaz de
todos los elementos que contengan palabras indizadas y operaciones de bsqueda
avanzada, como bsquedas de frases y bsquedas de proximidad.
Cuando se procesa una consulta de texto, el motor de bsqueda devuelve a SQL Server
los valores de clave de las filas que coinciden con los criterios de bsqueda. Si desea usar
una consulta de texto para buscar los documentos que contengan la palabra "instructions",
los valores 3, 4, 6, 7 y 8 de DocumentID se obtienen del ndice de texto. SQL Server usa
estas claves para devolver las filas coincidentes.

a) Aspectos bsicos de la bsqueda de texto


Terminologa de la bsqueda de texto
A continuacin se ofrece una lista de trminos y componentes que debe conocer el
usuario que utilice la bsqueda de texto.
ndice de texto
Almacena informacin acerca de palabras relevantes y su ubicacin en una
determinada columna. Esta informacin se utiliza para realizar rpidamente
173

Excelencia Acadmica

consultas de texto que busquen filas con palabras o combinaciones de


palabras concretas
Catlogo de texto
Un catlogo de texto contiene cero o ms ndices de texto. Los catlogos
de texto deben encontrarse en una unidad de disco local asociada a la
instancia de SQL Server. Cada catlogo puede satisfacer las necesidades
de indizacin de una o ms tablas de una base de datos. Los catlogos de
texto no pueden almacenarse en unidades extrables, disquetes ni
unidades de red, excepto en el caso de que se adjunte una base de datos
de slo lectura que contenga un catlogo de texto.
Separador de palabras
En un idioma concreto, un separador de palabras acorta el texto en funcin
de las reglas lxicas de dicho idioma..
Testigo
Palabra o cadena de caracteres identificada por el separador de palabras.
Lematizador
En un idioma concreto, un lematizador genera formas con inflexin de una
determinada palabra en funcin de las reglas de dicho idioma. Los
lematizadores son especficos del idioma.
Filtro
En un tipo de archivo especificado, por ejemplo .doc, los filtros extraen el
texto de un archivo almacenado en una columna varbinary(max) o image.
Llenado o rastreo
Proceso de creacin y mantenimiento de un ndice de texto.
Palabras irrelevantes
Palabras frecuentes que no ayudan en la bsqueda. Por ejemplo, en la
configuracin regional en ingls, las palabras como "a", "and", "is" y "the"
se consideran palabras irrelevantes. Estas palabras se omiten para evitar
inundar de palabras el ndice de texto.

1. Investigue acerca de los escenarios de aplicacin de las siguientes tecnologas:


replicacin, service brker, bsquedas de texto y servicios de notificacin
2. Investigue acerca de los ediciones de SQL Server donde pueden implementarse los
siguientes servicios: replicacin, service brker, bsquedas de texto y servicios de
notificacin

174

Excelencia Acadmica

En sta unidad se ha tratado acerca de temas actuales relacionados con la Administracin


de base de datos tales replicacin (conjunto de tecnologas destinadas a la copia y
distribucin de datos y objetos de base de datos desde una base de datos a otra, donde
ambas bases de datos estn sincronizadas y mantienen su coherencia), servicios de
notificacin (para generar y enviar a tiempo mensajes personalizados a miles o millones de
suscriptores, y entregar los mensajes a una amplia variedad de dispositivos), bsquedas de
texto (bsquedas de texto de palabras o frases), service broker (proporciona la
compatibilidad nativa del Motor de base de datos de SQL Server para las aplicaciones de
mensajera y de cola).

[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

175

Excelencia Acadmica

ADMINISTRACION DE BASES DE DATOS


UNIDAD ACADMICA N 8
NOMBRE:__________________________________________________________________
APELLIDOS:________________________________________FECHA; ____/_____/______
CIUDAD:_______________________________SEMESTRE:_________________________
1.

En qu consiste la replicacin?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

2.

Cules son los elementos que participan en la replicacin?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

3.

Cmo funciona service broker?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

4.

Qu tipo de bsquedas pueden hacerse con bsquedas de texto (full text search)?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

5.

Cul es la utilidad de los servicios de notificacin?


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________

176

Excelencia Acadmica

ANEXOS

177

Excelencia Acadmica

ANEXO 1
Comparacin de Sistemas Administradores de Bases de Datos Relacionales
Las siguientes tablas comparan informacin general y tcnica de diferentes RDBMS.
Informacin general
Creador
Adaptive Server Anywhere

Sybase/iAnywhere

Adaptive Server Enterprise

Sybase Inc

ANTs Data Server


DB2

ANTs Software
IBM

Firebird

Firebird Foundation

Informix

Informix Software

HSQLDB

Hsqldb.Org

Fecha de
ltima Licencia
la primera
versin
de
versin
estable software
pblica
1992
10.0 Propietario
15.0
1987
(Sep. Propietario
2005)
1999
3.0
Propietario
1982
9
Propietario
Licencia
25 de julio
Pblica
2
de 2000
InterBase
1985
10.0 Propietario
Licencia
2001
1.8.0
BSD

Berkeley University,
Computer Associates
Borland

1980

2006

CA-TOSL

1985

7.5.1

SapDB

SAP AG

7.4

MaxDB

MySQL AB, SAP AG

7.5

Propietario
GPL con
drivers
LGPL
GPL o
propietario

Ingres
InterBase

Microsoft SQL Server

Microsoft

MySQL

MySQL AB

Oracle

Oracle Corporation

PostgreSQL

PostgreSQL Global
Development Group

SmallSQL
SQLite

SmallSQL
D. Richardo Hippy

Creador

9.00.2047
(2005 Propietario
SP1)
Noviembre
GPL o
5.0
de 1996
propietario
11g
1977
Release Propietario
1
Junio de
Licencia
8.2.3
1989
BSD
16 de abril
0.12
LGPL
de 2005
17 de
Dominio
agosto de
3.1.3
pblico
2000
Fecha de
ltima Licencia
la primera
versin
de
versin
estable software
pblica
1989

Soporte del sistema operativo


Windows
178

Mac OS
Linux BSD
X

Unix

z/OS

Excelencia Acadmica

Adaptive Server Enterprise

ANTs Data Server

DB2

No
S
S

S
S

No
S
S

Firebird
HSQLDB
Informix

S
?

Ingres

S
?

InterBase

No

No

SapDB

No

No

MaxDB

No

No

Microsoft SQL Server

MySQL
Oracle

S
S

No
S
S

No
S
S

No
S
S

No
S
S

No
Quiz

PostgreSQL

SmallSQL
SQLite

S
S

S
S
S
S
S
S
Mac OS
Windows
Linux BSD
X

S
S

No
S
Quiz

S
S

S
S
S
S
(Solaris)

Unix

No
?
S
Quiz
S
No
Quiz
No

z/OS

Caractersticas fundamentales
Informacin acerca de que caractersticas fundamentales de las RDBMS son implementados
nativamente.
ACID
Adaptive Server Enterprise
ANTs Data Server
DB2
Firebird
HSQLDB
Informix
Ingres
InterBase
SapDB
MaxDB
Microsoft SQL Server
MySQL
Oracle
PostgreSQL
SQLite

S
S
S
S
S
S
S
S
S
S
S
Depende 1
S
S
S
ACID

Integridad
referencial
S
S
S
S
S
S
S
S
S
S
S
Depende 1
S
S
No 2
Integridad
referencial

Transacciones Unicode
S
S
S
S
S
S
S
S

S
S
S
S
S
S
S
S

S
S
S
Depende 1

S
S
S
S

S
S
Bsico 2

S
S
S

Transacciones Unicode

Nota (1): Para las transacciones y la integridad referencial, el tipo de tabla InnoDB debe ser
usado; el tipo de tabla por defecto, MyISAM,
No soporta estas caractersticas. Sin embargo,

179

Excelencia Acadmica

inclusive el tipo de tabla InnoDB permite el almacenamiento de valores que excedan el rango
de datos; algunas vistas violan la limitacin de ACID.
Nota (2): Las limitaciones de CHECK y FOREIGN KEY son analizadas pero
No forzadas.
No son soportadas.[1]
Transacciones anidadas
Tablas y vistas
Informacin acerca de que tablas y vistas 3 (unas ms bsicos que otras) son soportados
nativamente.
Tabla temporal
Adaptive Server Enterprise
ANTs Data Server
DB2

S
S
S

Vista materializada
S
S
S

Firebird

No

HSQLDB

Informix

No
S

Ingres

No

InterBase

No

SapDB

No

MaxDB

Microsoft SQL Server

MySQL

Oracle

No
S

PostgreSQL

No 4

No
Similar 6

SQLite

S
No
Tabla temporal
Vista materializada
Nota (4): La vista materializada puede ser emulada con PL/PgSQL [2].
Nota (5): El servidor provee tempdb, que puede ser usado para tablas temporales pblicas y
privadas (para la sesin). [3]
Nota (6): El servidor MS SQL provee vistas indexadas. [4]
ndice
Informacin acerca de que ndices (otros como los ndices bsicos B-/B+) son soportados
nativamente.
rbol R/R+

Hash

Mapa
Expresin Parcial Reversa de
bits

Adaptive Server Enterprise

No

No

No

No

ANTs Data Server

No

S
?

DB2

No

No

Firebird
HSQLDB
Informix

No
?

No
?

No
?

No
?

No
?

No
?

No

No

No

Ingres

S
?

S
?

No

No

No

No

InterBase

No

No

No

No

SapDB

No

No

No

No

180

Excelencia Acadmica

MaxDB

Microsoft SQL Server

?
?
Tablas
Tablas
MyISAM
HEAP
solamente solamente
Edicin
EE
?
solamente

MySQL

Oracle

No

No

No

No

No

No

No

No

No

No

No

No

No

S
No

PostgreSQL

No

SQLite

No

No

No

No

No

rbol R/R+

Hash

No
Mapa
Expresin Parcial Reversa de
bits

Otros objetos
Informacin acerca de que otros objetos son soportados nativamente.
Dominio Cursor Trigger Funcin 5 Procedimiento 5
Adaptive Server Enterprise
ANTs Data Server
DB2
Firebird

Rutina
externa 5
S
S

S
S

S
S

S
S

S
S

S
S

No
S
?

S
S
S
S
S

S
S
S
S
S

S
S
S
S
S

S
?

SapDB
MaxDB

S
S
S
S

No
S
S
S
S
S

Microsoft SQL Server

No

HSQLDB
Informix
Ingres
InterBase

MySQL
Oracle
PostgreSQL
SQLite

No
S
S

S
S

S
S

S
S

No

S
S

S
?
?
S
S
S

S
Rutina
Dominio Cursor Trigger Function Procedimiento
externa
No

No

No

Nota (3): Estos objetos de base de datos son disponibles a partir de MySQL 5.0 disponible
desde 24/12/2005.
Nota (5): Funcin y procedimiento se refieren a las rutinas internas escritas en SQL o
lenguajes procedurales como PL/SQL. Rutina externa se refiere a la escritura en los lenguajes
anfitriones como C, Java, Cobol, etc. "Procedimiento almacenado" es un trmino comnmente
usado para ese tipo de rutinas. Sin embargo, su definicin vara entre diferentes vendedores de
bases de datos.
Particionamiento
Informacin acerca de que mtodos de particionamiento son soportados nativamente.

181

Excelencia Acadmica

Adaptive Server Enterprise


ANTs Data Server
DB2

Rango Hash Compuesto (Rango+Hash) Lista


AA
AA
AA
AA
S
S
S
S
S
S
S
S

Firebird
Informix
Ingres

No
?
S

No
?
S

No
?
S

No
?
S

InterBase
SapDB
MaxDB
Microsoft SQL Server

No
?
?

No
?
?

No
?
?

No
?
?

No

No

No

MySQL
Oracle

No
S

No
S

No
S

No
S

PostgreSQL

No

No

No

No

SQLite

182

S
S
S
S
Rango Hash Compuesto (Rango+Hash) Listas

You might also like