martes, 25 de mayo de 2010

Tema 3: Elementos adicionales para el diseño una base de datos SQL Server

Archivos y Grupos de archivosPara definir una base de datos, SQL Server 2000 usa un conjunto de archivos del sistema operativo. Todos los datos y objetos de la base de datos, como tablas, procedimientos almacenados, desencadenadores, y vistas, se guardan dentro de los siguientes tipos de archivos del sistema operativo:
· Archivo Primario. Este archivo contiene la información de arranque para la base de datos y es usado para almacenar datos. Cada base de datos tiene un archivo de los datos primario.
· Archivo Secundario. Estos archivos mantienen todos los datos que no caben en el archivo de los datos primario. Si el archivo primario puede almacenar todos los datos da la base de datos, las bases de datos no necesitan tener archivos de los datos secundarios. Algunas bases de datos podrían ser lo suficientemente grandes para necesitar archivos de datos secundarios múltiples o usar archivos secundarios en unidades de disco separadas para distribuir datos en múltiples discos o para mejorar el rendimiento de la base de datos.
· Registros de transacciones. Estos archivos mantienen la información del registro que se usa para recuperar la base de datos. Debe haber por lo menos un archivo de registro para cada base de datos.


Una base de datos simple puede crearse con un archivo primario que contiene todos los datos y objetos y un archivo de registro que contiene la información del registro de transacciones.


Alternativamente, una base de datos más compleja puede crearse con un archivo primario y cinco archivos secundarios. Los datos y objetos de la base de datos son distribuidos por los seis archivos, y cuatro archivos de registro adicionales contienen la información del registro de transacciones.


Los grupos de archivos agrupan archivos para propósitos administrativos y de ubicación de datos. Por ejemplo, tres archivos (Data1.ndf, Data2.ndf, y Data3.ndf) pueden crearse en tres unidades de disco y pueden asignarse al grupo de archivos fgroup1. Una tabla puede crearse entonces específicamente en el grupo de archivos fgroup1. Las consultas sobre los datos de la tabla se extenderán por los tres discos y se mejorará el rendimiento. La misma mejora de rendimiento puede lograrse con un solo archivo creado sobre un arreglo redundante de discos independientes (RAID).


Los archivos y grupos de archivos, sin embargo, ayudan a agregar nuevos archivos fácilmente a los nuevos discos. Adicionalmente, si su base de datos excede el tamaño del máximo para un solo archivo Windows NT, usted puede usar un archivo de datos secundario para permitir el crecimiento de su base de datos.



Reglas para diseñar Archivos y Grupos de archivos


Cuando usted diseña archivos y grupos de archivos, debe adherir a las reglas siguientes:
· Un archivo o grupo de archivos no puede ser usado por más de una base de datos. Por ejemplo, los archivos que ventas.mdf y ventas.ndf que contienen datos y objetos de la base de datos de ventas no pueden ser usados por cualquier otra base de datos.
· Un archivo puede ser un miembro de sólo un grupo de archivos.
· Los datos y la información de registro de transacción no pueden ser parte del mismo archivo o grupo de archivos.
· Los archivos de registro de transacciones nunca son parte de un grupo de archivos.



Grupos de archivos predefinidos


Una base de datos comprende un grupo de archivos primario y varios grupos de archivo definidos por el usuario. El grupo de archivos que contiene el archivo primario es el grupo de archivos primario. Cuando una base de datos se crea, el grupo de archivos primario contiene el archivo de datos primario y cualquier otro archivo que no se pone en otro grupo de archivos. Todas las tablas del sistema se asignan en el grupo de archivos primario. Si el grupo de archivos primario se queda sin espacio, ninguna información nueva del catálogo puede agregarse a las tablas del sistema. El grupo de archivos primario sólo se llenará si la bandera de configuración "autogrow" está apagada o si todos los discos que están sosteniendo los archivos en el grupo de archivos primario se quedaron sin espacio. Si sucede esto, se deberá encender la bandera de configuración "autogrow" o mover archivos a un nuevo almacenamiento para liberar mas espacio.


Los grupos de archivos definidos por el usuario son cualquier grupo de archivos que son específicamente creados por el usuario cuando él o ella están inicialmente creando o posteriormente alterando la base de datos. Si un grupo de archivos definido por el usuario se llena, se afectarán sólo las tablas de los usuarios específicamente asignadas a ese grupo de archivos.


