TABLA DE CONTENIDOS - Profesor Ezequiel Ruiz … · OPTIMIZACION DE UNA BD MEDIANTE GRUPOS DE...

178
TABLA DE CONTENIDOS TABLA DE CONVERSIONES PRESENTACIÓN 03 UNIDAD ACADÉMICA N° 01: TEMAS GENERALES DE ADMINISTRACION DE BASE DE DATOS ¿QUE ES UN SISTEMA DE BASE DE DATOS? 09 ¿QUÉ ES UNA BASE DE DATOS? 11 ¿POR QUÉ UNA BASE DE DATOS? 13 LOS SISTEMAS RELACIONALES Y OTROS SISTEMAS 16 ADMINISTRACION DE DATOS Y ADMINISTRACION DE BASE DE DATOS 17 SISTEMAS DE ADMINISTRACION DE BASE DE DATOS 17 INTERACCION DE LOS SGBD CON LOS SISTEMAS OPERATIVOS 26 ACTIVIDAD 30 RESÚMEN 30 BIBLIOGRAFIA RECOMENDADA 30 AUTOEVALUACIÓN FORMATIVA 31 UNIDAD ACADÉMICA N° 02: INSTALACION Y CONFIGURACION DEL SISTEMA GESTOR DE BASE DE DATOS ELECCION DEL MODELO DE DATOS Y DEL SGBD 33 GESTORES DE BASE DE DATOS EN EL MERCADO 37 INSTALACION Y CONFIGURACION DE SQL SERVER 2005 40 ACTIVIDAD 57 RESÚMEN 57 BIBLIOGRAFIA RECOMENDADA 58 AUTOEVALUACIÓN FORMATIVA 59 UNIDAD ACADÉMICA N° 03: ADMINISTRACION DE ARCHIVOS DE BASES DE DATOS INTRODUCCION A LA ESTRUCTURA DE DATOS 61 CREACION DE BASE DE DATOS 64 ADMINISTRACION DE LOS ARCHIVOS DE BASE DE DATOS 67 UBICACIÓN DE ARCHIVOS Y REGISTROS DE BASE DE DATOS 72 OPTIMIZACION DE UNA BD MEDIANTE RAID EN HARDWARE 73

Transcript of TABLA DE CONTENIDOS - Profesor Ezequiel Ruiz … · OPTIMIZACION DE UNA BD MEDIANTE GRUPOS DE...

Excelencia Académica

5

TABLA DE CONTENIDOS TABLA DE CONVERSIONES PRESENTACIÓN 03

UNIDAD ACADÉMICA N° 01:

TEMAS GENERALES DE ADMINISTRACION DE BASE DE DATOS

¿QUE ES UN SISTEMA DE BASE DE DATOS? 09 ¿QUÉ ES UNA BASE DE DATOS? 11 ¿POR QUÉ UNA BASE DE DATOS? 13 LOS SISTEMAS RELACIONALES Y OTROS SISTEMAS 16 ADMINISTRACION DE DATOS Y ADMINISTRACION DE

BASE DE DATOS

17 SISTEMAS DE ADMINISTRACION DE BASE DE DATOS 17 INTERACCION DE LOS SGBD CON LOS SISTEMAS

OPERATIVOS 26

ACTIVIDAD 30 RESÚMEN 30 BIBLIOGRAFIA RECOMENDADA 30 AUTOEVALUACIÓN FORMATIVA 31

UNIDAD ACADÉMICA N° 02:

INSTALACION Y CONFIGURACION DEL SISTEMA GESTOR DE BASE DE DATOS

ELECCION DEL MODELO DE DATOS Y DEL SGBD

33

GESTORES DE BASE DE DATOS EN EL MERCADO 37 INSTALACION Y CONFIGURACION DE SQL SERVER 2005 40

ACTIVIDAD 57 RESÚMEN 57 BIBLIOGRAFIA RECOMENDADA 58 AUTOEVALUACIÓN FORMATIVA 59

UNIDAD ACADÉMICA N° 03:

ADMINISTRACION DE ARCHIVOS DE BASES DE DATOS

INTRODUCCION A LA ESTRUCTURA DE DATOS 61 CREACION DE BASE DE DATOS 64 ADMINISTRACION DE LOS ARCHIVOS DE BASE DE

DATOS 67

UBICACIÓN DE ARCHIVOS Y REGISTROS DE BASE DE DATOS

72

OPTIMIZACION DE UNA BD MEDIANTE RAID EN HARDWARE

73

Excelencia Académica

6

OPTIMIZACION DE UNA BD MEDIANTE GRUPOS DE ARCHIVOS

78

ACTIVIDAD 80 RESÚMEN 80 BIBLIOGRAFIA RECOMENDADA 80 AUTOEVALUACIÓN FORMATIVA 81

UNIDAD ACADÉMICA N° 04:

COPIAS DE RESPALDO

COPIAS DE RESPALDO Y RESTAURACION DE BASE DE DATOS

83

COMO IMPEDIR LA PERDIDAD DE DATOS 84 ESTABLECIMEINTO Y CAMBIO DE UN MODELO DE

RECUPERACION DE DATOS

85 PROCESO DE COPIA DE SEGURIDAD 87 EJECUCION Y ALMACENAMIENTO DE COPIAS DE

SEGURIDAD 88

DISENO DE UNA ESTRATEGIA DE COPIAS DE RESPALDO

96

CONSIDERACIONES ACERCA DEL RENDIMIENTO 103 ACTIVIDAD 104 RESÚMEN 104 BIBLIOGRAFIA RECOMENDADA 104 AUTOEVALUACIÓN FORMATIVA 105

UNIDAD ACADÉMICA N° 05:

ADMINISTRACION DE LA SEGURIDAD

IMPLEMANTACION DEL MODO DE AUTENTICACION 107 CUENTAS DE INICIO DE SESION 112 ASIGNACION DE CUENTAS DE INICIO DE SESION A

USUARIOS Y FUNCIONES

114 ASIGNACION DE CUENTAS DE INICIO DE SESION A

FUNCIONES 115

ADMINISTRACION DE LA SEGURIDAD DE SQL SERVER EN LA EMPRESA

123

ACTIVIDAD 127 RESÚMEN 127 BIBLIOGRAFIA RECOMENDADA 127 AUTOEVALUACIÓN FORMATIVA 128

UNIDAD ACADÉMICA N° 06:

MONITOREO DE LA BASE DE DATOS

¿POR QUE SUPERVISAR EL RENDIMIENTO DE LA BASE DE DATOS?

129

Excelencia Académica

7

SUPERVISION Y OPTIMIZACION DEL RENDIMIENTO 129 HERRAMIENTAS PARA SUPERVISAR A;L SGBDR 135 TAREAS HABITUALES DE SUPERVISION Y

OPTIMIZACION 141

RESÚMEN 149 BIBLIOGRAFIA RECOMENDADA 149 NEXO 150 AUTOEVALUACIÓN FORMATIVA 150

UNIDAD ACADÉMICA N° 07:

AUTOMATIZACION DE TAREAS ADMINISTRATIVAS

AUTOMATIZACION DE TAREAS ADMINISTRATIVAS 151

COMPONENTES DE ADMINISTRACION AUTOMATICA 152 SEGURIDAD EN LA ADMINISTRACION DEL AGENTE SQL

SERVER 153

HERRAMIENTAS PARA AUTOMATIZAR LA ADMINISTRACION

154

AGENTE SQL SERVER 154 ACTIVIDAD 160 RESÚMEN 160 BIBLIOGRAFIA RECOMENDADA 160 AUTOEVALUACIÓN FORMATIVA 162

UNIDAD ACADÉMICA N° 08:

TOPICOS AVANZADOS DE ADMINISTRACION DE BASE DE DATOS

REPLICACION 163 SQL SERVICE BROKER 165 SQL SERVICE NOTIFICATION SERVICES 170 BUSQUEDAS DE TEXTO 173

ACTIVIDAD 175 RESÚMEN 175 BIBLIOGRAFIA RECOMENDADA 175 AUTOEVALUACIÓN FORMATIVA 176

Excelencia Académica

8

Excelencia Académica

9

TEMAS GENERALES DE ADMINISTRACION DE BASE DE DATOS

Las bases de datos se han utilizado desde los comienzos de la informática, y a medida que las capacidades de procesamiento fueron creciendo, aparecen las bases de datos de uso general, y nace el interés por la estandarización.

Hoy, los sistemas de bases de datos relacionales (RDBMS) dominan el mercado de las bases de datos, y las necesidades de administración crecen en forma paralela.

En la presente unidad conoceremos el rol de un administrador de base de datos (DBA) exploraremos conceptos relacionados a la administración de base de datos.

Al finalizar el estudio de la presente unidad temática el estudiante:

1. Define un sistema de base de datos

2. Comprende el rol del administrador de base de datos

3. Diferencia administración de datos de administración 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 información y permitir a los usuarios recuperar y actualizar esa información con base en peticiones. Esta información puede ser cualquier cosa que sea de importancia para el individuo o la organización; es decir, todo lo que sea necesario para auxiliarle en el proceso general de su administración.

Un sistema de bases de datos comprende cuatro componentes principales: datos, hardware, software y usuarios.

a) Datos

Los sistemas de bases de datos están disponibles en máquinas que van desde las computadoras personales más pequeñas hasta las mainframes más grandes. En particular, los sistemas que se encuentran en máquinas grandes (sistemas grandes) tienden a ser multiusuario, mientras que los que se ejecutan en máquinas pequeñas (sistemas pequeños) tienden a ser de un solo usuario. Un sistema de un solo usuario es aquel en el que sólo un usuario puede tener acceso a la base de datos en un momento dado; un sistema multiusuario es aquel en el cual múltiples usuarios pueden tener acceso simultáneo a la base de datos.

Excelencia Académica

10

En general, los datos de la base de datos, al menos en los sistemas grandes, serán tanto integrados como compartidos. Integrado se refiere a una unificación de varios archivos que de otro modo serían 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 específica de la aplicación.

Que la base de datos sea integrada y compartida significa que cualquier usuario ocupará normalmente sólo una pequeña parte de la base de datos total; lo que es más, las partes de los distintos usuarios se traslaparán 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 porción de la base de datos, su visión de dicha parte podría diferir considerablemente a un nivel detallado.

b) Hardware

Los componentes de hardware del sistema constan de:

Los volúmenes de almacenamiento secundario, como discos magnéticos, 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 ejecución 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 administración 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 función 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 percepción 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 términos de ese nivel más alto de percepción.

El DBMS es el componente de software más importante del sistema en general, aunque no es el único

d) Usuarios

Existen tres grandes clases de usuarios:

Programadores de aplicaciones, que son los responsables de escribir los programas de aplicación de base de datos en algún lenguaje de programación. 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 Académica

11

línea, cuyo propósito es permitir al usuario final el acceso a la base de datos desde una estación de trabajo o terminal en línea.

Los usuarios finales, quienes interactúan con el sistema desde estaciones de trabajo o terminales en línea. Un usuario final puede acceder a la base de datos a través de las aplicaciones en línea, o bien puede usar una interfaz proporcionada como parte integral del software del sistema de base de datos. Las interfaces proporcionadas por el fabricante están apoyadas también por aplicaciones en línea, aunque esas aplicaciones están integradas, es decir, no son escritas por el usuario. La mayoría de los sistemas de base de datos incluyen por lo menos una de estas aplicaciones integradas.

La mayoría de los sistemas proporcionan además interfaces integradas adicionales en las que los usuarios no emiten en absoluto solicitudes explícitas a la base de datos, sino que en vez de ello operan mediante la selección de elementos en un menú o llenando casillas de un formulario. Estas interfaces controladas por menús o por formularios tienden a facilitar el uso a personas que no cuentan con una capacitación formal en tecnología de la información (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 más flexible que una controlada por menús o por formularios, dado que los lenguajes de consulta por lo regular incluyen ciertas características 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 sistemáticamente 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 más efímeros. En forma más 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 sólo pueden ser removidos de la base de datos por alguna solicitud explícita al DBMS, no solo como un efecto lateral de algún programa que termina su ejecución. Por lo tanto, esta noción de persistencia permite dar una definición más precisa del término base de datos:

Una base de datos es un conjunto de datos persistentes que es utilizado por los sistemas de aplicación de alguna empresa dada.

Hoy en día las bases de datos se utilizan cada vez más también 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 almacén de datos, que contiene datos de apoyo para la toma de decisiones. A menudo el almacén de datos incluye información de resumen, la que a su vez se extrae periódicamente de la base de datos operacional.

Excelencia Académica

12

Entidades y Relaciones

El término entidad es empleado comúnmente en los círculos de bases de datos para referirse a cualquier objeto distinguible que va a ser representado en la base de datos.

Además de las propias entidades básicas habrá también vínculos que asocian dichas entidades básicas. El punto importante con respecto a estas relaciones es que son parte de los datos tanto como lo son las entidades básicas. Por lo tanto, deben estar representados en la base de datos al igual que las entidades básicas.

Ambos son utilizados en la elaboración de los diagramas entidad/relación (E/R), que son usados frecuentemente por los diseñadores para ayudar a modelar la base de datos.

Dentro de un diagrama E/R cada relación puede relacionarse con una o más 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 vínculos que se relacionan con una sola entidad siguen siendo binarios, solo que los dos tipos de entidad que están 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 lógica se denomina proposición verdadera. En base a esto, una base de datos es en realidad una colección de tales proposiciones verdaderas.

Una razón por la que los sistemas de bases de datos relacionales se han vuelto tan dominantes, es que manejan en forma muy directa la interpretación precedente de los datos. Los sistemas relacionales están basados en una teoría 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 mayoría de ellos difieren del modelo relacional en que son hasta cierto grado específicos, en vez de estar basados firmemente en la lógica formal.

Un modelo de datos es una definición lógica, independiente y abstracta de los objetos, operadores y demás que en conjunto constituyen la máquina abstracta con la que interactúan los usuarios. Los objetos permiten modelar la estructura de los datos. Los operadores permiten modelar su comportamiento.

La implementación de determinado modelo de datos es una realización física, en una máquina real, de los componentes de la máquina abstracta que en conjunto constituyen ese modelo.

Entonces, se puede decir que el modelo es aquello que los usuarios tienen que conocer, y la implementación es lo que los usuarios no tienen que conocer. La distinción entre ambos es en realidad sólo un caso de la conocida distinción entre lógico y físico.

Aunque el término modelo de datos es utilizado con dos significados muy distintos, la diferencia entre ambos puede ser caracterizada de esta manera:

Excelencia Académica

13

En el primer sentido, un modelo de datos es como un lenguaje de programación cuyos elementos pueden ser usados para resolver una amplia variedad de problemas específicos, pero que en sí y por sí mismos no tienen una conexión directa con ninguno de estos problemas específicos.

En el segundo sentido, un modelo de datos es como un programa específico escrito en ese lenguaje. En decir, un modelo de datos que toma las características que ofrece algún modelo como el primero y las aplica a cierto problema específico. Puede ser visto como una aplicación específica de algún 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 métodos tradicionales son:

Compactación: Reduce la necesidad de archivos voluminosos en papel.

Velocidad: La máquina puede recuperar y actualizar datos más rápidamente que un humano. En particular, las consultas específicas sin mucha elaboración pueden ser respondidas con rapidez, sin necesidad de búsquedas 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 disposición información precisa y actualizada.

Desde luego, estos beneficios se aplican aún con más fuerza en un entorno multiusuario, donde es probable que la base de datos sea mucho más 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 información de la base de datos, sino también 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 información a la base de datos.

Es posible reducir la redundancia

En sistemas que no son de bases de datos, cada aplicación 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

Excelencia Académica

14

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 también a las otras en forma automática. A este proceso se le conoce como propagación de actualizaciones.

Es posible brindar un manejo de transacciones

Una transacción es una unidad de trabajo lógica, que por lo regular comprende varias operaciones de la base de datos, en particular varias operaciones de actualización. Si se necesitan dos actualizaciones y se declara que ambas son parte de la misma transacción, 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 estén 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 sólo si existe redundancia en los datos almacenados. No obstante, aun cuando no exista redundancia, la base de datos podría seguir conteniendo información 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 serán verificadas siempre que se realice una operación de actualización.

Es posible hacer cumplir la seguridad

Al tener la completa jurisdicción sobre la base de datos, el DBA puede, bajo la dirección apropiada del DBA, asegurar que el único medio de acceso a la base de datos sea a través de los canales adecuados y por lo tanto puede definir las reglas o restricciones de seguridad que serán 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 información de la base de datos. Sin dichas restricciones la seguridad de los datos podría 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 también 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 estándares

Con el control central de la base de datos, el DBA puede asegurar que todos los estándares aplicables en la representación de datos sean observados. Es conveniente estandarizar la representación de datos, en particular como un auxiliar para el intercambio de datos o para el movimiento de datos entre sistemas. En forma similar, los estándares en la asignación de nombres y en la documentación de los datos también 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, física y lógica.

Excelencia Académica

15

Los sistemas anteriores a los de base de datos tienden a ser dependientes de los datos. Es decir, la forma en que físicamente son representados los datos en el almacenamiento secundario y la técnica empleada para su acceso, son dictadas por los requerimientos de la aplicación en consideración, significa que el conocimiento de esa representación física y esa técnica empleada para su acceso están integrados dentro del código de la aplicación.

En un sistema de base de datos sería inconveniente permitir que las aplicaciones fuesen dependientes de los datos por las razones siguientes:

Las distintas aplicaciones requerirán visiones diferentes de los mismos datos.

El DBA debe tener la libertad de cambiar las representaciones físicas o la técnica 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 representación física y en la técnica de acceso, lo que implica desde luego que las aplicaciones involucradas no dependen de ninguna representación física o técnica de acceso en particular.

Un campo general es la unidad más pequeña 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 colección 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 lógico dado es idéntico 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 representación almacenada de datos aunque los datos, tal y como las aplicaciones los ven, no cambien.

Entre algunos de los aspectos de la representación almacenada que podrían estar sujetos a cambio se encuentran:

Representación de datos numéricos

Un campo numérico podría estar almacenado en la forma aritmética 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 precisión (el número de dígitos). Podría ser necesario modificar cualquiera de estos aspectos para mejorar el rendimiento, para apegarse a un nuevo estándar o por muchas otras razones.

Representación de datos de caracteres

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

Unidades para datos numéricos

Las unidades en un campo numérico podrían cambiar (pulgadas a centímetros).

Codificación de los datos

Excelencia Académica

16

En ciertas situaciones podría ser conveniente representar los datos almacenados por medio de valores codificados. Por ejemplo, los colores podrían ser almacenados como un solo digito decimal de acuerdo a un esquema de codificación; 1 = azul, 2 = verde, etc…

Materialización de los datos

El campo lógico corresponde por lo regular a cierto campo almacenado específico; aunque podría haber diferencias en el tipo de datos, la codificación, etc. En tal caso el proceso de materialización, es decir, la construcción de una ocurrencia del campo lógico a partir de la ocurrencia correspondiente del campo almacenado y presentarla a la aplicación, podría ser considerado como directo. Sin embargo en ocasiones un campo lógico no tendrá una sola contraparte almacenada; en su lugar, sus valores se materializarán por medio de algún cálculo, tal vez sobre varias ocurrencias almacenadas, en este caso el campo sería un campo virtual. Para estos campos el proceso de materialización es indirecto. Sin embargo el usuario podría ver una diferencia entre los campos real y virtual, en tanto que podría no ser posible actualizar una ocurrencia de un campo virtual, al menos no directamente.

Estructura de los registros almacenados

Dos registros almacenados existentes podrían combinarse en uno. Un cambio así podría ocurrir cuando las aplicaciones existentes están integradas dentro del sistema de base de datos. Lo que implica que el registro lógico de una aplicación podría consistir en un subconjunto propio del registro almacenado correspondiente, es decir, ciertos campos de ese registro almacenado serían invisibles para la aplicación en cuestión.

Como alternativa, un solo tipo de registro almacenado podría ser dividido en dos. Esta separación permitiría que las porciones del registro original utilizadas con menos frecuencia sean almacenadas en un dispositivo más lento. Esto implica que un registro lógico de una aplicación podría contener campos de varios registros almacenados distintos; es decir, podría ser un súper conjunto propio de cualquiera de esos registros almacenados.

Estructura de los archivos almacenados

Un determinado archivo puede ser implementado físicamente 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 dañar de manera lógica las aplicaciones existentes es una de las razones más 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 más 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 además de ellas. A su vez, esas otras estructuras requieren de otros operadores para manipularlas. En un sistema jerárquico, los datos son representados ante el usuario como un conjunto de estructuras de árbol y los operadores

Excelencia Académica

17

que se proporcionan para manipular dichas estructuras incluyen operadores para apuntadores de recorrido; es decir, los apuntadores que representan las rutas jerárquicas hacia arriba y hacia abajo en los árboles.

Los sistemas de bases de datos pueden de hecho ser divididos convenientemente en categorías de acuerdo con los operadores y estructuras de datos que presentan al usuario. De acuerdo con este esquema, los sistemas más antiguos o prerrelacionales se ubican dentro de tres categorías: los sistemas de listas invertidas, jerárquicos y de red

5. ADMINISTRACIÓN DE DATOS Y ADMINISTRACIÓN 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 políticas para mantener y gestionar los datos una vez hayan sido almacenados. Un ejemplo de tal política sería una que estableciera quién 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 políticas 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, además de prestar otros servicios técnicos.

El administrador de datos juega un papel más importante que el administrador de la base de datos en las siguientes etapas del ciclo de vida: planificación de la base de datos, definición del sistema, recolección y análisis de los requisitos, diseño conceptual y diseño lógico de la base de datos. En el resto de las etapas es donde el administrador de la base de datos tiene el papel más importante: selección del SGBD, diseño de las aplicaciones, diseño físico, prototipado, implementación, conversión y carga de datos, prueba y mantenimiento

La administración de una base de datos consistirá en asegurar que la información precisa y consistente esté disponible para los usuarios y para las aplicaciones en el momento y en la forma requerida

6. SISTEMAS DE ADMINISTRACIÓN DE BASES DE DATOS (DBMS)

La base de datos, como depósito único de los datos de toda la organización, debe ser capaz de atender las necesidades de los distintos tipos de usuarios que interactúan 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 informáticos 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 diseñado de forma tal que optimice las ventajas que se han indicado para una base de datos.

Excelencia Académica

18

Usos y Funciones de un DBMS:

Los sistemas de administración de bases de datos son usados para:

Permitir a los usuarios acceder y manipular la base de datos proveyendo métodos 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 administración de los datos.

Las funciones esenciales de un DBMS son:

a) Función de descripción o de definición. Esta función 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 semántica, los controles a efectuar antes de autorizar el acceso a la base, etc. Esta función se lleva a cabo mediante el Lenguaje de Descripción o de Definición de Datos (LDD) propio de cada SGBD y debe suministrar los medios para definir las tres estructuras de datos – externa, lógica global e interna -, especificando las características de los datos a cada uno de estos niveles.

b) Función de manipulación. Permite a los usuarios de la Base buscar, añadir, suprimir o modificar los datos de la misma, siempre de acuerdo con las especificaciones y las normas de seguridad establecidas por el administrador. Esta función se realiza mediante el Lenguaje de Manipulación de Datos (LMD) que facilita los instrumentos necesarios para la realización de estas tareas.

c) Función de utilización. Reúne 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). Además, en la mayoría de los SGBD existentes en el mercado existen funciones de servicio, como cambiar la capacidad de los ficheros, obtener estadísticas de utilización, cargar archivos, etc., y otras relacionadas con la seguridad física - copias de seguridad, rearranque en caso de caída del sistema, etc. – y protección frente a accesos no autorizados.

En resumen, las funciones esenciales de un Sistema Gestor de la Base de Datos (SGBD) son:

Excelencia Académica

19

Permite describir:

Los elementos de la base de datos con

Su estructura

Sus Interrelaciones

Sus Validaciones

A tres niveles

Externo

Lógico Global

Interno

Mediante un Lenguaje de Definición de Datos (LDD)

Permite:

Buscar

Añadir

Suprimir

Modificar

Mediante un Lenguaje de Manipulación de Datos (LMD)

Lo cual supone

Definir un criterio de selección (responsabilidad del usuario)

Definir la estructura externa a recuperar (responsabilidad del usuario)

Acceder a la estructura física (responsabilidad del sistema)

Reúne las Interfaces de los Usuarios

Suministra procedimientos para el Administrador

Mediante un Lenguaje de Control de Datos (LCD)

Descripción

Manipulación

Datos de la Base de Datos

Control

Excelencia Académica

20

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

Figura 1.1: Interrelaciones entre las funciones del SGBD

Características de un DBMS:

