Download MS SQL Server 2005 - Departamento de Ingeniería de Sistemas e
Document related concepts
Transcript
SQL Server 2005 Beta Camilo Andrés Laverde Peña Código: 256256 Presentado al ingeniero: Ismael Castañeta Fuentes UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTA FACULTAD DE INGENIERIA INGENIERÍA DE SISTEMAS DEPARTAMENTO DE INGENIERIA DE SISTEMAS E INDUSTRIAL Bogotá 2005 TABLA DE CONTENIDO Introducción............................................................................................3 1. Convenciones de Books Online......................................................3 2. Mejoras y nuevas características de Books Online en SQL Server 2005 Beta ...............................................................................................3 3. Ayuda de SQL Server 2005 ............................................................4 4. Diferencias entre Books Online de SQL Server 2000 y Books Online de SQL Server 2005...................................................................4 5. Roles ................................................................................................5 6. Lo Nuevo de Microsoft SQL Server 2005: Database Engine ........6 6.1 6.2 6.3 6.4 6.5 6.6 Mejoras en la programación......................................................... 6 Mejoras en la flexibilidad............................................................ 11 Mejoras en disponibilidad .......................................................... 13 Mejoras en XML ........................................................................ 17 Escalabilidad y mejoras en el desempeño.................................. 17 Mejoras en la interfaz gráfica (Data access API) ........................ 20 7. Lo Nuevo de Microsoft SQL Server 2005: Analysis Services .... 21 7.1 7.2 7.3 7.4 7.5 Mejoras en la experiencia del usuario ........................................ 21 Mejoras del servidor .................................................................. 22 Mejoras en los cubos................................................................. 23 Mejoras en las dimensiones....................................................... 24 Mejoras en Minería de datos...................................................... 26 8. Componentes de una base de datos........................................... 27 8.1 8.2 Archivos de base de datos ......................................................... 28 Grupos de archivos.................................................................... 28 8.2.1 8.2.2 8.3 8.4 Grupo de archivos por defecto .............................................................29 Registros de transacción.......................................................................29 Definición de los estados de una base de datos ......................... 30 Definición de los estados de un archivo ..................................... 31 9. Desarrollando un plan para la base de datos ............................. 32 9.1 9.2 9.3 9.4 9.5 Recopilar la información ............................................................ 32 Identificar objetos ...................................................................... 33 Modelar objetos ......................................................................... 33 Identificar los tipos de información para cada objeto .................. 33 Identificar las relaciones entre objetos ....................................... 34 Introducción Con el lanzamiento de Microsoft SQL Server 2005 para los primeros días de noviembre del presente año , y la existencia de la versión Beta del producto, surge la posibilidad de investigar acerca del mismo. Es por esto que he decidido desarrollar un manual de estudio sobre el servidor de Bases de Datos Microsoft SQL Server 2005 en español, que ejemplifique de manera clara las herramientas más importantes y útiles que nos ofrece el SQL Server en su nueva versión, en especial el uso del Database Engine. Para esto, inicialmente, ha sido necesario consultar la ayuda que ofrece la versión candidata de SQL Server 2005 (Books Online), y así conocer las nuevas características que el motor y realizar una comparación detallada con respecto a SQL Server 2000. 1. Convenciones de Books Online Convención MAYÚSCULAS Negrilla Itálica Monospace Usada para Keywords o palabras clave . Nombres de bases de datos, tablas, columnas, procedimientos almacenados, utilidades del Command-Prompt, menús, comandos, opciones de caja de dialogo, elementos de p rogramación. Variables definidas por el usuario, relaciones, parámetros y nuevos términos en SQL Server 2005. Ejemplos de Código y mensajes de error. Texto en ingles sin traducción Se refiere a los datos contenidos en bases de (localizado en versiones de datos de ejemplo, u otros datos usados en SQL Server 2005 solamente) ejemplos. 2. Mejoras y nuevas características de Books Online en SQL Server 2005 Beta Característica Tabla de contenidos Índice Buscar ¿Cómo? Descripción Agrupa los tópicos lógicamente por tecnología, componente y tarea, es apropiado para facilitar la búsqueda. Permite buscar tópicos alfabéticamente por palabras clave o tarea. Una búsqueda del motor para realizar una ejecución filtrada o no filtrada a través de una palabra clave. Un grupo de páginas jerárquico que contiene tópicos comunes a tareas de SQL Server, agrupadas por tecnología. Favoritos de ayuda Permite guardar tópicos y resultados de búsqueda para su fácil recuperación. Automáticamente muestra enlaces a información relevante Ayuda dinámica mientras los usuarios trabajan en el ambiente de SQL Server Management Studio. 3. Ayuda de SQL Server 2005 • • • • Ayuda local: Ayuda Local es un grupo de tópicos instalado con Books Online. MSDN Online: Microsoft Developer Network (MSDN) es un grupo de servicios online y offline diseñados para ayudar a los desarrolladores a escribir aplicaciones usando productos Microsoft y tecnologías. MSDN provee artículos de su base de conocimientos, papers, entrevistas y ejemplos de código de software desarrollado usando productos Microsoft. Code Wise Community (Comunidad de Sabios): El sitio de CWC es un recurso de tópicos para el público en general, ejemplos de código, consejos, y noticias sobre Microsoft para expertos independientes. Especialmente útil para .NET Framework y Microsoft Visual Studio .NET. Questions: Foros de preguntas en MSDN. 4. Diferencias entre Books Online de SQL Server 2000 y Books Online de SQL Server 2005 Books Online de Books Online de SQL Server 2005 SQL Server 2000 Tabla de Sin cambios. contenidos Índice Sin cambios. En SQL Server 2005 Books Online: • Es posible guardar búsquedas para volver a usar tiempo después. Favoritos • Los Favoritos son portables, se pueden mover de una máquina a otra. En SQL Server 2005 Books Online es posible: • Hacer búsquedas en comunidades online. • Filtrar resultados de búsquedas por tecnología, Buscar lenguaje o tipo de tópico. • Buscar Tópicos en varios lenguajes. • Realizar búsquedas de colecciones de múltiples documentos. Característica nueva en SQL Server 2005 Books Online. ¿Cómo? 5. Roles Representa 5 categorías de usuarios SQL Server 2005. Cada rol asocia a un usuario en una categoría con el grupo de tareas que desempeñan usando SQL Server, y el conocimiento que necesitan para completar estas tareas. Los roles están ligados a una descripción de tópicos que sirven de guía para dado rol y tecnología llamado InfoCenter. Estos roles y sus tópicos en InfoCenter son: Arquitecto: Define la tecnología end-to-end y el diseño de la infraestructura de un sistema. Define la visión, el alcance y la interoperabilidad para proyectos que implemente cada parte del sistema. InfoCenters disponibles para este rol: • • • • • • Analysis Services Database Engine Integration Services Notification Services Replication Service Broker Administrador: Corre las operaciones diarias de un sistema tales como: disponibilidad del sistema, monitoreo de desempeño y optimización, despliegue, actualizaciones, localización de errores y configuración. InfoCenters disponibles para este rol: • • • • • • • • Analysis Services Database Engine FullText Search Integration Services Notification Services Replication Reporting Service Service Broker Analista: Crea reportes y modelos de datos para uso personal y tal vez para otras personas de la organización. Los analistas pueden ser procesadores de datos profesionales, pero a menudo son responsables del análisis de los datos de la empresa en el curso de sus funciones. InfoCenters disponibles para este rol: • Reporting Service Desarrollador: Diseña, implementa, y prueba páginas Web, reportes, o aplicaciones que implementan partes específicas del sistema desarrollado por el arquitecto . En particular, diseñan bases de datos, implementan y prueban esquemas y objetos (tal como tablas y procedimientos almacenados) en una base de datos. InfoCenters disponibles para este rol: • • • • • • • • Analysis Services Database Engine FullText Search Integration Services Notification Services Replication Reporting Service Service Broker Trabajador de la Información: Traduce los datos disponibles de un sistema a otro sistema de información. InfoCenters disponibles para este rol: • • • • Analysis Services Database Engine Integration Services Reporting Service 6. Lo Nuevo de Microsoft SQL Server 2005: Database Engine 6.1 Mejoras en la programación Integración con Microsoft .NET Framework: Common Language Runtime CLR Common Language Runtime (CLR) se encuentra ahora hospedado en SQL Server Database Engine. El medio de integración de CLR soporta objetos de bases de datos, incluyendo funciones, procedimientos almacenados y triggers, que son escritos en lenguajes .NET como Microsoft Visual C# y Visual Basic .NET. Estos lenguajes soportan lógica y características no disponibles en TSQL, ahora puede ser incorporada lógica más compleja en los objetos de bases de datos. Tipos de Datos de Usuario y agregados pueden también escribirse en lenguajes .NET para construir tipos de datos más complejos. El medio de programación de CLR está integrado en el Visual Studio development environment. Microsoft .NET Framework: Agregados definidos por el usuario Las funciones de agregación definidas por el usuario escritas en lenguajes .NET mejoran las funciones de agregaciones básicas, tales como SUM, MIN, y MAX, incluidas es T-SQL. Una función de agregación es la que procesa varios valores de datos y retorna un único valor. Desde mostrar datos en de resultset en una aplicación hasta ejecutar lógica agregada compleja, una función de agregación de .NET puede mejorar la lógica en la instancia del Database Engine y retorna solo el valor final a la aplicación. Microsoft .NET Framework: Tipos de datos definidos por el usuario Los tipos de datos de usuario de CLR permiten implementar tipos de datos en bases de datos en cualquier lenguaje soportado por .NET CLR. Estos son implementados en lenguajes .NET y pueden tener estructuras más complejas y su comportamiento está definido por los campos, métodos y propiedades de la clase. Los tipos de datos de usuario de CLR están integrados con el tipo de sistema del Database Engine y pueden ser usados en todos los contextos donde los tipos construidos son usados. Microsoft .NET Framework: Procedimiento almacenados, triggers, y funciones definidas por el usuario Los objetos procedimentales de una base de datos pueden ser escritos en lenguajes .NET para incorporar lógica más compleja y ahora son soportados por el lenguaje T-SQL. Los programadores desarrollan objetos usando el mismo lenguaje y diseñan medios para desarrollar componentes y servicios .NET. Mejoras en Transact-SQL : Nuevo tipo de dato XML Database Engine introduce un nuevo tipo de datos XML que soporta almacenar documentos y fragmentos XML en bases de datos. Las instancias XML pueden ser almacenadas en columnas, parámetros de procedimientos almacenados, o variables definidas usando el tipo XML. Mejoras en Transact-SQL : Mejoras en FOR XML Es posible usar declaraciones FOR XML encadenadas y crear una jerarquía de documentos XML. Los resultados de una declaración FOR XML pueden ser almacenados en una columna, parámetro de un procedimiento almacenado, o variable definida usando el tipo XML. Mejoras en Transact-SQL : Manejo de errores mejorado Los programadores codifican opciones de T-SQL, procedimientos almacenados, triggers, y funciones definidas por el usuario que pueden usar la lógica de TRYCATCH para manejar condiciones de error. Mejoras en Transact-SQL : Nuevas vistas de metadatos Database Engine introduce dos nuevos grupos de vistas al consultar metadatos. El sistema que cataloga vistas provee información sobre objetos, como tablas, procedimientos almacenados y restricciones, definidos en bases de datos SQL Server. El manejador de vistas dinámico provee información sobre el estado actual de una instancia del Database Engine. Este también expone información de estructuras de memoria que no son persistentes, tales como información acerca de bloqueos, hilos y tareas. Mejoras en Transact-SQL : Funciones de ranking Database Engine introduce una nueva categoría de funciones llamadas funciones de ranking o clasificación. Entre estas están: • • • • RANK DENSE_RANK NTILE ROW_NUMBER Estas funciones retornan un valor clasificado para cada fila en una partición. Mejoras en Transact-SQL : Triggers DDL (Data Definition Language) Además de soportar triggers que son activados por declaraciones del lenguaje para manipulación de datos (INSERT, UPDATE y DELETE), Database Engine incluye una nueva clase de triggers activados por declaraciones DDL que modifican objetos de la base de datos, tales como CREATE, ALTER o DROP. Los triggers DDL pueden ser usados para auditar o regular cambios al esquema de la base de datos. Mejoras en Transact-SQL : Notificaciones de eventos Una nueva clase de objeto, notificación de eventos, puede ser programado en Database Engine. Las notificaciones de eventos envían información acerca de declaraciones DDL de T-SQL. Estas pueden ser usadas para registrar y revisar cambios o actividades ocurridas en la base de datos. Se ejecutan asincrónicamente y pueden ofrecer una alternativa de programación con triggers DML, triggers DDL y SQL Trace. Mejoras e n Transact-SQL : Extenciones de colas de procesamiento Tres mejoras a T-SQL simplifican la construcción de aplicaciones de colas de mensajes en forma independiente, confiable y escalable en Internet y sistemas de automatización de procesos del negocio. INSERT, UPDATE y DELETE ahora soportan una cláusula OUTPUT que retorna datos basados en las filas modificadas por la declaración. READPAST puede ser especificado en las declaraciones UPDATE y DELETE, al dejar que estas declaraciones mantengan colas de filas ayudadas por otras tareas y elegir la siguiente fila disponible de la cola. Mejoras en Transact-SQL : Modelo unificado de programación de objetos grandes En versiones anteriores de SQL Server, grandes Strings de 8000 bytes eran almacenadas en tipos de dato text, ntext e imagen los cuales tienen diferentes modelos de programación que los pequeños Strings (char, nchar, varchar, nvarchar binary y varbinary). Database Engine ahora soporta especificar un tamaño MAX para los tipos de dato más pequeños. Cuando MAX es especificado, los tipos de datos pueden almacenarse en los mismos tamaños de Strings como text, ntext e imagen, sobre los 2 GB, pero son procesados en la misma forma como cuando son almacenados en pequeños Strings. Mejoras en Transact-SQL : Queries recursivos Una tabla de expresiones comunes (CTE) es un resultset que es almacenado temporalmente durante la ejecución de una declaración SELECT, INSERT, UPDATE o DELETE. Usando una CTE se permite el uso de queries recursivos y pueden simplificar la lógica para reemplazar el uso de tablas temporales o vistas. Mejoras en Transact-SQL : Nuevo operador APPLY El operador APPLY permite invocar una expresión (función sobre los valores de una tabla o subquery) para cada columna retornada por una tabla externa de referencia. Mejoras en Transact-SQL : Nuevos operadores PIVOT y UNPIVOT Los nuevos operadores PIVOT y UNPIVOT rotan resultsets para cada columna convertida en fila y cada fila convertida en columna. Esto es llamado rotación de datos o creación de reportes cross-tab (tabulador-cruzado). Estas operaciones fueron posibles en anteriores versiones de SQL Server, pero requieren lógica más compleja que ahora se simplifica usando PIVOT y UNPIVOT. Mejoras en Transact-SQL : Notificaciones de Query Las notificaciones de query permiten a una aplicación guardar un resultset y solicitar al Database Engine que notifique si cualquiera de los datos subyacentes es modificado por otra aplicación. Las aplicaciones que usan notificaciones de query no tienen que verificar periódicamente el estado de los datos en la base de datos. Ellas solo tienen que validar los datos si Database Engine les notifica algún cambio. Mejoras en Transact-SQL : Operación de volcado en OPENROWSET OPENROWSET ahora soporta la operación BULK para volcado (copia de la mayor parte) de los datos desde archivos de datos. Las operaciones volcado en OPENROWSET son controladas usando nuevas tablas indirectas y opciones de volcado, tales como BULK_BATCHSIZE y FORMATFILE. La nueva cláusula bulk_column_alias soporta asignar nombres a las columnas a la operación de volcado de datos. Mejoras en Transact-SQL : Mejoras a TOP El operador TOP se ha mejorado para tomar cualquier expresión numérica (como un nombre de variable) en ves de solamente un número entero para especificar el número de filas que retorna el operador. TOP también puede ser especificado en declaraciones INSERT, UPDATE y DELETE. Mejoras en Transact-SQL : Query distribuido La declaración EXECUTE soporta ahora una cláusula AT LinkedServer que especifica la ejecución de un procedimiento almacenado en un servidor enlazado. El predicado CONTAINS soporta nombres de cuatro partes para ejecutar queries en servidores enlazados. Los queries distribuidos también soportan los nuevos tipos de datos de objetos largos nvarchar(max), varchar(max) y varbinary(max). Mejoras en Transact-SQL : TABLESAMPLE La nueva cláusula TABLESAMPLE limita el número de filas procesadas por un query. Diferente a TOP, el cual retorna solo la primera fila de un resultset, TABLESAMPLE retorna filas seleccionadas a través de un grupo de filas procesadas por el query. Mejoras en Transact-SQL : Nueva integridad referencial en cascada La cláusula REFERENCES soporta ahora las acciones de integridad referencial en cascada SET NULL y SET DEFAULT. SET NULL especifica que las acciones de integridad referencial en cascada conviertan las llaves foráneas a NULL. SET DEFAULT especifica que las llaves foráneas se conviertan a valores por defecto definidos por la columna. Mejoras en Transact-SQL: el sobre flujo de datos puede exceder el tamaño de página Las columnas pueden exceder el límite de 8060 bytes, si ellas contienen columnas de longitud variable usando nvarchar, varchar, varbinary y tipos de dato sql_variant. Si la combinación del ancho de estas columnas de longitud variable causa que la fila exceda el tamaño límite de página, Database Engine puede mover datos de columnas de longitud variable a páginas separadas. 6.2 Mejoras en la flexibilidad Seguridad: Concesión de todos los permisos La administración de la seguridad se unifica haciendo concediendo todos los permisos a través de la sentencia GRANT. En versiones pasadas de SQL Server, los permisos eran manejados usando un mix de permisos por nivel de instancias, roles de bases de datos, y permisos ordinarios. Seguridad: Separación de usuarios y esquemas Los roles de esquemas han mejorado en las bases de datos SQL Server. Todos los objetos en una base de datos están localizados ahora en esquemas y no propios para cada usuario. En cada esquema es posible adjudicar roles, permitiendo a múltiples usuarios administrar objetos de la base de datos. En anteriores versiones de SQL Server, los usuarios no podían ser borrados de una base de datos sin reasignar antes cada objeto individual que les perteneciera. Ahora una propiedad solo tiene que ser asignada al esquema, no a cada objeto. Administración: Partición de tablas e índices Las tablas y los índices pueden ser divididos en particiones basados en rangos de valores. La posibilidad de particionar hace de tablas e índices más manejables para permitir enfocar el manejo de tareas en particiones individuales tal como se hace en colecciones enteras. Los bloques de datos pueden ser transferidos con el esquema de la base de datos más eficiente, y mantener operaciones que pueden ejecutarse a través de porciones sencillas de una tabla entera o un índice mientras mantienen la integridad de una unidad entera. Administración Gestión de memoria AWE dinámica Database Engine ahora maneja dinámicamente el tamaño de su pool de memoria cuando usa memoria AWE para soportar grandes bases de datos. En anteriores versiones de SQL Server, el pool de memoria era estático cuando usaba memoria AWE. Administración: ATTACH_REBUILD_LOG La cláusula ATTACH_REBUILD_LOG permite agregar una base de datos sin la necesidad de los archivos log. Por ejemplo, cuando se separa una base de datos de un servidor de producción para usar como una base de datos de solo lectura en un servidor de reportes, el medio de solo lectura no requerirá todos los archivos log usados en producción. ATTACH_REBUILD_LOG permite copiar la base de datos a un servidor de reportes sin tener una copia de todos los archivos log de producción. Administración: Inicialización instantánea de archivos Cuando Database Engine crea una nueva base de datos, esta puede reservar espacio requerido para los archivos de datos e inmediatamente pone a disposición la base de datos para su uso. Las actuales páginas de datos no son inicializadas con ceros binarios sobre las páginas que son referenciadas por queries SQL. En anteriores versiones de SQL Server, una base de datos no permitía su uso sobre todas las páginas de datos que tenía que ser inicializadas con ceros binarios. Administración: Deshabilitando índices Los índices pueden ser deshabilitados para mejorar procesos de administración y diagnósticos. Cuando se reconstruye un índice non-clustered, deshabilitando el índice antes de la reconstrucción se reduce significativamente la cantidad de espacio requerido. Administración: Reorganización y reconstrucción de índices SQL Server 2005 introduce la declaración ALTER INDEX que puede reorganizar o reconstruir opciones de índices o grupos de opciones. Los índices pueden ser reconstruidos en línea y los índices particionados pueden ser reorganizados o reconstruidos en una partición básica. Administración: Formato de archivos de volcado y carga en XML SQL Server 2005 introduce un esquema XML que puede ser usado para especificar el formato de archivos como documentos XML. Administración: OPENROWSET Proveedor de volcado de filas SQL Server 2005 introduce proveedor de volcado de filas usando la opcion BULK en la función OPENROWSET en una declaración SELECT, la cual puede alimentarse en declaraciones INSERT. 6.3 Mejoras en disponibilidad Disponibilidad de instancias: Agrupamiento Las instancias de Database Engine de SQL Server 2005 soporta “failover clusters” de 8 nodos en sistemas de 32 bits y clusters de 4 nodos en sistemas de 64 bits. Las anteriores versiones de SQL Server soportaban clusters de 2 y 4 bits. Disponibilidad de instancias: Soporte de Multi-instancias Hasta 50 instancias del Database Engine de SQL Server 2005 Enterprise Edition pueden ser instaladas en un computador, y hasta 16 instancias de Database Engine de otras ediciones de SQL Server 2005. Todas las ediciones de SQL Server 2000 estaban limitadas a 16 instancias por computador. Disponibilidad de instancias: Conexión dedicada para el administrador En algunos estados de errores, una instancia del Database Engine no puede aceptar nuevas conexiones, previniendo a un administrador de bases de datos diagnosticar el problema. Database Engine de SQL Server 2005 introduce una conexión de administrador dedicada (DAC); un miembro del rol de servidor sysadmin puede usar la nueva utilidad sqlcmd y DAC para acceder y diagnosticar una instancia de Database Engine. Disponibilidad de instancias: Gestión de memoria AWE dinámica Cuando se usa memoria AWE que soporta grandes cantidades de memoria, las instancias de Database Engine SQL Server 2005 ajusta n dinámicamente la cantidad de memoria que usan basados en cargas de trabajo actuales. En anteriores versiones de SQL Server, cuando la memoria AWE estaba habilitada, las instancias obtenían una cantidad estática de memoria cuando las instancias habían iniciado y no podían ajustar uso de memoria a variaciones de cargas de trabajo. Disponibilidad de instancias: Memoria Hot-Add Memoria Hot-Add permite a Database Engine usar nueva memoria agregada al computador mientras está corriendo. Mientras anteriores versiones de SQL Server ajustaban el uso de memoria dinámicamente para encontrar cargas de trabajo actuales, estas no podían hacer uso de memoria agregada al computador después que este ha iniciado. Disponibilidad de base de datos: Base de datos espejo Database mirroring (espejo) crea un servidor seguro para una base de datos. Database mirroring es una alternativa ante “failover clusters” para mejorar la disponibilidad de una base de datos y es más fácil de manejar que “failover clusters”. En Database mirroring, todas las actualizaciones de una base de datos (la base de datos principal) son copiadas completamente a una base de datos separada (la base de datos espejo). Las bases de datos principal y espejo residen en dos instancias de Database Engine, las cuales pueden residir en dos computadores diferentes. La instancia del servidor donde se encuentra la base de datos principal es llamada servidor principal y la instancia del servidor donde se encuentra la base de datos espejo se llama servidor espejo. Si el servidor principal falla, el servidor espejo rápidamente intercambia la base de datos espejo al rol de base de datos principal. Disponibilidad de base de datos: Foto de la base de datos Database snapshots (Fotos de base de datos) ofrece una forma eficiente para revertir una base de datos a un punto lógico de conocimiento consistente. Una foto de la base de datos graba el estado actual de los datos en una base de datos como si todas las transacciones activas fueran “rolled back”. La foto entonces graba todos los cambios de los datos de un punto en adelante. Si sucede una falla, como la falla del borrado de una tabla grande, la base de datos puede revertir el estado de ésta al momento en que la foto fue tomada. Disponibilidad de base de datos: Validación de la suma de chequeo E/S y Relectura SQL Server 2005 incrementa la estabilidad de los datos con la introducción de checksum (suma de chequeo) y lógica de recomprobación de lectura para páginas de bases de datos. Ambas, tanto la suma de chequeo como la recomprobación de lectura obtienen grandes beneficios de Microsoft Exchange Server para ayudar a detectar problemas en las rutas de Entrada/Salida que pueden conducir a la comprobación de problema de datos físicos y se han construido en SQL Server 2005. La cláusula SET PAGE_VERIFY de la declaración ALTER DATABASE ahora incluye una opción CHECKSUM, cuando CHECKSUM es especificada, una suma de chequeo es calculada y almacenada en la cabecera de la página de la base de datos cada vez que una página es escrita en disco. Cada vez que la página es leída de disco, la suma de chequeo es recalculada y comparada con la suma de chequeo almacenada en la cabecera de la página de la base de datos. Si el valor de la suma de chequeo calculada no corresponde con la almacenada, esto indica que la página ha sufrido algún daño mientras fue escrita, almacenada o leída de rutas de E/S o algún medio. Por esta falla, Database Engine retorna un error a la aplicación, al log de eventos de Windows, y al log de error de Database Engine. Las sumas de chequeo también se pueden validar durante operaciones de copia de seguridad o restauración. Una falla de suma de chequeo indica un problema de rutas de E/S y requiere investigar del hardware, los drivers firmware, la BIOS, los drivers filtro y otros componentes de las rutas de E/S para determinar la causa raíz. SQL Server revisará cualquier falla de operaciones de E/S hasta cuatro veces para contar cualquier problema transitorio con las rutas de E/S. La recomprobación de lectura puede ayudar a proveer disponibilidad de los datos, mientras permiten investigar el problema. Disponibilidad de base de datos: Copia de seguridad de bases de datos espejo La ejecución de backups a los grupos espejo reduce el impacto de posibles pérdidas de uno de los backups. Si un dispositivo de backup falla, uno de los espejos puede ser usado para restaurar la base de datos. Disponibilidad de base de datos: Chequeos a copias de seguridad y medios de restauración Si las opciones de base de datos TRON_PAGE_DETECTION o el nuevo CHECKSUM están fijas, nuevas opciones para las declaraciones BACKUP y RESTORE permiten la integridad de páginas de datos para ser validados durante las operaciones de copia de seguridad y restauración. RESTORE VERIFYONLY puede ser usada con estas opciones para mejorar una validación más completa de una copia de seguridad antes de usarla parea restaurar la base de datos. Disponibilidad de base de datos: Recuperación rápida durante problemas en la recuperación y base de datos espejo Database Engine en SQL Server 2005 Enterprise Edition permite recuperación rápida durante problemas en la recuperación y base de datos espejo. La recuperación rápida es usada para permitir a la base de datos estar disponible durante la fase de deshacer, con disponibilidad parcial durante operaciones de restauración, sumas de chequeo de una página de base de datos, y medios espejo para el backup. Las otras ediciones de SQL Server 2005 no permiten a los usuarios acceder a la base de datos hasta que la recuperación complete. Anteriores versiones de SQL Server nunca permitían el acceso a la base de datos antes de completar la fase de deshacer. Disponibilidad de base de datos: Reporte de errores de copia de seguridad y restauración Las declaraciones BACKUP y RESTORE soportan una opción CONTINUE_AFTER_ERROR que indica al Database Engine que debe mantener el procesamiento después que este recibe un error. Si existen múltiples problemas, esta opción permite al administrador de la base de datos determinar el alcance de los mismos. Disponibilidad de base de datos: Restauraciones en línea Los usuarios pueden acceder a bases de datos cuando una restauración parcial se está ejecutando de un archivo o página de base de datos. Los usuarios no pueden acceder a la parte de la base de datos que está siendo recuperada, pero tienen acceso a los demás datos. Anteriores versiones de SQL Server requerían que ningún usuario tuviera acceso a una base de datos durante cualquier proceso e restauración. Disponibilidad de base de datos: opción EMERGENCY Si una base de datos ha sido marcada como sospechosa durante la recuperación, esta puede pasar al modo de emergencia con acceso de solo lectura para el rol sysadmin. Esto permite diagnosticar el problema o recuperar cualquier dato disponible. Disponibilidad de base de datos: Operaciones de índices en línea Operaciones sobre índices ahora pueden ser ejecutadas en línea; los usuarios aún pueden acceder los datos de tablas y usar otros índices en la tabla mientras un índice se ha comenzado a crear, alterar o borrar. Disponibilidad de base de datos: Operaciones en paralelo sobre índices La cláusula MAXDOP ahora puede ser especificada en declaraciones de índices DDL, controlando el número de operaciones paralelas usadas para la declaración específica. En anteriores versiones de SQL Server, MAXDOP no se podía especificar en declaraciones de índices DDL, las cuales a veces permitían operaciones grandes con índices pero que podían afectar el rendimiento de una instancia de Database Engine. 6.4 Mejoras en XML Nuevo tipo de dato XML El Nuevo tipo de dato XML soporta el almacenamiento de documentos y fragmentos XML. Este puede ser usado en columnas, variables, o procedimientos almacenados y parámetros de funciones. Las instancias XML almacenadas usando el tipo de dato XML puede asociarse con un esquema XML (XSD) que valida y escribe la instancia. Soporte XQuery XQuery es un lenguaje para buscar datos XML almacenados usando el tipo de dato XML. La implementación de XQuery en SQL Server 2005 está basada en bosquejos o borradores de trabajos del W3C o Consorcio World Wide Web. XML Data Manipulation Language (XML DML) La definición actual W3C de XQuery no incluye la posibilidad de modificar documentos XML. Microsoft ha extendido la implementación de XQuery en SQL Server 2005 para incluir las posibilidades de insertar, actualizar, y borrar documentos o fragmentos XML. Índices en columnas de tipo XML Los documentos y fragmentos XML almacenados usando el tipo de dato XML pueden ser muy largos. Si estos no están indexados, Database Engine puede fragmentar los documentos y fragmentos para cada referencia. Definir un índice en una columna usando el tipo de dato XML permite a Database Engine procesar de forma más eficiente los documentos y fragmentos. Acceso nativo a HTTP SOAP Las instancias de Database Engine pueden ser configuradas con puntos finales o direcciones HTTP a las cuales los requerimientos SOAP pueden ser enviados desde aplicaciones. Los paquetes son recibidos directamente por la instancia del Database Engine sin la necesidad de configurar ningún servicio intermedio como el servidor IIS (Microsoft Internet Information Service). Los resultados de queries enviados a un punto final HTTP son retornados como un documento XML. 6.5 Escalabilidad y mejoras en el desempeño Guías de plan Un nuevo procedimiento almacenado del sistema, sp_create_plan_guide, está disponible para optimizar el desempeño de queries agregando queries anidados a estos cuando no es posible cambiar el texto del query directamente. Las guías del plan pueden ser usadas sobre un pequeño subgrupo de queries en una aplicación de base de datos desarrollada por un tercero, y que no se está ejecutando como se espera. Nivel de aislamiento de foto El nivel de aislamiento foto implementa versioning para proveer a los usuarios una visión de los datos en la base de datos antes y después del inicio de una transacción. Excepto durante la recuperación, la foto de una transacción no adquiere bloqueos para proteger operaciones de lectura. El aislamiento de foto permite minimizar problemas de la fijación y el bloqueo (locking y bloking) en aplicaciones de solo lectura. Estadísticas en columnas datetime correlacionadas La nueva opción SET de base de datos, DATE_CORRELATION_OPTIMIZATION, permite mejorar el desempeño de queries que relacionan dos tablas cuyas columnas datetime están correlacionadas y especifica una restricción de fechas en el predicado del query. Parametrización forzada Es posible especificar que todos los queries que se ejecutan en una base de datos sean parametrizados estableciendo una nueva opción SET de base de datos FORCED PARAMETERIZATION. La parametrización forzada puede mejorar el desempeño de ciertas bases de datos reduciendo la frecuencia de recompilaciones de queries. Columnas computadas persistentes Columnas computadas pueden ser marcadas como PERSISTED, en tal caso sus valores son almacenados en páginas de datos para la tabla. Esto puede mejorar la velocidad de recuperar estas columnas en cómputos intensivos. Multiples result sets activos (Multiple Active Result Sets: MARS) SQL Server 2005 introduce la posibilidad de hacer declaraciones múltiples para retornar resultsets al mismo tiempo en una conexión simple. En anteriores versiones de SQL Server, solo una de las declaraciones podía ser retornada en un resultset para cada conexión, y no podían ser ejecutadas nuevas declaraciones sobre todos los resultsets que eran retornados. Incluyendo columnas no-llave en índices nonclustered Columnas que no son lla ve pueden ser incluidas en índices nonclustered. Con esto es posible mejorar la velocidad de queries que puedan adquirir todos los datos que necesitan del índice sin tener acceso a filas de datos, y pueden exceder el tamaño actual del índice de un máximo de 16 columnas y un máximo de tamaño de llave del índice de 900 bytes. Fijación del índice Las nuevas opciones ALLOW_ROW_LOCKS y ALLOW_PAGE_LOCKS en CREATE INDEX y ALTER INDEX pueden ser usadas para controlar el nivel de fijación del índice. Índices en tipos de datos XML Los documentos y fragmentos XML almacenados usando el tipo de dato XML pueden ser muy grandes. Si estos no son indexados, Database Engine puede fragmentar los documentos y fragmentos para cada referencia. Definiendo un índice en una columna usando el tipo de dato XML permite al Database Engine ser más eficiente para procesar documentos y fragmentos. Mejoras en vistas de índices El optimizador de queries puede usar más queries para indexar vistas que en versiones previas, incluyendo queries que contienen expresiones escalares, agregados escalares y funciones de usuario, expresiones de intervalo y condiciones de equivalencia. La definición de vistas indexadas puede contener agregados escalares y funciones de usuario con ciertas restricciones. Nuevas indirectas Cuatro nuevas indirectas fueron agregadas para el uso de generación de planes óptimos de query: RECOMPILE, obliga a SQL Server a descartar el plan generado para el query después que este se ejecuta, de modo que un nuevo plan es generado la siguiente vez que se ejecute. RECOMPILE es usado para queries con valores de variables que varían extensamente cada vez que son compilados o ejecutados. Esta indirecta puede ser usada en lugar de la opción WITH RECOMPILE para crear procedimientos almacenados cuando solo se requiere un subgrupo de queries dentro de procedimientos almacenados a ser recompilados. OPTIMIZE FOR ayuda a SQL Server a usar un valor particular para una variable local con un valor que es desconocido cuando el query es compilado y optimizado. USE PLAN ayuda a SQL Server a usar un plan de query existente para un query. La directiva USE PLAN puede ser usada para aquellos resultados de planes en tiempos de ejecución lentos, pero para el cual se sabe que existen mejores planes. PARAMETERIZATION especifica si un query es parametrizado como una parte de la compilación de un plan de query. Borrado y reconstrucción de objetos grandes Cuando se borran o se reconstruyen tablas e índices que usan más de 128 extensiones, SQL Server 2005 diferencia las des-asignaciones a la actual página, y sus candados (locks) asociados, hasta después que la transacción finaliza. Evitar estos candados se logra partiendo de una fase lógica y física. 6.6 Mejoras en la interfaz gráfica (Data access API) Cliente nativo de SQL prove functional adicional a programas ODBC y OLE DB Cliente nativo de SQL es una tecnología de acceso a datos nueva en SQL Server 2005. Ésta combina el proveedor SQL OLE DB y el driver SQL ODBC juntos con sus librerías de red asociadas en librería dinámicas de enlace (DLL) nativas mientras provee nueva funcionalidad proveída por MDAC. Cliente nativo de SQL puede ser usado para crear nuevas aplicaciones o mejorar aplicaciones existentes que necesita para tomar ventajas de las nuevas características de SQL Server tal como múltiples resultsets activos (MARS), tipos de datos definidos por el usuario (UDT) y soporte del tipo de dato XML. Cliente nativo de SQL es un componente redistribuible de SQL Server 2005. Microsoft .NET Framework: Common Language Runtime Integration Common Language Runtime (CLR) de Microsoft .NET Framework se encuentra ahora embebido en Database Engine de SQL Server. Este medio integrado de CLR soporta objetos procedimentales de la base de datos, incluyendo funciones, procedimientos almacenados, y triggers, escritos en lenguajes .NET, tales como Microsoft Visual C# y Visual Basic .NET. Los lenguajes .NET soportan lógica y características no disponibles en T-SQL, mediante lógica más compleja incorporada a los objetos de una base de datos. Tipos de datos y agregados definidos por el usuario pueden ser escritos en lenguajes .NET para construir tipos de dato más complejos que los disponibles en versiones pasadas. El ambiente de programación CLR está integrado al ambiente de desarrollo de Visual Studio .NET, los desarrolladores usan las mismas herramientas para desarrollar y eliminar errores de los objetos de base de datos. 7. Lo Nuevo de Microsoft SQL Server 2005: Analysis Services 7.1 Mejoras en la experiencia del usuario Estudio del desarrollo de la inteligencia de negocios Analysis Services se integra completamente el ambiente de desarrollo de Microsoft Visual Studio 2005 para crear soluciones end-to-end de inteligencia de negocios. Es posible utilizar el BI Development Studio para crear y mantener los componentes de Analysis Services, tales como fuente de datos relacionados, OLAP, y objetos de minería de datos. SQL Server Management Studio SQL Server Management Studio es un ambiente completamente integrado de gestión para administradores y desarrolladores, reemplazando la funcionalidad del Analysis Manager en versiones anteriores de Analysis Services. Es posible usar el Management Studio para gestionar instancias de Analysis Services, para navegar y para administrar bases de datos y objetos de Analysis Services, y desarrollar, ejecutar, y analizar las expresiones multidimensionales (MDX), extensiones de minería de datos (DMX), y queries y scripts XML para análisis (XMLA). Wizards de Analysis Services Los wizards de Analysis Services se han reajustado para el ambiente del desarrollo proporcionado por el BI Development Studio. Estos wizards permiten mejorar los objetos de Analysis Services rápidamente tal como vistas de la fuente de datos, dimensiones, cubos, y modelos de minería de datos. Adicionalmente, nuevos wizards han sido agregados para permitir al Analysis Services soportar nuevas características. Plantillas de Analysis Services Analysis Services provee templates o plantillas en el BI Development Studio para objetos del Analysis Services como cubos, dimensiones, KPIs o principales indicadores de desempeño, miembros calculados, grupos nombrados, celdas calculadas, acciones, declaraciones de expresiones multidimencionales (MDX), y declaraciones de extensiones de minería de datos (DMX). Analysis Services también provee plantillas en SQL Server Management Studio para queries y declaraciones MDX y DMX. Las plantillas son almacenadas en formatos basados en XML, q permiten definir y crear fácilmente plantillas adicionales. 7.2 Mejoras del servidor Soporte de multi instancias En un computador pueden ser instaladas hasta 50 instancias de Analysis Services para Microsoft SQL Server Enterprise Edition y hasta 16 para otras ediciones de SQL Server 2005. Las versiones anteriores no soportaban múltiples instancias. Soporte XML Analysis Services implementa la especificación XML para análisis (XMLA) 1.1. Toda comunicación con una instancia de Analysis Services es manejada a través de comandos XMLA en mensajes SOAP, en cualquier sesión explícita o implícitamente declarada. Anteriores versiones de SQL Server soportaban XMLA 1.0 solo para el uso de proveedor especial de OLE DB. Soporte de scripting Objetos subordinados y bases de datos en una instancia de Analysis Services pueden ser ilustrados en un script usando Analysis Services Scripting Language (ASSL), con una sintaxis basada en XML usada con XMLA para administrar Analysis Services. Soporte de le nguajes Analysis Services soporta ajuste de lenguajes a nivel de instancia y de base de datos. Es posible especificar el lenguaje durante la instalación de una instancia de SQL Server 2005 y también para cada base de datos, cubo, dimensión y estructuras de minería en una instancia. Adicionalmente, base de datos y objetos subordinados pueden soportar múltiples lenguajes a través del uso de traducciones. Las aplicaciones cliente que especifican un lenguaje para sus sesiones pueden recibir datos y metadatos de un objeto particular en el lenguaje especificado o en el lenguaje por defecto para ese objeto si el lenguaje especificado no está disponible. Soporte de procesamiento Analysis Services provee mayor flexibilidad para procesar cubos, grupos de medidas, particiones, dimensiones, y modelos de minería, incluyendo soporte directo a procesamiento paralelo. Los objetos en una instancia de Analysis Services pueden ser procesados en paralelo en un lote sencillo de transacción. Filas huérfanas de las tablas de hechos Cuando se procesaban tablas de hechos, anteriores versiones de Analysis Services ignoraban filas que contenían un miembro indefinido para una dimensión. Cuando las columnas eran ignoradas, el número total de miembros en el cubo no coincidían con el total esperado para la bodega de datos, agregando información incorrecta a Analysis Services. Ahora Analysis Services puede usar ajustes para cada jerarquía en una dimensión para determinar como manejar filas huérfanas en la tabla de hechos. Tales columnas pueden ser asociadas a un miembro, llamado Unknown o desconocido, cuando en una jerarquía una fila tiene un valor nulo. 7.3 Mejoras en los cubos Indicadores principales de desempeño (KPIs) Analysis Services provee métricas de negocio personalizadas llamados indicadores principales de desempeño (KPIs), que consisten en atributos relevantes y cálculos asociados que generan objetivos y patrones de los estándares de la industria. Una colección de KPIs incluye una medida, un objetivo, propiedades de visualización y varianzas. Las compañías usan KPIs para mejorar el desempeño y la toma de decisiones. Múltiples tablas de hechos Analysis Services ahora soporta múltiples tablas de hechos en un solo cubo a través del uso de un grupo de medidas. Medidas de una sola tabla de hechos son agrupadas en un grupo de medidas, y un cubo puede contener múltiples grupos de medidas. Los grupos de medidas también pueden ser usados para asociar dimensiones con medidas. Las medidas se organizan en un orden jerárquico que el grupo de medidas contiene. Mejoras en Inteligencia de negocios (BI) Analysis Services provee mejoras como conversión de monedas, sobre-escritura de dimensiones, e inteligencia de cuenta y tiempo, todos los cuales son agregados a los cubos. Perspectivas Analysis Services ahora incluye perspectivas, que son subgrupos visibles predefinidos de metadatos de un cubo. Similar a las vistas en SQL Server 2005, una perspectiva puede reducir la complejidad percibida del cubo. El control de perspectivas al igual que los objetos contenidos en un cubo, incluye grupos de medidas, medidas, dimensiones, jerarquías, atributos, KPIs, acciones y cálculos, que son visibles en una aplicación de BI. Las perspectivas se usan especialmente para enfocar puntos de vista específicos en un cubo. Medidas semi-aditivas Analysis Services incluye más soporte para agregación de medidas en algunas dimensiones y otras no. El motor de Analysis Services permite especificar la función de agregación usada en cada dimensión, y entonces inferir la función de agregación apropiada para cada medida basado en el tipo de cuenta de la dimensión. Alternativamente, el usuario puede especificar la función de agregación explícita para cada medida en una dimensión particular. Tipos de cuenta estándar que corresponden a un método de agregación particular pueden ser asignados a diferentes cuentas. Usuarios de negocios pueden diseñar cubos que reflejan la estructura de cuentas de la compañía, sin escribir las fórmulas acostumbradas. 7.4 Mejoras en las dimensiones Atributos En anteriores versiones de Analysis Services, las dimensiones estaban basadas en un nivel de jerarquías. En Analysis Services de SQL Server 2005, las dimensiones están basadas en atributos, los cuales corresponden a las columnas en las tablas de una dimensión. Cada atributo contiene los miembros de una columna perteneciente a una dimensión, por ejemplo ciudades o localidades en la dimensión Geografía, o días y meses en la dimensión Tiempo. Esta nueva arquitectura separa las características estructurales de una dimensión de sus características de navegación; los atributos proveen la estructura y los niveles de navegación para la dimensión. Jerarquías múltiples Analysis Services ahora soporta jerarquías múltiples en una dimensión. Antes, las jerarquías eran separadas en dimensiones, relacionadas a la dimensión principal solo por un nombre. En Analysis Services de SQL Server 2005, las dimensiones no están descritas por su estructura jerárquica, en su lugar, los atributos que puedan ser fácilmente agregados a la jerarquía son usados, y estructuras jerárquicas diferentes pueden ser usadas por una misma dimensión. Relaciones muchos a muchos Analysis Services ahora soporta relaciones muchos a muchos entre tablas de hechos y dimensiones usando tablas de asociación. Las relaciones muchos a muchos entre dimensiones expanden el modelo dimensional más allá del esquema inicial clásico, y soporta analítica más compleja incluso cuando las dimensiones no están directamente relacionadas a una tabla de hechos. Relaciones entre dimensiones de referencia Analysis Services soporta dimensiones de referencia, las cuales están indirectamente acopladas a un grupo de medidas por otra dimensión. Usando relaciones entre dimensiones de referencia, es posible asociar una referencia a un cubo sin crear una dimensión copo de nieve. Se puede encadenar cualquier número de dimensiones de referencia. Relaciones entre tablas de hechos Analysis Services ahora soporta dimensiones de hechos, también conocidas como dimensiones degeneradas, a través del uso de relaciones entre dimensiones de hechos. Estas son dimensiones cuyos atributos fueron sacados de una tabla de hechos. Relaciones entre dimensiones juego de roles Analysis Services ahora soporta relaciones entre dimensiones juego de roles, en las cuales es posible expresar múltiples relaciones entre una dimensión y una tabla de hechos. En anteriores versiones de Analysis Services, cada relación entre una tabla dimensión y una tabla de hechos requería una dimensión separada. Tipos de dimensiones más simples En Analysis Services, el modelo dimensional ha sido simplificado: dos tipos de dimensiones, estándar y enlazada, ahora reemplazan los cuatro tipos existentes en la versión 2000. Una dimensión estándar es una dimensión en la misma base de datos del cubo; una dimensión enlazada está en una base de datos diferente del cubo. Grupos de medidas enlazados y dimensiones En Analysis Services es posible traer datos de diferentes fuentes enlazando cubos a un grupo de medidas en otro cubo que está almacenado en la misma base de datos o en otra en la misma instancia de Analysis Services. Se puede enlazar cubos a una dimensión en otra base de datos. Después de crear este enlace, los objetos de datos y metadatos son compartidos. Tamaño de dimensión virtualmente ilimitado Analysis Services no depende fuertemente del almacenamiento en memoria de dimensiones. Ahora, los datos y metadatos de dimensiones son cargados a memoria solo cuando esta se necesita, y el motor de Analysis Services fácilmente puede manejar dimensiones de tamaño virtualmente sin límite. 7.5 Mejoras en Minería de datos Algoritmo ingenuo de Bayes El algoritmo ingenuo de Bayes es un algoritmo de clasificación que es rápido de construir y trabaja bien en modelos predictivos. Este algoritmo es una buena opción para explorar datos entre columnas de entrada y columnas predecibles, y para descubrir las relaciones entre estas columnas. Algoritmo de asociación El algoritmo de asociación construye reglas que describen cuales ítems aparecen más en una transacción. Se pueden usar estas reglas para predecir la presencia de un ítem basado en la presencia de otro ítem en una transacción. Algoritmo de agrupamiento de secuencia Es una combinación de análisis de secuencia y agrupamiento, identifica grupos de eventos ordenados similares en una secuencia. Es posible usar grupos para predecir el orden probable de eventos en una secuencia basado en características conocidas. Algoritmo de series de tiempo El algoritmo de series de tiempo usa árboles de decisión de regresión lineal para aproximar el análisis de datos relacionados con el tiempo, como una venta mensual o beneficios anuales. Es posible usar los patrones que el algoritmo descubre para predecir valores a futuro. Algoritmo de redes neuronales Crea modelos de minería de clasificación y de regresión para construir una red de multicapa de neuronas, soportando modelos no lineales que son demasiado complejos y derivados de otros algoritmos. Algoritmo de regresión logística Provee soporte de regresión lógica para mayor flexibilidad en el negocio. Mejoras en los algoritmos de árboles de decisión Ahora es posible usar árboles de decisión con un atributo continuo, por ejemplo el tiempo, como columna predecible. Algoritmo de regresión lineal Provee soporte de regresión lineal para mayor flexibilidad en el negocio. Wizard de modelo de minería El wizard de minería de datos define una estructura y un modelo de minería para un proyecto de Analysis Services. Este wizard ayuda a crear nuevas estructuras de minería basadas en cualquier dato relacional o multidimensional que pueda ser modificado después usando Data Mining Designer (Diseñador de minería de datos). Diseñador de minería de datos Se puede usar en el Business Intelligence Development Studio para modificar la estructura de minería y cualquier modelo de minería definido en el wizard. También se puede usar para crear modelos de minería nuevos basados en estructuras de minería, observar modelos de minería, para comparar modelos de minería, y para construir predicciones basadas en modelos de minería. Soporte de Integration Services Algunas tareas han sido agregadas a Integration Services de SQL Server 2005 (SSIS) que pueden ser usadas para crear una solución completa de minería de datos. Usando transformaciones de Integration Services, es posible modificar datos antes de crear el modelo de minería, crear y procesar modelos de minería, y correr queries de predicción contra modelo de minería de datos existentes. 8. Componentes de una base de datos Una base de datos en SQL Server 2005 está compuesta por una colección de tablas almacenadas en un grupo de estructuras de datos. Una tabla contiene una colección de filas, también llamadas registros, y columnas, también llamados atributos. Cada columna en la tabla es diseñada para almacenar un cierto tipo de información, por ejemplo, fechas, nombres, cantidades y números. Las tablas tienen algunos tipos de control como constraints (restricciones), triggers (disparadores), defaults (valores por defecto) y tipos de datos de usuario para requisitos particulares. La integridad referencial es otro tipo de control que asegura que la interrelación entre diferentes tablas sea consistente. Las tablas pueden tener índices que permiten a las filas ser encontradas rápidamente. Una base de datos puede contener también procedimientos que usan T-SQL o código de programación de .NET Framework para ejecutar operaciones con los datos de la base de datos. Estas operaciones incluyen creación de vistas que proveen acceso personalizado a los datos de tablas o a funciones definidas por el usuario que ejecutan cálculos complejos en un subgrupo de filas. 8.1 Archivos de base de datos Las bases de datos de SQL Server 2005 tienen tres tipos de archivos: Archivo Primario Secundario Registro de Transacción (Log) Descripción Contienen información del inicio para la base de datos y puntos a otros archi vos en la base de datos. Datos de usuario y objetos pueden ser almacenados en este archivo o en un archivo secundario de datos. Cada base de datos tiene un archivo primario de datos. Para nombres de archivos primarios de datos, la extensión recomendada es .mdf. Estos son opcionales y definidos por el usuario. Pueden ser usados para extender datos a través de múltiples discos poniendo cada archivo en un disco diferente. Adicionalmente, si una base de datos excede el máximo tamaño de un archivo simple de Windows, es posible usar archivos secundarios de datos entonces la base de datos puede continuar creciendo. Para nombres de archivos secundarios de datos, la extensión recomendada es .ndf. El archivo de registro de transacción contiene la información del registro que es usada para recuperar la base de datos. Para nombres de archivos de registro de transacción, la extensión recomendada es .ldf. Por defecto, los registros de datos y de transacciones son puestos en el mismo drive y ruta, técnica usada en sistema de discos únicos. Pero esto no es óptimo en ambientes de producción, por eso se recomienda dejar los archivos de registros de datos en discos separados. 8.2 Grupos de archivos Cada base de datos tiene un grupo de archivos primario. Este contiene los datos primarios y algunos archivos primarios que no son puestos en otros grupos de archivos. Los grupos de archivo definidos por usuario pueden ser creados para agrupar archivos de datos para fines administrativos, asignación de datos y propósitos de colocación. Por ejemplo, tres archivos Data1.ndf, Data2.ndf y Data3.ndf, pueden ser creados en tres discos, respectivamente, y asignados al grupo de archivos fgroup1. Una tabla puede ser creada específicamente en el grupo de archivos fgroup1. Los queries para datos de una tabla serán separados en los tres discos; mejorando el desempeño. La misma mejora del desempeño puede ser realizada usando un único archivo creado en un RAID (redundant array of independent disks, arreglo redundante de discos independientes) de discos. Todos los archivos de datos son almacenados en grupos de archivos listados en la siguiente tabla: Grupo de Archivo Descripción Contiene el archivo primario. Todas las tablas del sistema están ubicadas en e grupo de archivos primario. Definido por el Algún grupo de archivos que es creado específicamente por el usuario usuario cuando crea o modifica la base de datos. Primario 8.2.1 Grupo de archivos por defecto Cuando algunos objetos son creados en la base de datos sin especificar a que grupo de archivos pertenece, ellos son asignados al grupo de archivos por defecto. En cualquier momento, un grupo de archivos puede ser designado como grupo de archivos por defecto. Los archivos en este grupo pueden ser tan grandes como para contener cualquier nuevo objeto no ubicado en otro grupo de archivos. El grupo primario de archivos es el grupo de archivos por defecto. Este puede ser cambiado usando la declaración ALTER DATABASE. La ubicación para objetos del sistema y tablas se mantiene en el grupo primario de archivos, no en el nuevo grupo de archivos por defecto. 8.2.2 Registros de transacción Cada base de datos en SQL Server 2005 tiene un registro de transacción que graba todos las transacciones y las modificaciones a la base de datos hechas por cada transacción. El registro de transacción es un componente crítico de la base de datos y, si este es una falla del sistema, puede ser la única fuente de datos reciente. El registro de transacción nunca puede ser borrado o movido a menos que el usuario entienda las consecuencias de hacerlo. El registro de transacción soporta las siguientes operaciones: • • • • • Recuperación de transacciones individuales. Recuperación de todas las transacciones incompletas cuando SQL Server ha iniciado. Balanceo de una base de datos restaurada, archivo, grupo de archivos, o página de vuelta al punto de falla. Soporte de replicación transaccional. Soporte de soluciones cuando el servidor está en stand by. 8.3 Definición de los estados de una base de datos La siguiente tabla define los estados de una base de datos: Estado Definición La base de datos está disponible para el acceso. El grupo En línea primario está en línea, aunque la fase de recuperación no se (online) haya completado. La base de datos no está disponible. Una base de datos pasa a estado fuera de línea por una acción explícita del usuario y se mantiene fuera de línea hasta que el usuario realice una acción Fuera de línea adicional. Por ejemplo, la base de datos puede pasar a estado (offline) fuera de línea cuando un archivo es movido a un nuevo disco. La base de datos vuelve entonces a estado en línea después que el paso del archivo se ha completado. Uno o más archivos del grupo primario se están restaurando, o Restaurando uno o más archivos secundarios se están restaurando fuera de línea. La base de datos no está disponible. La base de datos se está recuperando. El proceso de recuperación es transitorio; la base de datos volverá Recuperando automáticamente a estado en línea si la recuperación ha terminado. Si la recuperación falla, la base de datos será sospechosa. La base de datos no está disponible. SQL Server ha encontrado un error de recurso-relacionado durante la recuperación. La base de datos no está dañada, pero Recuperación algunos archivos pueden haberse perdido o las limitaciones de pendiente los recursos del sistema pueden evitar el acceso a la base de datos. Una acción adicional del usuario es requerida para resolver el error y poder terminar el proceso de recuperación. Al menos el grupo de archivos primario es sospechoso y puede estar dañado. La base de datos no puede ser recuperada Sospechosa durante el inicio de SQL Server. La base de datos no está disponible. Una acción adicional del usuario es requerida para Emergencia 8.4 resolver el problema. Los usuarios han modificado la base de datos y la han dejado en estado de emergencia. La base de datos está en modo de único usuario y puede ser reparada o restaurada. La base de datos es marcada como solo lectura READ_ONLY, su acceso se limita a miembros de rol sysadmin. El estado de emergencia es principalmente usada para propósitos de localización de averías. Por ejemplo, una base de datos marcada como sospechosa puede pasar a estado de emergencia. Esto puede permitir al administrador del sistema acceso de solo lectura a la base de datos. Solo miembros del rol sysadmin pueden poner la base de datos en estado de emergencia. Definición de los estados de un archivo En SQL Server 2005 el estado del archivos es independiente del estado de la base de datos. La siguiente tabla define los estados de archivos: Estado Definición El archivo está disponible para todas las operaciones. Los archivos en el grupo primario están siempre en línea si la base de En línea datos a la que pertenecen está en línea. Si un archivo en el grupo primario no está en línea, la base de datos no está en línea y el estado de los archivos secundarios no está definido. El archivo no está disponible para el acceso y puede no estar presente en el disco. Los archivos pasarán a estado fuera de línea por una acción explícita del usuario y permanece así hasta Fuera de línea que el usuario tome alguna acción. Precaución: Un archivo puede pasar a fuera de línea cuando está corrupto, pero este puede ser restaurado. Un archivo fuera de línea solo puede pasar a estado en línea por medio de la restauración de una copia de seguridad del archivo. El archivo se está restaurando. Los archivos entran al estado de restauración por un comando de restauración que afecta el Restaurando archivo entero, no solo una página, y permanece en este estado hasta que se complete la restauración y el archivo se ha recuperado. La recuperación de un archivo ha sido pospuesta. Un archivo entra a este estado automáticamente a raíz de un proceso de Restauración restauración sin finalizar en el cual el archivo no se ha restaurado pendiente ni recuperado. Una acción adicional del usuario es requerida para resolver el error y permitir que el proceso de recuperación se complete. La recuperación del archivo falla durante el proceso de Sospechoso restauración. Si el archivo está en el grupo primario de archivos, Difunto la base de datos es marcada como sospechosa. En otro caso, solo el archivo es sospechoso y la base de datos sigue en línea. El archivo permanecerá en estado sospechoso hasta que esté disponible por alguno de los siguientes métodos: • Restauración y recuperación. • DBCC CHECKDB con REPAIR_ALLOW_DATA_LOSS El archive fue borrado cuando no estaba en línea. Todos los archivos en el grupo de archivos mueren cuando un grupo fuera de línea es removido. 9. Desarrollando un plan para la base de datos El primer paso en la creación de una base de datos es crear un plan que sirva de guía para implementar la base de datos y como una especificación funcional de la base de datos después que esta ha sido implementada. La complejidad y detalle del diseño de bases de datos es dictada por la complejidad y tamaño de la aplicación de bases de datos y de la población de usuarios. La naturaleza y complejidad de una aplicación de bases de datos, y el proceso de planeación de la misma, pueden variar significativamente. Una base de datos puede ser relativamente simple y ser usada solo por una persona, o puede ser muy grande y compleja y designada, por ejemplo, para el manejo todas las transacciones bancarias para miles de clientes. En el primer caso, el diseño de la base de datos puede ser levemente más que unas pocas notas en algún papel. En el otro caso, el diseño puede ser un documento formal con cientos de grandes páginas que contienen cada detalle posible acerca de la base de datos. Sin importar el tamaño y la complejidad, es bueno seguir estos consejos básicos: • • • • • Reunir información Identificar los objetos Modelar los objetos Identificar los tipos de información para cada objeto Identificar las relaciones entre objetos 9.1 Recopilar la información Antes de crear la base de datos, es necesario tener un buen entendimiento del trabajo que se espera cumpla la base de datos. Si la base de datos es para reemplazar un sistema de información en papel o manual, el sistema existente entregará la mayoría de la información necesaria. Es necesario realizar entrevistas con cada uno de los implicados con el sistema para determinar que hacen y que necesitan de la base de datos. Es también importante identificar lo que ellos quisieran que el nuevo sistema hiciera, y también identificar los problemas, las limitaciones, y los cuellos de botella de cualquier sistema existente . En necesario recoger copias de las declaraciones del cliente, listas del inventario, informes de la gerencia, y de cualquier otro documento que sea parte del sistema existente, porque éstos serán útiles en diseñar la base de datos y las interfaces. 9.2 Identificar objetos Durante el proceso de reunir información, es necesario identificar los objetos llave o entidades que serán manejadas por la base de datos. El objeto puede ser una cosa tangible, tal como una persona o un producto, o puede ser algo intangible como una transacción del negocio, un departamento en una compañía, o un período de la nómina de pago. Generalmente hay algunos objetos primarios, y después que estos se identifican, los ítems relacionados llegan a ser visibles. Cada ítem distinto en la base de datos debe tener una tabla correspondiente. 9.3 Modelar objetos Mientras que los objetos en el sistema se identifican, se deben almacenar de una manera que represente el sistema visualmente. Se puede utilizar el modelo de la base de datos como referencia durante la implementación de la base de datos. Para este propósito, los desarrolladores de bases de datos usan herramientas que van más allá del lápiz y papel, o procesadores de texto y programas de hojas de cálculo, y prefieren software creado específicamente para modelar el diseño de bases de datos. Cualquier herramienta que se decida utilizar, es importante mantenerla actualizada. 9.4 Identificar los tipos de información para cada objeto Después que los objetos primarios en la base de datos se hayan identificado como candidatos a tablas, el paso siguiente es identificar los tipos de información que se deben almacenar para cada objeto. Éstas son las columnas en la tabla del objeto. Las columnas en una tabla de la base de datos contienen algunos tipos comunes de información: • Columnas de datos en bruto: Estas columnas almacenan piezas tangibles de información, tal como nombres, determinados por una fuente externa a la base de datos. • • • Columnas categóricas: Estas columnas clasifican o agrupan los datos y almacenan una selección limitada de estos, por ejemplo verdadero/falso, casado/soltero, etc. Identificadores de columnas: Estas columnas proveen un mecanismo para identificar cada ítem almacenado en una tabla. Estas tienen una identificación o número, por ejemplo: id_empleado, codigo_operacion o id_cargo. La columna del identificador es el componente primario usado por los usuarios y el procesamiento interno de la base de datos para acceder a una fila de datos en la tabla. Columnas relacionales o referenciales: Estas columnas establecen un enlace entre la información de una tabla y la información relacionada de otra tabla. 9.5 Identificar las relaciones entre objetos Una de las fortalezas de una base de datos relacional es la capacidad de relacionar o de asociar la información sobre varios ítems en la base de datos. Los tipos aislados de información se pueden almacenar por separado, pero el motor de la base de datos puede combinar datos cuando se requiere. Identificar la relación entre los objetos en el proceso del diseño requiere mirar las tablas, la determinando cómo están lógicamente relacionadas, y agregando columnas relacionadas que establecen un enlace de una tabla a otra.