En cualquier momento, un grupo de archivos puede ser designado como el grupo de archivos predefinido. Cuando se crean objetos en la base de datos sin especificar a que grupo de archivos pertenecen, se asignan al grupo de archivos predefinido. Los grupos de archivos predefinidos deben ser suficiente grandes para almacenar cualquier objeto no asignado a un grupo de archivos definido por el usuario. Inicialmente, el grupo de archivos primario es el grupo de archivos predefinido.
Los grupos de archivos predefinidos pueden ser cambiados usando la sentencia ALTER DATABASE. Cuando usted cambia el grupo de archivos predefinido, cualquier objeto que no tiene un grupo de archivos especificado se asigna a los archivos de los datos en el nuevo grupo de archivos predefinido cuando se crea. La asignación para los objetos y tablas del sistema, sin embargo, se mantiene en el grupo de archivos primario y no en el nuevo grupo de archivos predefinido.
Cambiar el grupo de archivos predefinido previene que objetos del usuario que no se crean específicamente en un grupo de archivos definidos por el deban competir con los objetos y tablas del sistema para el espacio de los datos.



Recomendaciones


Al implementar una base de datos, usted debe intentar adherir a las pautas siguientes para usar archivos y grupos de archivos:
· La mayoría de las bases de datos trabajará bien con un solo archivo del datos y un solo archivo de registro de transacciones.
· Si usted usa archivos múltiples, cree un segundo grupo de archivos para los archivos adicionales y configúrelo como el grupo de archivos predefinido. De esta manera, el archivo primario contendrá sólo tablas y objetos del sistema.
· Para maximizar rendimiento, usted puede crear archivos o grupos de archivos en tantos discos físicos locales disponibles como sea posible, y ubicar grandes objetos que compiten por espacio en grupos de archivos diferentes.
· Use grupos de archivos para habilitar la colocación de objetos en discos físicos específicos.
· Ubique las diferentes tablas que se usan para una misma consulta en grupos de archivos diferente. Este procedimiento mejorará el rendimiento al tomar ventaja del procesamiento paralelo de input/output del disco (I/O) al buscar datos vinculados.
· Ponga las tablas fuertemente accedidas y los índices no-agrupados que pertenecen a esas tablas en grupos de archivos diferentes. Este procedimiento mejorará el rendimiento debido al I/O paralelo si los archivos se localizan en discos físicos diferentes.
· No ponga el archivo de registro de transacciones en el mismo disco físico con los otros archivos y grupos de archivos.



Registros de transacciones


Una base de datos en SQL Server 2000 tiene por lo menos un archivo de datos y un archivo de registro de transacciones. Los datos y la información del registro de transacciones nunca es mezclada en el mismo archivo, y archivos individuales son sólo por una única base de datos.


El SQL Server usa el registro de transacciones de cada base de datos para recuperar transacciones. El registro de transacciones es un registro serial de todas las modificaciones que han ocurrido en la base de datos así como de las transacciones que realizaron dichas modificaciones. El archivo de registro de transacciones graba el comienzo de cada transacción y archiva los cambios producidos en los datos. Este registro tiene bastante información para deshacer las modificaciones (si es necesario) que hizo durante cada transacción. Para algunas operaciones pesadas, como CREATE INDEX, el registro de transacciones registra, en cambio, los hechos a los que la operación dio lugar. El registro crece continuamente tanto como operaciones ocurran en la base de datos.
El registro de transacciones graba la asignación y liberación de las páginas y la grabación definitiva (commit) o la vuelta atrás (rollback) de cada transacción. Este capacidad permite al SQL Server rehacer (Rollup) o deshacer (Rollback) cada transacción de las siguientes maneras:
· Una transacción es rehecha cuando se aplica un registro de transacciones. El SQL Server copia la imagen posterior a cada modificación de la base de datos o vuelve a ejecutar sentencias como CREATE INDEX. Estas acciones se aplican en el mismo orden en la que ellas ocurrieron originalmente. Al final de este proceso, la base de datos está en el mismo estado que estaba en el momento en que el registro de transacciones fue copiado.
· Una transacción se deshace cuando una transacción queda incompleta por alguna causa. El SQL Server copia la imagen previa de todas las modificaciones a la base de datos desde el BEGIN TRANSACTION. Si encuentra archivos de registro de transacciones que indican que un CREATE INDEX fue ejecutado, realiza operaciones que lógicamente invierten la sentencia. Éstos imágenes previas Ye inversiones del comando CREATE INDEX son aplicados en orden inverso a la secuencia original.