Control de la redundancia de datos

Este consiste en lograr una mínima cantidad de espacio de almacenamiento para almacenar los datos evitando la duplicación de la información. De esta manera se logran ahorros en el tiempo de procesamiento de la información, se tendrán menos inconsistencias, menores costos operativos y hará el mantenimiento más fácil.

Compartimiento de datos

Una de las principales características de las bases de datos, es que los datos pueden ser compartidos entre muchos usuarios simultáneamente, proveyendo, de esta manera, máxima eficiencia.

Mantenimiento de la integridad

La integridad de los datos es la que garantiza la precisión o exactitud de la información contenida en una base de datos. Los datos interrelacionados deben siempre representar información correcta a los usuarios.

Usuarios Remotos

Monitor de Teleproceso

Función de Utilización

Función de Descripción

Función de Manipulación

SGBD Base de Datos

Usuarios Locales

Excelencia Académica

21

Soporte para control de transacciones y recuperación de fallas.

Se conoce como transacción toda operación 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 recuperación de fallas tiene que ver con la capacidad de un sistema DBMS de recuperar la información 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 aplicación debe conocer tanto la organización de los datos como las técnicas que el permiten acceder a los datos. En los sistemas DBMS los programas de aplicación no necesitan conocer la organización de los datos en el disco duro. Este totalmente independiente de ello.

Seguridad

La disponibilidad de los datos puede ser restringida a ciertos usuarios. Según los privilegios que posea cada usuario de la base de datos, podrá acceder a mayor información que otros.

Velocidad

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

Independencia del hardware

La mayoría de los sistemas DBMS están disponibles para ser instalados en múltiples plataformas de hardware.

Los sistemas de bases de datos relacionales RDBMS (Relational Database Management System, por sus siglas en Inglés) tales como Oracle, MySQL, SQL Server, PostgreSQL, Informix, entre otros, le permiten ejecutar las tareas que se mencionan a continuación, 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. Estandarización:

Desde comienzos de los años setenta diversos grupos informáticos se han ocupado del tema de la estandarización 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 diseñar de nuevo la base de datos, ni tampoco que los programas que acceden a dicha base de datos tengan que ser reescritos. La estandarización ha de ofrecer también la oportunidad de adquirir distintos componentes de un SGBD (lenguajes, diccionarios, etc.) a diferentes suministradores.

Excelencia Académica

22

La arquitectura a tres niveles (interno, conceptual y externo) definidos anteriormente, establecidos por el grupo ANSI/X3/SPARC marca la línea de investigación fundamental para la normalización y estandarización de los SGBD.

Esta arquitectura triesquemática de ANSI está parcialmente basada en el concepto de máquinas anidadas (llamadas de tipo cebolla). El flujo de datos pasa a través de las distintas capas que están 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:

Definición de la Base de Datos: La parte de definición 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 (catálogo o metabase en los sistemas relacionales), que es el eje principal de la arquitectura alrededor del cual giran los demás elementos.

Una base de datos se define especificando primeramente el esquema conceptual mediante un lenguaje de definición del esquema conceptual o una herramienta CASE integrada. Este esquema conceptual es compilado por el procesador del esquema conceptual y se almacena en el catálogo de datos.

El procesador del esquema conceptual muestra, por ejemplo, mediante menús, la información del esquema conceptual, mediante dicha información pueden definirse los esquemas externo e interno a través de distintas interfaces. Estos esquemas, claramente diferenciado, llevan a considerar la existencia de tres tipos de administraciones: Administración por parte de la Empresa, Administración de la Base de Datos y Administración de Aplicaciones

Manipulación 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 manipulación de datos, por ejemplo SQL. Una petición 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 función de vinculación 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 evolución propuestas en la estandarización.

La consecución de trabajos del grupo ANSI culminó en marzo de 1986 al presentar el Modelo de referencia para la estandarización de los SGBD.

Se define como Modelo de Referencia a una estructura conceptual para la estandarización de los SGBD, en la que se identifican una serie de componentes y se establece cómo interrelacionan entre ellos. Los objetivos a cumplir por este Modelo de Referencia son:

Establecer un Marco común para la descripción de los SGBD

Lograr una Estandarización para impulsar la compatibilidad de los distintos componentes de los SGBD facilitando su comparación y evaluación

El modelo de referencia no es en sí un estándar pero sienta las bases para futuras estandarizaciones ya que se contempla desde tres puntos de vista distintos:

El de los componentes que integran un SGBD

Excelencia Académica

23

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 simplificación, ocupándose del qué, por qué y para qué peno no del cómo. Es decir, su objetivo es describir las interrelaciones del SGBD pero no indicar nada de su instrumentación.

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 (catálogo) y no se dejen en manos de los usuarios ya sean éstos finales o programadores.

Recomienda así mismo la existencia de Herramientas de Gestión de Datos o componentes software, como lenguajes de cuarta generación, soporte de ayuda a la decisión, 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 Transformación de Datos, que es el núcleo o kernel del SGBD, que provee de operadores para la descripción y manipulación 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 recuperación y actualización 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 gráfica la estructura general de un SGBD donde, además del núcleo del sistema, existe un conjunto de herramientas y facilidades.

Figura 1.1: Componentes de un SGBD

El núcleo del SGBD está en mayor o menor medida soportado por el Sistema Operativo; le corresponde transformar las instrucciones de petición 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 módulos, facilidades de usuario que realizan llamadas o funciones de Sistema Operativo, de modo que no haya que cerrar las aplicaciones para realizar las acciones típicas del S.O.

Herramientas y facilidades

Acceso a Datos

Diccionario de Datos

Núcleo

Sistema Operativo

Datos

Excelencia Académica

24

Sobre el núcleo se sitúa el diccionario de datos (también llamado catálogo o metabase) ya que a este nivel se produce la transformación 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 informáticos 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 diseño de la base de datos (herramientas CASE).

Existen productos comerciales que ofrecen una gran portabilidad, al disponer de interfaces para la mayoría de los SGBD con penetración en el mercado.

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 términos se ha introducido el concepto de catálogo de forma que suelen considerarse los tres términos como sinónimos aunque se refieren a conceptos muy diferentes.

El diccionario de datos contiene información los datos almacenados. Es lo que se llama una metabase ya que contiene información sobre los elementos que conforman cada una de las bases de datos, información para la manipulación: tablas, registros, campos, relaciones y sus estructuras, contenidos, descripciones, significado, etc. de modo que siendo esta información legible por los usuarios, puedan éstos hacerse una buena idea sobre la estructuración de los contenidos de información almacenados en cada base de datos. Posee información sobre posniveles de seguridad implementados para la definición 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 creación y el mantenimiento del diccionario de datos.

Los contenidos del diccionario de datos son:

Los esquemas externo y conceptual de la base de datos. Esto es, cada uno de los elementos que los forman

FACILIDADES DE USUARIO GENERADOR DE APLICACIONES (L4G)

EXPORTADOR/ IMPORTADOR

UTILIDADES DEL SGBD

GENERADORES DE

INFORMES

PRECOMPILADOR LENGUAJES

AYUDAS AL

DISEÑO (CASE)

APLICACIONES DESARROLLADAS

DICCIONARIO DE RECURSOS DE LA INFORMACIÓN

NÚCLEO DEL SGBD

LENGUAJE DEL SGBD

DATOS

SISTEMA OPERATIVO

(Catálogo)

Excelencia Académica

25

La información sobre tablas, consultas, campos, registros y referencias cruzadas entre registros de varias tablas. Se guarda información sobre las propiedades de esos elementos: nombre, tipo, longitud, representación, descripción de los registros, reglas de validación, etc. Es decir, la descripción de los datos y las estructuras.

Los niveles de autorización y derechos de acceso de cada uno de los usuarios de la base de datos.

Los controles de seguridad de acceso a datos - gestión de usuarios - e integridad.

Sinónimos y palabras polisémicas con sus descripciones.

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

El Directorio de datos

El Directorio de datos contiene información 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 están 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 catálogo.

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, catálogo, según 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 información textual y gráfica sobre las características de un determinado objeto.

Poseen funcionalidades de directorio de datos y de diccionario de datos ya que en este caso almacena información de tipo texto y gráficos que es recuperable por el usuario. Los repositorios, que se emplean en la fase de análisis (descripción lógica de los datos), facilitan la labor posterior de descripción e implementación de las características allí definidas.

El diccionario/directorio/catálogo de datos almacena la información del mismo modo que si fuese una base de datos mas del sistema, empleándose 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 Definición 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.

Excelencia Académica

26

Un generador de informes y un traductor del Lenguaje de Manipulación de Datos (DML) que permite a los usuarios modificar el contenido del diccionario.

7. INTERACCIÓN DEL SISTEMA GESTOR DE BASES DE DATOS CON EL SISTEMA OPERATIVO.

El SGBD constituye un subsistema del sistema informático 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 físico en el que se apoya, si puede obtenerse una visión general analizando aquellos aspectos comunes a la mayoría 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 aplicación accede al fichero por medio del subsistema de gestión de datos del Sistema Operativo, que es quien contiene los métodos de acceso.

Sin embargo, cuando se trata de una base de datos el programa de aplicación (que incluye en su lenguaje anfitrión el LMD embebido) se dirige al SGBD, el cual, a través del Sistema Operativo, accede a la base de datos.

La interacción, en un entorno concurrente, entre el SGBD, el Sistema Operativo y los Programas de Aplicación se muestra en la figura adjunta.

Figura 1.3. Interaccion del SO con el SGBD

3

AC n VE n

ATU n Programa de Aplicación

UE n

BASE DE DATOS

SISTEMA OPERATIVO

VE2

VE1

E.L.G. SISTEMA DE GESTIÓN DE

LA BASE DE DATOS (SGBD)4

5

6

ALMACENAMIENTO

INTERMEDIO 7

Area de Comunicación

Nombre de la vista externa

Area de Trabajo del

Programa de Aplicación

Unidad de Ejecución 1 UE1

12 9 1 2

10

118

Excelencia Académica

27

Por cada Programa de Aplicación (PA) que se está ejecutando, existe una Unidad de Ejecución (UE) donde se encuentra el Área de Trabajo del Usuario (ATU) con sus Áreas de Entrada y Salida (E/S) y un Área de Comunicación con el SGBD (AC) destinada a recibir los mensajes y la información de control procedente del SGBD. Desde el programa de aplicación se hace referencia a la Vista Externa (VE) permitida a tal programa. En la biblioteca del sistema se encuentran almacenados, además de los datos, la estructura lógica global y la estructura interna, así como las vistas externas que serán llamadas por los programas de aplicación de los usuarios.

El flujo de datos e instrucciones entre estos elementos es el siguiente:

1º Se produce una llamada desde una unidad de ejecución 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 información de la vista externa a la que se ha hecho referencia en la llamada, así como con la información correspondiente a la estructura lógica global y la estructura interna con ella relacionada; esta información 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 Aplicación (PA) a utilizar esta vista, y después de verificar su corrección, el SGBD traduce la llamada en las correspondientes órdenes para los métodos 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 inserción o modificación pasarían 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 ejecución desde donde se hizo la llamada (flecha 8) [o en sentido contrario si se hizo una inserción o una modificación], realizándose las correspondientes transformaciones entre las representaciones de los datos.

7º El SGBD, una vez terminada la operación de manipulación pasa al área de comunicación los indicadores de estado (flecha 9), en éstos se señala si la operación ha acabado satisfactoriamente o no, al tiempo que se dan otras informaciones sobre la operación realizada.

8º El Programa de Aplicación revisa el estado de los indicadores, que se encuentran en el área de control de la unidad de ejecución 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 ejecución, en el caso de que la operación haya terminado satisfactoriamente, ya pueden ser utilizados por el Programa de Aplicación (flecha 11).

Excelencia Académica

28

8. INTERACCIÓN 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 comunicación con la base de datos, tanto dirigidos a las funciones indicadas (definición, manipulación o control) como dirigidos a los diferentes tipos de usuarios a de procesos a realizar.

La tipología de los lenguajes de un SGBD se expresa en el cuadro adjunto:

Como se ve, las distintas características del proceso y del usuario determinan el tipo de lenguaje a realizar. En general, los usuarios informáticos, como el diseñador de la base, el administrador, analistas, programadores, etc., requerirán medios potentes y flexibles con los cuales consigan definir, administrar, extraer o manipular los datos de la base. Normalmente se apoyarán en un lenguaje de programación que están habituados a manejar (“Lenguaje Anfitrión”), para lo cual deberá permitir hacer llamadas desde un programa de aplicación al SGBD.

El conjunto de sentencias de manipulación del SGBD que pueden ser llamadas desde un lenguaje de programación permitiendo el acceso a la base de datos, se suele denominar sublenguaje de datos o también lenguaje huésped o lenguaje embebido.

Los SGBD admiten , en general, varios lenguajes de tipo anfitrión para manipular datos (Cobol, Ensamblador, Fortran, PL/I, Basic, Pascal, C, etc.). Así mismo, la práctica totalidad de los SGBD admiten lenguajes de 4ª generación 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 manipulación autocontenido, que tenga una sintaxis sencilla, pero potente como para soportar demandas de información muy variadas o por medio de tratamientos parametrizados que suelen presentarse al usuario en forma de menús.

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 descripción y manipulación de los datos. Para modelos de datos relacionales el SQL es un estándar muy extendido que proporciona estas facilidades.

Definición

Manipulación

Por tipo de función

Por tipos de Usuarios y de Aplicaciones

Informáticos

Finales

Aplicaciones

Aplicaciones no formalizables

Excelencia Académica

29

Lenguajes de Definición de Datos

Los instrumentos que permiten al administrador de la BD describir los datos con facilidad y precisión, especificando sus distintas estructuras es lo que se denomina Lenguaje de Definición de Datos (LDD) . Suelen ser lenguajes autocontenidos y no necesitan apoyarse en ningún lenguaje de programación. El SGBD deberá facilitar los medios para describir la estructura lógica 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 definición de la estructura lógica global

Desde el punto de vista lógico global el administrador debe disponer de un instrumento de descripción que permita asignar nombres a los campos, a los agregados de datos, a los registros, etc. estableciendo sus longitudes y sus características así como las relaciones entre estos elementos, especificar los identificadores e indicar restricciones semánticas que se han de aplicar a los diferentes objetos descritos.

Lenguajes de definición de la estructura lógica interna

En teoría, el propio SGBD debería conseguir automáticamente la optimización del almacenamiento y recuperación de los datos y encargarse, a partir de la estructura lógica global, de definir la estructura interna adecuada sin intervención del usuario (administrador).

Para ello, habría que suministrar al SGBD las informaciones precisas sobre volúmenes, crecimiento previsto, tipos de registros mas accedidos, con indicaciones del número medio de accesos, relación entre actualizaciones y consultas, etc.

En la práctica, puede mejorarse sensiblemente la eficiencia si el administrador especifica características respecto a la estructura física, por lo que deberá disponer de un lenguaje de definición de la estructura interna o, simplemente, deberá dar valores a ciertos parámetros.

En muchos SGBD se suministra automáticamente por defecto una estructura interna, que es la que el sistema considera mas adecuada para la estructura lógica global definida, aunque el administrador deberá ajustar posteriormente dicha estructura interna para conseguir una mayor eficiencia.

Lenguajes de definición de las estructuras externas

El SGBD debe poner a disposición de los usuarios los medios necesarios para recuperar o actualizar los datos contenidos en la base de datos, de acuerdo con la visión lógica o estructura externa (vista) que precise cada aplicación.

Al definir una estructura externa es preciso darle un nombre e indicar qué datos y qué interrelaciones de la estructura lógica global se encontrarán 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 manipulación.

Lenguajes de manipulación de datos

Para cumplir los objetivos asignados a la función de manipulación debe disponerse de lenguajes que ofrezcan a los usuarios la posibilidad de referirse a determinados conjuntos de datos, que cumplan ciertas condiciones (criterio de selección) como que un atributo que tenga un determinado valor, o un conjunto de atributos y valores que satisfagan cierta expresión lógica. Además del criterio de selección, es preciso indicar la estructura externa que se desea actualizar o recuperar.

Excelencia Académica

30

Una vez especificados el criterio de selección y los datos a actualizar o recuperar el SGBD debe ocuparse de acceder al correspondiente soporte físico de donde se extraerán los datos definidos para su transferencia a un dispositivo de salida, o, si se trata de una actualización, en donde se insertarán, modificarán o borrarán los datos.

Pero al igual que el programador precisa de un lenguaje de manipulación que se embeba en un lenguaje de programación, el usuario no informático deberá disponer de también de un instrumento análogo (mucho más 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 programación.

La mayoría de los SGBD utilizan como lenguaje de manipulación 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 capítulo I se han visto temas acerca de administración de datos, administración 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 colección de archivos, datos, información; ordenada, organizada, y relacionada, con la finalidad de permitir el manejo de la información para su procesamiento.

El DBMS es un conjunto de programas que se encargan de manejar la creación 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. Sistemas de Bases de Datos. 4ª Edición Addison-Wesley. 2005

[2] C.J. DATE. Introducción a los Sistemas de Bases de Datos. 7ª Pearson Educacion. 2001

[3] RAMAKRISHNAN R., GEHRKE J.; Database Management systems. 2ª Edición.

McGraw-Hill. 2ª edición. 2000

[3] C. BATINI, S. CERI, S.B. NAVATHE. Diseño Conceptual de Bases de Datos. Un enfoque de entidades-interrelaciones. 1994

En la siguiente unidad temática detallaremos aspectos técnicos relacionados a la elección, instalación y configuración de sistemas gestores de base de datos relacionales

Excelencia Académica

31

ADMINISTRACION DE BASE DE DATOS UNIDAD ACADÉMICA Nº 1

NOMBRE:__________________________________________________________________

APELLIDOS:________________________________________FECHA; ____/_____/______

CIUDAD:_______________________________SEMESTRE:_________________________ Responda: 1. ¿Qué es base de datos?

_____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________

2. ¿Cuáles 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. ¿Cómo define Ud. a un diccionario de datos? _____________________________________________________________________________________ _____________________________________________________________________________________

6. ¿De qué manera se da la interacción del sistema gestor de base de datos con el sistema operativo? __________________________________________________________________________________________________________________________________________________________________________ ______________________________________________________________________________________

Excelencia Académica

32

Excelencia Académica

33

INSTALACION Y CONFIGURACION DEL SISTEMA GESTOR DE BASE DE DATOS

Una de las tareas más comunes de todo Administrador de Base de Datos (DBA) es la instalación y configuración del sistema gestor de base de datos, lo cual no solo involucra la elección del SGBD, además de la edición y versión, si no también determinar el software y hardware que soportara a dicho gestor.

Además es necesario considerar que las decisiones que se tomen de cómo 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 temática el estudiante:

1. Conoce criterios de elección de un modelo de base de datos

2. Conoce y analiza criterios de elección del sistema gestor de base de datos

3. Entiende los criterios a tomar en cuanta en la configuración de un sistema gestor de base de datos.

4. Instala y configura un sistema gestor de base de datos.

1. ELECCIÓN DEL MODELO DE DATOS Y DEL SISTEMA GESTOR DE BASES DE DATOS a) Elección del modelo de datos:

Los modelos más comunes de organización de bases de datos son el jerárquico, en red, relacional y orientado a objetos.

Base de datos jerárquica:

Estructura los campos en nodos en una estructura jerárquica. 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 relación “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 raíz, 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 dirección a un nodo hijo.

Por ejemplo, un sistema de reservaciones de una línea aérea nacional puede ser representado mediante una organización jerárquica. 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 número de vuelo. El número de vuelo tendrá también nodos hijos, que son los pasajeros.

Excelencia Académica

34

Entre las limitaciones de este tipo de base de datos se tiene que al borrar un nodo padre, desaparecen también sus nodos subordinados. Sólo podrá añadirse un nodo hijo si existe el nodo padre. Pero lo más significativo es la rigidez de su estructura: sólo un padre por hijo y ausencia de relaciones entre los nodos hijos.

Figura 2.1: Modelo jerárquico

Base de datos en red:

Se trata también de una organización jerárquica de nodos, pero un nodo hijo puede tener más de un solo nodo padre (relación muchos a muchos). Existen los punteros, que son conexiones adicionales entre nodos padres y nodos hijos, que permiten acceder a un nodo por vías distintas accediendo al mismo en dirección descendente por las diversas ramas.

Representa una mejora al modelo jerárquico. Los vendedores destacados para distribuir determinados productos en algunas ciudades pueden ilustrar este modelo. Cada producto puede ser distribuido por más de un vendedor, así mismo cada vendedor puede encargarse de diferentes ciudades.

Figura 2.2: Modelo en red

Base de datos relacional:

Excelencia Académica

35

Esta organización 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 común, el campo clave, mediante el cual la información almacenada en una tabla puede enlazarse con la información almacenada en otra. El acceso a los datos se realiza mediante consultas escritas en SQL.

La organización de bases de datos relacional es la más difundida en la actualidad motivada a su sencillez para realizar operaciones de adición, eliminación y modificación en contraste con la mayor rigidez de las organizaciones jerárquicas y de red. Por ejemplo en un modelo relacional para un pequeño 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 identificación 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 interés.

El modelo de datos orientado a objetos es una adaptación para los sistemas de bases de datos del paradigma de la programación orientada a objetos.

Se basa en el concepto de encapsular elementos de datos, sus características, atributos y el código que opera sobre ellos en elementos complejos llamados objetos.

Excelencia Académica

36

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 programación orientada a objetos

.

Figura 2.3: Modelo orientado a objetos

b) Elección 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:

Factores técnicos:

Organización de los datos independientemente de las aplicaciones que los vayan a usar (independencia lógica) y de los ficheros en los que vayan a almacenarse (independencia física).

Datos y aplicaciones accesibles a los usuarios y a otras aplicaciones de la manera más amigable posible (lenguajes de consulta: SQL, etc)

Datos gestionados de forma centralizada e independiente de las aplicaciones.

No redundancia (los datos no deben estar duplicados), consistencia e integridad.

Fiabilidad (protección frente a fallos).

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

Capacidad de replicación y distribución

Disponibilidad de herramientas de desarrollo de software

Portabilidad

Factores no técnicos

Excelencia Académica

37

Coste de la adquisición del software, del hardware y coste de mantenimiento.

Coste de creación y conversión de la base de datos

Coste de personal (formación y operación).

Disponibilidad de servicios del proveedor

2. GESTORES DE BASES DATOS EN EL MERCADO. a) Oracle:

Oracle es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés 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 más completos jamás escritos sobre bases de datos. Este artículo incluía una comparativa de productos que erigía a Relational Software como el más completo desde el punto de vista técnico. Esto se debía a que usaba la filosofía de las bases de datos relacionales, algo que por aquella época era todavía desconocido.

En la actualidad, Oracle (Nasdaq: ORCL) todavía encabeza la lista. La tecnología Oracle se encuentra prácticamente en todas las industrias alrededor del mundo y en las oficinas de 98 de las 100 empresas Fortune 100. Oracle es la primera compañía de software que desarrolla e implementa software para empresas 100 por ciento activado por Internet a través de toda su línea de productos: base de datos, aplicaciones comerciales y herramientas de desarrollo de aplicaciones y soporte de decisiones. Oracle es el proveedor mundial líder de software para administración de información, y la segunda empresa de software.

Oracle a partir de la versión 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 edición gratuita es la Express Edition, que es compatible con las demás ediciones de Oracle Database 10gR2 y Oracle Database 11g.

Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:

Soporte de transacciones.

Estabilidad.

Escalabilidad.

Soporte multiplataforma.

Excelencia Académica

38

Ha sido criticada por algunos especialistas la seguridad de la plataforma, y las políticas de suministro de parches de seguridad, modificadas a comienzos de 2005 y que incrementan el nivel de exposición de los usuarios. En los parches de actualización provistos durante el primer semestre de 2005 fueron corregidas 22 vulnerabilidades públicamente conocidas, algunas de ellas con una antigüedad de más de 2 años.

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 gestión de bases de datos relacionales (SGBD) basado en el lenguaje Transact-SQL, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea. Algunas de las características de SQL Server son:

Soporte de transacciones.

Escalabilidad, estabilidad y seguridad.

Soporta procedimientos almacenados.

Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.

Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo acceden a la información.

Además permite administrar información de otros servidores de datos.

Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos más pequeños, que en su versión 2005 pasa a ser el SQL Express Edition, que se distribuye en forma gratuita.

c) MySQL:

MySQL es un sistema de gestión 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 específica 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 pública y el copyright del código 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 código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado.

Excelencia Académica

39

Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson, y Michael Widenius.

Las principales características de este gestor de base de datos son:

Aprovecha la potencia de sistemas multiprocesador, gracias a su implementación 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.

