Carrera Tcnica: Tcnico Universitario en Computacin
Asignatura: Base de Datos
Udelmar Digital UNIDAD I
INTRODUCCION A LAS BASES DE DATOS RELACIONALES Y A MICROSOFT SQL SERVER 2000
Introduccin
Los desarrolladores de SQL Server son responsables del diseo y la implementacin de la base de datos, mientras que los administradores de SQL Server son responsables de las tareas administrativas diarias. Sin embargo, estas tareas se estn haciendo ms parecidas a medida que SQL Server se distribuye con ms amplitud. El material presentado en el captulo I, le brinda una introduccin a las bases de datos as como a los conceptos bsicos de las bases de datos relacionales (incluyendo a SQL Server) Microsoft SQL Server est captando cada vez ms participacin en el mercado y es un sistema de administracin de bases de datos relacionales basado en cliente/servidor. SQL Server 2000 utiliza Transact-SQL como su dialecto del lenguaje SQL. Una base de datos relacional est compuesta de tablas, las cuales contienen columnas y filas de datos. El proceso de dividir una base de datos en tablas relacionadas se conoce como normalizacin. El diseo de una buena base de datos empieza con la comprensin de los requerimientos del cliente para la base de datos. Luego los datos pueden agruparse en tablas. Este mdulo facilitar las herramientas tiles para el estudiante, el tcnico informtico y toda aquella persona que se inicia en el dinmico mundo de la administracin y mantenimiento de Bases de Datos
OBJETIVOS UNIDAD I
Objetivos Generales a) Analizar las bases de datos y las partes que integran un entorno cliente/servidor, su contenido relacionado con las bases de datos. b) Simular la entrevista con un cliente y planificar, el diseo de la base de datos, pasando . por sus diversas etapas de normalizacin.
Objetivos Especficos a) Reconocer y conceptualizar que es una base de dato, su composicin de distintos tipos de objetos: las tablas, los tipos de datos, procedimientos almacenados, funciones, vistas, claves primarias, claves externas.
b) Aplicar las instrucciones de creacin y mantencin de una base de dato (create database) o bien a travs de alguno de los software de la suite de Microsoft Sql Server.
c) Aprender a operar o utilizar los software de Microsoft SQl Server, que impactan directamente, sobre el desarrollo de un proyecto informtico: Enterpriose manager y analizador de consultas
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Los desarrolladores de SQL Server son responsables del diseo y la implementacin de la base de datos, mientras que los administradores de SQL Server son responsables de las tareas administrativas diarias. Sin embargo, estas tareas se estn haciendo ms parecidas a medida que SQL Server se distribuye con ms amplitud.
SQL Server es impresionante!
SQL Server 2000 es el producto principal de Microsoft en cuanto a motores para bases de datos. Es la versin que le sigue a SQL Server 7.0, la versin ms importante realizada por Microsoft a la fecha en relacin con un producto para bases de datos. Microsoft se comprometi a invertir grandes cantidades de dinero en el soporte y la comercializacin de SQL Server 7.0 y est mostrando los resultados de haber realizado ese soporte (y la inversin monetaria) con SQL Server 2000. De acuerdo con el sitio Web de Microsoft, SQL Server 7.0 ha sido el motor para bases de datos preferido en la industria computacional para la plataforma Windows NT/Windows 2000, incluyendo un 68% por ciento del mercado de bases de datos. SQL Server 2000 seguir esta tendencia y aumentar el espacio que ocupa Microsoft en el mercado de bases de datos. SQL Server 2000 ha agregado bastante funcionalidad a SQL Server 7.0 y ha realizado un gran trabajo al pulir caractersticas que tenan sus cimientos en SQL Server 7.0.
SQL Server 2000 puede ejecutarse en Windows NT 4.0 (con el service pack 5 o posteriores), Windows 2000, Windows 98 o Windows ME. Tambin est disponible una versin de SQL Server 2000 para la plataforma Windows E. El historial de precio/ rendimiento de SQL Server ha permitido que muchas compaas tengan el poder que ofrece un RDBMS (sistema de administracin de bases de datos relacionales) a cambio de una fraccin del costo que dicho sistema tuviera unos cuantos aos atrs. SQL Server 2000 tiene el mejor rendimiento, segn las pruebas comparativas realizadas con TPC-C, y tambin el mejor historial de precio y rendimiento. Microsoft SQL Server seguir siendo mejorado durante muchos aos ms con lo cual se puede estar seguro de que es un muy buen producto.
La historia de SQL Server
En la dcada de 1970, IBM invent un lenguaje computacional, diseado especficamente para consultas de bases de datos (preguntas a la base de datos), llamado SQL (lenguaje de Consultas Estructurado). Con el tiempo se ha hecho adicionales al lenguaje, por lo que ahora no slo es un lenguaje para consultas, sino que tambin puede utilizarse para crear bases de datos y administrar la seguridad del motor de bases de datos.
Microsoft desarrollo inicialmente a SQL Server (un producto para bases de datos que comprende el lenguaje SQL) con Sybase Corporation para utilizarlo en la plataforma IBM OS/2. Cuando Microsoft e IBM se separaron, Microsoft dej de trabajar con OS/2 para dar lugar a su nuevo sistema operativo de red, Windows NT Advanced Server. En ese momento, Microsoft decidi seguir desarrollando el motor de SQL Server para Windows NT por s slo. El producto resultante fue Microsoft SQL Server 4.2, que fue actualizado a la versin 4.21. Despus de que Microsoft y Sybase se separaron, Sybase sigui desarrollando su motor de bases de datos para que se ejecutara en Windows NT (el cual se conoce actualmente como Sybase Adaptive Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Server Enterprise), y Microsofte desarroll SQL Server 6.0 luego SQL Server 6.5 , el cual tambin se ejecutaba sobre Windows NT. SQL Server 7.0 introdujo la capacidad de ejecutarse en Windows 95 y Windows 98, adems de en Windows NT.
SQL Server 7.0 fue una separacin considerable del cdigo de Sybase para el equipo de base de datos de Microsoft. Las liberaciones anteriores seguan estando muy relacionadas con Sybase. No obstante, con SQL Server 7.0 Microsoft rescribi y modific dramticamente el cdigo de Sybase. La compaa redise el motor central de bases de datos e introdujo un optimizador de consultas refinado y un motor avanzado para almacenamiento en bases de datos. SQL Server 2000 mejora esta nueva lnea de cdigo, agregando nuevas y considerables caractersticas. Tambin mejora la escalabilidad, confiabilidad y disponibilidad del producto; adems le facilita a usted su trabajo como administrador de bases de datos.
SQL Server 2000 se implementa como servicio en Windows NT Workstation, Windows NT Server, o en cualquier versin de Microsoft Windows 2000. Al instalarse en Windows 98 o Windows ME, SQL Server se ejecuta como aplicacin bajo el usuario actualmente conectado. Las utileras incluidas tales como el administrador corporativo de SQL Server (SQL Server Enterprise Manager ) operan como aplicaciones cliente/servidor ordinarias, de forma que usted puede ejecutarlas desde casi cualquier parte para controlar sus bases de datos de SQL Server.
Un servicio es una aplicacin que Windows NT o Windows 2000 pueden iniciar ya sea automticamente al iniciar, o manualmente bajo demanda. Los servicios en Windows NT/2000 tienen una API (interfaz de programacin de aplicaciones) genrica que puede controlarse por medio de programacin. Los servicios le permiten ejecutar aplicaciones tales como Microsoft SQL Server sin requerir que un usuario est conectado al equipo servidor.
Que es una base de datos
SQL Server utiliza un tipo de base de datos conocido como base de datos relacional. En las bases de datos relacionales la informacin se organiza en tablas. Las tablas se organizan agrupando da tos relacionados con el mismo tema y contienen columnas y filas de informacin. Luego, cuando las bases de datos son solicitadas, el motor de bases de datos las relaciona entre s. Las tablas son muy parecidas a lo que se conoce como relacin o entidad en libros de teora apropiados, pero aqu estamos tratando de ser prcticos.
Por lo general, puede pensar en una base de datos como si fuera una coleccin de datos relacionados. En algunos de los primeros productos de bases de datos, una base de datos era generalmente, slo un archivo, algo as como empleado.dbf, el cual contena una sola tabla de datos. Dentro del archivo empleado.dbf se encontraban columnas relacionadas con los datos del empleado, como el salario, la fecha de contratacin, el nombre, el nmero de seguro social, etc. El archivo contena una fila por cada persona de la compaa, con sus valores correspondientes en las columnas apropiadas. Los ndices, que se utilizaban para agilizar el acceso de datos, se encontraban en un archivo separado, al igual que cualquier elemento relacionado con la seguridad. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
En SQL Server 2000 una base de datos no necesariamente est enlazada a un solo archivo, es ms como un concepto lgico basado en una coleccin de objetos relacionados. Por ejemplo una base de datos en SQL Server no slo contiene los datos puros, sino que tambin contiene la estructura de la base de datos, los ndices, la seguridad de la base de datos y tal vez otros objetos tales como vistas o procedimientos almacenados, relacionados a esa base de datos especfica.
Objeto de una base de datos relacional
Las tablas son los objetos que contienen los tipos de datos y los datos puros en s. Las columnas son las partes de la tabla que guardan los datos. Las columnas deben tener asignado un tipo de dato y un nombre nico. Los tipos de datos son el tipo de almacenamiento bsico de sus datos. Puede elegir de entre varios tipos de datos, como carcter (carcter), numrico (numeric) o fecha (date). A cada columna de una tabla se le asigna un solo tipo de datos. Los procedimientos almacenados son algo as como macros en donde el cdigo de Transact-SQK puede escribirse y guardarse bajo un nombre. Al ejecutar el procedimiento almacenado, en realidad se ejecuta el cdigo de T- SQL dentro del procedimiento. Un uso sera tomar el cdigo de T-SQL que ejecuta un informe semanal, guardarlo como procedimiento almacenado, y de ah en adelante slo ejecutar el procedimiento almacenado para generar el informe. Los procedimientos almacenados tambin se pueden utilizar como mecanismos de seguridad. Las funciones definidas por el usuario son cdigo de Transact-SQL que es muy similar a los procedimientos almacenados. Sin embargo, en sus consultas de bases de datos puede llamar a las funciones para modificar una columna de datos que desee ver, o para que acten como tablas, an cuando se crear de manera programtica y dinmica. Un ejemplo podra ser escribir sus propias funciones de fecha para modificar columnas del tipo de datos fecha/hora (datetime). Los desencadenadores son procedimientos almacenados que se activan ya sea despus o antes de agregar, modificar o eliminar datos de la base de datos. Aseguran que en la base de datos se cumplan las reglas de negocios o cualquier otra regla relacionada con la integridad de los datos. Por ejemplo, un desencadenador puede asegurar que cada libro de una librera tenga asignado un editor vlido. Las vistas son bsicamente consultas guardadas en la base de datos, que pueden referenciar una o muchas tablas. Puede crearlas y guardarlas para poder utilizarlas fcilmente en el futuro. Las vistas por lo general excluyen ciertas columnas de una tabla o vinculan dos o ms tablas. Tambin puede utilizarlas como mecanismos de seguridad. Los ndices pueden ayudar a organizar los datos de forma que las consultas se ejecuten con ms rapidez. El da 13, Como indicar para mejorar el rendimiento se cubren con detalle los ndices. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Las claves primarias, aunque no son objetos en s, son esenciales para las bases de datos relacionales. Hacen que se cumpla la unidad entre filas, proporcionando una manera de identificar nicamente a cualquier elemento que quiera almacenar. Las claves externas son una o ms columnas que hacen referencia a las claves primarias o a las restricciones nicas de otras tablas. SQL Server utiliza claves primarias y externas para relacionar los datos entre s de tablas separadas cuando se realizan consultas. Las restricciones son mecanismos basados en servidor e implementados en el sistema para hacer que se cumpla la integridad de los datos. Las reglas se asignan a columnas de manera que los datos que se introduzcan se apeguen a los estndares que usted establezca. Por ejemplo, puede utilizar reglas para asegurarse de que el nmero telefnico de alguien contenga slo nmero. Las reglas han sido reemplazadas funcionalmente por las restricciones CHECK en SQL Server 2000. Los valores predeterminados puedes establecerse en campos de manera que si no se introducen datos durante una operacin INSERT, se utilicen estos valores predeterminados. Un ejemplo sera establecer el cdigo de rea en la que se encuentra la mayora de sus clientes, lo que le ahorrara escribir el cdigo de rea para los clientes locales. En SQL Server 2000, los valores predeterminados han sido reemplazados funcionalmente por las restricciones DEFAULT.
Diseo de bases de datos relacionales
Esta seccin trata acerca del diseo de bases de datos relacionales, es importante por dos razones:
Tal vez se requiera que usted disee una base de datos relacional Tal vez ya tenga una base de datos relacional, pero requiera comprender por qu se hicieron ciertas decisiones de diseo.
Como administrador de SQL Server, probablemente reciba una base de datos que haya sido diseada por alguien ms; utilizar dicha base de datos no significa que no necesita saber ms acerca del diseo de una base de datos relacional. Conocer acerca de lo que se puede y no se puede hacer en relacin con el diseo de las bases de datos, as como conocer acerca de la normalizacin, puede ayudarle en su trabajo.
Aunque el proceso de disear una buena base de datos relacional podra ocupar mucho tiempo se describen algunos pasos bsicos a considerar:
Analizar la situacin para recopilar informacin acerca de la base de datos propuesta. Tomar decisiones en relacin con las columnas, los tipos de datos y la longitud de los datos. Normalizar los datos en las tablas. Crear la base de datos y las tablas.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Al organizar datos relacionados en tablas relacionadas, debe seguir las reglas de normalizacin, las cuales veremos en breve. El proceso de diseo debe empezar con un buen anlisis de la situacin de negocios y de lo que el cliente trata de lograr. La lluvia de ideas en relacin con las distintas variables y la forma en que encajan en tablas es el siguiente paso. Despus, el proceso avanza al diseo de informes y consultas que beneficien a los usuarios, as como a las dems piezas del diseo incluyendo el acceso a pginas Web.
La siguiente lista de lo que debe y no debe hacer le ayudar durante el proceso de diseo. Recuerde que va a crear una solucin para resolver un problema de negocios, por lo que necesita permanecer enfocado en el problema que va a solucionar y no debe preocuparse demasiado por utilizar los trminos perfectos para describirlo.
DEBE NO DEBE Debe preguntar a los usuraos qu necesitan Debe crear una lista de objetos. Debe mantener los nombres de los objetos cortos pero descriptivos. Debe organizar las propiedades de los objetos en grupos adecuados. Debe crear columnas con nombres idnticos en diferentes tablas para relacionarlas entre s. Estas columnas se convierten en sus claves primarias y externas. Debe probar su diseo con datos de ejemplo. Debe crear al menos un ndice para las tablas que se van a consultar, Debe disear sus tablas teniendo en mente seguridad Debe documentar una convencin estandarizada de nomenclatura para sus objetos de bases de datos. Seguir esta convencin puede simplificar considerablemente el trabajo con sus objetos. Por ejemplo utilice tblEmpleados para un objeto de tabla llamado Empleados y idxApellido para un ndice basado en el apellido, No Debe ignorar a los usuarios (tambin conocidos como clientes). No Debe crear objetos que nunca va a utilizar. No Debe utilizar nombres complejos, nombres con espacios o nombres con caracteres inusuales, ya que son ms difciles de escribir. No Debe tener una columna que contenga ms de un valor. No Debe crear tablas con un nmero muy grande de columnas. No Debe asumir que como su diseo funciona bien con 5 filas, funcionara bien con 500.000. No Debe crear muchos ndices (ms de cinco por tabla) No Debe olvidar establecer la seguridad de sus datos. No Debe perder su documentacin. Entrevista con el cliente
Un buen diseo de una base de datos empieza con una comprensin detallada de la situacin del cliente y los resultados que se desean obtener. Es por ello que las personas que disean nuevos sistemas se conoces como analistas (analizan detalladamente el problema y tratan de averiguar la manera de resolverlo.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Algunas veces una entrevista es la mejor manera de averiguar exactamente lo que el cliente quiere, especialmente si usted no comprende completamente cul es la situacin actual y cul es el objetivo. Para averiguar las necesidades de su cliente utilice preguntas como las que se muestras a continuacin:
Qu est funcionando para usted en estos momentos? Qu partes del sistema actual le gustara reemplazar? Tiene ms informes que desee poder generar? De cules elementos le gustara llevar registro? Los datos son pblicos o privados? Quin necesita acceso a los datos, y qu tipo de acceso debe tener cada usuario o grupo? Desea que los datos se publiquen en Internet? Desea que el pblico pueda buscar informacin por medio de Internet? Cuenta con el suficiente hardware para ejecutar tanto el software cliente como el servidor de bases de datos? Si el dinero y la tecnologa no fueran obstculo, qu le gustara incorporar al nuevo sistema?
Al hacer este tipo de preguntas, puede darse cuenta rpidamente del porqu necesita una base de datos. Aunque tal vez no pueda proporcionarlo todo (dadas las limitaciones del presupuesto, tiempo y hardware asignados), podr comenzar un plan de largo plazo para el crecimiento y la expansin de la base de datos.
Organizacin de los objetos
Despus de la entrevista (hizo buenas anotaciones, o no?), es mejor hacer una lluvia de ideas acerca de los posibles objetos, incluyendo sus nombres, tipos y longitudes. Una vez que decida sobre los objetos, puede agruparlos en tablas relacionadas.
SQL Server soporta varios tipos de datos distintos, incluyendo los de tipo carcter, numrico, de fecha y monetario.
Una vez que decida sobre sus tablas, puede especificar las propiedades (columnas) dentro de estas tablas. Cuide que los nombres de las columnas sean simples pero descriptivos. Las longitudes de las columnas deben satisfacer todos los casos, excepto lo ms extremosos. Al tratar con nombres, tal vez est limitado en el nmero de caracteres que pueden acomodarse en una etiqueta de correo no en cuntos se pueden almacenar.
Normalizacin de los datos.
Una vez que haya decidido sobre las columnas, debe organizar los datos en tablas relacionadas, lo que se conoce como normalizacin de los datos. La normalizacin es el proceso de organizar datos en tablas relacionadas.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital El objetivo de normalizar los datos es eliminar los datos redundantes. Suponga que el mismo cliente compra dos autos. En una base de datos de una sola tabla tendra que escribir dos veces su informacin. Lo que es peor, si el cliente se cambia de direccin, tendra que cambiar la direccin en ambos lugares o de lo contrario sus datos no seran consistentes internamente. Al escribir su informacin una sola vez en una tabla de clientes y al vincular su registro con cualquier compra de autos, no slo elimina los datos redundantes (y algunas veces conflictivos), sino que tambin puede cambiar su registro en una sola ubicacin. La figura 1.1 muestra un ejemplo de cmo podran verse estas tablas. Observe que se han creado tablas separadas para clientes y autos. En la tabla Autos, el campo IDCliente representa el ID de un cliente individual. Como puede ver, Ann posee dos autos y Bob posee un solo auto. Cathy no posee autos todava, pero debido al modelo de base de datos puede registrar este hecho con precisin. Tambin puede mantener el registro de varios autos para Ann y mantener una sola copia de su direccin.
Figura 1.1 Organizacin de variables en una base de datos relacional.
Cliente
IDCliente Nombre Direccin Ciudad etc
1 Ann 123 Cualquier Calle Redmond 2 Bob 947 Main Seattle 3 Cathy 1010 Avenida.. Bellevue
Autos
IDAuto Marca Modelo Ao IDCliente
111AAA Ford Explorer 1999 1 222ABC Honda Civic 2000 1 112ADE Toyota Corolla 1998 2
Para la normalizacin de datos se establecen reglas, las cuales se conocen como primera, segunda y tercera forma s normales:
La Primera Forma Normal (FNF) establece que una columna no puede contener mltiples valores. Por ejemplo, para el nombre de una persona siga la FNF, debe dividirse en apellido paterno, apellido materno y nombre
La Segundo Forma Normal (SNF) establece que toda columna que no sea clave debe depender por completo de la clave primaria, y no slo de una parte de sta. Por ejemplo, si utiliza un ID de cliente y nmero de pieza para una clave, todas las columnas de esa tabla deben aplicarse slo aun cliente y nmero de pieza especficos en conjunto. De esta manera, una descripcin_pieza no perteneca a Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital esta tabla. Para que una tabla est en la Segunda Forma Normal, tambin debe estar en conformidad con la Primera Forma Normal.
La Tercera Forma Normal (TNF), al igual que la SNF, establece que todas las columnas que no sean clave no deben depender de ninguna otra columna que no sea clave. Por ejemplo, si tiene una tabla con direcciones, el cdigo postal no debe depender de ningn otro campo que no sea clave, como el estado. Debe depender de toda la clave primaria. Claro que la tabla tambin debe estar en conformidad con la Segundo Forma Normal. Generalmente, la TNF se viola por conveniencia.
Tambin existen la cuarta y quinta forma normales. La mayora de los desarrolladores de bases de da tos se conforman con cumplir hasta la Tercera Forma Normal.
Creacin de la base de datos y las tablas
Debido a que las tablas son los pilares de las bases de datos, es claro que las tablas bien diseadas (y en consecuencia, sus columnas) son imprescindibles para el xito de las bases de datos. Como la mayora de las cosas, la planeacin y el diseo son la parte difcil; la creacin de la base de datos y de las tablas es la parte fcil. Una tabla est compuesta de columnas que guardan las propiedades de la misma.
SQL Server y el modelo cliente/servidor
Microsoft SQL Server es un motor de bases de datos de tipo cliente/servidor, por lo que es importante que comprenda lo que es el modelo cliente/servidor.
Puede definir una aplicacin cliente/servidor como una aplicacin que est dividida en dos partes: una parte que se ejecuta en un servidor y otra que se ejecuta en estaciones de trabajo o clientes. El lado servidor de la aplicacin proporciona la seguridad, la tolerancia a errores, el rendimiento, la concurrencia y las copias de respaldo confiables. El lado cliente proporciona la interfaz de usuario y puede contener informes, consultas y formularios vacos. La idea es tener lo mejor de ambos mundo al aprovecharlos haciendo que trabajen en conjunto.
SQL Server es la parte servidor de la ecuacin; es posible elegir de entre varios clientes para conectarse a SQL Server, incluyendo las utileras que vienen con SQL Server, como el Analizador de consultas de SQL Server, SQL Server proporciona las siguientes ventajas para clientes y servidores:
Ventajas para el cliente Ventajas para el servidor
Fcil de usar Confiable Soporta varias plataformas de hardware Concurrente Soporta varias aplicaciones de software Bloqueo refinado Familiar para el usuario Tolerancia a errores Control centralizado
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
En la arquitectura tipo cliente/servidor, cuando se ejecuta una consulta, el servidor busca en la base de datos y enva al cliente slo las filas que concuerden. Este proceso no slo ahorra ancho de banda en la red, sino que tambin puede ser ms veloz que hacer que las estaciones de trabajo realicen la consulta siempre y cuando el servidor sea un equipo lo suficientemente poderoso.
Creacin y administracin de bases de datos y archivos de datos.
Esta leccin le mostrar cmo crear, alterar y quitar una base de datos. Al crear una base de datos, se guarda en al menos dos archivos separados. Un archivo contiene los datos, las tablas del sistema y dems objetos de la base de datos; el otro archivo guarda el registro de transacciones. En SQL Server 2000 puede hacer que su base de datos crezca en forma dinmica al especificar opciones de crecimiento del archivo de la base de datos y/o del archivo de registro de transacciones.
Los grupos de archivos son un tema algo complicado, por lo que en esta leccin tambin veremos las generalidades acerca de su uso. En esencia, un grupo de archivos le permite colocar explcitamente objetos de bases de datos tales como tablas e ndices en un archivo (o grupo de archivos) de base de datos especfico. Los grupos de archivos pueden mejorar el mantenimiento de la base de datos ya que permiten realizar una copia de seguridad de slo el grupo de archivos, en lugar de copiar toda una base de datos completa. Los grupos de archivos ofrecen ventajas tanto para la administracin como para el mantenimiento de la base de datos, adems de mejorar potencialmente el rendimiento para instancias ms grandes de SQL Server.
En esta leccin tambin veremos las distintas opciones de configuracin de bases de datos y la manera en que esto afecta a sus bases de datos.
Creacin de una base de datos
Para crear una nueva base de datos en SQL Server, puede utilizar uno de tres mtodos:
El asistente para creacin de bases de datos El administracin corporativo de SQL Server La instruccin CREATE DATABASE
Cuando crea una nueva base de datos, en realidad crea una copia de la base de datos model. Recuerde que todo lo que haya en la base de datos model, incluyendo cualquier opcin de base de datos que usted haya establecido, aparecer en todas las bases de datos que cree. Una vez que cree la base de datos haciendo una copia de la base de datos model, esta ltima se expande al tamao que usted haya indicado y el espacio adicional se llena con pginas de almacenamiento vacas.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Las bases de datos necesitan archivos para guardar fsicamente en disco sus datos. Al crear una nueva base de datos, debe especificar por lo menos un archivo para guardar los datos y las tablas del sistema, y un archivo separado para guardar su registro de transacciones. Su base de datos y registro de transacciones pueden abarcar varios archivos, como se muestra en la figura 1.2. La base de datos comercio de este ejemplo tiene tres archivos de datos separados y un archivo para su registro de transacciones.
Figura 1.2: Una base de datos y un registro de transacciones pueden abarcar varios archivos de base de datos.
Datos Datos Datos Registro E:\Datos\Comercio_Datos.mdf E:\Datos\Comercio_Datos2.mdf E:\Datos\Comercio_Datos3.mdf F:\Logs\Comercio:_Registro1.ldf
En esta seccin desglosaremos la instruccin CREATE DATABASE y conoceremos el significado de cada uno de los parmetros. Cuando comprenda lo que se quiere realizar, veremos cmo crear una base de datos por medio del Administrador corporativo de SQL Server. La instruccin CREATE DATABASE es la siguiente:
En SQL Server 2000, el nico parmetro que necesita incluir para crear una base de datos es el nombre lgico (NAME) de la misma. Aunque es posible crear la base de datos de esta manera en SQL Server 2000 no se recomienda. Se sugiere que incluya los siguientes parmetros como mnimo: nombre lgico de la base de datos, nombre del archivo y tamao para el archivo de datos y nombre de archivo y tamao para el registro de transacciones. La siguiente lista describe los parmetros disponibles en la instruccin CREATE DATABASE. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Nombre_ base_ de_datos: se refiere a la base de datos como un todo. ON PRIMARY: especifica el grupo de archivos del que es miembro este archivo de base de da tos. El grupo de archivos predeterminado es Primary. NAME: especifica el nombre lgico a utilizar dentro de SQL Server para hacer referencia al archivo de base de datos fsico que se encuentra en el disco duro. FILENAME: es el nombre de la ruto y del archivo correspondiente a la ubicacin de los datos en el disco duro. Debe ser un disco duro local. SIZE especifica qu tan grande debe ser el archivo de base de datos. Este valor pede expresarse en megabytes o kilobytes. El tamao predeterminado es el tamao del archivo Model. Para especificar megabytes o kilobytes, agregue el sufijo MB o KB al parmetro de tamao. Por ejemplo, 10MB crea un archivo de 10 megabytes. MAXSIZE: especifica el tamao mximo hasta el que puede crecer dinmicamente la base de datos. Si no especifica un tamao y activa la opcin de crecimiento automtico, su base de datos podra crecer hasta llenar todo su disco duro. Este parmetro tambin se expresa en megabytes o en kilobytes. FILEGROWTH: especifica qu incrementos se utilizan para el crecimiento automtico de este archivo de base de datos. Puede expresarse ya sea como un nmero en megabytes, kilobytes o como un porcentaje del tamao del archivo al momento del crecimiento. El valor predeterminado, en caso de no especificarse otro, es de 1MB. La opcin FILEGROWTH no puede ser mayor que el parmetro MAXSIZE. LOG ON describe la ubicacin de los archivos de registro de transacciones y su tamao. COLLATE: nuevo en SQL Server 2000, especifica la secuencia de intercalacin utilizada para esta base de datos especfica. Debe ser ya sea un nombre de intercalacin de SQL Server o un nombre de intercalacin de Windows. Si no especifica este parmetro, se utiliza el nombre de intercalacin predeterminado de la instancia de SQL Server 2000. Las secuencias de intercalacin tambin pueden especificarse al nivel de tabla y de columna individual. FOR LOAD marca la base de datos con la opcin DBO Use Only. Esta opcin se proporciona por compatibilidad con SQL Server 6.5 solamente, y no debe utilizarse en SQL Server 2000. FOR ATTACH: vuelve a adjuntar un conjunto de archivos que forma una base de datos. Los archivos de la base de datos deben haber sido creados previamente y luego separados de SQL Server 2000.
El listado 1.1 muestra el cdigo necesario para crear una base de datos que empieza reservando 25 MB 20 MB para la porcin de datos de la base de datos y 5 MB para el registro de transacciones. Tambin se utiliza la secuencia de intercalacin predeterminada de SQL Server 2000.
Listado 1.1 : Creacin de una base de datos que reserva 25MB
Entrada USE master GO Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital CREATE DATABASE Rana ON PRIMARY ( NAME =RanaDatos, FILENAME = C:\Archivos de programa\Microsoft SQL Server \MSSQL\Data\RanaLog.kdf, SIZE =5MB, MAXSIZE =15MB. FILEGROWTH =1MB ) GO
Salida El proceso CREATE DATABASE est asignando 20.00 MB en el disco RanaDatos. El proceso CREATE DATABASE est asignando 5.00 MB en el disco RanaLog.
El listado 1.2 muestra la manera de crear una base de datos que abarca varios archivos tanto para los datos como para el registro. Observe que los registros y los archivos de datos utilizan las extensiones sugeridas por Microsoft. El primer archivo de datos debe tener la extensin .MDF, y los archivos de datos subsecuentes tienen la extensin NDF. Los archivos de registro utilizan la extensin. LDF. De nuevo, se utiliza la secuencia de intercalacin predeterminada de SQL Server 2000.
Listado 1.2: Creacin de una base de datos que abarca varios archivos
Entrada USE master GO CREATE DATABASE Saltar ON PRIMARY ( NAME =SaltarDatos1, FILENAME = C:\Archivos de programas\Microsoft SQL Server\MSSQL\Data\SaltarDatos1mdf, SIZE = 5, MAXSIZE =20, FILEGROWTH =1 ), ( NAME =SaltarDatos2, FILENAME = C:\Archivos de programas\Microsoft SQL Server\MSSQL\Data\SaltarDatos2ndf, SIZE = 5, MAXSIZE =20, FILEGROWTH =5 ) LOG ON ( NAME =SaltarLog1, FILENAME = C:\Archivos de programas\Microsoft SQL Server\MSSQL\Data\SaltarLog1.ldf, SIZE = 2, MAXSIZE =20, FILEGROWTH =1 ), ( NAME =SaltarLog2, Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital FILENAME = C:\Archivos de programas\Microsoft SQL Server\MSSQL\Data\SaltarLog2.ldf, SIZE = 2, MAXSIZE =10, FILEGROWTH =2 ), GO
Salida El proceso CREATE DATABASE est asignando 5.00 MB en el disco SaltarDatos1. El proceso CREATE DATABASE est asignando 5.00 MB en el disco SaltarDatos2. El proceso CREATE DATABASE est asignando 2.00 MB en el disco SaltarLog1. El proceso CREATE DATABASE est asignando 5.00 MB en el disco SaltarLog2.
Al especificar el uso de varios archivos de datos, SQL Server reparte automticamente la informacin entre todos los archivos de datos especificados. La reparticin de los datos puede ayudar a reducir la contencin en la base de datos y las situaciones crticas con los datos. Observe que SQL Server nunca reparte los archivos de registro. Estos archivos se llenan con informacin de manera secuencial, y cuando un archivo de registro se llena, los datos se pasan al siguiente archivo de registro de transacciones.
El listado 1.3 muestra cmo crear una base de datos que utiliza una secuencia de intercalacin especificada con el comando COLLATE. En este caso usted indica a SQL Server 2000 que cree una base de datos que utilice la pgina de cdigo Latin1 o pgina de cdigo 1251, orden de diccionario (General), no distinguir maysculas de minsculas (CI) y no distinguir acentos (AI)
Listado 1.3: Creacin de una base de datos que utiliza una secuencia de intercalacin no predeterminada de SQL Server 2000
Entrada USE master GO CREATE DATABASE Nadar ON PRIMARY ( NAME =NadarDatos, FILENAME = C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\NadarDatos.mdf, SIZE =20MB, MAXSIZE =100MB, FILEGROWTH =10MB ) LOG ON ( NAME =NadarLog, FILENAME = C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\NadarLog.ldf, SIZE =5MB, MAXSIZE =15MB, FILEGROWTH =1MB ) COLLATE Latin1_General_CI_AI Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital GO
Salida El proceso CREATE DATABASE est asignando 20.00 MB en el disco NadarDatos, El proceso CREATE DATABASE est asignando 5.00 MB en el disco Nadar Datos.
Tambin puede utilizar el administrador corporativo de SQL Server para crear una nueva base de datos. Siga estos pasos para crear una nueva base de datos:
1.- Inicie el Administrador corporativo de SQL Server seleccionando Inicio| Programas| Microsoft SQL Server | Administrador Corporativo. 2.- Conctese a una instancia de SQL Server. 3.- Expanda la carpeta Bases de datos. 4.- Haga clic con el botn derecho del ratn, ya sea en el icono de la carpeta Bases de datos, o en el espacio en blanco del panel derecho, y elija la opcin Nueva base de datos del men contextual que aparece. 5.- Ahora debe encontrarse en la ficha General del cuadro de dilogo Propiedades de la base de datos. Especifique un nombre para la base de datos (Ejemplo utilizado CROAR). Ahora vaya a la ficha Archivos de datos para ver el nuevo archivo de base de datos llamado Croar_Data con un tamao inicial de 1 MB en la carpeta \Data predeterminada. En la seccin Propiedades de archivo que se encuentra en la parte inferior del cuadro de dilogo, observe que la casilla de verificacin Crecimiento automtico del archivo est marcada y que se han establecido las propiedades Crecimiento de archivo. Adems, el tamao mximo de archivo se establece a la opcin No limitar el crecimiento de los archivos.
6.- Para cambiar las propiedades de los archivos de base de datos, simplemente haga las modificaciones correspondientes. (Yo opt por lo valores predeterminados.) Puede agregar archivos de base de datos adicionales si se dirige al siguiente cuadro que se encuentra debajo de Nombre de archivo y agrega propiedades de archivo adicionales. 7.- Haga clic en la ficha Registro de transacciones. Observe que tiene el nombre predeterminado de Croar_Log y su tamao es de 1MB.
8.- Haga clic en aceptar cuando haya terminado. Si no ve las bases de datos Rana, Saltar o Croar, haga clic con el botn derecho del ratn en la carpeta Bases de datos y seleccione la opcin Actualizar del men contextual que aparece.
Como recopilar informacin de las bases de datos
Como tal vez se lo imagine, puede recopilar informacin acerca de sus bases de datos de varias formas. Puede utilizar el Administrador corporativo de SQL Server, O puede utilizar la herramienta Analizador de consultas de SQL Server y ejecutar algunos procedimientos almacenados del sistema.
Puede utilizar el procedimiento almacenado del sistema sp_helpdb para examinar una base de datos individual, o recopilar informacin en forma de resumen sobre todas las bases de datos de SQL Server. Si ejecuta sp_helpdb sin especificar una Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital base de datos, recibir informacin de resumen sobre todas las bases de datos de SQL Server.
Entrada/Salida
EXEC sp_helpdb
name db_size owner dbid created -------------- ------------- --------------- ------- ------- Croar 2.00 MB SERVIDRONT\Adminsitrador 10 Ene 29 2001 Rana 25.00 MV SERVIDORNT\Administrador 9 Ene 29 2001 Saltar 14.00 MB SERVIDORNT\Administrador 8 Ene 29 2001 Master 13.88 MB sa 1 Ago 6 2000 Model 1.25 MB sa 3 Ago 6 2000 Msdb 14.00 MB sa 4 Ago 6 2000 Northwind 4.25 MB sa 6 Ago 6 2000 Pubs 2.50 MB sa 5 Ago 6 2000 Nadar 25.00 MB sa 7 Ene 29 2001 Tempdb 8.75 MB sa 2 Ene 28 2001
Como puede ver, sp_helpdb le proporciona informacin en forma de resumen acerca de las bases de datos de SQL Server. Por ejemplo, la base de datos Rana tiene un tamao de 25 MB y pertenece al nombre de inicio de sesin SERVIDORNT\Administrador. Para recopilar ms informacin acerca de una sola base de datos, especifique su nombre en la instruccin sp_helpdb, de la siguiente manera:
Entrada/Salida
EXEC sp_helpdb Croar
name dbsize owner dbid created ------- --------- ----------- ------ ---------- Croar 2.00MB SERVIDORNT\Admninistrador 10 Ene 29 2001
name fileid filename ------- ------- ---------- Croar_Data 1 C:\Archivos de programa\MSSQL\data\Croar_Data.MDF Croar_Log 2 C:\Archivos de programa\MSSQL\data\Croar_Log.LDF
Adems de lo que obtiene en la fila Rana mostrada anteriormente, obtiene informacin acerca de los archivos y la forma en que se asignan. Por ejemplo, la salida de la instruccin anterior muestra que el tamao del archivo Croar_Data es de 2MB y que se utiliza slo para datos. Croar_Log tiene un tamao de 1MB y se utiliza slo para el registro de transacciones.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Tambin puede utilizar el Administrador corporativo de SQL Server para recopilar informacin acerca de sus bases de datos. Abra el Administrador corporativo de SQL Server y expanda la carpeta bases de datos. Haga doble clic en una base de datos para que aparezcan las pantallas de edicin mostradas anteriormente. Tambin puede recopilar informacin acerca de una base de datos haciendo clic en la misma en el panel izquierdo, (seleccione la opcin Cuadro de tareas del men Ver). Puede recopilar niveles adicionales de detalle si elige alguna de las opciones que se encuentran bajo los iconos Base de datos, Mantenimiento o Espacio asignado.
Como configurar opciones de bases de datos
Ahora aprender un poco ms acerca de las opciones que puede aplicar a sus bases de datos. Como siempre, puede modificar las opciones de base de datos con procedimientos almacenados en el Analizador de consultas de SQL Server o mediante el Administrador corporativo de SQL Server.
Para ver y modificar opciones de bases de datos utilizando el Administrador corporativo de SQL Server, simplemente busque expandiendo carpetas hasta encontrar la base de datos con la que quiera trabajar (pubs en este ejemplo). Una vez localizada la base de datos, puede hacer doble clic en ella o hacer clic con el botn derecho del ratn y seleccionar la opcin Propiedades del men contextual para hacer que aparezca el cuadro de dilogo Propiedades de pubs. Haga clic en la ficha Opciones para ver las opciones de la base de datos.
Como puede ver, las opciones de la base de datos se dividen en tres categoras: Acceso, Configuracin y Compatibilidad. A continuacin se muestra lo que significa da cada opcin:
Miembros de db_owner; dbcreator o sysadmin: especifica que slo los miembros de la funcin fija de base de datos db_owners puede utilizar la base de datos. Esta opcin se establece por lo general cuando un administrador de bases de datos est realizando trabajo de mantenimiento y no desea que los usuarios ordinarios trabajen en una base de datos (Esta configuracin tambin se conoce como DBO Use Only). Un nico usuario: especifica que slo un usuario a la vez puede tener acceso a esta base de datos. Esta opcin en realidad permite slo una conexin individual de usuario a la base de datos. Por lo general, se utiliza durante la restauracin de una base de datos. Slo lectura: marca la base de datos como de slo lectura, por lo que no se permiten modificaciones. Modelo de recuperacin: determina cunta actividad de registro de transacciones va a ocurrir y qu tipos de recuperaciones de bases de datos pueden realizarse. Las opciones son Completo, Sencillo y Registro masivo. Seleccione la opcin Completo para alcanzar un mximo grado de recuperacin, o Sencillo para el mantenimiento ms simple. NULLANSI predeterminado define las nuevas columnas de las tablas como nulas de manera predeterminada (o NOT NULL). El da 9, Tipos de datos y creacin de tablas, aprender ms acerca de las tablas y columnas. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Desencadenadores recursivos LE PERMITE UTILIZAR DESENCADENADORES RECURSIVOS. Un desencadenador recursivo se da cuando la modificacin de datos en una tabla (vamos a llamarla Tabla A) activa un desencadenador en otra tabla (Tabla B). Luego, esta ltima activa un desencadenador en la Tabla A original. SQL Server 2000 soporta la recursividad hasta un mximo de 32 niveles de anidamiento. Actualizar estadsticas automticamente funciona en conjunto con Crear estadsticas automticamente. Con el tiempo, la informacin de sus columnas cambiar; sin embargo, las estadsticas relacionadas con esas columnas no lo harn. Para mitigar este problema, debe actualizar de vez en cuando sus estadsticas. La opcin Actualizar estadsticas automticamente hace esto por usted de manera automtica. Le sugerimos que tambin habilite esta opcin. Deteccin de pgina rasgada detecta cuando ocurre una escritura parcial en disco (una clase de corrupcin en sus datos). En versiones anteriores de SQL Server, este problema ocurra ms seguido de lo que se esperaba. Desde SQL Server 7.0, las pginas rasgadas no han sido un problema. Cerrar automticamente: conserva recursos en su servidor para una base de datos que no se utiliza con frecuencia. La base de datos se cierra automticamente cuando el ltimo usuario sale de ella. Reducir automticamente los archivos de datos y de registro. Los archivos de registro se reducen de manera automtica una vez realizada la copia de seguridad del registro. Los archivos de base de datos se reducen si una revisin peridica de la base de datos encuentra que sta tiene ms del 25 por ciento de su espacio asignado sin utilizar. El proceso de reduccin automtica reduce su base de datos hasta un tamao que tenga un 25 por ciento de su espacio asignado sin utilizar. Hay que observar que el proceso de reduccin automtica no reduce una base de datos a un tamao menor que su tamao original. Crear estadsticas automticamente genera estadsticas automticamente en relacin con la distribucin de los valores en una columna de datos. El optimizador de consultas SQL Server utiliza esta informacin para generar un plan de consultas con base en el costo de utilizar distingas columnas. Le sugerimos habilitar esta opcin. Utilizar identificadores entre comillas le permite utilizar dobles como parte de un identificad de SQL Server. Un identificador es el nombre de un objeto; puede ser una variable, tabla o cualquier otra cosa. Los identificadores entre comillas son tiles cuando tiene un identificador que tambin es una palabra reservada de SQL o un identificador que contiene un espacio por ejemplo, la tabla Detalles pedido o una tabla llamada Tabla. Nivel de compatibilidad: le permite especificar el nivel de compatibilidad con versiones posteriores que debe soportar esta base de datos. El nivel 80 es para SQL Server 2000 (SQL Server versin 8.0); 70 es para SQL Server 7.0; y 65 y 60 son para SQL Server 6.5 y 6.0 respectivamente.
Tambin puede lograr estas mismas tareas utilizando la herramienta Analizador de consultas de SQL Server y el procedimiento almacenado de sistema llamado sp:dboption. Por ejemplo para restringir el acceso a la base de datos pubs a los miembros de db_owner, dbcreator o sysadmin, puede ejecutar el siguiente cdigo:
Exec sp_dboption pubs, DBO Use Only, TRUE Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Despus de ejecutar este comando, puede verificar que se haya aplicado realmente ejecutando el procedimiento almacenado del sistema sp_dboption de la base de datos pubs. Observe la seccin de estado en el conjunto de resultados: muestra dbo use only. Tambin se estableci la opcin trunc. Log on chkpt. (que viene siendo el valor predeterminado del sistema despus de la instalacin), as como otras ms.
Para desactivar el estado DBO Use Only, slo ejecute el siguiente cdigo:
EXEC sp_dboption pubs, DBO Use Only, False
Al utilizar el procedimiento almacenado sp_boption, puede utilizar siete opciones adicionales que no estn disponibles por medio del Administrador corporativo:
Concat NULL Yields NULL funciona de manera similar a la multiplicacin por cero. Multiplicar por cero siempre produce resultado cero. Concat NULL Yields NULL implica que cualquier cosa que se contacte con NULL produce un valor NULL por ejemplo, Hola programador? +NULL =NULL. Cursor Close on Commit: especifica que cualquier cursor abierto se cierra cuando se completa la transaccin. Un cursor es el conjunto de resultados producido por una consulta.
fault to Local Cursor: especifica que cuando se crea un cursor sin la palabra clave GLOBAL, dicho cursor est disponible slo para el lote local, desencadenador, procedimiento almacenado, etc., que lo haya generado. Merge Publish permite que la base de datos se utilice como publicador en un escenario de duplicacin de mezcla. Offline: cierra y desconecta la base de datos. Una vez que una base de datos se desconecta, puede moverse a un medio removible y distribuirse. Published permite que una base de datos publique artculos para la duplicacin. Subscribed: especifica que esta base de datos ser el recipiente de los datos publicados.
Como cambiar el tamao de su base de datos
Para cambiar las definiciones de archivos y la configuracin de tamao de una base de datos, utilice la instruccin ALTER DATABASE o el Administrador corporativo de SQL Server. Para reducir una base de datos, debe utilizar los comandos DBCC SHRINKDATABASE O DBCC SHRINKFILE. Para agregar grupos de archivos a su base de datos, puede utilizar la instruccin ALTER DATABASE. En esta seccin primero analizaremos el comando ALTER DATABASE y realizaremos algunos cambios a las bases de datos creadas en esta leccin; luego veremos como reducir una base de datos con el comando DBCC SHRINKDATABASE. Terminaremos esta seccin con una breve leccin sobre los grupos de archivos.
La sintaxis de la instruccin ALTER DTABASE es la siguiente:
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Basededatos es el nombre de la base de datos que se va a alterar. ADD FILE especifica un archivo de datos que se va a agregar. Todas las opciones Especificacin_archivo son las mismas especificaciones mostradas anteriormente en los ejemplos de CREATE DATABASE. TO FILEROUP especifica el grupo de archivos en donde se va a agregar este archivo. Si no se especifica ninguno, el archivo se agrega al grupo predeterminado (PRIMARY). ADD LOGFILE agrega un nuevo archivo de registros a la base de datos. REMOVE FILE quita un archivo de la base de datos. El archivo debe estar vaco antes de quitarlo. Puede utilizar el comando DBCC SHRINKFILE con la opcin EMPTYFILE para vaciar una archivo. ADD FILEGROUP agrega un nuevo grupo de archivos. Usted tambin debe especificar el nuevo nombre de grupo de archivo. REMOVE FILEGROUP quita un grupo de archivos y todos los archivos que son miembros de ese grupo. Los archivos dentro del grupo deben estar vacos. Puede utilizar el comando DBCC SHRINKFILE con la opcin EMPTYFILE para vaciar archivos, como lo veremos ms adelante. MODIFY FILE le permite modificar las propiedades de un archivo, incluyendo las opciones nombre_fsico. FILEGROWTH Y MAXSIZE. Si modifica el parmetro MAXSIZE el nuevo tamao debe ser mayor que el actual. Puede cambiar el parmetro FILENAME slo para los archivos que residen en tempdb; este cambio no tiene efecto sino hasta que se reinicie SQL Server. MODIFY NAME cambia el nombre de la base de datos. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital MODIFY FILEGROUP le permite cambiar propiedades del grupo de archivos, incluyendo READONLY, READWRITE Y DEFAULT. SET le permite especificar READONLY, READWRITE Y DEFAULT . El parmetro de terminacin especifica cundo ocurre una cancelacin ya sea ROLLBACK AFTER n SECONDS o ROLLBACK INMEDITE. COLLATE especifica la intercalacin utilizada para la base de datos. Debe ser el nombre de la intercalacin de SQL. Si no se especifica la intercalacin, se utiliza de manera predeterminada la secuencia de intercalacin de SQL Server 2000.
Cmo expandir su base de datos
Puede expandir sus bases de datos agregando archivos para su crecimiento. Puede agregar archivos a la porcin de datos y a la porcin del registro de la base de datos. A menos que desactive especficamente las caractersticas de crecimiento automtico de su base de datos, los archivos de la misma crecen automticamente hasta que se acaba el espacio en disco. Recuerde que los datos guardados en varios archivos de una base de datos se reparten automticamente entre los archivos. Tal vez se pregunta. Si el archivo de base de datos crece automticamente segn sea necesario, para qu quiero crear varios archivos para mis datos? Esto parece entorpecer el mantenimiento de mi base de datos. La respuesta es s, crear varios archivos entorpece un poco el mantenimiento, pero tambin tiene algunas ventajas.
Puede colocar archivos en discos duros fsicamente separados. Puede mejorar el rendimiento, ya que las lecturas y escrituras a la base de datos tienen una mayor probabilidad de dirigirse a controladores de disco separados. Pueden hacerse copias de seguridad independientes de cada uno de los archivos de base de datos Si utiliza grupos de archivos, pueden colocarse porciones especficas de sus datos en archivos especficos. Por ejemplo, la tabla de nmina podra colocarse en su propio grupo de archivos y en su propio archivo.
El listado 1.4 muestra como agregar un nuevo archivo de datos a la base de datos Croar desde el Analizador de consultas de SQL Server.
Listado 1.4 Adicin de un nuevo archivo de datos a la base de datos Croa
Entrada ALTER DATABASE Croar ADD FILE ( NAME =CroarDatos2, FILENAME = C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\CroarDatos2ndf, SIZE =2, MAXSIZE =10 FILEGROWTH =2)
Salida Ampliando la base de datos en 2.00 MB de disco CroarDatos2.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Ahora puede ejecutar el siguiente procedimiento almacenado del sistema llamado sp_helpdb para verificar que su base de datos se haya ampliado con xito:
sp_helpdb Croar
Su base de datos debe ser de 4 MB con los archivos Croar_Data, Croar_Log y CroarDatos2.
Ahora puede extender el archivo de registro de la base de datos:
Entrada ALTER DATABASE Croar ADD LOG FILE (NAME =CroarLog2, FILENAME = C:\Archivos de programa\Microsoft SQL Server \MSSQL\DATA\CroarLog2.ndf , SIZE =2, MAXSIZE =10, FILEGROWTH =2)
Salida Ampliando la base de datos en 2.00 MB de disco CroarLog2.
Verifique sus resultados ejecutando ahora el procedimiento sp_helpdb Croar. Ahora su base de datos debe ser de 6 MB.
Puede lograr casi el mismo resultado utilizando el Administrador corporativo de SQL Server. Siga estos pasos para modificar la base de datos Rana creada anteriormente:
1. Inicie el Administrador corporativo de SQL Server. 2. Expanda la carpeta Bases de datos y abra el cuadro de dilogo Propiedades de la base de datos Rana. (Puede lograrlo haciendo clic con el botn derecho del ratn en la base de datos Rana y seleccionando la opcin Propiedades del men contextual.) 3. Estando en la ficha Archivos de datos del cuadro de dilogo Propiedades de Rana, haga clic en el cuadro vaco que est debajo de RanaDatos y agregue RanaDatos2. 4. En la columna Ubicacin especifique el nuevo nombre de archivo C:\Archivos de programa\Microsoft SQL Server\MSSQL\DATA\RanaDatos2.NDF, o puede tomar el valor predeterminado de RanaDatos2_data.ndf. (Tal vez su letra de unidad y ruta sean distintas.) 5. En la columna Espacio asignado (MB), escriba el nmero 2. 6. Deje el Grupo de archivo como PRIMARY. 7. En la seccin Propiedades de archivo, asegrese de que est marcada la casilla Crecimiento automtico del archivo. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital 8. Establezca la opcin Crecimiento del archivo a En megabytes, y asigne un valor de 2. 9. En la seccin Tamao mximo del archivo, establezca a 4 la opcin Limitar crecimiento de archivo a (MB). 10. Ahora que ha agregado un archivo de datos, vamos a extender tambin el registro de transacciones. En lugar de agregar un nuevo archivo de registro, slo cambie el espacio asignado de 5 MB a 10 MB. 11. Haga clic en Aceptar cuando haya terminado. 12. Para verificar que se haya modificado la base de datos Rana, haga clic en la misma en el panel izquierdo, debajo de la carpeta Bases de Datos del Administrador corporativo. En el panel derecho, vea la seccin espacio asignado. (De nuevo, tal vez necesite elegir la opcin Cuadro de tareas del men Ver),
Como reducir su base de datos
Para reducir toda una base de datos completa, puede utilizar el comando DBCC SHRINKDATABASE con la siguiente sintaxis:
En esta sintaxis: nombre_basededatos es el nombre de la base de datos que se va a reducir. Destino_porcentaje es el espacio libre que debe quedar en la base de datos despus de reducirla. NOTRUNCATE obliga a que se retenga en la base de datos el espacio de archivo liberado. Se ignora el parmetro destino_porcentaje. La opcin predeterminada es devolver el espacio liberado al sistema operativo. TRUNCATEONLY obliga a que el espacio no utilizado en los archivos de datos se devuelva al sistema operativo. Al elegir TRUNCATEONLY se ignora el parmetro destino_porcentaje y todo el espacio libre se devuelve al sistema.
Qu es lo que hace este comando exactamente? Cmo funciona todo esto y qu est sucediendo realmente? En esencia, la instruccin SHRINKDATABASE intenta reducir todos los archivos de datos de la base de datos, dejando su porcentaje de destino como espacio libre. Las pginas utilizadas al final de sus archivos de datos se reubican por debajo del umbral de porcentaje. Por ejemplo, si tiene una base de datos de 10 MB que contiene slo 5 MB de datos, puede establecer su porcentaje de destino en 20. Esto significa que desea dejar un 20 por ciento de su base de datos como espacio libre. Todas las filas ubicadas en la base de datos se reubican, liberando el espacio libre al principio de la base de datos. Este proceso es similar a la desfragmentacin de sus unidades de disco. Como slo tiene 5 MB de datos y desea dejar un 20 por ciento de la base de datos como espacio libre, el 20 por ciento de 5 MB es 1 MB. Por lo tanto, el Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital tamao de su base de datos se cambia a 6MB, y los otros 4MB se devuelven al sistema operativo. Si elige la opcin NOTRUNCATE, los datos se reubican para liberar espacio al final del archivo, pero ele espacio recin liberado se retiene en la base de datos, en lugar de devolverlo al sistema operativo.
La opcin TRUNCATEONLY libera todo el espacio no asignado sin mover datos. Cualquier pgina vaca al final de un archivo se devuelve al sistema.
Puede reducir archivos individuales dentro de su base de datos utilizando la instruccin DBCC SHRINKFILE. Puede utilizar DBCC SHRINKFILE para modificar archivos individuales, en lugar de modificar todos los archivos de una base de datos, como lo hace DBCC SHRINKDATABASE. La sintaxis para la instruccin DBCC SHRINKFILE es la siguiente:
Al utilizar la instruccin DBCC SHRINKFILE, debe especificar ya sea un nombre de archivo de base de datos o su id_ archivo. Puede encontrar el id_archivo ejecutando el procedimiento almacenado del sistema llamado sp_helpdb, como vio anteriormente en la leccin.
El parmetro tamao_destino se utiliza de la misma manera que en las instrucciones SHRINKDATABASE vistas anteriormente. Las instrucciones TRUNCATEONLY y NOTRUNCATE tambin son iguales a las descritas anteriormente. El parmetro EMPTYFILE resulta interesante, ya que reubica cualquier pgina de datos utilizad en el archivo de base de datos actual, envindola a otros archivos de bases de datos que se encuentren dentro del grupo de archivos. Despus de mover todas las pginas, el archivo de base de datos se marca como vaco, y no se permiten guardar datos en l. Esta capacidad puede ser til si desea utilizar el parmetro REMOVE FILE O REMOVE FILEGROUP en la instruccin ALTER DATABASE, ya que se requiere que el archivo est vaco.
El listado 1.5 vaca el archivo RanaDatos2 y utiliza la opcin REMOVE FILE para quitarlo de la base de datos Rana.
Listado 1.5 Cmo vaciar el archivo y utilizar REMOVE FILE
Entrada Use Rana GO DBCC SHRINKFILE (RanaDatos2, EMPTYFILE) GO ALTER DATABASE Rana REMOVE FILE RanaDatos2
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Ejecucin de DBCC completada. Si hay mensajes de error, consulte al administrador del sistema.
El archivo RanaDatos2 se quit.
Como puede ver, RanaDatos2 se vaca primero utilizando la opcin EMPTY FILE. Luego se ejecuta la segunda mitad de la instruccin e proceso por lotes en donde se altera la base de datos y se quita el archivo. Para verificar que se haya quitado el archivo, puede ejecutar EXEC sp_helpdb Rana:
Entrada EXEC sp_helpdb Rana
Salida name db_size owner dbid created status --------- ---------- ----------- ------- ----------------- Rana 30.00MB SERVIDORNT\Aministrado 7 Ene 28 2001 no options set
name fileid filename filegroup --------- ------------------- ---------- RanaDatos 1 C:\Archivos de programa\Microsoft SQL Server\ PRIMARY MSSQL\Data\Ranadatos.mdf RanaLog 2 C:\Archivos de programa\Microsoft SQL Server\ MSSQL\Data\RanaLog.ldf NULL
/ size maxsize growth Usage /---- ---- ------ ------ /20480 KB 102400 KB 10240 KB Data only /10240 KB 15360. KB 1024 KB Log only
Observe que RanaDatos2 ya no est asociado con la base de datos Rana. Si utiliza el Explorador de Windows y se dirige hacia su carpeta\DATA, descubrir que el archivo RanaDatos2.ndf tambin ha sido eliminado del sistema.
Como renombrar una base de datos
Algunas veces podra ser necesario cambiar el nombre de una base de datos. Tal vez se deba a un cambio en la empresa, como la unin de los departamentos de contabilidad y de finanzas, o tal vez usted vaya a mover una base de datos de desarrollo al entorno de produccin. Sin importar la razn por la que necesite cambiar el nombre de una base de datos, ste es un proceso bastante simple.
Para cambiar el nombre de una base de datos, debe ejecutar el procedimiento almacenado del sistema llamado sp. Renamedb:
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital EXEC sp_renamedb nombre_anterior nombre_nuevo
Tenga en mente estas restricciones cuando cambie el nombre de una base de datos:
Para cambiar el nombre de una base de datos, debe ser miembro de la funcin fija de servidor sysadmin. Algunas secuencias de comandos de SQL podran depender del nombre de la base de datos para ejecutarse correctamente. Revise su base de datos en caso de ser as. La base de datos debe encontrarse en modo de un nico usuario. Si cambia el nombre de la base de datos, los nombres de los archivos, as como los de los grupos de archivos, no saldrn afectados. Para ejecutar el procedimiento almacenado del sistema llamado sp_renamedb, de be encontrarse en la base de datos master.
En este ejemplo cambiar el nombre de la base de datos Rana a TsigWa (Tsing Wa significa rana en chino):
Entrada USE master GO EXEC sp_dboption Rana, Single User, True EXEC sp_renamedbRana, TsingWa EXEC sp_dboption TsingWa, Single User, False GO
Salida Se estableci el nombre de b ase de datos, TsingWa
Para verificar que se haya cambiado el nombre, ejecute sp_helpdb (los resultados se abrevian por cuestiones de legibilidad).
Entrada/Salida
EXEC sp_helpdb
Name db_size owner dbid created ------ ---------- ------------- ------- --------- Croar 6.00 MB SERVIDORNT\Administrador 10 Ene 29 2001 Saltar 14.00 MB SERVIDORNT\Administrador 8 Ene 28 2001 Master 13.88 MB sa 1 Ago 6 2000 Model 1.25 MB sa 3 Ago 6 2000 Msdb 14.00 MB sa 4 Ago 6 2000 Northwind 4.25 MB sa 6 Ago 6 2000 Pubs 2.50 MN sa 5 Ago 6 2000 Nada 25.00 MB SERVIDORNT\Administrador 7 Ene 28 2001 Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Tempdb 8.75 MB sa 2 Ago 6 2000 TsingWa 30.00MB SERVIDORNT\Administrador 9 Ene 31 2001
Cmo trabajar con grupos de archivos de bases de datos.
Los grupos de archivos le permiten colocar de manera explcita objetos de base de datos tales como tablas e ndices en un conjunto especfico de archivos de base de datos. Esto puede ser til para su administracin, as como benfico para el rendimiento. Por ejemplo, si no utiliza tecnologa RAID 5, puede colocar tablas especficas, ndices y dems objetos de base de datos en los archivos que sean miembros de ese grupo de archivos. Este mtodo puede mejorar el rendimiento, ya que las lecturas y escrituras en la base de datos pueden realizarse al mismo tiempo en discos duros que estn fsicamente separados. Una ventaja administrativa es que puede realizar copias de seguridad y restaurar archivos individuales en un grupo de archivos o todo el grupo de archivos. Por ejemplo, si tiene una base de datos de 50 GB esparcida en cinco grupos de archivos (de GB cada uno), podra realizar una copia de seguridad de un grupo de archivos distinto cada tarde en lugar de copiar toda la base de datos, y aun as se mantendra la capacidad de recuperacin.
SQL Server utiliza dos tipos de grupos de archivos: PRIMARY (el predeterminado) y definidos por el usuario. El grupo de archivos PRIMARY debe contener el archivo de datos primario y cualquier otro archivo que no se encuentre en ningn otro grupo de archivos. Los grupos de archivos definidos por el usuario se crean cuando se altera la base de datos y se agregan archivos a un grupo de archivos especfico.
Debe tener presente una cuantas reglas cuando trabaje con grupos de archivos.
Un archivo no puede ser miembro de ms de un grupo de archivos. El archivo de datos primario debe residir en el grupo de archivos PRIMARY. Puede asignar tablas, ndices datos de tipo text, ntext e image a un grupo de archivos. Todos los archivos de sistema deben residir en el grupo de archivos PRIMARY o en el archivo primario. Si el grupo de archivos PRIMARY se queda sin espacio, las nuevas pginas de datos no se asignan automticamente a los grupos de archivos definidos por el usuario.
En los siguientes ejemplos crear un nuevo grupo de archivos y le agregar un archivo de datos. Luego alterar de nuevo su base de datos, modificar la propiedad filegroup y convertir dicho grupo en parte del grupo de archivos predeterminado (PRIMARY) Este se crea cuando se crea la base de datos. Cuando se marca un nuevo grupo de archivos como el predeterminando, los nuevos archivos de la base de datos se agregan ah si no se especifica PRIMARY. Completar los ejemplos quitando el grupo de archivos.
Para crear un nuevo grupo de archivos, ejecute lo siguiente: Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Entrada/Salida ALTER DATABASE Saltar ADD FILEGROPU SaltarGrupo1 GO
Comandos completados con xito
Para verificar que el grupo de archivos forme parte de la base de datos Saltar, ejecute el siguiente procedimiento:
Entrada/Salida USE Saltar GO EXEC sp_helpfilegroup
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital SaltarGrupo1 2 1
Puede hacer que el grupo SaltarGrupo1 definido por el usuario forme parte del grupo de archivos predeterminado al modificar su propiedad filegroup. Tambin puede marcar el grupo de archivos como READONLY O READ WRITE. Vea los libros en pantalla de SQL Server para obtener ms informacin acerca de las opciones REAdonly y READWRITE..
Para marcar su nuevo grupo de archivos como el grupo de archivos predeterminado, ejecute lo siguiente
Entrada/Salida USE Saltar GO ALTER DATABASE Saltar MODIFY FILEGROUP SaltarGrupo1 DEFAULT
Se estableci la propiedad DEFAULT del grupo de archivos. Para probar su nuevo grupo de archivos predeterminado, agregue un nuevo archivo de datos sine especificar un grupo de archivos:
Entrada/Salida USE pub GO ALTER DATRABASE Saltar ADD FILE (NAME =SaltarDatosPrueba, FILENAME =C:\Archivos de programa \Microsoft SQL Server\MSQL\DATA\SaltarDatosPrueba.ndf, SIZE =2) GO
Ampliando la base de datos en 2.00 MB de disco SaltarDatosPrueba.
Para ver cules archivos residen en cules grupos, ejecute el procedimiento almacenado sp_helpfile. Para quitar un grupo de a archivos, primero haga que el grupo de archivos PRIMARY sea el determinado. Luego vace los archivos que se encuentran en el grupo de archivos anterior. Una vez que vace los archivos, los puede quitar sin problemas y luego puede quitar el grupo de archivos, como en este ejemplo:
Entrada
USE Saltar GO
ALTER DATABASE Saltar MODIFY FILEGROUP [PRIMARY] DEFAULT GO Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
ALTER DATABASE Saltar REMOVE FILE SaltarDatosG1 GO
ALTER DATABASE Saltar REMOVE FILE SaltarDatosPrueba GO
ALTER DATABASE Saltar REMOVE FILEgroup SaltarGrupo1 GO
Deben aparecer mensajes debido al hecho de que su grupo de archivos SaltarDatoG1 y los archivos contenidos en l tambin se eliminaron. Puede volver a ejecutar sp.helpfile para verificar que realmente se haya eliminado el grupo de archivo y los archivos.
Puede lograr esto por medio del Administrador corporativo de SQL Server en forma muy parecida a la utilizada para crear archivos. Siga estos pasos para crear un nuevo archivo de base de datos y agregarlo a un nuevo grupo de archivos:
1. Vaya hasta la base de datos Croar y abra su cuadro de dilogo de propiedades en la ficha Archivos de datos. 2. Para crear un grupo de archivos y agregarle un archivo, haga clic en el cuadro vaco que est por debajo de CrarDatos2 y agregue CraoarDatosG1. 3. En ubicacin , escriba C:\Archvios de programa\Microsoft SQL Server\MSSQL\Data\CroarDatosG1.ndf. 4. En la columna Espacio asignado (MG), escriba 1. 5. En el cuadro grupo de archivos, agregue CroarGrupo1. 6. Haga clic en aceptar cuando termine. 7. Para verificar, vuelva a abrir el cuadro de dilogo de propiedades de la base de datos Croar y haga clic en la ficha Grupos de archivos. Debe aparecer CroarGrupo1 en la lista, junto con Primary.
Esta seccin ofrece slo una visin general de lo que son los grupos de archivos, y cmo se crean.
Como eliminar una base de datos
Tal vez algunas veces necesite quitar una base de datos de su sistema. Este proceso es algo relativamente simple. Como tal vez haya imaginado, puede quitarla desde el Administrador corporativo de SQL Server y tambin por medio de Transact- SQL Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Antes de quitar una base de datos, tenga en cuenta unas cuantas cosas:
Al quitar una base de datos se quita la informacin de la base de datos de las tablas del sistema, y se quitan los archivos de datos y de registro del sistema. Una base de datos eliminada puede volver a crearse slo mediante su restauracin con una copia de seguridad. No puede haber usuarios en la base de datos al momento de quitarla. Para quitar su base de datos, debe ser miembro de la funcin de base de datos db_owner (o de la funcin de servidor sysadmin). Debe encontrarse en la base de datos master cuando ejecute la instruccin DROP DATABASE
Ahora veremos la sintaxis de DROP DATABASE y un ejemplo:
DROP DATABASE nombre_basededatos, nombre_basededtos2
La instruccin DROP database le permite quitar varias bases de datos a la vez. En este ejemplo quitaremos las bases de datos TsingWa (anteriormente conocida como rana), Croar, Saltar y Nadar. Ejecute este cdigo desde el Analizador de consultas de SQL Server:
Entrada USE MASTER GO DROP DATABASE TsingWa, Croar, Saltar, Nadar GO
Salida Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\Croar_Data.MDF.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\Croar_Log.LDF.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\Croar_Datos2.ndf.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\Croar_Log2.ldf.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\Croar_DatosG1.NDF.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\SaltarLog2.ldf.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\SaltarDatos2.ndf. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\SaltarLog1.ldf.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\SaltarDatos1.mdf.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\NadarLog.ldf.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\NadarDatos.mdf.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\RanaDatos.mdf.
Eliminando el archivo de base de datos C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\RanaLoag .ldf.
Como puede ver, se eliminaron del sistema las bases de datos, as como todos sus archivos de datos asociados. Para verificar, puede ejecutar el procedimiento sp_helpdb.
Tambin puede utilizar el Administrador corporativo de SQL Server para quitar una base de datos. Siga estos pasos:
1. Inicie el Administrador corporativo de SQL Server y vaya hasta la carpeta Bases de datos. 2. Haga clic con el botn derecho del ratn en la base de datos Saltar y selecciones Eliminar del men. contextual. 3. En el cuadro de dilogo de confirmacin Eliminar base de datos, haga clic en S.
Eso es todo. La base de datos ya no forma parte de su sistema. Tambin se eliminan los archivos de bases de datos y de registro