A un punto de salvaguarda, el SQL Server asegura que se han grabado en el disco todos los archivos de registro de transacciones y las páginas de la base de datos que se modificaron. Durante cada proceso de recuperación de base de datos, que ocurre cuando el SQL Server se reinicia, una transacción necesita ser rehecha sólo si no se conoce si todas las modificaciones de datos de la transacción fueron realmente transferidas desde el caché de SQL Server al disco. Debido a que en un punto de salvaguarda se obliga a que todas las páginas modificadas sean efectivamente grabadas en el disco, este representa el punto que se toma como punto de inicio para el comienzo de las operaciones de recuperación. Dado que para todas las páginas modificadas antes del punto de salvaguarda se garantiza que están en el disco, no hay ninguna necesidad de rehacer algo que se hizo antes del punto de salvaguarda.


Las copias de respaldo del registro de transacciones le permiten a usted que recupere la base de datos al momento de un punto específico (por ejemplo, previo a entrar en datos no deseados) o a un punto de falla. Las copias de respaldo del registro de transacciones deben ser tenidas muy en cuenta dentro de su estrategia de recuperación de bases de datos.


Ambiente


Generalmente, cuanto más grande es la base de datos, mayores son los requisitos de hardware. El diseño de la base de datos siempre debe tomar en cuenta la velocidad del procesador, el tamaño de la memoria, y el espacio del disco duro y su configuración. Hay otros factores determinantes, sin embargo: el número de usuarios o sesiones coexistentes, el registro de transacciones, y los tipos de operaciones a realizar sobre la base de datos. Por ejemplo, una base de datos que contiene datos de la biblioteca escolar con escasos niveles de actualización generalmente tendrá requisitos de hardware más bajos que un almacén de datos de un-terabyte que contiene ventas, productos, e informaciones de los clientes frecuentemente analizados, para una gran corporación. Aparte de los requisitos de almacenamiento de disco, se necesitará más memoria y procesadores más rápidos para levantar en memoria grandes volúmenes de datos del almacén de datos y procesar mas rápidamente las consultas.



Estimar el Tamaño de una base de datos


Al diseñar una base de datos, usted podría necesitar estimar cuán grande será la base de datos cuando este llena de información. Estimar el tamaño de la base de datos puede ayudarle a determinar la configuración del hardware que usted necesitará para alcanzar los siguientes requisitos:
· Lograr el rendimiento requerido por sus aplicaciones
· Asegurar la cantidad física apropiada de espacio en disco para guardar los datos y índices


Estimar el tamaño de una base de datos también puede llevarlo a determinar si el diseño de la base de datos necesita mayor refinamiento. Por ejemplo, usted podría determinar que el tamaño estimado de la base de datos es demasiado grande para ser implementada en su organización y que requiere mayor normalización. Recíprocamente, el tamaño estimado podría ser más pequeño que el esperado, permitiendo denormalizar en cierto grado la base de datos para mejorar el rendimiento de las consultas.


Para estimar el tamaño de una base de datos, estime el tamaño de cada tabla individualmente y sume dichos valores. El tamaño de una tabla depende si la tabla tiene o no índices y, en este caso, qué tipo de índices.



Diseño físico de la base de datos


El subsistema de entrada/salida (motor de almacenamiento) es un componente importante de cualquier base de datos relacional. Una aplicación de base de datos exitosa normalmente requiere una planificación cuidadosa en las fases tempranas de su proyecto. El motor de almacenamiento de una base de datos relacional requiere de esta planificación que incluye a lo siguiente:
· Qué tipo de hardware de disco será utilizado
· Cómo distribuye sus datos en los discos
· Qué diseño de índices se va a utilizar para mejorar el rendimiento de las consultas.
· Cómo se van a configurar apropiadamente todos los parámetros de configuración para que la base de datos funcione correctamente.



Instalación de SQL Server


Aunque la instalación de SQL Server está más allá del alcance de este Kit de Entrenamiento, usted siempre debe tener en cuenta lo siguiente antes de realizar una instalación:
· Esté seguro que la computadora reúne los requisitos de sistema para SQL Server 2000.
· Haga copias de respaldo de su instalación actual de Microsoft SQL Server si usted está instalando SQL Server 2000 en la misma computadora.
· Si usted está instalando un failover cluster, desactive el NetBIOS en todas las tarjetas de la red privada antes de ejecutar el instalador de SQL Server.
· Repase todas las opciones de instalación de SQL Server y este preparado para hacer las selecciones apropiadas cuando ejecute el instalador.
· Si usted está usando un sistema operativo que tiene configuraciones regionales diferentes a inglés (Estados Unidos), o si usted está personalizando el juego de caracteres o la configuración del ordenamiento de los caracteres, revise los temas referidos a la configuración de colecciones.
Antes de ejecutar el instalador de SQL Server 2000, cree uno o más cuentas de usuario del dominio si usted está instalando SQL Server 2000 en una computadora con Windows NT o Windows 2000 y quiere que SQL Server 2000 se comunique con otros clientes y servidores.