Gestión 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 compañía 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 evolución, 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. Después 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 pretendía resolver los problemas con el modelo de base de datos relacional que habían sido aclarados a comienzos de los años 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 incluían la habilidad de definir tipos, pero también 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 «comprendía» las relaciones y podía obtener información de tablas relacionadas utilizando reglas.

La siguiente lista muestra los hitos más importantes en la vida del proyecto POSTGRES.

1986: se publicaron varios papers que describían las bases del sistema.

1988: ya se contaba con una versión utilizable.

1989: el grupo liberaba la versión 1 para una pequeña comunidad de usuarios.

Excelencia Académica

40

1990: se liberaba la versión 2 la cual tenía prácticamente reescrito el sistema de reglas.

1991: liberación de la versión 3, esta añadía la capacidad de multiples motores de almacenamiento.

1993: crecimiento importante de la comunidad de usuarios, la cual demandaba más características.

1994: antes de la liberación de la versión 4, el proyecto terminó y el grupo se disolvió.

Después de que el proyecto POSTGRES terminara, dos graduados de la universidad, Andrew Yu y Jolly Chen, comenzaron a trabajar sobre el código de POSTGRES, esto fue posible dado que POSTGRES estaba licenciado bajo la BSD, y lo primero que hicieron fue añadir 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 año 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 código de Postgres95.

En el año 1996 decidieron cambiar el nombre de Postgres95 de tal modo que refleje la característica 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 características al motor.

e) DB2:

DB2 es una marca comercial, propiedad de IBM, bajo la cual se comercializa el sistema de gestión de base de datos.

DB2 versión 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 búsquedas de manera jerárquica dentro de éste, e integrarlo con búsquedas relacionales.

DB2 Express-C es la versión gratuita soportada por la comunidad, de DB2 que permite desarrollar, implementar y distribuir aplicaciones que no usen las características avanzadas de las versiones comerciales de DB2. Esta versión de DB2 puede ser concebida como el núcleo de DB2, las diferentes ediciones incluyen las características de Express-C más funcionalidades específicas.

3. INSTALACION Y CONFIGURACION DE SQL SERVER 2005. El Asistente para la instalación de SQL Server 2005 está basado en Microsoft Windows Installer y proporciona un solo árbol de características para la instalación de todos los componentes de Microsoft SQL Server 2005:

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

Analysis Services

Reporting Services

Excelencia Académica

41

Notification Services

Integration Services

Herramientas de administración

Documentación 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 métodos que las ediciones de 32 bits: a través del Asistente para la instalación o del símbolo del sistema. Independientemente de si utiliza el Asistente para la instalación de SQL Server 2005 o el símbolo del sistema para instalar SQL Server 2005, el proceso del programa de instalación 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 configuración del sistema, los problemas de bloqueo, y las consideraciones de seguridad.

Dependiendo de sus requisitos, el programa de instalación 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:

Asegúrese de que el equipo cumple con los requisitos del sistema para SQL Server 2005.

Asegúrese 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 ejecución en el recurso compartido remoto. Para crear un clúster de conmutación por error, debe ser un administrador local con permisos para iniciar una sesión 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 instalación 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 instalación.

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

Excelencia Académica

42

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

Revise todas las opciones de instalación de SQL Server y prepárese para realizar las selecciones apropiadas cuando ejecute el programa de instalación.

b) Paso 2: Instale SQL Server 2005

Para instalar SQL Server 2005, ejecute el programa de instalación mediante el Asistente para la instalación de SQL Server 2005 o realice la instalación desde el símbolo del sistema. También puede agregar componentes a una instancia de SQL Server 2005, o actualizar a SQL Server 2005 desde una versión anterior de SQL Server.

Instalar componentes de SQL Server 2005

El Asistente para la instalación proporciona instrucciones para la configuración inicial de SQL Server 2005, lo que incluye selección de características, reglas de nomenclatura de instancias, configuración de cuentas de servicio, directrices para contraseñas seguras y escenarios para establecer intercalaciones.

Para asegurarse de una instalación 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

Velocidad de procesador2 Memoria (RAM)3

SQL Server 2005 Enterprise Edition 4

SQL Server 2005 Developer Edition

SQL Server 2005 Standard Edition

Procesador compatible con Pentium III o superior

Mínimo: 600 MHz

Recomendado: 1 GHz o más

Mínimo: 512 MB

Recomendado: 1 GB o más

Máximo: máximo del sistema operativo máximo

SQL Server 2005 Workgroup Edition

Procesador compatible con Pentium III o superior

Mínimo: 600 MHz

Recomendado: 1 GHz o más

Mínimo: 512 MB

Recomendado: 1 GB o más

Máximo: máximo del sistema operativo máximo

SQL Server 2005 Express Edition

Procesador compatible con Pentium III o

Mínimo: 500 MHz

Recomendado:

Mínimo: 192 MB

Recomendado: 512

Excelencia Académica

43

superior 1 GHz o más MB o más

Máximo: máximo del sistema operativo máximo

SQL Server 2005 Express Edition with Advanced Services

Procesador compatible con Pentium III o superior

Mínimo: 600 MHz

Recomendado: 1 GHz o más

Mínimo: 512 MB

Recomendado: 1 GB o más

Máximo: máximo del sistema operativo

1El Comprobador de configuración del sistema (SCC) bloqueará el programa de instalación si no se cumple el requisito del tipo de procesador.

2El SCC avisará al usuario si no se cumple el requisito de comprobación de velocidad mínima o recomendada del procesador, pero no bloqueará el programa de instalación. No se mostrarán advertencias en equipos multiprocesador.

3El SCC avisará al usuario si no se cumple el requisito de comprobación de RAM mínima o recomendada, pero no bloqueará el programa de instalación. Los requisitos de memoria se refieren sólo a esta versión y no reflejan los requisitos de memoria adicionales del sistema operativo. El SCC comprobará la memoria disponible al iniciar el programa de instalación.

4 SQL Server Evaluation Edition admite el mismo conjunto de características que SQL Server 2005 Enterprise Edition.

Requisitos de espacio en disco duro (32 y 64 bits)

Durante la instalación de SQL Server 2005, Windows Installer crea archivos temporales en la unidad del sistema. Antes de ejecutar el programa de instalación 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 instalarán en la unidad del sistema, que normalmente es C:. Por ejemplo, los archivos de registro de la instalación se copiarán en la unidad del sistema, y es posible que requieran hasta 80 MB para una instalación independiente y más espacio para una instalación en un clúster de conmutación por error.

Los requisitos de disco duro actuales dependen de la configuración del sistema y las aplicaciones y características que haya decidido instalar. En la siguiente tabla se muestran los requisitos de espacio en disco de los componentes de SQL Server 2005.

Característica

Requisito de espacio en

disco

Database Engine (Motor de base de datos) y archivos de datos, Réplica y Búsqueda de texto

280 MB

Excelencia Académica

44

Analysis Services y archivos de datos 90 MB

Reporting Services y Administrador de informes 120 MB

Componentes del motor de Notification Services, componentes de cliente y componentes de reglas

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 versión de 32 bits de SQL Server 2005

Enterpris

e Edition1

Developer

Edition

Standard

Edition

Workgroup Edition

Express Edition y Express

with Advance

d Services

Evaluation

Edition

Windows 2000 No No No No No No

SP4 de Windows 2000 Professional Edition2, 4

No Sí Sí Sí Sí Sí

SP4 de Windows 2000 Server2

Sí Sí Sí Sí Sí Sí

SP2 de Windows XP Home Edition

No Sí No No Sí5 No

Excelencia Académica

45

SP2 de Windows XP Professional Edition4

No Sí Sí Sí Sí Sí

SP1 de Windows Server 2003 Enterprise Edition6

Sí Sí Sí Sí Sí Sí

Windows Vista Starter Edition

No No No No No No

Windows Vista Home Basic Edition

No Sí7 No No Sí8 Sí7

Windows Vista Home Premium Edition

No Sí7 No No Sí8 Sí7

Windows Vista Ultimate Edition

No Sí7 Sí7 Sí7 Sí8 Sí7

Windows Vista Business Edition

No Sí7 Sí7 Sí7 Sí8 Sí7

Windows Vista Enterprise Edition

No Sí7 Sí7 Sí7 Sí8 Sí7

Consideraciones de seguridad para una instalación de SQL Server

La seguridad resulta importante, no sólo para Microsoft SQL Server y Microsoft, sino también para todos los productos y empresas. Si aplica las siguientes prácticas recomendadas de seguridad, puede evitar muchas vulnerabilidades de seguridad.

Antes de instalar SQL Server

Siga estas prácticas recomendadas cuando configure el entorno del servidor.

Mejorar la seguridad física

El aislamiento físico y lógico constituye la base de la seguridad de SQL Server. Para mejorar la seguridad física de la instalación de SQL Server, realice las siguientes tareas:

Coloque el servidor en una sala inaccesible para personas no autorizadas.

Excelencia Académica

46

Coloque los equipos que alojan bases de datos en una ubicación protegida físicamente, como una sala de equipos cerrada con sistemas supervisados de detección de inundaciones y de extinción o detección de incendios.

Instale las bases de datos en una zona segura de la intranet corporativa que nunca esté conectada directamente a Internet.

Realice periódicamente una copia de seguridad de los datos y almacene las copias en una ubicación segura fuera de las instalaciones.

Usar firewalls

Los firewalls son fundamentales para garantizar la seguridad de la instalación de SQL Server. Los firewalls serán más 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 tráfico y, a continuación, admita sólo 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 autenticación 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 autenticación NTLM. .

Si la aplicación utiliza transacciones distribuidas, debe configurar el firewall para permitir que el tráfico 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 lógica Web y la lógica de negocios en equipos independientes.

Excelencia Académica

47

Crear cuentas de servicio con privilegios mínimos

La instalación de SQL Server configura automáticamente 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, sólo debería otorgar los permisos que precisan.

Deshabilitar NetBIOS y Bloque de mensajes de servidor

Los servidores de la red perimetral deberían 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 sesión 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 enumeración de usuarios.

Después de instalar SQL Server

Tras la instalación, puede mejorar la seguridad de la instalación de SQL Server si sigue estas prácticas recomendadas relativas a las cuentas y los modos de autenticación:

Cuentas de servicio

Ejecute servicios de SQL Server con los privilegios mínimos.

Asocie los servicios de SQL Server con cuentas de Windows.

Modo de autenticación

Requiera la autenticación de Windows para las conexiones a SQL Server.

Contraseñas seguras

Asigne una contraseña segura a la cuenta sa.

Habilite siempre la comprobación de directivas de contraseñas.

Utilice contraseñas seguras en todos los inicios de sesión de SQL Server.

Excelencia Académica

48

A continuación se muestra la instalación del servidor de base de datos:

Introduciremos el CD de instalación. Nos aparecerá la primera ventana del asistente de instalación. 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 Académica

49

Pulsaremos en "Finish" para iniciar el proceso de instalación de SQL Server:

Se iniciará el asistente de instalación de SQL Server, pulsaremos en "Next":

El asistente de instalación hará un chequeo previo de posibles problemas con algún componente de la instalación, si no hay problemas pondrá "Success" en "Status" y pulsaremos en "Continue":

Excelencia Académica

50

Nos pedirá el número de serie y nombre de la compañía

A continuación marcaremos los componentes de SQL Server a instalar: SQL Server, Analysis Services, Reporting Services, Notification Services, Data Transformation Services, etc:

Excelencia Académica

51

Si queremos mostrar los componentes que se instalará en detalle pulsaremos en "Advanced" (en esta ventana nos aparecerá una descripción de cada componente). Tras seleccionar los componentes a instalar pulsaremos en "Next":

Excelencia Académica

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 contraseña 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 automáticamente en el arranque del equipo marcaremos "Auto-start service". Tras configurar estos parámetros pulsaremos en "Next":

Excelencia Académica

53

Indicaremos el modo de autenticación 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 contraseña para acceder a la administración de SQL Server (como superusuario) y pulsaremos en "Next":

Indicaremos las opciones del idioma. SQL Server permite especificar distintos valores según el servicio marcando "Customize for each service account". Tras configurar estos valores pulsaremos "Next":

Excelencia Académica

54

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

Si todo se ha instalado correctamente en "status" aparecerá "Setup finished". Pulsaremos en "Next":

Excelencia Académica

55

El programa de instalación 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 instalación se ha realizado correctamente ejecutaremos "SQL Server Management Studio", nos aparecerá la ventana de conexión "Connect to Server", donde deberemos indicar el tipo de servidor "SQL Server", el nombre del servidor (nombre del equipo ó dirección ip/nombre de la instancia) y el tipo de autenticación, en nuestro caso "Windows Authentication":

Si SQL Server se ha instalado correctamente nos aparecerá la consola de SQL Server Management Studio:

Excelencia Académica

56

c) Paso 3: Configure la instalación de SQL Server 2005

Después de que el programa de instalación complete la instalación de SQL Server 2005, puede configurar SQL Server mediante utilidades gráficas o del símbolo del sistema.

Configurar una instalación de SQL Server

Después de que el programa de instalación complete la instalación de Microsoft SQL Server 2005, puede configurar posteriormente SQL Server mediante utilidades gráficas o del símbolo 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 Descripción

SQL Server Management Studio

SQL Server Management Studio se utiliza para editar y ejecutar consultas, y para iniciar tareas estándar del asistente..

Analizador de SQL Server Analizador de SQL Server proporciona una interfaz gráfica 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 optimización de Database Engine (Motor de base de datos)

El Asistente para la optimización de Database Engine (Motor de base de datos) crea conjuntos óptimos de índices, vistas indizadas y particiones.

Business Intelligence Development Studio

Business Intelligence Development Studio es un entorno de desarrollo integrado para las soluciones de Analysis Services y Integration Services..

Utilidades del símbolo del Administre los objetos de SQL Server desde el

Excelencia Académica

57

sistema símbolo del sistema..

Administrador de configuración de SQL Server

Administre los valores de configuración de red de cliente y servidor..

Importar y exportar datos Integration Services proporciona un conjunto de herramientas gráficas y objetos programables para mover, copiar y transformar datos..

Programa de instalación de SQL Server

Instale, actualice o cambie componentes en una instancia de SQL Server 2005.

Configuración predeterminada

Las configuraciones predeterminadas para las nuevas instancias de SQL Server 2005 deshabilitan algunos componentes y características para reducir la superficie atacable del producto.

Los siguientes componentes y características están desactivados de manera predeterminada:

Integration Services

Agente SQL Server

Explorador SQL Server

Búsqueda 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 más conocidos en el mercado.

3. Instale SQL Server 2005 siguiendo la guía de instalación.

Se ha visto los criterios a tomarse en cuenta para la elección de un sistema gestor de base de datos

Se realizo una guía de la instalación de SQL Server 2005 y de la configuración

básica del SGBDR después de conocer los requerimientos básicos de software y hardware para que la instalación se lleve a cabo de manera exitosa.

Excelencia Académica

58

[1] ELMASRI Y NAVATHE. Fundamentos de los Sistemas de Base de Datos. Tercera Edición. The

Benjamin/Cummings Publishing Company Inc.. 2001. [2] DATE, C.J. Date. Introducción a los Sistemas de Base de Datos. 7º Edición. Vol I. Addison-Wesley

Iberoamericana. [3] JEFFREY D. Ullman. Database and Knowledge-Base Systems. Vol. I y II. Computer Science Press.

1988.

[4] MIGUEL, Adoración 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

Bibliografía electrónica:

Tutorial de SQL Server 2005 http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx

Tutorial de Administración de Base de Datos http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

En la siguiente unidad temática detallaremos aspectos relacionados a las bases de datos y su almacenamiento en archivos (archivos de datos y archivo de registro de transacciones) y su administración.

Excelencia Académica

59

ADMINISTRACION DE BASE DE DATOS UNIDAD ACADÉMICA Nº 2

NOMBRE:__________________________________________________________________

APELLIDOS:________________________________________FECHA; ____/_____/______

CIUDAD:_______________________________SEMESTRE:_________________________

Responda brevemente: 1. ¿Por qué es importante la elección del modelo de datos adecuado?

_____________________________________________________________________________________________________________________________________________________________________________________________________________________

2. ¿Qué factores influyen en la elección de un SGBDR? _____________________________________________________________________________________________________________________________________________________________________________________________________________________

3. ¿Cuáles son los requisitos previos de instalación de SQL Server 2005 ?

_____________________________________________________________________________________________________________________________________________________________________________________________________________________

4. ¿Qué es una instancia de SQL Server?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5. Mencione algunas consideraciones de seguridad para la instalación de SQL Server 2005

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Excelencia Académica

60

Excelencia Académica

61

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 cómo SQL Server almacena los datos, así como la función 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 cómo Microsoft® SQL Server™ 2005 almacena los datos y procesa las transacciones. Además veremos cómo 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 combinación de ambos. Concluye con información acerca de cómo 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 temática el estudiante:

1. Describe el modo en que SQL Server almacena los datos y trata las transacciones.

2. Amplia o reduce el tamaño de una base de datos.

3. Determina la ubicación 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 cuándo y cómo 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) ¿Cómo se almacenan los datos?

Al crear una base de datos, es importante comprender cómo 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 también puede tener archivos de datos secundarios (.ndf). Estos archivos

Excelencia Académica

62

físicos tienen nombres del sistema operativo y nombres de archivo lógicos que se pueden utilizar en instrucciones Transact-SQL. La ubicación 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 páginas. Esto significa que una base de datos puede almacenar 128 páginas por megabyte (MB).

Las filas no pueden abarcar más de una página. Por tanto, la máxima 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 extensión son ocho páginas contiguas, o 64 KB. Por tanto, una base de datos tiene 16 extensiones por megabyte. Las tablas pequeñas pueden compartir extensiones con otros objetos de la base de datos.

Los archivos del registro de transacciones contienen toda la información 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 transacción es un conjunto de una o varias instrucciones Transact-SQL que se tratan como una sola unidad de trabajo y recuperación. 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

Excelencia Académica

63

principio y el final de las transacciones puede usar tanto las instrucciones Transact-SQL como las funciones de la interfaz de programación de aplicaciones (API) de bases de datos. SQL Server realiza transacciones implícitas y explícitas.

Transacción implícita:

SQL Server realiza una transacción implícita cuando se ejecuta como una transacción cualquiera de las instrucciones Transact-SQL siguientes:

Alter table

Insert

Create

Open

Delete

Revoke

Drop

Select

Fetch

Truncate table

Grant

Update

De manera predeterminada, SQL Server funciona en modo de consignación automática. Esto significa que una transacción implícita se consigna tras su ejecución sin necesidad de finalizar la transacción con una instrucción COMMIT TRANSACTION.

SQL Server puede funcionar también en modo de transacción implícita. Esto significa que cuando cualquiera de las instrucciones Transact-SQL citadas anteriormente comienza una transacción, dicha transacción debe tener una instrucción COMMIT TRANSACTION para finalizar la misma.

Transacción explícita:

SQL Server realiza una transacción explícita cuando el principio y el final de una transacción se definen explícitamente. Puede definir el principio y el final de la transacción 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 recuperación. El registro es un área de almacenamiento que efectúa automáticamente 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 aplicación envía una modificación de datos.

Cuando la modificación se ejecuta, las páginas de datos afectadas se cargan en memoria (llamada caché del búfer) desde el disco si las páginas no están ya cargadas en la caché del búfer por una consulta anterior.

Cada instrucción de modificación de datos se graba en el registro mientras se ejecuta. El cambio siempre se graba en el registro y se escribe en disco

Excelencia Académica

64

antes de hacer la modificación en la base de datos. Este tipo de registro se denomina registro de prescritura.

De forma repetitiva, el proceso de punto de comprobación escribe en disco todas las transacciones completadas en la base de datos.

Si se produce un error del sistema, el proceso automático de recuperación utiliza el registro de transacciones para aplicar todas las transacciones confirmadas y deshacer las transacciones incompletas.

Los marcadores de transacción del registro se utilizan durante la recuperación automática para determinar los puntos de inicio y fin de cada transacción. Una transacción se considera completa cuando el marcador BEGIN TRANSACTION tiene un marcador COMMIT TRANSACTION asociado. Las páginas de datos se escriben en disco cuando tiene existe un punto de comprobación

Figura 3.2: Funcionamiento del registro de transacciones

2. CREACION DE LAS BASES DE DATOS

a) Que ocurre durante la creación de una base de datos?

Puede crear una base de datos desde el Administrador corporativo de SQL Server o mediante la instrucción Transact-SQL CREATE DATABASE en el Analizador de consultas de SQL Server.

Cuando se crea una base de datos, SQL Server:

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 información acerca de cada base de datos de SQL Server.

Excelencia Académica

65

Permite definir:

El nombre de la base de datos.

Las propiedades de la base de datos.

La ubicación 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 continuación, SQL Server llena el resto de la base de datos con páginas vacías, excepto aquellas páginas que contienen datos internos que graban cómo se usa el espacio en la base de datos

b) Especificación de opciones durante la creación 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 colección de archivos de datos con nombre. El grupo de archivos principal contiene todas las tablas del sistema de la base de datos. También 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 señala los demás archivos de la base de datos. Todas las bases de datos tienen un archivo de datos principal y un grupo de archivos principal. La extensión 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 extensión 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 automáticamente un archivo de registro de transacciones con un nombre generado por el sistema. La extensión 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 ubicación de archivo

Cada archivo de base de datos tiene un nombre lógico y una ubicación física para el archivo. Por lo general, los archivos deben repartirse entre varios discos para mejorar el rendimiento y la redundancia.

Excelencia Académica

66

Tamaño

Puede especificar el tamaño de cada archivo de datos y de registro. El tamaño mínimo es de 512 KB, tanto para los archivos de datos como para los archivos de registro. El tamaño especificado para el archivo de datos principal tiene que ser, al menos, como el tamaño del archivo principal de la base de datos model.

Crecimiento de archivo

Puede especificar si un archivo aumentará o no su tamaño si es necesario. Para referirse a esta opción se habla de crecimiento automático. De forma predeterminada, está habilitado el crecimiento de archivo.

Puede especificar el crecimiento de archivo en megabytes o mediante porcentaje. El porcentaje sólo se aplica al crecimiento de archivo, no al tamaño máximo.

Tamaño máximo

Puede especificar el tamaño máximo de crecimiento de archivo en megabytes o mediante porcentaje. El valor predeterminado de crecimiento es del 10 por ciento. Se recomienda especificar un tamaño máximo de crecimiento para el archivo. Si no especifica un tamaño y está habilitada la opción 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.

Intercalación

Este parámetro especifica la intercalación predeterminada para la base de datos. De manera predeterminada, una base de datos hereda la intercalación de la instancia de SQL Server en la que se crea la base de datos

c) Cambio de opciones de la base de datos después de creada

Después 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 instrucción Transact-SQL ALTER DATABASE o el procedimiento almacenado sp_dboption.

Puede configurar un número 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 categorías de opciones de base de datos:

Las opciones automáticas controlan determinados comportamientos automáticos.

Las opciones de cursor controlan el comportamiento y el alcance del cursor.

Excelencia Académica

67

Las opciones de recuperación controlan el modelo de recuperación de la base de datos.

Las opciones de SQL controlan las opciones que cumplen el estándar ANSI.

Las opciones de estado controlan:

Si la base de datos está en línea o no.

Quién puede conectarse a la base de datos.

Si la base de datos está o no en modo de sólo lectura

d) Presentación de las propiedades de bases de datos

Para obtener propiedades e información 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 / instrucción DBCC

Descripción

sp_helpdb Informa acerca de todas las bases de datos de un servidor. Proporciona el nombre, el tamaño, el propietario, el Id., la fecha de creación y las opciones de la base de datos.

sp_helpdb baseDeDatos Informa sólo acerca de la base de datos especificada. Proporciona el nombre, el tamaño, el propietario, el Id., la fecha de creación y las opciones de la base de datos. También 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 estadísticas 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 tamaño de los archivos de datos y de registro o bien configurarlos para que lo hagan automáticamente. Cuando ya no necesite una base de datos, puede eliminarla, junto con todos sus archivos asociados

a) Administración del crecimiento de los archivos de datos y de registro de transacciones

Excelencia Académica

68

Cuando los archivos de datos crecen o cuando aumenta la actividad de modificación de datos, puede que necesite ampliar el tamaño 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 instrucción ALTER DATABASE. Para utilizar la instrucción ALTER DATABASE, debe encontrarse en la base de datos master.

Puede controlar el tamaño de la base de datos si configura los archivos de base de datos y de registro para que crezcan automáticamente, 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 automático de los archivos

Siempre que sea necesario, puede establecer la propiedad de crecimiento automático de archivos de cualquier archivo de base de datos para que especifique que el archivo se expanda automáticamente mediante una cantidad o porcentaje determinado. El uso del crecimiento automático de los archivos reduce las tareas administrativas relacionadas con la ampliación manual del tamaño de la base de datos.

Puede especificar el espacio asignado, el tamaño máximo y el incremento de crecimiento de cada archivo. Si no especifica un tamaño máximo, 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 característica de crecimiento automático.

Establecer un tamaño máximo para los archivos de datos.

Establecer los incrementos de crecimiento del archivo de datos y de registro con unos tamaños suficientes como para evitar que se active con frecuencia la característica de crecimiento automático.

Expansión manual de archivos de datos y de registro de transacciones

También puede aumentar manualmente el tamaño de cualquier archivo de datos o de registro de transacciones mediante el Administrador corporativo de SQL Server o la instrucción ALTER DATABASE en Transact-SQL. Quizá prefiera expandir manualmente los archivos de base de datos para controlar cuándo se produce la expansión. Expandir archivos en incrementos pequeños aumenta la fragmentación y puede afectar al rendimiento si los archivos se expanden mientras la base de datos está ocupada

Determinación de la expansión automática o manual de archivos

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

En entornos de producción grandes, debe asignar espacio suficiente para los archivos de datos para los que creó la base de

Excelencia Académica

69

datos y expandirlos manualmente, si es necesario. Esto permite controlar cuándo se expanden los archivos.

En un entorno de producción pequeño o de escritorio, como un agente de ventas de viaje, al establecer que los archivos de base de datos crezcan automáticamente se reduce la carga administrativa.

Creación de archivos secundarios de datos y de registro de transacciones

Puede crear también archivos secundarios de datos y de registro de transacciones para ampliar el tamaño de la base de datos. Use archivos secundarios de datos y de registro de transacciones para colocar archivos en discos físicos independientes. También puede usar RAID para repartir los datos en varios discos.

b) Reducción automática 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 específicos.

Habilitación de la reducción automática:

Para configurar una base de datos o archivos de base de datos para que se reduzcan automáticamente, puede:

Especificar la opción autoshrink en el SQL Server Management Studio

Ejecutar la instrucción ALTER DATABASE AUTO_SHRINK.

Ejecutar el procedimiento almacenado del sistema sp_dboption.

Actividades de SQL Server durante la reducción automática

De manera predeterminada, la opción para reducir archivos de manera automática está deshabilitada en todas las ediciones de SQL Server, excepto en la edición Desktop. Cuando se habilita SQL Server para que reduzca archivos automáticamente, SQL Server:

Reduce los archivos de datos y de registro de transacciones cuando más 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 sólo se reduce si no contiene porciones activas del registro lógico que se requieran para la restauración de la base de datos.

Realiza esta actividad en segundo plano y no se ve afectada la actividad de ningún usuario de la base de datos.

Excelencia Académica

70

c) Reducción manual de una base de datos o de un archivo de base de datos

La reducción manual de toda una base de datos o de archivos de base de datos por separado resulta útil en un entorno de producción, ya que permite controlar cuándo se realiza esta actividad.

Métodos de reducción

Para reducir manualmente bases de datos y archivos de base de datos a un tamaño específico, puede usar el Administrador corporativo de SQL Server o ejecutar la instrucción 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 tamaño inicial de creación mediante la instrucción DBCC SHRINKFILE.

Reducción 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 tamaño menor que el tamaño inicial de creación o que el de la base de datos model.

Reducción 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 tamaño deseado.

Si esto no es suficiente para reducir el registro de transacciones al tamaño deseado, SQL Server:

a. Devuelve un mensaje donde se informa que parte del registro

activo supera el tamaño 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 continuación, volver a ejecutar la instrucción DBCC SHRINKDATABASE o DBCC SHRINKFILE para finalizar el proceso de reducción.

Excelencia Académica

71

Configuración de las opciones de reducción 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.

Opción

Descripción

Espacio libre máximo de los archivos tras la reducción

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 páginas al principio del archivo antes de la reducción

Mueve páginas al principio del archivo antes de reducir la base de datos. La selección de esta opción puede afectar al rendimiento, pero puede ser necesaria para lograr los objetivos de reducción deseados.

Reducir la base de datos en función de esta programación

Reduce la base de datos según una programación seleccionada.

Archivos

Especifica los archivos de base de datos individuales que se van a reducir. Esto proporciona un control más preciso a la hora de reducir la base de datos

d) Eliminación de una base de datos

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

Métodos de eliminación de una base de datos

Para eliminar bases de datos, puede utilizar el Administrador corporativo de SQL Server o ejecutar la instrucción DROP DATABASE. Después de eliminar una base de datos, todos los Id. de inicio de sesión que utilizaban esa base de datos como base de datos predeterminada ya no tendrán una base de datos predeterminada.

Restricciones de la eliminación de bases de datos

Las siguientes restricciones se aplican a la eliminación de bases de datos. No se puede eliminar:

Una base de datos que esté en proceso de restauración.

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 duplicación de SQL Server.

Una base de datos de sistema.

Excelencia Académica

72

4. UBICACIÓN DE ARCHIVOS Y REGISTROS DE BASES DE DATOS

Puede mejorar el rendimiento e implementar la tolerancia a errores si administra la colocación 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 cuándo y cómo se realiza la E/S en el disco pero delega en Windows la realización 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 más grande de un sistema.

a) Administración del almacenamiento en disco

En el contexto de la administración 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 pérdida 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 asignación. No use volúmenes comprimidos

b) Distribución de archivos de datos

Debe distribuir la mayor cantidad de datos entre tantas unidades físicas como sea posible. De esta forma se mejora el rendimiento a través de acceso paralelo a datos al usar varios archivos. En general, cree un archivo para cada disco físico y agrupe los archivos en uno o más 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 continuación, grupos de archivos definidos por el usuario para distribuir los datos entre varios conjuntos de bandas de hardware, si es necesario.

Una técnica avanzada es separar las tablas a partir de índices no agrupados en clústeres. Un índice no agrupado en clústeres es un índice que tiene un orden lógico distinto del orden físico de las filas almacenado en el disco.

c) Creación 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 operación de escritura. El uso de RAID proporciona tolerancia a errores.

Por ejemplo, si su entorno de producción 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.

Excelencia Académica

73

d) Ubicación de la base de datos tempdb

Para asegurar un rendimiento óptimo debe colocar la base de datos tempdb en un subsistema rápido 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. OPTIMIZACIÓN 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 además reemplazar una unidad con errores sin necesidad de apagar el sistema. Sin embargo, esta ventaja depende de la implementación concreta del RAID de hardware que adquiera.

b) Aplicación 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 duplicación de disco (RAID 1) para mejorar la redundancia del registro de transacciones.

Creación 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 creación de bandas (RAID 10 o RAID 1 + RAID 0) para obtener el máximo 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 periódicas para proteger las bases de datos y los datos de cualquier pérdida irreparable.

6. OPTIMIZACIÓN DE UNA BASE DE DATOS MEDIANTE GRUPOS DE ARCHIVOS Los grupos de archivos mejoran el rendimiento gracias a la distribución de los datos entre varios discos y mediante subprocesos paralelos para procesar consultas. Los grupos de archivos también pueden facilitar el mantenimiento de las bases de datos.

a) Introducción a Grupos de archivos definidos por el usuario

Excelencia Académica

74

Figura 3.3: Grupo de archivos definidos por el usuario

Si la configuración de hardware incluye varias unidades de disco, puede colocar objetos y archivos específicos en discos individuales y agrupar los archivos de base de datos en uno o más grupos de archivos.

Tipos de grupos de archivos

SQL Server tiene un grupo de archivos principal y puede tener también 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 asignación.

Sugerencia: Si Ordhist1 .ndf y Ordhst2.ndf se van a consultar a menudo, deben colocarse en discos independientes.

Colocación de archivos en discos independientes

La ilustración (Figura 3.3) es un ejemplo de cómo se pueden colocar archivos de base de datos en discos independientes.

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 ilustración, 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 más que actualizarse con información actualizada de pedidos.

Excelencia Académica

75

También 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) Creación 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 físico.

Métodos de creación 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 instrucción CREATE DATABASE o ALTER DATABASE.

Elección 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 páginas de todas las tablas e índices que no especificaron un grupo de archivos durante su creación.

Definición del tamaño del grupo de archivos principal predeterminado

Si el grupo de archivos predeterminado se deja como grupo de archivos principal, deberá establecer adecuadamente el tamaño del grupo de archivos principal o definirlo automáticamente 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 estén asignadas a un grupo de archivos definido por el usuario.

Si el grupo de archivos principal se queda sin espacio, no podrá agregar información a las tablas del sistema. Sin embargo, si un grupo de archivos definido por el usuario se queda sin espacio, sólo se verán afectados los archivos de usuario que estén asignados específicamente a ese grupo de archivos.

Presentación de la información de los grupos de archivos

Puede ver información 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

Descripción

sp_helpfile [[@filename =] 'nombre']

Devuelve los nombres físicos y los atributos de los archivos asociados con la base de datos actual. Utilice este procedimiento almacenado de sistema para determinar los nombres de los

Excelencia Académica

76

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 asignársela 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 físicamente en un disco o en un conjunto de discos. SQL Server mantiene una asignación de archivos que asocia cada objeto de base de datos con su ubicación en el disco. La ilustración muestra que:

Si se crea un archivo en un grupo de archivos que comprende cuatro discos, una asignación de archivos señala la ubicación de los datos de los cuatro discos físicos.

Si se crean dos archivos en un grupo de archivos que abarca cuatro discos, dos asignaciones de archivos (una asignación para

Excelencia Académica

77

cada archivo) señalan la ubicación de los datos en los cuatro discos físicos.

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 exploración 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 Además 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 restauración 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 restauración.

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 más 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 podría necesitar que sus copias de seguridad y sus procesos de restauración se realicen por separado en la base de datos.

e) Consideraciones acerca de la creación de grupos de archivos

La creación de grupos de archivos definidos por el usuario es una técnica avanzada de diseño 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 específicos.

Al crear grupos de archivos, debe hacer lo siguiente:

Excelencia Académica

78

Use requisitos de mantenimiento en lugar de consideraciones de rendimiento para determinar el número de grupos de archivos.

En muchos casos, el uso de la capacidad de creación 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 opción cara

7. OPTIMIZACIÓN 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 creación de bandas de hardware y, después, use los grupos de archivos para repartir los datos entre los diversos conjuntos de bandas de hardware.

La ilustración (Figura 3.5) muestra dos controladores que señalan 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 opción reparte los datos de manera uniforme entre todos los discos a la vez que conserva la facilidad de administración.

Esta configuración usa las mejores características de los grupos de archivos y RAID basado en hardware. Además 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 solución crea una agrupación lógica, resulta fácil de configurar y administrar para un administrador de bases de datos o de sistemas

Figura 3.5: Combinación de grupos de archivos con soluciones RAID basadas en hardware

Excelencia Académica

79

8. ESTIMACIÓN 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 estimación del espacio que requiere una base de datos le puede ayudar a planear el esquema de almacenamiento y determinar los requisitos de hardware

a) Estimación del tamaño de una base de datos

Al planear una base de datos, se establece su estructura lógica. Bajo esa estructura hay varios archivos y objetos físicos 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 información acerca de archivos, objetos, permisos y restricciones. Estas tablas aumentan de tamaño a medida que se crean más 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 tamaño 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:

Tamaño de la base de datos model y de las tablas del sistema, incluida la

previsión de crecimiento. Cantidad de datos en las tablas, incluida la previsión de crecimiento. Número y tamaño de los índices, especialmente el tamaño del valor de las

claves, el número de filas y el valor del factor de relleno

Tamaño del registro de transacciones, al que afectan la cantidad y la frecuencia de la actividad de modificación, el tamaño de cada transacción y la frecuencia de las copias de seguridad o el volcado del registro.

Tamaño de las tablas del sistema, como el número de usuarios, objetos, etc., que no suele ser un porcentaje alto del tamaño de la base de datos.

b) Estimación de la cantidad de datos en las tablas Después 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 número total de filas, el tamaño de las filas, el número de filas que caben en una página y el número total de páginas que se requieren para cada tabla de la base de datos.

Puede calcular el número de páginas necesarias para una tabla y el espacio de disco que ocupa la tabla si conoce el número de caracteres de cada fila y el número aproximado de filas que la tabla va a tener. Utilice el siguiente método:

Calcule el número de bytes de una fila sumando el número de bytes que

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

Excelencia Académica

80

Determine el número de filas que caben en cada página de datos. Para

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

Divida el número aproximado de filas de la tabla por el número de filas que caben en cada página de datos. El resultado es igual al número de páginas 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 través de ellos.

En esta unidad se describió cómo Microsoft® SQL Server™ almacena los datos y procesa las transacciones además de cómo 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 combinación 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 Edición, McGraw Hill. 2006.

[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5ª edición, 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.

Bibliografía electrónica:

Administración 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 Administración de Base de Datos http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

Excelencia Académica

81

En la siguiente unidad trataremos temas sobre cómo crear copias de respaldo de bases de datos y las estrategias a utilizar para no perder los datos en caso de algún desastre.

ADMINISTRACION DE BASES DE DATOS UNIDAD ACADÉMICA Nº 3

NOMBRE:__________________________________________________________________

APELLIDOS:________________________________________FECHA; ____/_____/______

CIUDAD:_______________________________SEMESTRE:_________________________

PARTE I: Marque la alternativa correcta: 1. ¿Cuál 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 diseñando la estructura física para el nuevo servidor de tu compañía corriendo SQL Server 2005. El

servidor tiene las siguientes características: dos discos en RAID 1, cinco discos en RAID 5, y otros diez discos en RAID 5. ¿Dónde almacenarías 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) 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.

3. ¿Cuál de las siguientes opciones son tipos de grupos de archivos validos? a) Solo lectura b) Solo escritura c) Por defecto d) Primario

Excelencia Académica

82

PARTE II: Responda brevemente:

4. ¿Cómo se almacenan los datos en SQL Server 2005?

______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ____________________________________________________________________________________

5. ¿Qué almacena el registro de transacciones? _________________________________________________________________________________________________________________________________________________________________________ _________________________________________________________________________________________________________________________________________________________________________

6. Mencione los métodos para la reducción de la base de datos

___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

7. ¿Cómo puede calcularse el tamaño de una base de datos? ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Excelencia Académica

83

COPIAS DE RESPALDO

Con frecuencia, los datos en una base de datos justifican las operaciones de una organización, es decir almacenan todo el historial de las transacciones de una empresa. Sin la base de datos, la organización no podría funcionar correctamente. Es importante que todas las bases de datos de misión crítica del sistema realicen adecuados procedimientos de recuperación en casos de desastre en el lugar.

Las copias de seguridad y restauración de operaciones son una parte vital de la gestión de datos y son esenciales para la recuperación de datos en caso de daños y/o desastres. Por lo tanto, una función importante de un administrador de base de datos es garantizar que los datos sean respaldados y puedan ser restaurados rápidamente en caso de un desastre.

Al finalizar el estudio de la presente unidad temática el estudiante:

1. Crea archivos de copia de seguridad

2. Determina y cambia un modelo de recuperación 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 métodos de copia de seguridad de SQL Server.

5. Diseña una estrategia de copia de seguridad apropiada.

1. COPIAS DE SEGURIDAD Y RESTAURACIÓN DE BASES DE DATOS

Microsoft SQL Server 2005 proporciona funciones de copia de seguridad y restauración de alto rendimiento. El componente de copia de seguridad y restauración de SQL Server ofrece una protección esencial para los datos críticos almacenados en las bases de datos de SQL Server. La implementación de una estrategia correctamente planeada de copia de seguridad y restauración contribuye a la protección de las bases de datos de la pérdida de datos derivada de daños causados por diferentes errores. La comprobación de la estrategia mediante la restauración de las copias de seguridad y la recuperación 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 después 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.

Excelencia Académica

84

Errores de hardware, por ejemplo, una unidad de disco dañada o la pérdida permanente de un servidor.

Desastres naturales.

Además, 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 creación de reflejo de la base de datos y el archivo, etc.

2. COMO IMPEDIR LA PÉRDIDA DE LOS DATOS

Impedir la pérdida de datos es uno de los problemas más 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 pérdida 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 instrucción DELETE.

El uso accidental o malintencionado de una instrucción UPDATE; por ejemplo, no utilizar la cláusula WHERE con una instrucción 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 mínimo sobre la producción 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 póliza de seguros, pregúntese: “¿cuánto estoy dispuesto a pagar y cuántas pérdidas puedo permitirme?”.

Los costos asociados con la estrategia de copia de seguridad incluyen la cantidad de tiempo que se emplea en diseñar, implementar, automatizar y probar los procedimientos de copia de seguridad. Aunque la pérdida de datos no se puede impedir completamente, debe diseñar una estrategia de copia de seguridad para reducir el alcance de los daños. Cuando diseñe 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:

Excelencia Académica

85

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 línea (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 estén efectuando muchas actualizaciones en SQL Server.

Tras determinar la estrategia de realización 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 RECUPERACIÓN DE BASES DE DATOS

a) Modelos De Recuperación

Los modelos de recuperación se han diseñado para controlar el mantenimiento del registro de transacciones. Existen tres modelos de recuperación: simple, completa y por medio de registros de operaciones masivas. Normalmente, en las bases de datos se usa el modelo de recuperación completa o el modelo de recuperación simple.

Modelo de recuperación simple

El modelo de recuperación simple minimiza la sobrecarga administrativa del registro de transacciones, ya que no se realiza una copia de seguridad de este registro. El modelo de recuperación simple tiene un alto riesgo de pérdida de trabajo si la base de datos sufre daños. Sólo se pueden recuperar los datos de la copia de seguridad más reciente de los datos perdidos. Por lo tanto, en el modelo de recuperación simple, los intervalos de copia de seguridad deben ser lo bastante cortos como para evitar la pérdida 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 producción. La inclusión 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 recuperación simple es útil para bases de datos de prueba y desarrollo, o bien para bases de datos que contienen sobre todo datos de sólo lectura, como puede ser un almacén de datos. El modelo de recuperación simple no es apropiado para sistemas de producción en los que la pérdida de cambios recientes es inadmisible. En estos casos, se recomienda el modelo de recuperación completa.

Modelos de recuperación completa y por medio de registros de operaciones masivas

Los modelos de recuperación completa y por medio de registros de operaciones masivas ofrecen mayor protección de los datos que el modelo de recuperación simple. Estos modelos de recuperación se basan en hacer copias de seguridad de registros de transacciones para ofrecer una recuperación completa y evitar la pérdida de trabajo en una amplia variedad de casos de error.

Excelencia Académica

86

Modelo de recuperación 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 recuperación 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 después del error. El modelo de recuperación completa admite también la restauración de páginas de datos individuales.

Modelo de recuperación por medio de registros de operaciones masivas:

Este modelo de recuperación registra la mayoría de las operaciones masivas. Se ha creado exclusivamente como complemento del modelo de recuperación completa. Para determinadas operaciones masivas a gran escala, como la importación masiva o la creación de índices, el cambio temporal al modelo de recuperación 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 recuperación completa, el modelo de recuperación 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 pérdida de trabajo, porque el modelo de recuperación por medio de registros de operaciones masivas no admite la recuperación a un momento dado.

b) Cambio de un modelo de recuperación de bases de datos

De forma predeterminada, SQL Server 2005 Standard Edition y SQL Server 20005 Enterprise Edition usan el modelo de recuperación completa. Puede cambiar el modelo de recuperación 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 función DATABASEPROPERTYEX.

Sintaxis

ALTER DATABASE nombreBaseDeDatos SET RECOVERY {FULL | SIMPLE | BULK_LOGGED}

Ejemplo

En este ejemplo se establece el modelo de recuperación de registro masivo como tipo de recuperación de la base de datos AdventureWorks.

ALTER DATABASE AdventureWorks SET RECOVERY BULK_LOGGED

También puede realizarse el cambio a traves del SQL Server Management Studio. Para ello debe hacer anticlic a la base de datos y buscar la opción “Propiedades”

Excelencia Académica

87

4. PROCESO DE COPIA DE SEGURIDAD DE SQL SERVER

Durante la operación 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 dinámico 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 dinámica se produce cuando SQL Server:

Emite un punto de comprobación en la base de datos y registra el número de secuencia de registro (LSN) del registro de transacciones activo más antiguo.

Excelencia Académica

88

Lee los discos directamente (pasa por alto la caché del búfer) para escribir todas las páginas 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. EJECUCIÓN 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 quién le está permitido hacer la copia de seguridad y dónde se va a almacenar. Puede realizar copias de seguridad de bases de datos mediante instrucciones de Transact-SQL o con el Administrador corporativo de SQL Server.

a) Quién hace las copias de seguridad?

Los miembros de las siguientes funciones tienen permiso para hacer copias de seguridad de una base de datos:

La función fija de servidor sysadmin

La función fija de base de datos db_owner

La función 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) Dónde almacenar las copias de seguridad?

SQL Server puede hacer las copias de seguridad en un archivo del disco duro, en cinta o en una Canalización con nombre.

Los archivos de disco (locales o de red) son el medio más común 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 Canalización con nombre para permitir que los usuarios aprovechen las características de copia de seguridad y restauración de los paquetes de software de otros fabricantes.

c) Cuándo 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 específica.

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, específicamente, cuando las modifique.

Excelencia Académica

89

Después de modificar la base de datos master:

La base de datos master contiene información 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 fácilmente las bases de datos de usuario si la base de datos master se daña.

Después 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 símbolo del sistema rebuildm, mediante la ejecución 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 automáticamente 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.

Después de modificar la base de datos msdb

Haga una copia de seguridad de la base de datos msdb después de modificarla, puesto que msdb contiene información 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, después, volver a crear todos los trabajos, alertas y operadores.

Después de modificar la base de datos model

Haga una copia de seguridad de la base de datos model si realiza modificaciones para incluir la configuración 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 también se pierden. Puede restaurar una copia de seguridad de la base de datos model personalizada si se produce un error del sistema

Excelencia Académica

90

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. También debe hacer copias de seguridad después de crear una base de datos o un índice, y cuando se ejecutan ciertas operaciones no registradas.

Después de crear bases de datos

Debe hacer una copia de seguridad de una base de datos después de su creación o después 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 línea de base a la que se puedan aplicar los registros de transacciones.

Después 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 restauración. La copia de seguridad de una base de datos después 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 sólo hace la copia de seguridad del registro de transacciones después 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.

Después de limpiar el registro de transacciones

Debe hacer una copia de seguridad de una base de datos después 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.

Después de operaciones no registradas

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

Con algunos modelos de recuperación no se pueden recuperar los cambios efectuados por las siguientes operaciones no registradas:

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. Además, la acción 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 Académica

91

opción WITH LOG para escribir estas actividades en el registro de transacciones.

Instrucción SELECT…INTO al crear una tabla permanente o el programa de copia masiva.

Haga una copia de seguridad de una base de datos después de ejecutar cualquier operación no registrada porque, si se produce un error del sistema, puede que el registro de transacciones no contenga toda la información 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 operación 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 automático.

Crear índices.

Ejecutar operaciones no registradas, incluidas la copia masiva de datos y las instrucciones SELECT…INTO, 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 sólo lectura, una copia de seguridad completa puede ser suficiente para evitar que se pierdan datos. Este tipo de copia de seguridad sirve como línea 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.

Excelencia Académica

92

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 lógico 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 restauración de una base de datos que se modifica con frecuencia. Haga una copia de seguridad diferencial sólo 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é páginas han cambiado desde la última copia de seguridad completa de la base de datos, SQL Server compara el LSN de la página con el LSN de sincronización de la última copia de seguridad completa.

Cuando se hace una copia de seguridad diferencial, SQL Server copia extensiones en lugar de páginas individuales. Se hace una copia de una

Excelencia Académica

93

extensión cuando el LSN de cualquier página de la extensión 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 sólo 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 más pequeños 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 convención de denominación 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 efectúan 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 sin la correspondiente copia de seguridad de la base de datos.

Con el modelo de recuperación sencilla no puede realizar copias de seguridad del registro de transacciones.

Excelencia Académica

94

Cómo 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 ejecución correcta de la instrucción 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 información de la parte inactiva.

La parte activa del registro de transacciones empieza en el momento de la transacción abierta más 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 'disk', 'AWorksBacLog', 'D:\Backup\AWorksBacLog.bak'

BACKUP LOG AdventureWorks TO AWorksBacLog

Uso de la opción NO_TRUNCATE