Usted debe iniciar el sistema operativo bajo una cuenta de usuario que tiene permisos locales de administrador; por otra parte, usted debe asignar los permisos apropiados a la cuenta de usuario de dominio. Esté seguro de cerrar todos los servicios dependientes sobre SQL Server (incluso cualquier servicio que usa ODBC, como el Internet Information Server, o IIS). Además, cierre al Windows NT Event Viewer y a los visualizadores de la registry (Regedit.exe o Regedt32.exe).



Seguridad


Una base de datos debe tener un sistema de seguridad sólido para controlar las actividades que pueden realizarse y determinar qué información puede verse y cuál puede modificarse. Un sistema de seguridad sólido asegura la protección de datos, sin tener en cuenta cómo los usuarios obtienen el acceso a la base de datos.



Planificar la Seguridad


Un plan de seguridad identifica qué usuarios pueden ver qué datos y qué actividades pueden realizar en la base de datos. Usted debe seguir siguientes los pasos para desarrollar un plan de seguridad:
· Liste todas los items y actividades en la base de datos que debe controlarse a través de la seguridad.
· Identifique los individuos y grupos en la compañía.
· Combine las dos listas para identificar qué usuarios pueden ver qué conjuntos de datos y qué actividades pueden realizar sobre la base de datos.



Niveles de seguridad


Un usuario atraviesa dos fases de seguridad al trabajar en SQL Server: la autenticación y autorización (aprobación de los permisos). La fase de la autenticación identifica al usuario que está usando una cuenta de inicio de sesión y verifica sólo su capacidad para conectarse a un instancia de SQL Server. Si la autenticación tiene éxito, el usuario se conecta a una instancia de SQL Server. El usuario necesita entonces permisos para acceder a las bases de datos en el servidor, lo que se obtiene concediendo acceso a una cuenta en cada base de datos (asociadas al inicio de sesión del usuario). La validación de los permisos permite controlar las actividades que el usuario puede realizar en la base de datos SQL Server.



Modos de autenticación


El SQL Server puede operar en uno de dos modos de seguridad (autenticación): la Autenticación de Windows y el modo Mixto. El modo de Autenticación de Windows le permite a un usuario que se conecte a través de una cuenta de usuario Windows NT 4.0 o Windows 2000. El modo mixto (Autenticación de Windows y Autenticación de SQL) le permite a los usuarios que conecten a una instancia de SQL Server usando Autenticación de Windows o Autenticación de SQL Server. Los usuarios que se conectan a través de una cuenta del usuario Windows NT 4.0 o Windows 2000 pueden hacer uso de conexiones de confianza en el modo de Autenticación de Windows o en el modo mixto.



Resumen del tema


Al diseñar una base de datos SQL Server, se deben tener en cuenta varios factores, que incluyen los archivos de la base de datos y grupos de archivos, registros de transacciones, la instalación del SQL Server y su ambiente operativo, y la seguridad. Todos los datos y objetos de la base de datos, como tablas, procedimientos almacenados, desencadenadores, y vistas, se guardan dentro de los archivos primario, secundarios, dentro del registro de transacciones. Los grupos de archivos agrupan archivos para propósitos administrativos y de ubicación de los datos. El grupo de archivos que contiene el archivo primario es el grupo de archivos primario. Una base de datos en SQL Server 2000 tiene al menos un archivo de datos y un archivo de registro de transacciones. Datos y la información del registro de transacciones nunca se mezclan en el mismo archivo, y los archivos individuales son utilizados por solo una base de datos. El SQL Server usa el registro de transacciones de cada base de datos para recuperar transacciones. El diseño de la base de datos siempre debe tomar en consideración la velocidad de procesador, la memoria, y el espacio del disco duro y su configuración. Hay otros factores determinantes, sin embargo: el número de usuarios o sesiones coexistentes, el registro de transacciones, y los tipos de operaciones a realizar sobre la base de datos Al diseñar una base de datos, usted podría necesitar estimar cuán grande será la base de datos cuando este llena de información. Al instalar SQL Server, usted debe tener en cuenta varios problemas. Una base de datos debe tener un sistema de seguridad sólido para controlar las actividades que pueden o no realizarse y determinar qué información puede verse y cuál puede modificarse. Un diseño de seguridad identifica qué usuarios pueden ver qué datos y qué actividades pueden realizar sobre la base de datos.

No hay comentarios:

Publicar un comentario