Si se pierden o se dañan los archivos de la base de datos, debe hacer copias de seguridad de los registros de transacciones con la opción NO_TRUNCATE. El uso de esta opción 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 instrucción 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 opción 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 tamaño (VLDB, Very Large Database), puede hacer copias de seguridad de

Excelencia Académica

95

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

Sólo copia los archivos de base de datos que especifique en la opción FILE o FILEGROUP.

Le permite hacer una copia de seguridad de archivos de base de datos específicos 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 lógicos.

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 = {nombreArchivoLógico | @varNombreArchivoLógico} | FILEGROUP = {nombreGrupoLógico | @varNombreGrupoLógico } }

e) Copia de seguridad Parcial

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 sólo lectura opcionalmente especificados. Una copia de seguridad parcial de una base de datos de sólo lectura contiene únicamente el grupo de archivos principal .

f) Copia de seguridad Solo Copia

Normalmente, la realización 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 específico sin afectar a los procedimientos generales de copia de seguridad y restauración de la base de datos. Con este propósito, SQL Server 2005 introduce copias de seguridad de sólo copia. Estas copias de seguridad son independientes de la secuencia periódica 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 porción del log que no fue guardado previamente (conocido como la porción activa del log)

Excelencia Académica

96

7. DISENO DE UNA ESTRATEGIA DE COPIA DE SEGURIDAD

Cuando diseñe una estrategia de copia de seguridad, su entorno de trabajo concreto determinará el método o combinación de métodos de copia de seguridad que debe elegir. Cuando determine qué estrategia de copia de seguridad va a implementar, tenga en cuenta el proceso de restauración, así como los requisitos de cada una de las estrategias que se presentan en este módulo.

Una estrategia de copia de seguridad y restauración 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, cómo se prueban las copias de seguridad, y dónde y cómo se almacenan los medios de copia de seguridad.

Una parte de restauración de la estrategia que define quién es responsable de llevar a cabo las operaciones de restauración y cómo se deben realizar para satisfacer sus objetivos de disponibilidad de la base de datos y minimizar la pérdida de datos.

Factores para diseñar una estrategia:

Los requisitos de disponibilidad y protección de datos frente a pérdidas.

La naturaleza de cada una de las bases de datos: el tamaño, 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 física 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 tamaño de la base de datos y la frecuencia de modificación de los datos determinan el tiempo y los recursos involucrados en la implementación de una estrategia de copia de seguridad completa de la base de datos.

Excelencia Académica

97

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

La base de datos es pequeña. La cantidad de tiempo que se requiere para hacer la copia de seguridad de una base de datos pequeña es razonable.

La base de datos es de sólo 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 pérdida 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 debería realizar para restaurar la base de datos. Supongamos que:

La base de datos sólo 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 día.

La posibilidad de perder los cambios de la base de datos de un día es aceptable. Dichos cambios se pueden volver a repetir fácilmente.

El administrador del sistema no desea supervisar el tamaño del registro ni realizar ningún 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 daña a las 10:00 a.m.

Proceso de restauración:

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 día anterior con el fin de sobrescribir la versión dañada de la base de datos.

La limitación de esta solución es que se pierden todas las modificaciones realizadas en los datos desde la última copia de seguridad.

Excelencia Académica

98

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

Además de hacer una copia de seguridad completa de la base de datos, también 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 común.

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 más reciente y, después, 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. También 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 debería realizar para restaurar la base de datos. Supongamos que:

La base de datos y los registros de transacciones están almacenados en archivos y medios físicos independientes.

Excelencia Académica

99

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 días a las 9:00 a.m., a las 12:00 del mediodía y a las 3:00 p.m.

El medio físico que contiene la base de datos se daña a la 1:30 p.m.

Proceso de restauración :

Para recuperar la base de datos, debería realizar los pasos siguientes:

Haga una copia de seguridad del registro de transacciones, si es posible. Utilice la opción 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 día (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 restauración (si se ha creado uno).

c) Estrategia de copia de seguridad diferencial

Figura 4.4: Copia de seguridad diferencial

Excelencia Académica

100

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 sólo 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 periódicamente.

Requiere restaurar sólo la copia de seguridad diferencial más 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 recuperación si la base de datos se daña. 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 debería 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 días, 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 miércoles.

La base de datos se daña a las 9:30 a.m. del miércoles.

Proceso de restauración

Para recuperar la base de datos, debería realizar los pasos siguientes:

1. Haga una copia de seguridad del registro de transacciones, si es posible. Utilice la opción 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 más 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.

Excelencia Académica

101

4. Aplique las copias de seguridad del registro de transacciones creadas el miércoles 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 restauración (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 tamaño (VLDB) que estén repartidas en varios archivos. Cuando se combina con las copias de seguridad regulares del registro de transacciones, esta técnica ofrece una ventaja de tiempo sobre las copias de seguridad completas de la base de datos. Por ejemplo, si sólo dispone de una hora para hacer la copia de seguridad completa de la base de datos (que normalmente dura cuatro horas), podría 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 automática.

Ejemplo de estrategia :

Considere el siguiente ejemplo de un plan de copia de seguridad y los pasos que debería realizar para restaurar la base de datos. Supongamos que:

Excelencia Académica

102

Los datos de la base de datos están 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 días a la 1:00 a.m:

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

Archivo2 se copió el miércoles 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 días a las 12:00 del mediodía y a las 6:00 p.m.

El jueves a las 8:00 a.m., se daña el medio físico de Archivo2.

Proceso de restauración

Para recuperar la base de datos, debería realizar los pasos siguientes:

1. Haga una copia de seguridad del registro de transacciones, si es posible. Utilice la opción WITH NO_TRUNCATE.

2. Restaure la copia de seguridad de Archivo2 que se creó el miércoles 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 miércoles.

4. Aplique el registro de transacciones creado al comienzo del proceso de restauración 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 sólo se aplican los sucesos del registro de transacciones que afectan a los datos que están almacenados en Archivo2. Los sucesos del registro de transacciones anteriores a la 1:00 a.m. del miércoles no se utilizan. Sólo se aplican las transacciones de Archivo2 posteriores a la 1:00 a.m. del miércoles.

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:

La copia de seguridad en varios dispositivos físicos suele ser más rápida que la copia en un solo dispositivo físico. 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 Académica

103

El tiempo necesario para hacer la copia de seguridad de una base de datos depende de la velocidad del dispositivo físico. Las unidades de cinta suelen ser más lentas que los dispositivos de disco.

Debe disminuir la cantidad de actividades simultáneas cuando haga una copia de seguridad de una base de datos. Las actividades simultáneas 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 después restaurarla.

Esta unidad proporciono los fundamentos para la realización de copias de seguridad de bases de datos Microsoft® SQL Server™ 2005, así como sugerencias acerca de cuándo hacerlas y los pasos necesarios. Después de aprender los diferentes métodos 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 Edición, McGraw Hill. 2006.

[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5ª edición, 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.

Bibliografía electrónica:

Administración 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

Excelencia Académica

104

http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx

Tutorial de Administración de Base de Datos http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

En la siguiente unidad temática trataremos aspectos relacionados a la administración de seguridad de una base de datos.

ADMINISTRACION DE BASE DE DATOS

UNIDAD ACADÉMICA Nº 4 NOMBRE:__________________________________________________________________

APELLIDOS:________________________________________FECHA; ____/_____/______

CIUDAD:_______________________________SEMESTRE:_________________________

Responda brevemente: 1. 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? _____________________________________________________________________________________________________________________________________________________________________________________________________________________

2. 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 información contiene el backup del log de transacciones creado a las 9:15? _____________________________________________________________________________________________________________________________________________________________________________________________________________________

3. ¿Qué estrategia de copias de seguridad elegiría si trabajara en una entidad financiera? Explique su respuesta ______________________________________________________________________________________________________________________________________________ _____________________________________________________________________________________

4. ¿Qué acciones debe tomar en cuenta al momento de crear copias de seguridad? __________________________________________________________________________________________________________________________________________________________________________

5. ¿En qué casos usaría copias de seguridad diferenciales? __________________________________________________________________________________________________________________________________________________________________________

6. ¿En qué casos usaría copias de seguridad del archivo de registro de transacciones? __________________________________________________________________________________________________________________________________________________________________________

7. ¿Cuáles son los pasos para realizar ccpias de seguridad programadas? ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Excelencia Académica

105

Excelencia Académica

106

Excelencia Académica

107

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 más que eso. Es esencial primero implementar la seguridad dentro de la organización, para asegurar que solo las personas autorizadas tengan acceso a los datos. Si no se establece estas medidas de seguridad, lo más seguro es encontrar a alguien destruyendo nuestros datos o vendiendo los secretos de la compañía a nuestros competidores, o alguien accediendo a la información privada de otros. Lo primero que se tiene que hacer es un plan de seguridad, el cual identifique que usuarios en la organización pueden ver determinados datos y que actividades deben realizar en la base de datos.

Al finalizar el estudio de la presente unidad temática el estudiante:

Implementa el Modo de autenticación y el Modo mixto de Microsoft Windows.

Asigna cuentas de inicio de sesión 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 autenticación:

SQL Server puede delegar en Windows (Windows 2003 por ejemplo) la autenticación de las cuentas de inicio de sesión o puede autenticar las cuentas de inicio de sesión por sí mismo.

¿Cómo procesa SQL Server las cuentas de inicio de sesión que autentica Windows?

Excelencia Académica

108

Figura 5.1: Proceso de autenticación

Cuando un usuario se conecta con SQL Server, el cliente abre una conexión 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 conexión de confianza, SQL Server sabe que Windows 2003 ya ha validado la cuenta de inicio de sesión.

Si SQL Server encuentra la cuenta de usuario o de grupo de Windows 2003 del usuario en la lista de cuentas de inicio de sesión de SQL Server que se encuentra en la tabla del sistema sysxlogins, acepta la conexión.

SQL Server no necesita volver a validar la contraseña 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 sesión en un solo dominio de red es suficiente para permitir el acceso a todos los equipos que ejecutan SQL Server.

¿Cómo procesa SQL Server las cuentas de inicio de sesión que él mismo autentica?

SQL Server emplea los siguientes pasos para procesar las cuentas de inicio de sesión que él mismo autentica:

Cuando un usuario conecta con una cuenta de inicio de sesión y contraseña de SQL Server, éste comprueba si existe la cuenta de inicio de sesión en la tabla sysxlogins y si la contraseña especificada coincide con la contraseña registrada.

Si SQL Server no tiene configurada una cuenta de inicio de sesión para el usuario, la autenticación falla y la conexión se rechaza.

b) Elección del modo de autenticación:

Las necesidades de seguridad del servidor y de los entornos de red determinarán el modo de autenticación que se deba utilizar con SQL Server. Puede utilizar el Administrador corporativo de SQL Server para establecer el modo de autenticación del servidor.

Ventajas del Modo de autenticación de Windows:

Utilice el modo de Autenticación de Windows en entornos de red en los que todos los clientes admiten conexiones de confianza.

La autenticación de Windows ofrece varias ventajas frente a la autenticación de SQL Server, ya que:

Proporciona más características, como la validación y el cifrado seguros de contraseñas, la auditoría, la caducidad de las contraseñas, la longitud mínima de la contraseña y el bloqueo de las cuentas después de contraseñas no válidas.

Excelencia Académica

109

Permite agregar grupos de usuarios a SQL Server con sólo agregar una única cuenta de inicio de sesión.

Permite que los usuarios tengan acceso a SQL Server rápidamente, sin necesidad de recordar otra cuenta de inicio de sesión y contraseña.

Ventajas del Modo mixto

El Modo mixto, y los mecanismos de autenticación 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) Autenticación mutua con Kerberos

Figura 5.2: Autenticación mutua con kerberos

Kerberos es el principal protocolo de seguridad para la autenticación en un dominio de Windows. Define el modo en que los clientes interactúan con los servicios de autenticación de red.

El protocolo Kerberos comprueba tanto la identidad del usuario como los servicios de red. Esta doble autenticación es conocida como autenticación mutua. SQL Server utiliza Kerberos para posibilitar la autenticación mutua entre el cliente y el servidor.

Cuando se inicia sesión, Windows ubica un servidor de servicio de directorio Active Directory™ y un servicio de autenticación Kerberos. El servicio Kerberos emite un vale de concesión de vales (TGT, ticket-granting ticket) que contiene datos cifrados que confirman la identidad del usuario al Centro de distribución de claves (KDC, Key Distribution Center). Cuando el usuario solicita acceso a un servicio, éste envía el TGT al KDC, que enviará un vale de sesión al usuario para el servicio solicitado. El usuario presenta entonces el vale de sesión, que confirma su identidad, al servicio.

Si es necesaria la autenticación mutua, el servidor responde con un mensaje cifrado para identificarse a sí mismo. El vale de sesión 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 más de ocho horas, la duración de un inicio de sesión normal.

Excelencia Académica

110

Una autenticación 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) Representación y delegación:

La representación y la delegación permiten que SQL Server utilice las credenciales de seguridad del cliente original al tener acceso a recursos de los servidores locales o remotos.

Representación

En ciertas circunstancias, SQL Server debe presentar una identidad del cliente a los recursos a los que tiene acceso en representación 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 amplía más allá de los propios permisos del cliente.

Delegación

SQL Server 2000 también admite la delegación, 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 conexión es AWorks\SQLAdmin.

Para utilizar la delegación, 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.

Configuración de Active Directory para la delegación

Para que la delegación 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 opción para la delegación de la solicitud del usuario.

Se confía en la cuenta para su delegación

Debe seleccionar esta opción para la cuenta del servicio de SQL Server.

Este equipo está aprobado para su delegación. Debe seleccionar esta opción para el equipo que ejecuta SQL Server.

Configuración de SQL Server para la delegación

Para utilizar la delegación 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

Excelencia Académica

111

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 automáticamente un SPN y lo deja de registrar cuando se cierra SQL Server.

Figura 5.3: Representación y delegación

e) Cifrado.

El cifrado es un método de protección de la información 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 contraseñas de inicio de sesión almacenadas en SQL Server.

Las contraseñas de inicio de sesión almacenadas en tablas del sistema que siempre están cifradas. Esto impide que todos los usuarios, incluidos los administradores del sistema, vean ninguna contraseña, 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 envían entre el cliente y el servidor. Esto garantiza que cualquier aplicación o usuario que intercepte los paquetes de datos de la red no pueda ver los datos confidenciales, por ejemplo, contraseñas enviadas a través de la red cuando los usuarios inician sesión en SQL Server, o datos personales que contienen información acerca de los salarios

Excelencia Académica

112

f) Pasos para implementar un Modo de autenticación

Para implementar la autenticación, debe realizar las tareas siguientes desde una cuenta de administración del sistema. Para el Modo de autenticación 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 autenticación de SQL Server.

2. Detenga y vuelva a iniciar el servicio MSSQLServer para que surta efecto la opción de seguridad.

3. Cree los grupos y usuarios de Windows 2000/2003 que tengan autorización de acceso a SQL Server a través 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 sesión de SQL Server a fin de que los usuarios se conecten a conexiones en las que no se confía.

2. CUENTAS DE INICIO DE SESION:

Puede crear cuentas de inicio de sesión a partir de usuarios y grupos de Windows 2000/2003 existentes, o puede crear nuevas cuentas de inicio de sesión en SQL Server. También puede utilizar una de las cuentas de inicio de sesión predeterminadas. Las cuentas de inicio de sesión están almacenadas en la tabla del sistema master.sysxlogins. Cuando se agrega una cuenta de inicio de sesión a SQL Server, se le suele asignar una base de datos predeterminada. La asignación de una base de datos predeterminada a una cuenta de inicio de sesión 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 sesión 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. Sólo 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 sesión de Windows 2000 a SQL Server, tenga en cuenta los siguientes hechos y directrices:

Como SQL Server tiene una sola cuenta de inicio de sesión 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 huérfanos (objetos cuyo propietario es un usuario que ya no existe en SQL Server), siempre y cuando no elimine el grupo.

Excelencia Académica

113

La eliminación de un grupo o usuario de Windows no elimina ese grupo o usuario en SQL Server. Esto impide que haya objetos huérfanos.

Cuando quita usuarios o grupos de Windows, primero debe quitarlos de Windows para denegar el acceso desde la red. Después, debe quitarlos de SQL Server.

Agregue una cuenta de inicio de sesión 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 sesión 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 función SUSER_SNAME() devuelve los nombres de la cuenta de inicio de sesión y el dominio de los usuarios cuando los usuarios son miembros de un grupo de Windows 2000/2003.

SQL Server sólo admite la especificación de cuentas de Windows con el formato DOMINIO\nombreUsuario. SQL Server no permite que se agreguen cuentas de Windows mediante la utilización de nombres principales de usuario (UPN), nombres con el formato [email protected].

En la tabla siguiente se enumeran otros procedimientos almacenados del sistema que se pueden utilizar para administrar cuentas de inicio de sesión de Windows 2000. Sólo los administradores del sistema o de seguridad pueden ejecutar estos procedimientos almacenados del sistema.

b) Cuentas de inicio de sesión predeterminadas

BUILTIN\Administradores se proporciona como cuenta de inicio de sesión 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 sesión 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 sólo cuando SQL Server utiliza el Modo mixto de autenticación.

c) Como crear un inicio de sesión de SQL Server

La mayoría de usuarios de Windows necesitan un inicio de sesión de SQL Server para conectarse a SQL Server.

Para crear un inicio de sesión de SQL Server que use la autenticación 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 sesión.

2º Haga clic con el botón secundario en la carpeta Seguridad, seleccione Nuevo y, a continuación, Inicio de sesión.

Excelencia Académica

114

3º En la página General, escriba el nombre de un usuario de Windows en el cuadro Nombre de inicio de sesión.

4º Seleccione Autenticación de Windows.

5º Haga clic en Aceptar.

Para crear un inicio de sesión de SQL Server que use la autenticación 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 sesión.

2º Haga clic con el botón secundario en la carpeta Seguridad, seleccione Nuevo y, a continuación, Inicio de sesión.

3º En la página General, escriba un nombre para el nuevo inicio de sesión en el cuadro Nombre de inicio de sesión.

4º Seleccione Autenticación de SQL Server. La autenticación de Windows es la opción más segura.

5º Escriba una contraseña de inicio de sesión.

6º Seleccione las opciones de la directiva de contraseñas que deben aplicarse al nuevo inicio de sesión. En general, exigir la directiva de contraseñas es la opción más segura.

7º Haga clic en Aceptar.

Para crear un inicio de sesión de SQL Server que use la autenticación 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 sesión de SQL Server que use la autenticación 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: Relación entre tablas del sistema

Excelencia Académica

115

Después de agregar cuentas de inicio de sesión 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 función 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 ilustración anterior, se les ha concedido a los miembros del grupo de Windows payroll acceso a la base de datos Northwind. Después de conectarse con SQL Server, el usuario:

Tiene una conexión 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, sólo 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 sesión de SQL Server se asume que existe el correspondiente inicio de sesión.

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 continuación, Usuario.

4º En la página General, escriba un nombre para el usuario en el cuadro Nombre de usuario.

5º En el cuadro Nombre de inicio de sesión, escriba el nombre de un inicio de sesión 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, conéctese 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. ASIGNACIÓN DE CUENTAS DE INICIO DE SESIÓN 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 fácilmente una selección de permisos administrativos a un usuario específico.

Excelencia Académica

116

También puede crear sus propias funciones de base de datos para representar las tareas que realiza un tipo de empleados de la organización. Cuando un empleado cambia de puesto de trabajo, sólo tiene que agregar al empleado como miembro de la función o quitar al empleado de la función 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 función de un puesto de trabajo cambia, es muy sencillo modificar los permisos de la función y hacer que los cambios se apliquen automáticamente a todos los miembros de la función.

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. Asignación de una cuenta de inicio de sesión a una función fija de servidor

Para agregar una cuenta de inicio de sesión como miembro de una función fija del servidor, puede utilizar Propiedades de inicio de sesión en el Administrador corporativo de SQL Server o el procedimiento almacenado del sistema sp_addsrvrolemember. Sólo 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 sesión a una función del servidor, la fila correspondiente de la cuenta de inicio de sesión en la tabla sysxlogins se actualiza para indicar que la cuenta de inicio de sesión es miembro de la función y tiene permisos asociados con la función del servidor.

Al asignar cuentas de inicio de sesión a funciones fijas del servidor, tenga en cuenta los siguientes hechos:

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

Excelencia Académica

117

Cualquier miembro de una función fija del servidor puede agregar otras cuentas de inicio de sesión a esa función.

El procedimiento almacenado del sistema sp_addsrvrolemember no se puede ejecutar en una transacción definida por el usuario.

También puede utilizar el procedimiento almacenado del sistema sp_dropsrvrolemember para quitar un miembro de una función 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 están almacenadas en la tabla del sistema sysusers de cada base de datos.

La función publica:

La función public es una función de base de datos especial a la que pertenecen todos los usuarios de la base de datos y que no se puede quitar. La función 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 sólo puede llevar a cabo unas tareas limitadas. Sin permisos, los usuarios poseen todos los permisos que se hayan concedido a la función public y pueden:

Ejecutar instrucciones que no requieran permisos, como la instrucción PRINT.

Ver información de las tablas del sistema y ejecutar ciertos procedimientos almacenados del sistema para obtener información 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.

Excelencia Académica

118

Asignación de una cuenta de seguridad a una función fija de base de datos

Para agregar una cuenta de seguridad como miembro de una función fija de base de datos, utilice el Administrador corporativo de SQL Server o el procedimiento almacenado del sistema sp_addrolemember. Sólo los miembros de la función db_owner pueden ejecutar el procedimiento almacenado del sistema sp_addrolemember para cualquier función de la base de datos.

Al asignar cuentas de seguridad a una función 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 función fija de base de datos puede agregar otras cuentas de inicio de sesión a esa función.

También puede utilizar el procedimiento almacenado del sistema sp_droprolemember para eliminar una cuenta de seguridad de una función

c) Funciones de base de datos definidas por el usuario.

La creación de una función de base de datos definida por el usuario permite crear un grupo de usuarios con un conjunto de permisos comunes. Debe agregar una función 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 compañía puede constituir un comité benéfico 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 ningún grupo de Windows que incluya sólo a esos empleados y no hay ninguna otra razón para crear uno en Windows. Podría crear una función definida por el usuario, CharityEvent, para ese proyecto y luego agregar cuentas de usuario de Windows individuales a la función. Cuando se apliquen los permisos, las cuentas de usuario individuales de la función obtendrán acceso a la tabla.

Creación de una función de base de datos definida por el usuario

Para crear una nueva función de base de datos, utilice el Administrador corporativo de SQL Server o el procedimiento almacenado del sistema sp_addrole. Por cada función definida por el usuario se agrega una entrada a la tabla sysusers de la base de datos actual. Sólo los miembros de la función db_securityadmin o db_owner pueden ejecutar sp_addrole.

Al crear una función de base de datos, tenga en cuenta lo siguiente:

Cuando aplique permisos a la función, todos los miembros de la función obtendrán el efecto del permiso, igual que si el permiso se hubiera aplicado directamente a las propias cuentas de los miembros.

Asignación de una cuenta de seguridad a una función de base de datos definida por el usuario

Excelencia Académica

119

Después de crear una función, utilice el Administrador corporativo de SQL Server o el procedimiento almacenado del sistema sp_addrolemember para agregar usuarios o funciones como miembros de la función. Sólo los miembros de la función fija del servidor sysadmin o de las funciones fijas de base de datos db_securityadmin y db_owner, o el propietario de la función pueden ejecutar sp_addrolemember para agregar un miembro a una función de base de datos definida por el usuario.

Al asignar cuentas de seguridad a una función de base de datos definida por el usuario, tenga en cuenta los siguientes hechos:

Cuando agregue una cuenta de seguridad a una función, todos los permisos aplicados a la función se aplican al nuevo miembro.

Cuando agrega una función de SQL Server como miembro de otra función de SQL Server, no se pueden crear funciones recursivas. Por tanto, cuentaDeSeguridad no se podría agregar como miembro de función si función ya fuera miembro de cuentaDeSeguridad.

6. ASIGNACIÓN DE PERMISOS A USUARIOS Y FUNCIONES

Después de haber asignado cuentas de inicio de sesión 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 autorización 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 diseñar 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

Excelencia Académica

120

Hay tres tipos de permisos en SQL Server: de instrucción, de objeto y predefinidos.

Permisos de instrucción:

Las actividades relativas a la creación de bases de datos o de elementos en una base de datos requieren una clase de permisos llamada permisos de instrucción. Los permisos de instrucción ofrecen a los usuarios el privilegio de emitir ciertas instrucciones Transact-SQL. Los permisos de instrucción, como CREATE DATABASE, se aplican a la misma instrucción, no al elemento específico que se define en la base de datos. Sólo los miembros de la función sysadmin, db_owner o db_securityadmin pueden conceder permisos de instrucción.

Permisos de objeto:

Las actividades relacionadas con los datos o la ejecución 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 restricción FOREIGN KEY, o cambia los datos de una columna que tiene una restricción FOREIGN KEY, SQL Server tiene que validar los datos de la columna con los datos a los que se haga referencia en la restricción 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

Sólo los miembros de funciones fijas o los propietarios de los objetos de base de datos pueden desempeñar ciertas actividades. Los permisos que ejecutan dichas actividades se conocen como permisos predefinidos o implícitos.

Permisos de función fija

Las funciones fijas tienen permisos administrativos implícitos. Por ejemplo, un usuario que sea a miembro de la función sysadmin hereda automáticamente todos los permisos para hacer o leer cualquier cosa en una instalación de SQL Server. La función sysadmin tiene permisos que no se pueden cambiar, así como permisos implícitos que no se

Excelencia Académica

121

pueden aplicar a otras cuentas de usuario, como la posibilidad de configurar la instalación de SQL Server.

Permisos de los propietarios de objetos

Los propietarios de objetos también tienen permisos implícitos 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 desempeñar cualquier actividad relativa a la tabla. El usuario puede ver, agregar o eliminar datos; alterar la definición de la tabla y controlar los permisos que permiten que otros usuarios trabajen con ella.

7. CONCESIÓN, DENEGACIÓN Y REVOCACIÓN DE PERMISOS

Figura 5.6: Concesión, denegación y revocación de permisos

Los permisos de un usuario o una función 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.

Instrucción Estado de la entrada en la

tabla sysprotects Descripción

GRANT Positivo Puede ejecutar una acción.

DENY Negativo No puede ejecutar una acción y no puede ser sobrescrito por la pertenencia a una función.

REVOKE Ninguno No puede ejecutar una acción, pero puede ser sobrescrito por la pertenencia a una función.

Excelencia Académica

122

a) Concesión 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:

Sólo 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 instrucción GRANT.

Los permisos disponibles varían en función 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: oncesión de permisos

b) Denegación de permisos para impedir el acceso

Puede que, ocasionalmente, desee limitar los permisos de un usuario o una función; para ello, puede denegar los permisos a esa cuenta de seguridad. La denegación de permisos de una cuenta de seguridad:

Quita los permisos previamente concedidos al usuario o función.

Desactiva los permisos heredados de otra función.

Asegura que el usuario o función no herede permisos de otra función en el futuro.

Al denegar permisos, tenga en cuenta los siguientes hechos:

Sólo 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 instrucción DENY.

Excelencia Académica

123

c) Revocación de permisos concedidos y denegados

Para desactivar un permiso concedido o denegado, puede revocarlo. La revocación de permisos es similar a la denegación de permisos en que ambas acciones quitan un permiso concedido. La diferencia estriba en que mientras la revocación de un permiso quita un permiso concedido, no impide que el usuario o la función hereden ese permiso en el futuro.

También puede quitar un permiso previamente denegado si revoca la instrucción DENY del permiso.

Al revocar permisos, tenga en cuenta los siguientes hechos:

Sólo puede revocar permisos en la base de datos actual.

La revocación 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 instrucción REVOKE.

Figura 5.7: Revocación de permisos

8. ADMINISTRACIÓN 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) Utilización 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 instalación de software.

Excelencia Académica

124

Directivas de cuenta: Las directivas de cuenta son configuraciones de seguridad de equipos para la directiva de contraseña, la directiva de bloqueo y directiva Kerberos en dominios de Windows 2000/2003

Grupos restringidos. Los grupos restringidos permiten controlar quién pertenece a un grupo determinado así como los grupos a los que debería 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 Nóminas

Por ejemplo, puede decidir que sólo José y María 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 situación de emergencia), la siguiente vez que se exija la directiva se quitará a ese tercer usuario automáticamente del grupo Administradores de la empresa.

Directivas de software. Se puede utilizar la directiva de grupo para definir los valores predeterminados que se aplicarán automáticamente a los usuarios y equipos. Estos valores de configuración pueden determinar las opciones de seguridad y controlar qué software está disponible para determinados grupos de usuarios.

b) Utilización 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 sólo pueden tener acceso a los recursos necesarios para el proceso empresarial.

Conexiones a SQL Server a través de un servidor proxy

Puede permitir conexiones a SQL Server a través de Microsoft Proxy Server, una aplicación independiente que proporciona acceso seguro a y desde internet. Esto le permite impedir que usuarios no autorizados se conecten a su red privada. Protege

Excelencia Académica

125

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 través 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 través de determinados puertos TCP/IP. También analizan todo el tráfico que se produce entre la red e Internet.

Puede utilizar las características del servidor de seguridad de Proxy Server para controlar el flujo de información que va a Proxy Server y el que viene de él. Proxy Server admite el filtrado de paquetes entrantes y salientes. Determina de forma dinámica qué paquetes pueden pasar al circuito de red interno y a los servicios proxy de nivel de aplicación. Los filtros de paquetes individuales se configuran para que sólo los paquetes especificados pasen a través de Proxy Server. Esto permite que los puertos se abran automáticamente, sólo cuando es necesario, y que se cierren en cuanto finalice la comunicación. Esta práctica reduce el número de puertos expuestos en cualquier dirección y proporciona un alto nivel de seguridad a la red.

A los sitios Web normalmente se tiene acceso a través 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 páginas Active Server (ASP) o algún 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 ningún otro puerto.

Muchas aplicaciones basadas en Web utilizan dos servidores de seguridad. El primero separa el servidor Web de Internet y permite el acceso sólo a través del puerto 80. El servidor Web reside en un área semisegura denominada red de perímetro y tiene acceso a la base de datos de SQL Server a través de un segundo servidor de seguridad situado entre la red de perímetro y la corporativa. El número de socket oficial de la Autoridad para la asignación de números 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 través de este puerto. A una instancia con nombre de SQL Server se le asignará automáticamente un puerto cuando se inicie la instancia, pero si desea utilizar servicios proxy con una instancia con nombre, debería sobrescribir ésta o asignar un puerto fijo a la instancia con nombre utilizando la Herramienta de red de SQL Server. Si la comunicación se efectúa a través 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 características de enrutador incorporadas en los servidores Windows permiten a los servidores actuar como enrutadores. Un enrutador (o puerta de enlace) es un dispositivo que reenvía 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.

Excelencia Académica

126

c) Utilización del cifrado en las comunicaciones para proteger datos.

Al transmitir paquetes de datos a través 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 protección de los datos a través del tráfico de la red. Es un conjunto de estándares de Internet que utiliza seguridad de cifrado para proporcionar:

Confidencialidad. El tráfico IPSec está cifrado. El tráfico IPSec capturado no es inteligible sin la clave de cifrado.

Autenticación. IPSec autentica al emisor de paquetes de datos IP mediante la autenticación Kerberos, certificados digitales o una clave secreta compartida.

Integridad de los datos. El tráfico IPSec contiene una suma de comprobación 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 aplicarán para regular la comunicación 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 sólo funciona con instancias de SQL Server a las que se ha asignado un certificado de una autoridad emisora de certificados (CA) pública (CA). Los certificados de servidor permiten al cliente identificar con toda seguridad el servidor antes de compartir información confidencial. El equipo cliente debe tener también un certificado de una entidad emisora de certificados raíz de la misma autoridad. Los certificados de cliente contienen información personal acerca de los clientes que solicitan acceso al servidor.

La información de los certificados se utiliza para cifrar los datos. De esta manera se garantiza que sólo el servidor y el cliente pueden descifra la información.

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.

Excelencia Académica

127

1. Implementar el modo de autenticación Windows. Crear un login y asignarle usuarios de

base de datos. Asígnele diferentes permisos al usuario y pruebe.

Esta unidad trato detalles de implementación de la seguridad, comenzando con la descripción de cómo se configura el modo de autenticación en un servidor y cómo se concede acceso a usuarios y grupos de Microsoft® Windows® 2000/2003 y a usuarios de Microsoft SQL Server™ 2005. Después se vio cómo se asignan cuentas de inicio de sesión a usuarios y funciones, y cómo 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 Edición, McGraw Hill. 2006.

[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5ª edición, 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.

Bibliografía electrónica:

Administración 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 Administración de Base de Datos http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

En la siguiente unidad temática detallaremos aspectos relacionados al monitoreo de la base de datos

Excelencia Académica

128

ADMINISTRACION DE BASES DE DATOS UNIDAD ACADÉMICA Nº 5

NOMBRE:__________________________________________________________________

APELLIDOS:________________________________________FECHA; ____/_____/______

CIUDAD:_______________________________SEMESTRE:_________________________

1. ¿Qué pueden hacer los usuarios después de ser autenticados si sus cuentas de inicio de sesión no tienen permisos en ninguna base de datos?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. ¿Cuál es la diferencia entre la autenticación Windows y la autenticación del modo mixto? ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. ¿Qué es una cuenta de inicio de sesión?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4. ¿Cuántos usuarios pueden ser asignados a una cuenta de inicio de sesión?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5. ¿Cómo se asigna un rol de base de datos? ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Excelencia Académica

129

MONITOREO DE LA BASE DE DATOS

SQL Server actúa como un servicio para proporcionar datos a las aplicaciones. El ajuste del rendimiento tiene como objetivo la optimización de dicho servicio para la aplicación. La optimización debe concentrarse en reducir al mínimo el tiempo de respuesta de cada consulta y aumentar lo máximo posible el rendimiento de todo el servidor de bases de datos mediante la reducción del tráfico 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 aplicación, la estructura lógica y física de los datos, y el equilibrio entre los usos conflictivos de la base de datos, por ejemplo, entre el proceso de transacciones en línea (OLTP, Online Transaction Processing) y la toma de decisiones.

Al finalizar el estudio de la presente unidad temática el estudiante:

Describe las razones por las que es importante la supervisión de SQL Server.

Desarrolla una metodología de supervisión y optimización del rendimiento.

Describe las herramientas disponibles para supervisar SQL Server.

Realiza tareas de supervisión y optimización habituales mediante los contadores y herramientas apropiadas.

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

SQL Server actúa como un servicio para proporcionar datos a las aplicaciones. El ajuste del rendimiento tiene como objetivo la optimización de dicho servicio para la aplicación. La optimización debe concentrarse en reducir al mínimo el tiempo de respuesta de cada consulta y aumentar lo máximo posible el rendimiento de todo el servidor de bases de datos mediante la reducción del tráfico 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 aplicación, la estructura lógica y física de los datos, y el equilibrio entre los usos conflictivos de la base de datos, por ejemplo, entre el proceso de transacciones en línea (OLTP, Online Transaction Processing) y la toma de decisiones.

Los problemas de rendimiento deben considerarse durante el ciclo de desarrollo, no sólo en la fase final de implementación del sistema. Muchas de las soluciones que mejoran significativamente el rendimiento se obtienen gracias a un diseño pormenorizado desde el comienzo del proyecto.

Por lo general, SQL Server administra automáticamente 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

Excelencia Académica

130

La supervisión de un sistema puede ser una tarea compleja debido al gran número de variables implicadas. Puede utilizar diferentes estrategias para plantear la optimización del rendimiento del sistema en áreas específicas. 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 diseño de aplicaciones. A partir de este punto, el plan debe abarcar la identificación de las mejoras de rendimiento en las áreas más tradicionales.

a) Estrategias para la optimización del rendimiento

El objetivo de la optimización 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 aplicación, 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 confirmación visual de que una consulta se ha procesado.

Rendimiento. Mide el número 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 número de usuarios se incrementa; esto podría causar un aumento de los tiempos de respuesta del servidor y una reducción del rendimiento global. Si supervisa exclusivamente el rendimiento del servidor no tendrá información acerca del rendimiento de la aplicación para los usuarios. Y al contrario, si supervisa exclusivamente la aplicación averiguará cuáles son los problemas, pero no podrá resolverlos.

Optimización del tiempo de respuesta

Para optimizar las necesidades comerciales y los tiempos de respuesta es necesario conocer la aplicación, el entorno, los usuarios y los datos. Para usar este enfoque debe disponer de información acerca de las consultas que los usuarios emiten y realizar, a continuación, los ajustes necesarios en las consultas y la aplicación. Por lo general, el objetivo consiste en mejorar el rendimiento de consultas específicas o de aplicaciones seleccionadas

Optimización del rendimiento

La optimización del rendimiento y el procesamiento del servidor requiere conocimientos acerca de cómo SQL Server tiene acceso a los datos, controla las actividades simultáneas e interactúa con el sistema operativo. Esto podrá ayudarle a crear un diseño lógico y físico más eficaz para configurar el sistema, diseñar transacciones y escribir consultas con el fin de optimizar el rendimiento

b) Selección de un método para optimizar el rendimiento

Es posible plantear la optimización de la empresa y el servidor en varios elementos, ya que factores como el diseño de la aplicación, los recursos del sistema y el sistema operativo pueden afectar al rendimiento. Para mejorar el rendimiento puede:

Excelencia Académica

131

Optimizar la aplicación de cliente. Para ello debe:

Escribir consultas que limiten las búsquedas.

Crear índices útiles.

Reducir el número 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 diseño lógico y físico.

Optimizar SQL Server. Para optimizar SQL Server puede evaluar el diseño de almacenamiento o, en algunos casos, ajustar las opciones de configuración.

Optimizar la configuración del hardware. El cambio de la configuración de hardware también puede mejorar el rendimiento del sistema. Por ejemplo, puede agregar más memoria, procesadores o equipos; conseguir discos duros más rápidos; o incrementar el rendimiento de red.

Al planear el ajuste y la optimización 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 metodología de optimización del rendimiento

La metodología de optimización del rendimiento debe considerarse durante el ciclo de desarrollo de la aplicación, no sólo en la fase de implementación del sistema. Es necesario administrarla y documentarla cuidadosamente para evitar investigaciones innecesarias en direcciones que no lleven a ninguna conclusión.

Diseño para mejorar el rendimiento:

Algunos elementos que afectan al rendimiento son difíciles de optimizar una vez que la base de datos está en funcionamiento. La preocupación acerca del rendimiento de SQL Server debe ser una parte integral del proceso de diseño de la aplicación. Debe:

Analizar las expectativas y requisitos del usuario. Considerar si la aplicación 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 cómo se seleccionan, cuáles son los posibles valores, qué información representan y cómo se utilizan.

Diseñar una base de datos que utilice apropiadamente la normalización y la desnormalización, y aplicar diseños de esquema relacionales, en estrella y de copo de nieve, siempre que sea necesario.

Desarrollar y probar procedimientos almacenados.

Excelencia Académica

132

Diseñar la estrategia de indización y optimizar las consultas.

Programar un mantenimiento y una monitorización continuada

Plan para mejorar el rendimiento:

Como parte del plan de optimización del rendimiento, desarrolle una referencia basada en el entorno de prueba del diseño. El diseño y la prueba son procesos continuos para garantizar que los cambios realizados realmente mejorarán el rendimiento. Debe:

Definir los parámetros 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 producción 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 más rápida. 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 todavía más 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. Número total de consultas en un intervalo de tiempo dado.

Recursos de sistema. Capacidad física del hardware del equipo.

Optimización. Diseño de la aplicación 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 parámetros 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 período. Realice mediciones para determinar:

Las horas de actividad máxima y mínima de la base de datos.

Los tiempos de respuesta de los comandos de proceso por lotes y consulta de producción.

Los tiempos de ejecución de los procesos de restauración y copia de seguridad de la base de datos.

Excelencia Académica

133

Una vez establecida la referencia, podrá comparar con ella el rendimiento real del servidor en cada momento y así determinar las áreas que requieren investigación. Las cifras que estén por encima o por debajo de la referencia indican las áreas en las que podría realizarse una investigación más detallada

Figura 6.1: Establecimiento de una referencia de rendimiento

e) Detección 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 supervisión de un servidor es localizar aquéllos 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 aplicación, incluidas las consultas individuales. La resolución de cuestiones como la hiperpaginación 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 técnica para solucionar problemas, el conocimiento del grado de rendimiento aceptable ayuda a identificar las áreas problemáticas. Las cifras pequeñas 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 congestión de la red puede impedir que las solicitudes de los clientes lleguen al servidor.

Excelencia Académica

134

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

Para descubrir los límites reales, puede simular una carga de trabajo en SQL Server mientras supervisa el sistema con las herramientas descritas en este módulo.

f) Tareas de supervisión 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 supervisión.

Supervisión del sistema:

Al evaluar el sistema, obsérvelo primero desde una perspectiva más general, para asegurarse de que dispone de hardware suficiente para satisfacer los requisitos de las tareas que debe realizar. A continuación, valore los efectos de la configuración del sistema operativo y el diseño de la aplicación. Para este tipo de supervisión, puede utilizar:

Visor de sucesos de Windows 2000.

Monitor de sistema de Windows.

Supervisión específica de SQL Server

A continuación, supervise áreas específicas 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 supervisión, 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 específicas

Por último, examine consultas específicas 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 supervisión puede usar el Analizador de SQL, el Analizador de consultas SQL y el Asistente para optimización de índices.

Excelencia Académica

135

3. HERRAMIENTAS PARA SUPERVISAR AL SGBDR:

a) Herramientas de supervisión y optimización del rendimiento de SQL Server

Microsoft SQL Server incluye un conjunto de herramientas para supervisar los eventos de SQL Server y para optimizar el diseño de la base de datos física. La elección de la herramienta depende del tipo de supervisión u optimización que se realice y de los eventos particulares que se supervisen.

A continuación se describen las herramientas de supervisión y optimización de SQL Server:

Herramienta Descripción

Analizador de SQL Server

El Analizador de SQL Server realiza un seguimiento de los eventos de procesos del motor, como el inicio de un lote o una transacción, que permite supervisar la actividad del servidor y de la base de datos (por ejemplo, interbloqueos, errores graves o actividad de inicio de sesión). Puede capturar datos del Analizador de SQL Server en un archivo o una tabla de SQL Server para su análisis posterior y también reproducir paso a paso los eventos capturados en SQL Server, para ver qué sucedió exactamente.

Supervisar el uso de recursos (Monitor de

sistema)

La función principal del Monitor de sistema es hacer un seguimiento del uso de los recursos, como el número de solicitudes de página del administrador de búfer 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, número de transacciones activas, número de bloqueos bloqueados o actividad de la CPU). Puede establecer umbrales en contadores específicos 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 información gráfica acerca de:

Los procesos que se ejecutan en una instancia de SQL Server.

Excelencia Académica

136

Los procesos bloqueados.

Bloqueos.

La actividad de los usuarios.

Esto resulta útil para vistas ad hoc de la actividad actual.

Introducción a Traza de SQL

Procedimientos almacenados de Transact-SQL que crean, filtran y definen trazas:

sp_trace_create (Transact-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 aplicación 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 búsqueda de texto. Contiene información acerca de los eventos de SQL Server que no está disponible en ningún otro lugar. Puede utilizar la información del registro de errores para solucionar problemas relacionados con SQL Server.

Procedimientos almacenados del motor de base de datos (Transact-

SQL)

Los siguientes procedimientos almacenados del sistema de SQL Server suponen una alternativa muy eficaz para realizar muchas tareas de supervisión:

sp_who (Transact-SQL)

Notifica información de instantáneas acerca de los usuarios y procesos actuales de SQL Server, incluida la información sobre la instrucción que se ejecuta actualmente y si la instrucción está bloqueada.

sp_lock (Transact-SQL)

Proporciona información de instantánea 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 estimación de la cantidad actual de espacio en disco que utiliza una tabla (o toda la base de datos).

sp_monitor (Transact-SQL)

Muestra estadísticas 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.

DBCC (Transact-SQL)

Las instrucciones DBCC (Comandos de consola de base de datos) permiten comprobar las estadísticas de rendimiento y la coherencia lógica y física de una base de datos.

Funciones Las funciones integradas muestran estadísticas de

Excelencia Académica

137

Instrucciones DBCC

Puede utilizar instrucciones DBCC para comprobar el rendimiento y la actividad, así como la coherencia lógica y física de una base de datos. La tabla siguiente contiene algunas instrucciones DBCC que puede utilizar para supervisar el rendimiento.

Instrucción DBCC Proporciona información acerca de…

SQLPERF

Estadísticas desde la última vez que se inició el servidor. Puede establecerlas para reunir información 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 transacción activa más antigua, así como las transacciones duplicadas distribuida y no distribuida más antiguas, si las hay, en la base de datos especificada. Los resultados sólo se muestran si hay una transacción activa o si la base de datos contiene información de duplicación.

SHOW_STATISTICS Selectividad de un índice, lo que supone la base para determinar si un índice es útil para el optimizador de consultas.

CHECKDB Asignación e integridad estructural de todos los objetos de una base de datos.

(Transact-SQL) instantáneas acerca de la actividad de SQL Server desde el inicio del servidor; estas estadísticas se almacenan en contadores de SQL Server predefinidos. Por ejemplo, @@CPU_BUSY contiene el tiempo que la CPU ha estado ejecutando código de SQL Server, @@CONNECTIONS contiene el número de conexiones o intentos de conexiones de SQL Server y @@PACKET_ERRORS contiene el número de paquetes de red generados en conexiones de SQL Server.

Marcas de traza (Transact-SQL)

Las marcas de traza muestran información acerca de una actividad específica en el servidor para diagnosticar problemas o causas de bajo rendimiento (por ejemplo, cadenas de interbloqueos).

Optimizar el diseño físico de

las bases de datos

El Asistente para la optimización 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 optimización de motor de base de datos proporciona recomendaciones para agregar, quitar o modificar índices, vistas indizadas y particiones.

Excelencia Académica

138

CHECKFILEGROUP Asignación e integridad estructural de todas las tablas del grupo de archivos.

CHECKTABLE Integridad de las páginas 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 estadísticas específicas o información que pueda consultar.

b) Herramientas de supervisión de Windows

Los sistemas operativos Windows y Windows Server 2003 proporcionan además estas herramientas de supervisión:

Herramienta Descripción

Administrador de tareas

Muestra una sinopsis de los procesos y las aplicaciones que se ejecutan en el sistema.

Agente de supervisión de red

Supervisa el tráfico 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 información podrá determinar qué sucesos o áreas del rendimiento conviene examinar con más detalle.

El Visor de sucesos de Windows 2000/2003 permite ver los registros de sucesos descritos en la tabla siguiente.

Variable global Objetivo

@@connections Contiene el número de inicios de sesión o intentos de inicio de sesión desde la última vez que se inició SQL Server.

@@error Contiene el número de error de la última instrucción 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.

Excelencia Académica

139

Tipo Descripción

Registro de aplicación de Windows

Contiene los sucesos que registran las aplicaciones, como SQL Server. Por ejemplo, una aplicación de base de datos podría anotar un error de archivo en el registro de aplicación.

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 sesión 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 supervisión simultánea de los contadores de E/S de disco de Windows y los contadores del Administrador de búfer de SQL Server puede mostrar el comportamiento del sistema en su totalidad.

La supervisión 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 sólo los contadores en los que esté interesado. Si supervisa demasiados contadores, la sobrecarga de uso de los recursos se agrega al proceso de supervisión y afecta al rendimiento del equipo que se está supervisando.

El Monitor de sistema permite obtener estadísticas sobre la actividad y el rendimiento actuales de SQL Server. Con el Monitor de sistema, puede:

Ver simultáneamente datos de cualquier número de equipos.

Ver y cambiar gráficos para reflejar la actividad actual y mostrar valores de contadores que se actualizan con la frecuencia definida por el usuario.

Excelencia Académica

140

Exportar datos desde gráficos, registros, registros de alertas e informes a aplicaciones de hoja de cálculo 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 configuración de gráficos, alertas, registros o informes individuales, o bien de toda el área de trabajo, para volverla a utilizar.

Elegir una herramienta de supervisión

La elección de la herramienta de supervisión depende del evento o de la actividad que se va a supervisar.

Evento o actividad

Analizador de SQL

Server

Monitor de

sistema

Monitor de

actividad

Transact-SQL

Registros de

errores

Análisis de tendencias

Sí Sí

Reproducción de los eventos capturados

Supervisión ad hoc Sí Sí Sí Sí

Generación de alertas

Interfaz gráfica Sí Sí Sí Sí

Uso en aplicaciones personalizadas

Sí1 Sí

4. TAREAS HABITUALES DE SUPERVISIÓN Y OPTIMIZACIÓN

Para supervisar una instancia de SQL Server es necesario realizar un análisis de algunas áreas clave que se tratan en este módulo. La eliminación de los cuellos de botella físicos puede afectar al rendimiento de forma inmediata y aislar todavía más los problemas de diseño en la base de datos, las consultas de Transact-SQL o las aplicaciones de cliente.

1 Mediante procedimientos almacenados del sistema del Analizador de SQL Server.

Excelencia Académica

141

a) Supervisión del uso de la memoria

SQL Server requiere memoria para necesidades de memoria estática (sobrecarga del núcleo, objetos abiertos y bloqueos) así como para la caché de datos, también llamada caché del búfer).

Cómo utiliza SQL Server la memoria para la caché de datos

De manera predeterminada, SQL Server adquiere y libera memoria para la caché de datos dinámicamente, según los recursos del sistema disponibles y la demanda simultánea de dichos recursos. Si SQL Server precisa memoria adicional para la caché de datos, consulta al sistema operativo para determinar si hay disponible memoria física. En caso afirmativo, SQL Server la utiliza para la caché de datos y conserva los datos leídos previamente.

SQL Server aumenta y reduce la caché de datos para mantener libre una cantidad de memoria física comprendida entre 4 MB y 10 MB, en función de la actividad del servidor, e impedir así la paginación 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 estándar de administración de memoria dinámica.

Supervisión del uso de los archivos de paginación y la memoria

Los contadores siguientes indican la cantidad de bytes disponibles actualmente para los procesos, el número de páginas relacionadas con los fallos de página y la tasa de fallos de página atribuibles a SQL Server.

Objeto: Contador Descripción Pautas

Excelencia Académica

142

Memoria: Bytes disponibles

Supervisa el número de bytes disponibles para que se ejecuten los procesos

Este contador siempre debe mostrar una cifra mayor de 5000 KB. Un valor inferior indicaría que la memoria física global es insuficiente y debe incrementarse.

Memoria: Páginas/seg.

Supervisa el número de páginas que el sistema operativo Windows 2000 leerá o escribirá en el disco duro para resolver los fallos de página

Este contador nunca debe ser mayor de cero de forma regular. En caso contrario, el sistema operativo Windows 2000 está utilizando el archivo de paginación para rellenar solicitudes de memoria.

Proceso: Fallos de página/seg./Instancia de SQL Server

Supervisa los fallos de página causados por Windows 2000 al recortar los tamaños de los conjuntos de trabajo de dichos procesos

Un número alto en este contador indica un exceso de paginación e hiperpaginación en disco. Compruebe si SQL Server u otro proceso provoca el exceso de paginación.

b) Supervisión 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 número de cálculos, 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.

Excelencia Académica

143

Una tasa de procesador que se mantiene alta de forma continuada puede indicar que necesita realizar una actualización de CPU o agregar más procesadores. Asimismo, una tasa de utilización de CPU que se mantiene alta de forma continuada podría indicar un ajuste o un diseño deficientes de la aplicación

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 simultáneas de forma eficaz.

Los procesos son instancias de una aplicación, 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 máxima utilización de los procesadores, el sistema operativo cambia entre los subprocesos cuando un subproceso queda inactivo mientras espera a que una operación se complete, como una lectura o escritura en el disco duro. El cambio entre subprocesos se denomina cambio de contexto. Además, 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 aplicación 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 más rápidos, 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 programación en modo de intraproceso.

Al utilizar la programación 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 habilitación de la programación en el modo de intraproceso suele ser mayor que cuando se permite que Windows 2000 realice el cambio de contexto. Basándose 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.

Excelencia Académica

144

Objeto: Contador Descripción Pautas

Procesador: % de tiempo de

procesador

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.

Sistema: Cambios de contexto/Seg.

Supervisa el número 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 programación en modo de

intraproceso de SQL Server.

Sistema: Longitud de cola de procesador

Supervisa el número 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 número de procesadores de un sistema

multiprocesador.

Procesador: %Tiempo

privilegiado

Supervisa el porcentaje de tiempo que el procesador

emplea del tiempo privilegiado en la ejecución de los comandos del núcleo

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 núcleo 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

están ejecutando e impidiendo operaciones de

SQL Server.

c) Supervisión de la entrada y salida en el disco duro

Excelencia Académica

145

SQL Server usa llamadas de entrada y salida (E/S) de Windows para leer y escribir en el disco, y administra cuándo y cómo se realiza la entrada y salida en el disco pero delega en Windows la realización 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.

Supervisión de la E/S de disco físico

La supervisión de la entrada y salida en el disco duro le ayudará a determinar si la escritura y lectura de páginas supera la capacidad del subsistema de disco duro. Un subsistema de disco duro ocupado también puede indicar un exceso de entrada y salida de archivos de paginación 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 Descripción Pautas

Disco físico: %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 físico: 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 número de discos del cilindro.

Disco físico: 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 físico: 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

Excelencia Académica

146

duro.

Si estos contadores de disco duro indican que está sobrecargando la capacidad del subsistema de disco duro, considere la posibilidad de:

Ajustar la aplicación o la base de datos para reducir las operaciones de E/S en el disco duro (como cobertura y mejora de índices, o normalización).

Aumentar la capacidad de E/S de disco duro del hardware mediante el uso de un disco duro más rápido.

Transferir algunos archivos a un disco duro o servidor adicional.

Agregar una matriz de discos duros.

Aumentar la cantidad de memoria, lo que podría contribuir a aliviar la hiperpaginación en el disco.

d) Supervisión de bloqueos

SQL Server bloquea los recursos mediante distintos modos de bloqueo que determinan el tipo de acceso que las transacciones actuales tendrán a los recursos. El bloqueo de filas aumenta la simultaneidad, pero también la sobrecarga, ya que será necesario mantener más bloqueos en caso de que se bloquee un gran número de filas. El bloqueo de tablas es caro en lo que respecta a la simultaneidad pero produce una sobrecarga menor, ya que reduce el número de bloqueos que mantener.

Interbloqueos

Los interbloqueos pueden producirse cuando dos o más procesos esperan simultáneamente 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á automáticamente el subproceso (la víctima del interbloqueo) que puede romper el interbloqueo sin que se produzcan tiempos de espera. Puede utilizar la opción prioridad para definir el intervalo de tiempo durante el que SQL Server esperará entre la detección de un bloqueo y la declaración 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 período 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 automáticamente, lo que deja el recurso bloqueado. Debe supervisar la existencia de bloqueos de cierre para poder eliminarlos manualmente. Mediante la creación de una configuración de tiempo de espera de bloqueo en la aplicación podrá impedir que se produzcan bloqueos de cierre. Esto permitirá a la aplicación identificar la existencia de bloqueos de cierre y deshacer la transacción, en lugar de esperar indefinidamente o volver a emitir la instrucción bloqueada.

Excelencia Académica

147

Administración 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 información acerca de los bloqueos de SQL Server en tipos de recursos individuales. Además, 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 información de instantáneas acerca de los procesos y usuarios actuales de SQL Server, incluida la instrucción que esté ejecutándose e independientemente de que la instrucción esté bloqueada.

El procedimiento almacenado de sistema sp_lock proporciona información de instantáneas 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 información de bloqueo no resulte práctico si se aplican y liberan varios bloqueos más rápido 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) Supervisión de consultas de bajo rendimiento

Para solucionar un problema de rendimiento quizás le tiente la idea de optimizar únicamente el rendimiento del servidor en el sistema, por ejemplo, el tamaño de la memoria, ubicación, número 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 aplicación, las consultas y las actualizaciones que la aplicación emite a la base de datos, y la forma en que las consultas y las actualizaciones interactúan con el esquema de base de datos.

Identificación del rendimiento de las consultas

El Analizador de SQL puede supervisar las consultas en función 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 duración 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.

Excelencia Académica

148

Ausencia de estadísticas útiles.

Estadísticas obsoletas o ausencia de índices útiles.

Ausencia de creación de bandas de datos útiles.

Bloqueos de cierre o interbloqueos causados por transacciones de larga duración emitidos por otros usuarios.

Utilización de aplicaciones de proceso de transacciones y de ayuda a la toma de decisiones en el mismo equipo.

Excelencia Académica

149

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 capítulo se abarcaron temas acerca de la importancia de la supervisión y los factores que afectan al rendimiento. También como desarrollar un plan para optimizar el rendimiento de SQL Server.

La supervisión de un sistema puede ser una tarea compleja. Por ello, puede utilizar

diferentes estrategias para plantear la optimización 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 Edición, McGraw Hill. 2006.

[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5ª edición, 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.

Bibliografía electrónica:

Administración 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 Administración de Base de Datos http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

Excelencia Académica

150

En la siguiente unidad temática detallaremos aspectos relacionados a la automatización de tareas administrativas

ADMINISTRACION DE BASES DE DATOS

UNIDAD ACADÉMICA 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? _______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Excelencia Académica

151

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 ejecución en todo momento y disponer de los permisos necesarios.

Al finalizar el estudio de la presente unidad temática el estudiante:

Realiza tareas de configuración comunes de Microsoft® SQL Server™ 2005.

Describe tareas administrativas de base de datos rutinarias.

Automatiza tareas de mantenimiento rutinarias mediante la creación y programación de trabajos.

1. AUTOMATIZAR LAS TAREAS ADMINISTRATIVAS (AGENTE SQL SERVER)

Microsoft SQL Server le permite automatizar las tareas administrativas. Para automatizar la administración, se definen las tareas administrativas previsibles y, después, se especifican las condiciones en las que se produce cada tarea. El uso de la administración 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 información de los trabajos. Los trabajos contienen uno o más 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 según una programación, como respuesta a un evento específico o a petición. Por ejemplo, si desea realizar una copia de seguridad de todos los servidores de la organización todos los días entre semana después del horario de trabajo, puede automatizar esta tarea. Por ejemplo, programe la copia de seguridad para que se ejecute después 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 notificárselo.

De forma predeterminada, el servicio Agente SQL Server está deshabilitado al instalar SQL Server 2005, a menos que el usuario elija de forma explícita iniciarlo automáticamente.

Para automatizar la administración, 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 programación. Una tarea es una buena candidata a la automatización si consta de

Excelencia Académica

152

una secuencia de pasos predecible y se produce en un momento específico 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 administración de SQL Server (SMO). Ejecute los trabajos del Agente SQL Server que haya definido.

Si ejecuta varias instancias de SQL Server, utilice la administración multiservidor para automatizar las tareas comunes a todas las instancias.

2. COMPONENTES DE ADMINISTRACIÓN AUTOMÁTICA

El Agente SQL Server utiliza los siguientes componentes para definir las tareas que se realizarán, cuándo se llevarán a cabo y cómo se informará de si se han realizado correctamente o no. El Agente SQL Server también proporciona seguridad para la administración automática.

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 más 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 más programaciones.

Como respuesta a una o varias alertas.

Ejecutando el procedimiento almacenado sp_start_job.

Cada acción de un trabajo es un paso de trabajo. Por ejemplo, un paso de trabajo puede consistir en la ejecución de una instrucción Transact-SQL, la ejecución de un paquete SSIS o la emisión de un comando en un servidor de Analysis Services. Los pasos de trabajo se administran como parte de un trabajo.

Programaciones

Una programación especifica cuándo se ejecuta un trabajo. Se puede ejecutar más de un trabajo en la misma programación y se puede aplicar más de una programación al mismo trabajo. Una programación 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 específicas.

Periódicamente.

Alertas

Una alerta es una respuesta automática a un evento específico. Por ejemplo, un evento puede ser el inicio de un trabajo o que los recursos del sistema alcancen un umbral específico. Debe definir las condiciones en las que se genera una alerta.

Una alerta puede responder a una de las condiciones siguientes:

Excelencia Académica

153

Eventos de SQL Server

Condiciones de rendimiento de SQL Server

Eventos de Instrumental de administración 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 información de contacto para las personas responsables del mantenimiento de una o varias instancias de SQL Server. En algunas compañías, las responsabilidades de operador están asignadas a una sola persona. En compañías con varios servidores, muchas personas comparten las responsabilidades de operador. Un operador no contiene información 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 electrónico

Localizador (por correo electrónico)

NET SEND

Para enviar a los operadores notificaciones por correo electrónico o localizador, deberá configurar el Agente SQL Server para utilizar Correo electrónico 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 ADMINISTRACIÓN 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 función fija de servidor sysadmin. Además 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 mínimos 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 función 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.

Excelencia Académica

154

Servidores proxy:

El Agente SQL Server utiliza servidores proxy para administrar contextos de seguridad. Se puede utilizar un servidor proxy en más de un paso de trabajo. Los miembros de la función 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 sesión. El proxy sólo 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 sesión asociado al proxy o debe ser miembro de una función con acceso ilimitado a los servidores proxy. Los miembros de la función fija de servidor sysadmin tienen acceso ilimitado a los servidores proxy. Los miembros de SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole sólo pueden utilizar servidores proxy para los que dispongan de acceso específico. 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 específicos para poder crear pasos de trabajo que utilicen estos proxy.

4. HERRAMIENTAS PARA AUTOMATIZAR LA ADMINISTRACIÓN

SQL Server incluye las siguientes herramientas para ayudarle a automatizar la administración.

a) SQL Server Management Studio

Puede utilizar SQL Server Management Studio para automatizar la administración mediante la creación 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 ejecución para poder ejecutar automáticamente los trabajos administrativos locales o multiservidor.

a) Configurar el Agente SQL Server

Puede especificar algunas opciones de configuración para el Agente SQL Server durante la instalación de SQL Server. El conjunto completo de opciones de configuración del Agente SQL Server sólo está disponible en SQL Server Management Studio, SMO (objetos de administración de SQL Server) o los procedimientos almacenados del Agente SQL Server.

El Agente SQL Server almacena la mayor parte de la información de configuración 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 información de autenticación para los servidores proxy.

Establecer los permisos necesarios:

Excelencia Académica

155

Para realizar sus funciones, el Agente SQL Server debe configurarse de modo que utilice las credenciales de una cuenta que sea miembro de la función 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 comprobación transversal)

Log on as a batch job (Iniciar sesión como proceso por lotes)

Log on as a service (Iniciar sesión como servicio)

Replace a process level token (Reemplazar un símbolo de nivel de proceso)

Para comprobar que todos estos permisos necesarios de Windows están establecidos:

1º Haga clic en Inicio, Panel de control, Herramientas administrativas y Directiva de seguridad local.

2º Expanda la carpeta Directivas locales y, a continuación, haga clic en la carpeta Asignación de derechos de usuario.

3º Repita los pasos siguientes para cada permiso:

Haga clic con el botón secundario en un permiso (como Iniciar sesión como servicio) y, a continuación, haga clic en Propiedades.

En el cuadro de diálogo de propiedades (por ejemplo Propiedades de Iniciar sesión 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 continuación, haga clic en Aceptar.

Normalmente, la cuenta seleccionada para el Agente SQL Server es una cuenta de dominio creada para ese propósito cuyos permisos de acceso están 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 ejecutándose como un servicio. Puede configurar el servicio del Agente SQL Server para que se inicie automáticamente 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.

Cómo iniciar el Agente SQL Server (Administrador de configuración de SQL Server)

Excelencia Académica

156

El Agente SQL Server se puede detener e iniciar desde el Administrador de configuración 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 configuración y haga clic en Administrador de configuración de SQL Server.

2º En el Administrador de configuración de SQL Server, expanda Servicios y, a continuación, haga clic en Agente SQL.

3º En el panel de resultados, haga clic con el botón secundario en una instancia y, a continuación, 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.

Cómo detener el Agente SQL Server (Administrador de configuración de SQL Server)

El Agente SQL Server se puede detener e iniciar desde el Administrador de configuración 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 configuración y, a continuación, haga clic en Administrador de configuración de SQL Server.

2º En Administrador de configuración de SQL Server, expanda Servicios y, a continuación, haga clic en Agente SQL Server.

3º En el panel de resultados, haga clic con el botón secundario en cualquier instancia del Agente SQL Server y, a continuación, 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 también 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 configuración de SQL Server, donde se pueden seleccionar las opciones siguientes:

Excelencia Académica

157

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 función fija de servidor sysadmin en SQL Server.

La opción Cuenta del sistema local se mantiene sólo 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 sección 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 administración 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 periódicamente, lo que permite que la administración sea más eficaz.

Un trabajo es una serie específica de operaciones que el Agente SQL Server realiza secuencialmente. Un trabajo puede realizar una amplia variedad de actividades, incluidos scripts Transact-SQL, aplicaciones de línea de comandos, scripts de Microsoft ActiveX, paquetes de Integration Services, comandos y consultas de Analysis Services o tareas de replicación. Los trabajos pueden ejecutar tareas repetitivas o que se pueden programar y pueden notificar automáticamente a los usuarios el estado del trabajo mediante alertas, simplificando mucho la administración de SQL Server.

Puede ejecutar los trabajos manualmente o configurarlos para que se ejecuten de acuerdo con una programación o en respuesta a alertas.

a) Crear trabajos

Un trabajo es una serie específica 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 símbolo del sistema, secuencias de comandos de Microsoft ActiveX, paquetes de Integration Services, comandos y consultas de Analysis Services o tareas de réplica. Los trabajos pueden ejecutar tareas repetitivas o que se pueden programar, y pueden notificar automáticamente a los usuarios el estado del trabajo mediante alertas, lo cual simplifica en gran medida la administración de SQL Server.

Excelencia Académica

158

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 función fija de servidor sysadmin. Sólo pueden editar el trabajo el propietario de éste o los miembros de la función 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 más 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 mínimo. 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 réplica.

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. Sólo los miembros de la función de servidor fija sysadmin pueden crear trabajos en los que no se especifique un proxy de forma explícita.

Puesto que los pasos de trabajo se ejecutan en el contexto de un usuario específico de Microsoft Windows, dicho usuario debe disponer de los permisos y la configuración 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 (Convención de nomenclatura universal), los pasos de trabajo se pueden ejecutar con la cuenta de usuario de Microsoft Windows durante la comprobación de las tareas. Sin embargo, el usuario de Windows para el paso de trabajo debe tener también 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, asegúrese 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 programación de trabajos administrativos consiste en definir las condiciones que provocan el inicio de la ejecución de éstos. Se puede programar cualquier tipo de trabajo. Varios trabajos pueden utilizar la misma programación. Los usuarios pueden adjuntar y separar programaciones de los trabajos.

Por ejemplo, puede programar un trabajo para que se ejecute en los casos siguientes:

Cuando se inicia el Agente SQL Server.

Excelencia Académica

159

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 específicas.

Periódicamente.

Como alternativa a las programaciones de trabajo, también puede crear una alerta que responda a un evento ejecutando un trabajo.

Para impedir que se ejecute un trabajo programado, debe deshabilitar la programación, deshabilitar el trabajo, quitar la programación del trabajo o detener el servicio del Agente SQL Server. Aunque no esté habilitada la programación, se puede ejecutar el trabajo en respuesta a una alerta o cuando un usuario lo ejecute manualmente. Si no está habilitada una programación de trabajo, no estará habilitada para ningún trabajo que la utilice.

Las programaciones deshabilitadas se deben volver a habilitar de manera explícita. La modificación de una programación no la vuelve a habilitar automáticamente.

Figura 7.1: Creando programaciones

Programar fechas de inicio

Al adjuntar una programación a un trabajo, se debe revisar la fecha de inicio que usa la programación para ejecutar por primera vez el trabajo. La fecha de inicio depende del día y la hora en que se adjunte la programación al trabajo. Por ejemplo, si se crea una programación 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 programación 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 programación será lunes 10 de marzo de 2008.

Excelencia Académica

160

Puede cambiar la fecha de inicio de la programación después de adjuntar la programación a un trabajo

Programaciones de inactividad de CPU

Para maximizar los recursos de CPU, puede definir una condición de CPU inactiva para el Agente SQL Server. El Agente SQL Server utiliza la configuración de la condición de CPU inactiva para determinar el momento más conveniente para ejecutar trabajos. Por ejemplo, puede programar la ejecución de un trabajo de generación de índices durante el tiempo de inactividad de CPU y en periodos de baja producción.

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 tráfico del servidor y obtener estadísticas. La información que obtenga puede utilizarla para establecer el porcentaje y la duración del tiempo de inactividad de CPU.

Defina la condición de CPU inactiva como un porcentaje por debajo del cual el uso de CPU debe permanecer durante un intervalo de tiempo especificado. A continuación, establezca la duración. 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 programación de tiempo de inactividad de CPU.

3. Inicie el SQL Server Agent

4. Programe una tarea para generar un backup completo todos los días 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 Edición, McGraw Hill. 2006.

[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5ª edición, 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.

Excelencia Académica

161

Bibliografía electrónica:

Administración 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 Administración de Base de Datos http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

En la siguiente unidad temática tocaremos temas avanzados de administración de base de datos.

Excelencia Académica

162

ADMINISTRACION DE BASES DE DATOS UNIDAD ACADÉMICA Nº 7

NOMBRE:__________________________________________________________________

APELLIDOS:________________________________________FECHA; ____/_____/______

CIUDAD:_______________________________SEMESTRE:_________________________ 1. ¿Cómo se inicia el SQL Server Agent?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. ¿Cómo se automatiza una tarea? ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. ¿Cómo se ejecuta un paso?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4. ¿Qué tipo de usuarios pueden programar tareas administrativas?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5. ¿Qué herramientas nos ayudan a automatizar la administración?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Excelencia Académica

163

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 más rápidas y controladas por datos, la necesidad de aumentar la productividad y flexibilidad del personal de desarrollo y la presión para reducir los presupuestos generales relacionados con la tecnología de la información, 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 réplica, que es un conjunto de tecnologías destinadas a la copia y distribución 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 réplica permite distribuir datos entre diferentes ubicaciones y entre usuarios remotos o móviles mediante redes locales y de área extensa, conexiones de acceso telefónico, conexiones inalámbricas e Internet, los servicios de de notificación 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 búsquedas de texto que permiten realizar búsquedas complejas de palabras o frases y de manera rápida, o service broker que proporciona compatibilidad nativa del Motor de base de datos de SQL Server para facilitar a los programadores aplicaciones de mensajería y de cola.

Al finalizar el estudio de la presente unidad temática el estudiante:

Conoce temas avanzados de administración de base de datos

Comprende los beneficios de utilizar replicación de base de datos, servicios de notificación, service bróker y búsquedas de texto

1. REPLICACION

La réplica es un conjunto de tecnologías destinadas a la copia y distribución 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 réplica permite distribuir datos entre diferentes ubicaciones y entre usuarios remotos o móviles mediante redes locales y de área extensa, conexiones de acceso telefónico, conexiones inalámbricas e Internet.

a) Modelo de publicación de réplica

La réplica utiliza una metáfora del sector editorial para representar los componentes de una topología de réplica, que incluyen el publicador, el distribuidor, los suscriptores, las publicaciones, los artículos y las suscripciones. Resulta útil pensar en la réplica de Microsoft SQL Server como si fuera una revista:

El publicador (editor) de una revista produce una o más publicaciones.

Una publicación contiene artículos.

Excelencia Académica

164

El publicador distribuye la revista directamente o a través de un distribuidor.

Los suscriptores reciben las publicaciones a las que se han suscrito.

Aunque la metáfora de la revista es útil para comprender la réplica, es importante señalar que la réplica de SQL Server incluye funciones que no están representadas en esta metáfora, en particular, la posibilidad de que un suscriptor realice actualizaciones y de que un publicador envíe cambios incrementales a los artículos de una publicación.

Una topología de réplica define la relación entre los servidores y las copias de los datos, y aclara la lógica que determina cómo fluyen los datos entre los servidores. Hay varios procesos de réplica (denominados agentes) que son responsables de copiar y mover los datos entre el publicador y los suscriptores. En la siguiente ilustración se muestra información general acerca de los componentes y procesos que participan en la réplica.

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 estén disponibles para otras ubicaciones a través de la réplica. El publicador puede tener una o más publicaciones, cada una de las cuales representa un conjunto de objetos y datos relacionados lógicamente para replicar.

Distribuidor

El distribuidor es una instancia de base de datos que funciona como almacén para datos específicos de réplica asociados con uno o más publicadores. Cada publicador está asociado con una sola base de datos (conocida como la base de datos de distribución) en el distribuidor. La base de datos de distribución almacena los datos de estado de la réplica, metadatos acerca de la publicación 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.

Excelencia Académica

165

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 función del tipo de réplica elegida, el suscriptor también puede devolver los datos modificados al publicador o volver a publicar los datos en otros suscriptores.

Artículo

Un artículo identifica un objeto de base de datos incluido en una publicación. Una publicación puede contener diferentes tipos de artículos, como tablas, vistas, procedimientos almacenados y otros objetos. Cuando las tablas se publican como artículos, se pueden usar filtros para restringir las columnas y filas de datos que se envían a los suscriptores.

Publicación

Una publicación es un conjunto de uno o más artículos de una base de datos. La agrupación de varios artículos en una publicación permite especificar más fácilmente un conjunto de objetos y datos de bases de datos relacionados lógicamente, que se replican como una unidad.

Suscripción

Una suscripción es una solicitud de una copia de una publicación que se entrega a un suscriptor. La suscripción define qué publicación se recibirá, dónde y cuándo. Hay dos tipos de suscripciones: de inserción y de extracción

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 mensajería y de cola. De este modo, resulta más fácil para los programadores crear aplicaciones complejas que usan los componentes de Database Engine (Motor de base de datos) para la comunicación 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 comunicación y mensajería. Así se reduce el trabajo de programación y realización de pruebas, ya que Service Broker controla las vías de comunicación del contexto de una conversación. También aumenta el rendimiento. Por ejemplo, las bases de datos front-end compatibles con sitios web pueden grabar información 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 técnicamente.

a) ¿En qué consiste Service Broker?

Service Broker ayuda a los programadores a crear aplicaciones asincrónicas de acoplamiento flexible en las que los componentes independientes funcionan conjuntamente para llevar a cabo una tarea. Estos componentes de aplicación

Excelencia Académica

166

intercambian mensajes que contienen la información necesaria para finalizar la tarea. En este tema se describen los aspectos fundamentales de Service Broker:

Conversaciones

Coordinación y ordenación de mensajes

Programación asincrónica transaccional

Compatibilidad con aplicaciones de acoplamiento flexible

Componentes de Service Broker

Conversaciones

Service Broker está diseñado según las funciones básicas de envío y recepción de mensajes. Cada mensaje forma parte de una conversation, un canal de comunicación confiable y persistente. Cada mensaje y conversación tienen un tipo específico 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 aplicación envía mensajes a un servicio, que es un nombre para un conjunto de tareas relacionadas. Una aplicación recibe mensajes de una cola, que es una vista de una tabla interna.

Los mensajes para la misma tarea forman parte de la misma conversación. En cada conversación, Service Broker garantiza que una aplicación 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 conversación.

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 conversación con un amigo que está lejos, puede comunicarse mediante cartas enviadas a través del servicio postal, que ordena y entrega las cartas. Ambos retiran las cartas de sus buzones, las leen, escriben respuestas y envían nuevas cartas, hasta que la conversación finaliza. La entrega de cartas sucede de forma "asincrónica", mientras los dos llevan a cabo otras tareas.

Figura 8.2: Analogía entre un servicio postal y service broker

En la analogía del servicio postal, las cartas son los mensajes. El servicio de Service Broker es la dirección 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, actúan sobre los mismos y envían respuestas.

Excelencia Académica

167

Un programa que utiliza Service Broker mantiene conversaciones con otros programas de forma similar a la entrega postal.

No hay que saber específicamente cuándo lee su amigo el correo o escribe la respuesta. De igual forma, una aplicación que utiliza Service Broker no tiene que conocer cómo otro servicio procesa el mensaje, cómo se entrega o cuándo la otra aplicación va a procesar el mensaje.

Coordinación y ordenación de mensajes

Service Broker controla las colas, una técnica de programación de base de datos común, de forma diferente a los productos tradicionales en dos aspectos clave:

Las colas de Service Broker están integradas en la base de datos.

Las colas coordinan y ordenan los mensajes relacionados.

Las colas integradas suponen que el mantenimiento y la administración ordinarios de la base de datos también 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 sólidas garantías para el procesamiento y la entrega de los mensajes. Service Broker garantiza que un programa reciba cada mensaje de una conversación 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 aplicación determine el orden y la agrupación de los mensajes. Service Broker garantiza que dos lectores de cola no puedan procesar mensajes simultáneamente desde la misma conversación o desde el mismo grupo de conversaciones relacionadas.

El programa iniciador inicia una conversación para cada tarea y, a continuación, envía un mensaje al servicio de destino. El mensaje contiene los datos necesarios para llevar a cabo un paso específico de una tarea. El servicio de destino recibe el mensaje. El programa del servicio de destino procesa el mensaje y, a continuación, responde al servicio iniciador. La conversación continúa y acaba finalizando según las reglas determinadas por el programador.

Service Broker controla las tareas más difíciles implicadas en la creación de aplicaciones de mensajería, como la coordinación 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.

Programación asincrónica transaccional

En la infraestructura de Service Broker, la entrega de mensajes entre aplicaciones es transaccional y asincrónica. Como la mensajería de Service Broker es transaccional, si una transacción se revierte, todas las operaciones de Service Broker de la transacción también lo harán, incluidas las operaciones de envío y recepción. En una entrega asincrónica, Database Engine (Motor de base de datos) controla la entrega mientras la aplicación continúa ejecutándose. Para mejorar la escalabilidad, Service Broker proporciona mecanismos para iniciar automáticamente programas que procesan una cola cuando existen tareas pendientes.

Excelencia Académica

168

La programación asincrónica 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 según permitan los recursos. Las colas permiten que la base de datos continúe 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 aplicación realice un trabajo en una transacción distinta de la transacción que solicita el trabajo. Service Broker amplía 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 mensajería transaccional confiable entre instancias.

Compatibilidad con aplicaciones de acoplamiento flexible

Service Broker es compatible con las aplicaciones de acoplamiento flexible. Estas aplicaciones están formadas por varios programas que envían 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 interacción 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 implementación. Una aplicación no necesita conocer la ubicación física ni la implementación del otro participante de la conversación.

b) Componentes de Service Broker

Service Broker utiliza tres tipos de componentes:

Componentes de conversación. Los grupos de conversación, las conversaciones y los mensajes conforman la estructura de tiempo de ejecución de una aplicación de Service Broker. Las aplicaciones intercambian mensajes como parte de una conversación. Cada conversación forma parte de un grupo de conversación; un grupo de conversación puede contener varias conversaciones. Las conversaciones de Service Broker son diálogos, es decir, conversaciones entre dos participantes.

Componentes de definición de servicio. Éstos son los componentes de tiempo de diseño que especifican la estructura básica de las conversaciones que utiliza la aplicación. Definen los tipos de mensajes, el flujo de conversación y el almacenamiento de base de datos de la aplicación.

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 código de la aplicación.

Los componentes de definición 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 conversación, las conversaciones y los mensajes forman parte de los datos que contiene la base de datos

c) Usos habituales de Service Broker

Excelencia Académica

169

Service Broker puede resultar útil en cualquier aplicación que necesita realizar el procesamiento de forma asincrónica o que necesita distribuir el procesamiento entre varios equipos. Entre los usos habituales de Service Broker se incluyen:

Desencadenadores asincrónicos

Procesamiento confiable de consultas

Recopilación confiable de datos

Procesamiento distribuido en el servidor para aplicaciones cliente

Consolidación de datos para aplicaciones cliente

Procesamiento por lotes a gran escala

Desencadenadores asincrónicos

Muchas aplicaciones que utilizan desencadenadores, como los sistemas de procesamiento de transacciones en línea (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 información sobre el trabajo que se va a hacer y envía este mensaje a un servicio que realiza el trabajo. A continuación, el desencadenador vuelve.

Cuando la transacción original se confirma, Service Broker entrega el mensaje al servicio de destino. El programa que implementa el servicio realiza el trabajo en una transacción independiente. Al realizar este trabajo en una transacción independiente, la transacción original puede confirmarse inmediatamente. La aplicación evita que el sistema se ralentice por mantener la transacción 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 eléctrico o de problemas similares. Una aplicación que necesita el procesamiento confiable de consultas puede enviar consultas mediante el envío de mensajes a un servicio de Service Broker. La aplicación que implementa el servicio lee el mensaje, ejecuta la consulta y devuelve los resultados. Estas tres operaciones tienen lugar en la misma transacción. Si se produce un error antes de que la transacción se confirme, se revierte toda la transacción y el mensaje vuelve a la cola. Cuando el equipo se recupera, la aplicación se reinicia y vuelve a procesar el mensaje.

Recopilación confiable de datos

Las aplicaciones que recopilan datos de un conjunto grande de orígenes pueden sacar partido de Service Broker para recopilar datos de forma confiable. Por ejemplo, una aplicación comercial con varios sitios puede utilizar Service Broker para enviar información sobre transacciones a un almacén central de datos. Dado que Service Broker proporciona una entrega de mensajes asincrónica confiable, cada sitio puede continuar procesando transacciones incluso si el sitio pierde temporalmente la conexión con el almacén central de datos. La seguridad de Service Broker ayuda a garantizar que los mensajes no se envían a un destino incorrecto y a proteger los datos en tránsito.

Procesamiento distribuido en el servidor para aplicaciones cliente

Excelencia Académica

170

Las aplicaciones grandes que tienen acceso a varias bases de datos de SQL Server pueden beneficiarse de Service Broker. Por ejemplo, una aplicación Web para hacer pedidos de libros puede utilizar Service Broker en el servidor para intercambiar información entre las distintas bases de datos que contienen datos sobre pedidos, clientes, inventario y crédito. Dado que Service Broker proporciona una cola de mensajes y la entrega confiable de mensajes, la aplicación 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.

Consolidación de datos para aplicaciones cliente

Las aplicaciones que deben utilizar o mostrar información simultáneamente desde varias bases de datos pueden aprovecharse de Service Broker. Por ejemplo, una aplicación 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 aplicación. La aplicación de servicio al cliente envía las solicitudes a distintos servicios en paralelo; a medida que los servicios responden a las solicitudes, la aplicación 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 volúmenes de trabajo de forma rápida y eficaz. La aplicación almacena datos que se procesan en una cola de Service Broker. Un programa lee periódicamente la cola y procesa los datos. Una aplicación puede aprovecharse de la mensajería 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 envían 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 envían 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 notificación. Una suscripción es un interés 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".

Excelencia Académica

171

Una notificación puede generarse y enviarse al suscriptor tan pronto como se produzca un evento que la desencadene. O bien, puede generarse y enviarse según una programación predeterminada especificada por el suscriptor.

Las notificaciones pueden enviarse a una gran variedad de dispositivos. Por ejemplo, se puede enviar una notificación al teléfono móvil de un suscriptor, a su asistente digital personal (PDA), a Microsoft Windows Messenger o a su cuenta de correo electrónico. Dado que el suscriptor suele llevar consigo estos dispositivos, las notificaciones son el medio ideal para enviar información importante.

Las aplicaciones de notificación son valiosas por numerosas razones, entre las que se incluyen:

Permiten enviar información importante a clientes, socios y empleados. Las notificaciones pueden contener vínculos a un sitio Web para obtener más información o para confirmar la recepción de la información.

Mejoran y fortalecen las relaciones con los clientes, ya que permiten ofrecerles servicios más 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 información que necesitan en el momento y lugar oportunos.

Permiten la comunicación con suscriptores móviles a través de una gran variedad de dispositivos.

a) ¿En qué consiste Notification Services?

Una aplicación de Notification Services (o "aplicación de notificaciones") genera y envía mensajes a usuarios y otras aplicaciones que se hayan suscrito a la aplicación. Para comprender las aplicaciones de notificaciones, es importante definir algunos términos clave:

Un suscriptor es una persona o aplicación que se suscribe y recibe notificaciones.

Una suscripción es una solicitud de información específica, por ejemplo, el precio de un valor bursátil o el resultado de un partido, que se entrega a un dispositivo concreto, como una dirección de correo electrónico o un teléfono celular.

Un evento es una información que interesa a los suscriptores y que reciben de la aplicación de notificaciones. El precio de un valor bursátil en un momento determinado es un evento, como lo es también un resultado deportivo o un mensaje de entrega de producto. Prácticamente cualquier acontecimiento del mundo real puede expresarse como un evento de Notification Services.

Una notificación es un mensaje que contiene información relacionada con una suscripción. Puede contener un mensaje acerca de un nuevo valor a la alza de un valor bursátil determinado o el resultado final de un partido.

En la ilustración siguiente se muestra el funcionamiento básico de una aplicación de Notification Services.

Excelencia Académica

172

Figura 8.3: Funcionamiento básico de Notificaction Services

La aplicación produce notificaciones del siguiente modo:

Los suscriptores crean suscripciones relacionadas con la aplicación.

La aplicación recopila eventos.

Notification Services hace corresponder las suscripciones con los eventos.

Cuando un evento y una suscripción coinciden, Notification Services genera una notificación.

Notification Services aplica formato a la notificación y la envía al dispositivo especificado en la suscripción.

Un buen ejemplo de una aplicación de notificaciones es una aplicación de valores bursátiles. Un suscriptor podría crear una suscripción para recibir notificaciones en su teléfono celular sobre los valores de ADCP si el precio supera los 70 dólares.

La aplicación 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 dólares, Notification Services crea una notificación, le aplica formato y la envía a un servicio de entrega que reenvía el mensaje al teléfono celular del suscriptor.

Notification Services incluye características para evitar el envío de notificaciones por duplicado. Por ejemplo, puede registrar que un suscriptor determinado ya ha recibido una notificación sobre la cotización de ADCP. Si el siguiente valor bursátil de ADCP también es superior a los 70 dólares, la lógica de notificación cancelará el envío de más notificaciones al suscriptor.

4. BÚSQUEDA DE TEXTO

Excelencia Académica

173

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 búsqueda de texto permite la indización rápida 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 sólo funciona en patrones de caracteres, las consultas de texto realizan búsquedas lingüísticas en estos datos y operan en palabras y frases basándose en las reglas de un idioma en concreto.

En Microsoft SQL Server 2005, la búsqueda de texto ofrece funcionalidad de búsqueda empresarial. Se han realizado importantes mejoras en el rendimiento, la facilidad de uso y la funcionalidad, que proporcionan funciones de búsqueda excepcionales para aplicaciones de cualquier tamaño.

La mejor forma de comprobar la ventaja de rendimiento que aporta el uso de la búsqueda 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 función del número de filas que se devuelvan.

Puede crear índices de texto en columnas que contengan datos char, varchar y nvarchar. También 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 número 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 búsqueda eficaz de todos los elementos que contengan palabras indizadas y operaciones de búsqueda avanzada, como búsquedas de frases y búsquedas de proximidad.

Cuando se procesa una consulta de texto, el motor de búsqueda devuelve a SQL Server los valores de clave de las filas que coinciden con los criterios de búsqueda. 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 básicos de la búsqueda de texto

Terminología de la búsqueda de texto

A continuación se ofrece una lista de términos y componentes que debe conocer el usuario que utilice la búsqueda de texto.

Índice de texto

Almacena información acerca de palabras relevantes y su ubicación en una determinada columna. Esta información se utiliza para realizar rápidamente

Excelencia Académica

174

consultas de texto que busquen filas con palabras o combinaciones de palabras concretas

Catálogo de texto

Un catálogo de texto contiene cero o más índices de texto. Los catálogos de texto deben encontrarse en una unidad de disco local asociada a la instancia de SQL Server. Cada catálogo puede satisfacer las necesidades de indización de una o más tablas de una base de datos. Los catálogos de texto no pueden almacenarse en unidades extraíbles, disquetes ni unidades de red, excepto en el caso de que se adjunte una base de datos de sólo lectura que contenga un catálogo de texto.

Separador de palabras

En un idioma concreto, un separador de palabras acorta el texto en función de las reglas léxicas 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 inflexión de una determinada palabra en función de las reglas de dicho idioma. Los lematizadores son específicos 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 creación y mantenimiento de un índice de texto.

Palabras irrelevantes

Palabras frecuentes que no ayudan en la búsqueda. Por ejemplo, en la configuración regional en inglés, 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 aplicación de las siguientes tecnologías:

replicación, service bróker, búsquedas de texto y servicios de notificación

2. Investigue acerca de los ediciones de SQL Server donde pueden implementarse los siguientes servicios: replicación, service bróker, búsquedas de texto y servicios de notificación

Excelencia Académica

175

En ésta unidad se ha tratado acerca de temas actuales relacionados con la Administración de base de datos tales replicación (conjunto de tecnologías destinadas a la copia y distribución de datos y objetos de base de datos desde una base de datos a otra, donde ambas bases de datos están sincronizadas y mantienen su coherencia), servicios de notificación (para generar y enviar a tiempo mensajes personalizados a miles o millones de suscriptores, y entregar los mensajes a una amplia variedad de dispositivos), búsquedas de texto (búsquedas 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 mensajería 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 Edición, McGraw Hill. 2006.

[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5ª edición, 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.

Bibliografía electrónica:

Administración 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 Administración de Base de Datos http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

Excelencia Académica

176

ADMINISTRACION DE BASES DE DATOS UNIDAD ACADÉMICA Nº 8

NOMBRE:__________________________________________________________________

APELLIDOS:________________________________________FECHA; ____/_____/______

CIUDAD:_______________________________SEMESTRE:_________________________ 1. ¿En qué consiste la replicación?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. ¿Cuáles son los elementos que participan en la replicación? ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. ¿Cómo funciona service broker?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4. ¿Qué tipo de búsquedas pueden hacerse con búsquedas de texto (full text search)?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5. ¿Cuál es la utilidad de los servicios de notificación?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Excelencia Académica

177

ANEXOS

Excelencia Académica

178

ANEXO 1

Comparación de Sistemas Administradores de Bases de Datos Relacionales

Las siguientes tablas comparan información general y técnica de diferentes RDBMS.

Información general

Creador

Fecha de la primera

versión pública

Última versión estable

Licencia de

software

Adaptive Server Anywhere Sybase/iAnywhere 1992 10.0 Propietario

Adaptive Server Enterprise Sybase Inc 1987 15.0 (Sep. 2005)

Propietario

ANTs Data Server ANTs Software 1999 3.0 PropietarioDB2 IBM 1982 9 Propietario

Firebird Firebird Foundation 25 de julio de 2000

2 Licencia Pública

InterBaseInformix Informix Software 1985 10.0 Propietario

HSQLDB Hsqldb.Org 2001 1.8.0 Licencia

BSD

Ingres Berkeley University,

Computer Associates 1980 2006 CA-TOSL

InterBase Borland 1985 7.5.1 Propietario

SapDB SAP AG ? 7.4 GPL con drivers LGPL

MaxDB MySQL AB, SAP AG ? 7.5 GPL o

propietario

Microsoft SQL Server Microsoft 1989 9.00.2047

(2005 SP1)

Propietario

MySQL MySQL AB Noviembre

de 19965.0

GPL o propietario

Oracle Oracle Corporation 1977 11g

Release 1

Propietario

PostgreSQL PostgreSQL Global Development Group

Junio de 1989

8.2.3 Licencia

BSD

SmallSQL SmallSQL 16 de abril de 2005

0.12 LGPL

SQLite D. Richardo Hippy 17 de

agosto de 2000

3.1.3 Dominio público

Creador

Fecha de la primera

versión pública

Última versión estable

Licencia de

software

Soporte del sistema operativo

WindowsMac OS

X Linux BSD Unix z/OS

Excelencia Académica

179

Adaptive Server Enterprise Sí Sí Sí Sí Sí No

ANTs Data Server Sí Sí Sí Sí Sí ?

DB2 Sí No Sí No Sí Sí

Firebird Sí Sí Sí Sí Sí Quizá

HSQLDB Sí Sí Sí Sí Sí Sí

Informix Sí Sí Sí Sí Sí No

Ingres Sí ? Sí ? Sí Quizá

InterBase Sí No Sí No Sí

(Solaris) No

SapDB Sí No Sí No Sí ?

MaxDB Sí No Sí No Sí ?

Microsoft SQL Server Sí No No No No No

MySQL Sí Sí Sí Sí Sí Quizá

Oracle Sí Sí Sí Sí Sí Sí

PostgreSQL Sí Sí Sí Sí Sí No

SmallSQL Sí Sí Sí Sí Sí Sí

SQLite Sí Sí Sí Sí Sí Quizá

WindowsMac OS

X Linux BSD Unix z/OS

Características fundamentales

Información acerca de que características fundamentales de las RDBMS son implementados nativamente.

ACID Integridad referencial

Transacciones Unicode

Adaptive Server Enterprise Sí Sí Sí Sí

ANTs Data Server Sí Sí Sí Sí

DB2 Sí Sí Sí Sí

Firebird Sí Sí Sí Sí

HSQLDB Sí Sí Sí Sí

Informix Sí Sí Sí Sí

Ingres Sí Sí Sí Sí

InterBase Sí Sí Sí Sí

SapDB Sí Sí Sí Sí

MaxDB Sí Sí Sí Sí

Microsoft SQL Server Sí Sí Sí Sí

MySQL Depende 1 Depende 1 Depende 1 Sí

Oracle Sí Sí Sí Sí

PostgreSQL Sí Sí Sí Sí

SQLite Sí No 2 Básico 2 Sí

ACID Integridad referencial

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 características. Sin embargo,

Excelencia Académica

180

inclusive el tipo de tabla InnoDB permite el almacenamiento de valores que excedan el rango de datos; algunas vistas violan la limitación de ACID. Nota (2): Las limitaciones de CHECK y FOREIGN KEY son analizadas pero No forzadas. Transacciones anidadas No son soportadas.[1]

Tablas y vistas

Información acerca de que tablas y vistas 3 (unas más básicos que otras) son soportados nativamente.

Tabla temporal Vista materializada

Adaptive Server Enterprise Sí 5 Sí

ANTs Data Server Sí Sí

DB2 Sí Sí

Firebird Sí No

HSQLDB Sí No

Informix Sí Sí

Ingres Sí No

InterBase Sí No

SapDB Sí No

MaxDB Sí No

Microsoft SQL Server Sí Similar 6

MySQL Sí No

Oracle Sí Sí

PostgreSQL Sí No 4

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 públicas y privadas (para la sesión). [3] Nota (6): El servidor MS SQL provee vistas indexadas. [4]

Índice

Información acerca de que índices (otros como los índices básicos B-/B+) son soportados nativamente.

Árbol R-

/R+ Hash Expresión Parcial Reversa

Mapa de

bits

Adaptive Server Enterprise No No Sí No Sí No

ANTs Data Server Sí Sí Sí Sí Sí Sí

DB2 No ? No No Sí Sí

Firebird No No No No No NoHSQLDB ? ? ? ? ? ?

Informix Sí Sí Sí No No No

Ingres Sí Sí No No No No

InterBase ? ? No No No No

SapDB ? ? No No No No

Excelencia Académica

181

MaxDB ? ? No No No No

Microsoft SQL Server ? ? No No No No

MySQL Tablas

MyISAM solamente

Tablas HEAP

solamente No No No No

Oracle Edición

EE solamente

? Sí No Sí Sí

PostgreSQL Sí Sí Sí Sí No No

SQLite No No No No No No

Árbol R-

/R+ Hash Expresión Parcial Reversa

Mapa de

bits

Otros objetos

Información acerca de que otros objetos son soportados nativamente.

DominioCursor Trigger Función 5 Procedimiento 5 Rutina

externa 5

Adaptive Server Enterprise Sí Sí Sí Sí Sí Sí

ANTs Data Server Sí Sí Sí Sí Sí Sí

DB2 No Sí Sí Sí Sí Sí

Firebird Sí Sí Sí Sí Sí Sí

HSQLDB ? No Sí Sí Sí Sí

Informix ? Sí Sí Sí Sí Sí

Ingres Sí Sí Sí Sí Sí ?

InterBase Sí Sí Sí Sí Sí Sí

SapDB Sí Sí Sí Sí Sí ?

MaxDB Sí Sí Sí Sí Sí ?

Microsoft SQL Server No Sí Sí Sí Sí Sí

MySQL No Sí 3 Sí 3 Sí 3 Sí 3 Sí

Oracle Sí Sí Sí Sí Sí Sí

PostgreSQL Sí Sí Sí Sí Sí Sí

SQLite No No Sí No No Sí

DominioCursor Trigger Function Procedimiento Rutina externa

Nota (3): Estos objetos de base de datos son disponibles a partir de MySQL 5.0 disponible desde 24/12/2005.

Nota (5): Función 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 término comúnmente usado para ese tipo de rutinas. Sin embargo, su definición varía entre diferentes vendedores de bases de datos.

Particionamiento

Información acerca de que métodos de particionamiento son soportados nativamente.

Excelencia Académica

182

Rango Hash Compuesto (Rango+Hash) ListaAdaptive Server Enterprise AA AA AA AA

ANTs Data Server Sí Sí Sí Sí

DB2 Sí Sí Sí Sí

Firebird No No No NoInformix ? ? ? ?

Ingres Sí Sí Sí Sí

InterBase No No No NoSapDB ? ? ? ? MaxDB ? ? ? ?

Microsoft SQL Server Sí No No No

MySQL No No No No

Oracle Sí Sí Sí Sí

PostgreSQL No No No No

SQLite Sí Sí Sí Sí Rango Hash Compuesto (Rango+Hash) Listas