116
5 INSTALACIÓN Y CONFIGURACIÓN DE MICROSOFT SQL SERVER 2000 SISTEMAS SQL SERVER________________________________________________________________96 LA FAMILIA WINDOWS 2000_________________________________________________________99 VERSIONES DE SQL SERVER_________________________________________________________103 CUESTIONES DE SQL SERVER 2000 RELATIVAS AL HARDWARE__________________104 INSTALACIÓN DEL SERVIDOR_______________________________________________________109 ACTUALIZACIÓN DESDE VERSIONES ANTERIORES________________________________117 INSTALACIÓN DEL CLIENTE_________________________________________________________124 SERVICIOS DE SQL SERVER__________________________________________________________125 USO DEL ADMINISTRADOR DE SERVICIOS DE SQL SERVER_______________________126 USO DE SERVICIOS DE WINDOWS 2000____________________________________________127 USO DEL ADMINISTRADOR CORPORATIVO DE SQL SERVER______________________129 ESTRUCTURA DE LAS BASES DE DATOS_____________________________________________133 BASES DE DATOS DEL SISTEMA_____________________________________________________140 CREACIÓN DE BASES DE DATOS_____________________________________________________141 EXAMINAR BASES DE DATOS________________________________________________________147 BORRAR UNA BASE DE DATOS______________________________________________________148 TABLAS EN LAS BASES DE DATOS___________________________________________________149 CREACION DE UNA TABLA MEDIANTE EL ADMINISTRADOR CORPOR.___________159 VALORES PREDETERMINADOS______________________________________________________163 CREACIÓN Y USO DE UN DIAGRAMA DE BD________________________________________168 RESTRICCIONES DE FOREIGN KEY EN LOS DIAGRAMAS DE BD___________________170

Manuel SQL

Embed Size (px)

Citation preview

Page 1: Manuel SQL

5INSTALACIÓN Y CONFIGURACIÓNDE MICROSOFT SQL SERVER 2000

  

SISTEMAS SQL SERVER__________________________________________________96

LA FAMILIA WINDOWS 2000______________________________________________99

VERSIONES DE SQL SERVER____________________________________________103

CUESTIONES DE SQL SERVER 2000 RELATIVAS AL HARDWARE___________104

INSTALACIÓN DEL SERVIDOR___________________________________________109

ACTUALIZACIÓN DESDE VERSIONES ANTERIORES_______________________117

INSTALACIÓN DEL CLIENTE____________________________________________124

SERVICIOS DE SQL SERVER_____________________________________________125

USO DEL ADMINISTRADOR DE SERVICIOS DE SQL SERVER_______________126

USO DE SERVICIOS DE WINDOWS 2000___________________________________127

USO DEL ADMINISTRADOR CORPORATIVO DE SQL SERVER_______________129

ESTRUCTURA DE LAS BASES DE DATOS_________________________________133

BASES DE DATOS DEL SISTEMA_________________________________________140

CREACIÓN DE BASES DE DATOS________________________________________141

EXAMINAR BASES DE DATOS___________________________________________147

BORRAR UNA BASE DE DATOS__________________________________________148

TABLAS EN LAS BASES DE DATOS_______________________________________149

CREACION DE UNA TABLA MEDIANTE EL ADMINISTRADOR CORPOR._____159

VALORES PREDETERMINADOS__________________________________________163

CREACIÓN Y USO DE UN DIAGRAMA DE BD______________________________168

RESTRICCIONES DE FOREIGN KEY EN LOS DIAGRAMAS DE BD___________170  

Page 2: Manuel SQL

Microsoft SQL Server 2000 es un sistema gestor de bases de datos relacionales (SGBDR). Una base de datos relacional proporciona una forma de organizar información almacenándola en tablas de bases de datos. La información relacional se puede agrupar en tablas, y también se pueden definir relaciones entre tablas; de ahí el nombre, base de datos relacional. Los usuarios acceden a la información que está en el servidor a través de una aplicación. Los administradores acceden al servidor directamente para realizar tareas de configuración, administrativas y de mantenimiento de la base de datos. SQL Server es una base de datos dimensionable, lo que quiere decir que puede almacenar cantidades de datos yq ue puede soportar muchos usuarios accediendo a los datos al mismo tiempo. 

SQL Server nació en 1989 y ha cambiado de forma significativa desde entonces. Se han realizado grandes mejoras de dimensionabilidad, la integridad, la facilidad de administración, el rendimiento y as caracterícas del producto. SQL Server se puede utilizar en dos tipos de entornos.   

SISTEMAS SQL SERVER 

Un sistema SQL Server se puede implementar como sistema cliente/servidor o como sistema independiente. El tipo de sistema que se diseñe dependerá del número de usuarios que vayan a acceder a la base de datos simultáneamente y de la clase de trabajo que vayan a realizar. En esta sección se examinan ambos tipos de sistemas.  Sistema cliente/servidor 

El sistema cliente/servidor puede tener una configuración de dos capas o de tres capas. Independientemente de la configuración, el software y las bases de datos de SQL Server residen en un equipo central llamado servidor de bases de datos. Los usuarios tienen equipos independientes llamados clientes. Los usuarios acceden a la base de datos por medio de aplicaciones en sus equipos cliente (en un sistema de dos capas) o a través de aplicaciones que se ejecutan en un equipo independiente conocido como servidor de aplicaciones (en un sistema de tres capas). 

En los sistemas de dos capas los clientes ejecutan una aplicación que accede al servidor de bases de datos directamente por medio de la red. Por lo tanto el cliente ejecuta el código empresarial y el código para presentar los resultados al usuario. Este tipo de cliente se conoce como cliente pesado porque realiza esas dos operaciones. La Figura 1 muestra un ejemplo de un sistema de dos capas. Una configuración de dos capas puede ser útil cuando el número de usuarios es relativamente pequeño, dado que cada conexión de usuario requiere recursos del sistema como memoria y bloqueos. Si se conectan un gran número de usuarios, el rendimiento del sistema decaerá debido a la contención de recursos, en cuyo caso se debería considerar una solución de tres capas. 

Page 3: Manuel SQL

 Como se ha mencionado, una configuración de tres capas involucra a un tercer

equipo llamado servidor de aplicaciones. En este tipo de sistema las únicas tareas del equipo del cliente son la ejecución de código para solicitar las funciones del servidor de aplicaciones y la presentación posterior de los resultados. Este tipo de cliente se denomina cliente ligero. El servidor de aplicaciones ejecuta una aplicación para ejecutar el código empresarial; esta aplicación es multienhebrada, lo que significa que muchos usuarios pueden acceder a ella simultáneamente. El servidor de aplicaciones realiza conexiones al servidor de bases de datos para acceder a la información y devuelve los resultados al cliente. Un ejemplo de este tipo de sistema se muestra en la Figura 2. 

La ventaja de un sistema de tres capas es que se puede permitir que el servidor de aplicaciones organice todas las conexiones cliente al servidor de bases de datos, en lugar de

Page 4: Manuel SQL

dejar que cada cliente realice su propia conexión, lo que desperdicia recursos del servidor de bases de datos. Este concepto se denomina cola de conexiones. La cola de conexiones implica que las solicitudes de los clientes se colocan en un grupo (literalmente, una cola) para esperar la siguiente conexión disponible. Cuando una conexión se libera, puede ser utilizada para la siguiente petición de la cola. En cierto sentido, la cola de conexiones permite regular la cantidad de trabajo que se realiza en el servidor de bases de datos mediante la configuración del número de conexiones que se encuentran en la cola y, así, el número disponible para realizar el trabajo del usuario. (El número de conexiones se puede configurar por software.) Se elimina la necesidad de un gran número de conexiones de usuario que puedan agotar rápidamente los recursos y causar una disminución del rendimiento. Se puede implementar una cola de conexiones utilizando Microsoft Internet Information Server y un software de cola de conexiones como COM+, que es un servicio de componentes que se proporciona con el sistema operativo Microsoft Windows 2000. No entraremos en detalles sobre cómo se utilizan estos productos, porque la programación de aplicaciones queda fuera del ámbito de este libro. 

Algunos sistemas empresariales y sitios Web necesitan más potencia de proceso que el que proporciona un único servidor. SQL Server 2000 proporciona la capacidad de dividir en particiones las tablas a lo largo de múltiples servidores que comparten la carga del proceso de la información.

  

Sistema independiente 

También es posible utilizar SQL Server como servidor de bases de datos independiente que se ejecuta en un equipo de sobremesa o en un portátil. Esto se denomina sistema independiente. Las aplicaciones cliente se ejecutan en la misma máquina que almacena el motor de SQL Server y las bases de datos. En este sistema sólo está implicado un único equipo. Por lo tanto no se realiza ninguna conexión de red del cliente al servidor; el cliente realiza una conexión local a su instalación local de SQL Server. 

El sistema independiente es útil en aquellos casos en los que un único usuario accede a la base de datos o en los que unos pocos usuarios que comparten un equipo acceden a la base de datos en diferentes momentos. Por ejemplo, en una pequeña tienda con un equipo, varios empleados podrían acceder a la base de datos de la tienda para insertar clientes e información de las ventas, pero tendrían que acceder al sistema por turnos. Además, como en este ejemplo, los sistemas independientes son útiles cuando la base o bases de datos son pequeñas.  

Page 5: Manuel SQL

LA FAMILIA WINDOWS 2000

En febrero de 2000, Microsoft difundió para el público la familia de sistemas operativos Microsoft Windows 2000. Esta colección de productos proporciona una plataforma fiable, fácil de usar y segura para Microsoft SQL Server 2000. Aunque Microsoft Windows NT 4 soporta SQL Server 2000, Windows 2000 proporciona un entorno más robusto para los sistemas SQL Server 2000. De hecho, SQL Server 2000 se desarrolló en sistemas que ejecutaban Windows 2000.

 Windows 2000 se encuentra disponible en cuatro ediciones: Windows 2000

Professional, Windows 2000 Server, Windows 2000 Advanced Server y Windows 2000 Datacenter Server. En este capítulo se revisarán algunas de las características de la familia de productos Windows 2000 y algunas de las diferencias entre los cuatro productos. El objetivo de este capítulo es proporcionar tan sólo una visión general, no una descripción en profundidad, de los productos Windows 2000.

 Para obtener una información más detallada sobre Windows 2000 conviene visitar la Web de Microsoft en http://www.microsoft.com/windows2000

  Windows 2000 Professional

 Windows 2000 Professional es el nuevo sistema operativo de Microsoft para

sistemas corporativos de sobremesa y portátiles. Windows 2000 Professional combina las mejores características de Windows 98, como la administración de energía y el reconocimiento de dispositivos Plug and Play, con los puntos fuertes de Windows NT 4, como la fiabilidad y la seguridad. Windows 2000 Professional proporciona a los sistemas de escritorio y portátiles una potencia informática incrementada, a la vez que disminuye el coste total de la propiedad.

  

 Windows 2000 Server

 Windows 2000 Server está construido sobre la base del producto Windows NT 4

Server. Windows 2000 Server integra acceso Web, soporte de aplicaciones, trabajo en red, comunicaciones y servicios de infraestructura en un único producto. También proporciona las funciones básicas para compartir archivos e impresoras. Windows 2000 Server ofrece los servicios de directorio Active Directory, los cuales ayudan en la administración de una red variada y distribuida. Active Directory se trata más adelante en este capítulo.

  

 Windows 2000 Advanced Server

Page 6: Manuel SQL

 Windows 2000 Advanced Server incluye todas las características que aparecen en

Windows 2000 Server y añade componentes para soportar aplicaciones críticas. Advanced Server incluye características como equilibrio de carga de red, agrupamiento y un mayor soporte para el multiprocesamiento simétrico.

  

Windows 2000 Datacenter Server Windows 2000 Datacenter Server es un producto especializado de la familia

Windows 2000 Server. Datacenter Server está diseñado para proporcionar clientes con soporte hardware y software integrado. Datacenter Server lo comercializan, venden y entregan conjuntamente Microsoft y los distribuidores autorizados que integran Datacenter Server con su hardware. Cada sistema hardware que incorpora Datacenter Server debe seguir un riguroso proceso de prueba y certificación. Esta certificación se centra en el sistema completo, no sólo en componentes individuales. Una vez que el sistema está instalado, una nueva organización, llamada Centro de soporte certificado de Microsoft (MCSC, Microsoft Certified Support Center) para Datacenter Server, le da soporte. Expertos en hardware y software tanto de Microsoft como de los distribuidores de hardware conforman la plantilla del MCSC, lo que significa que puede proporcionar un único punto de contacto para todos temas de soporte. El NCSC proporciona los siguientes servicios a los clientes de Datacenter Server:

          Una garantía durante el tiempo de funcionamiento de 99,9 por ciento o superior.

          Servicios de instalación y configuración.

          Evaluaciones de la disponibilidad del sistema.

          Soporte hardware y software 24x7.

          Servicio hardware y software a domicilio.

 Datacenter Server está diseñado para satisfacer las necesidades de alta

disponibilidad y dimensionabilidad del centro de datos de una empresa. Soporta hasta 32 procesadores y 64 gigabytes (GB) de memoria física. Esta dimensionabilidad permite todo tipo de aplicaciones, desde el simple almacenamiento masivo de datos hasta complejas simulaciones de ingeniería.

    Diferencias en la familia de sistemas operativos Windows 2000

 

Page 7: Manuel SQL

La siguiente tabla. resume las diferencias entre los productos Windows 2000.  

  

Windows 2000 Windows 2000 Windows 2000 Windows 2000Professional Server Advanced Server Datacenter Server

 Función SO cliente para equi- SO servidor que pro- SO servidor que pro- SO servidor que pro

pos empresariales de porciona archivos, proporciona soporte para proporciona el soporteescritorio y portátiles impresoras, intranet y aplicaciones y servi- de la línea de nego

trabajo en red cios de comercio cio para grandeselectrónico aplicaciones críticas

 CPUs soportadas 2 4 8 32 

4 GB 4 GB 8 GB 64 GB Agrupamiento Ninguno Ninguno Resolución de fallos Resolución de fallos(clustering) de dos nodos; equili- de cuatro nodos;

brio de carga de red equilibrio de cargade 32 nodos de red de 32 nodos

 Requisitos mínimos CPU compatible con CPU compatible con CPU compatible con CPU compatible condel sistema Pentium a 133 MHz; Pentium a 133 MHz; Pentium a 133 MHz; Pentium a 133

64 MB de RAM; 256 MB de RAM; 256 MB de RAM; MHz; 256 MB de1 GB de espacio de 1 GB de espacio de 1 GB de espacio de RAM; 1 GB dedisco. disco disco espacio de disco

    

Una vez vistos las versiones del SO recomendables para instalar nuestro sistema gestor de BD, es el momento de elegir que versión de sistema gestor instalar. Se puede escoger entre cuatro versiones de Windows 2000 y tres versiones de SQL Server 2000. En esta sección se estudiarán las diferencias entre estas versiones y por qué seleccionar una frente a otra.

 Las cuatro versiones de Windows 2000 están diseñadas para proporcionar el

software adecuado para la aplicación adecuada. Las capacidades de Windows 2000 crecen a medida que se pasa de Windows 2000 Professional a Windows 2000 Server, Windows 2000 Advanced Server y, finalmente, Windows 2000 Datacenter. Las siguientes secciones describen las capacidades de cada versión. Se debería escoger la versión de Windows 2000 que proporcione las capacidades necesarias, en lugar de simplemente adquirir la versión más cara con las mayores capacidades.

  

Windows 2000 Professional Windows 2000 Professional es fundamentalmente la versión de escritorio de

Windows 2000. Por regla general, un sistema que ejecute Windows 2000 Professional sólo aprovechará las ventajas de los componentes para clientes de SQL Server 2000. Sin embargo, si es necesario ejecutar SQL Server en el equipo, se puede instalar la versión Personal Edition de SQL Server 2000. La versión Personal Edition sólo permite acceso local a la base de datos. El acceso desde otros sistemas no está permitido.

Page 8: Manuel SQL

 Nota: Sólo la versión Personal Edition de SQL Server (y los componentes para clientes) se pueden instalar en Windows 2000 Professional.

  

Windows 2000 Server Windows 2000 Server está diseñado como sistema operativo servidor, lo que

significa que la instalación de Windows 2000 Server en un equipo permite a otros sistemas acceder a los recursos de ese equipo. Windows 2000 Server soporta SQL Server 2000 Standard Edition. Windows 2000 Server no soporta sistemas con más de cuatro CPUs y más de 4 gigabytes (GB) de memoria. SQL Server 2000 permite también que clientes remotos accedan a la base de datos.

 Nota: Sólo SQL Server Standard Edition, SQL Server Personal Edition y los componentes para clientes de SQL Server se pueden instalar en equipos que ejecuten Windows 2000 Server.

  

Windows 2000 Advanced Server Windows 2000 Advanced Server es también un sistema operativo servidor. Al igual

que los sistemas que ejecutan Windows 2000 Server, los que ejecutan Windows 2000 Advanced Server permiten a otros sistemas acceder a sus recursos de sistema además de a SQL Server. Además de tener las capacidades de Windows 2000 Server, Windows 2000 Advanced Server soporta hasta ocho CPUs y 8 GB de memoria. Para poder utilizar los Servicios de Cluster Server de Microsoft (MSCS, Microsoft Cluster Services) para soporte de fallos, hay que utilizar Windows 2000 Advanced Server. Además de soportar NSCS, Windows 2000 Advanced Server con SQL Server 2000 soporta la nueva tecnología de clústeres de SQL Server, las vistas distribuidas actualizables.

 Nota: Para utilizar ocho CPUs y 8 GB de memoria con SQL Server 2000, es necesario ejecutar la versión Enterprise Edition de SQL Server. Además, en Windows 2000 Advanced Server se pueden instalar SQL Server Standard Edition, SQL Server Personal Edition y los componentes para clientes de SQL Server.

  

Windows 2000 Datacenter El buque insignia de Windows 2000 es la versión Datacenter Edition. Esta versión

soporta todos los componentes que soportan el resto de ediciones de Windows 2000, además de hasta 64 CPUs y 64 GB de memoria. Windows 2000 Datacenter sólo está disponible a través de distribuidores de hardware. Además de integrar Windows 2000 Datacenter con su hardware, estos distribuidores ofrecen el más alto nivel de soporte

Page 9: Manuel SQL

disponible para Windows 2000. Esta integración proporciona un único punto de contacto para el soporte de Windows 2000 y del hardware. 

Nota: Para utilizar 64 CPUs y 64 GB de memoria en SQL Server 2000, hay que ejecutar la versión Enterprise Edition de SQL Server. Además, en Windows 2000 Datacenter se pueden instalar SQL Server Standard Edition, SQL Server Personal Edition y los componentes para clientes de SQL Server.

VERSIONES DE SQL SERVER Además de las versiones de Windows 2000 entre las que hay que escoger, hay

varias ediciones de SQL Server. Es muy fácil escogerla basándose en la cantidad de memoria y el número de CPUs que es necesario utilizar. Las ediciones de SQL Server se describen aquí.

  Software para clientes

 Los componentes para clientes de SQL Server 2000 consisten en las bibliotecas y

utilidades de red necesarias para acceder a un sistema SQL Server remoto o local. Estos componentes son necesarios para que cualquier sistema acceda a SQL Server, y son idénticos independientemente de la edición de SQL Server instalada.

  

Personal Edition La versión Personal Edition de SQL Server está diseñada para pequeñas bases de

datos a las que se accede localmente en un sistema cliente. SQL Server 2000 Personal Edition no permite que otros equipos obtengan acceso a la base de datos.

  

Standard Edition SQL Server 2000 Standar Edition es una de las dos ediciones servidoras de SQL

Server 2000. La versión Standar Edition funciona de la misma forma que la versión Enterprise Edition, excepto que sólo se puede acceder a un máximo de cuatro CPUs y 4 GB de memoria con la versión Standar Edition.

  

 Enterprise Edition

 La versión Enterprise Edition de SQL Server soporta todas las características y la

funcionalidad de todas las versiones de Windows 2000. SQL Server 2000 Enterprise

Page 10: Manuel SQL

Edition requiere Windows 2000 Advanced Server o Windows 2000 Datacenter. Además, SQL Server 2000 Enterprise Edition soporta clústeres de conmutación por error y vistas distribuidas actualizables.

  

Comparación de las versiones La siguiente tabla. muestra las versiones y capacidades de Windows 2000 y SQL

Server 2000.   

SQL Server 2000 SQL Server 2000 SQL Server 2000Personal Edition Standard Edition Enterprise Edition

 Windows 2000 Profesional Capacidades limitadas N/D N/D

Sin acceso cliente Windows 2000 Server Capacidades limitadas Capacidades de servidor Capacidades de servidor

Sin acceso cliente Hasta 4 CPUs y 2 GB Hasta 4 CPUs y 4 GBde memoria de memoria

 Windows 2000 Advanced Server Capacidades limitadas Capacidades de servidor Capacidades de servidor

Sin acceso cliente Hasta 4 CPUs y 2 GB Hasta 8 CPUs y 8 GBde memoria de memoria

Windows 2000 Datacenter Capacidades limitadas Capacidades de servidor Capacidades de servidorSin acceso cliente Hasta 4 CPUs y 2 GB Hasta 64 CPUs y 64 GB

de memoria de memoria  

 Como se puede observar, hay varias opciones. Se debería considerar

cuidadosamente la decisión de qué adquirir. Una vez instalado en el sistema habrá que partir de cero si se cambia de opinión. 

 

CUESTIONES DE SQL SERVER 2000 RELATIVAS AL HARDWARE 

Después de determinar la versión del sistema operativo y de SQL Server 2000 necesarias, nos queda, exclusivamente, el problema del hardware. SQL Server 2000 debe ejecutarse en un sistema con memoria, velocidad de procesamiento y espacio de disco adecuados. También necesita un plan apropiado de protección del sistema y de la información en el nivel del hardware.

  Las pautas clave para elegir el hardware adecuado para SQL Server son las

siguientes: 

       Memoria: Un mínimo de 256 MB de RAM para la edición Standard y 512 MB de RAM para la edición Enterprise. Esto supera varías veces el requerimiento de memoria mínimo de 32 MB y 64 MB respectivamente; la razón principal para esta necesidad de

Page 11: Manuel SQL

memoria extra es el rendimiento. Juntos, los servicios de SQL Server 2000 y los servicios estándar de Windows 2000 utilizan entre 80 y 100 MB de memoria como base. Las conexiones de usuario consumen aproximadamente 24 KB cada una. Las solicitudes de datos y otros procesos de SQL Server también utilizan memoria, y este consumo de memoria se suma a todos los otros procesos y aplicaciones que se estén ejecutando en el servidor.

         Procesador: SQL Server 2000 sólo se ejecuta en máquinas Intel x86 o

compatibles; no funcionará con procesadores Motorola MIPS R4000, PowerPC o DEC Alpha. SQL Server logra unas altas prestaciones en las pruebas comparativas con Intel Pentium III Xeon a 733 MHz y AMD Athlon a 1000 MHz. Ambos procesadores constituyen un buen punto de partida para un sistema SQL Server medio. Puede lograr importantes mejoras en el rendimiento con una gran cantidad de memoria caché interna del procesador. La mayoría de los procesadores Xeon vienen con 512 KB, 1 MB o 2 MB de memoria caché interna del procesador, y 2 MB de memoria caché permiten conseguir un rendimiento general mucho mejor.

         SMP: SQL Server 2000 permite el uso de multiprocesadores simétricos y puede

procesar consultas complejas en paralelo. Las consultas en paralelo son valiosas solamente cuando hay pocos usuarios en el sistema y se están procesando consultas de gran complejidad. En un sistema dedicado que sólo esté ejecutando SQL Server y dé servicio a menos de 100 usuarios simultáneos, un solo procesador debería ser suficiente. Si el servidor presta servicio a más de 100 usuarios o no funciona en un sistema dedicado, puede que convenga agregar procesadores (o utilizar un sistema que permite añadir procesadores adicionales a medida que crezcan sus necesidades).

         Unidades de disco: La capacidad de almacenamiento de datos que necesite

dependerá totalmente del número y tamaño de las bases de datos a las que el servidor dé servicio. Necesitará suficiente espacio de disco para almacenar toda la información, más el espacio de trabajo, archivos del sistema, memoria virtual, registros de transacciones y, en el caso de un clúster, el disco de quórum. El rendimiento total de E/S es tan importante como la capacidad de la unidad. En la mayoría de los casos, las unidades SCSI (Small Computer System Interface, «interfaz para sistemas informáticos de pequeño tamaño») son más rápidas que las unidades IDE/EIDE (Integrated Device Electronics/Enhanced Integrated Device Electronics, «electrónica de dispositivos integrados/IDE mejorada»), por lo que se recomienda utilizar SCSI. Para un rendimiento óptimo de E/S, la opción recomendada es FC (fiber channel, «canal de fibra») para soluciones de almacenamiento de alta gama. En lugar de utilizar una sola unidad de gran tamaño, debe utilizar, varias unidades más pequeñas, lo que permite configurar la tolerancia a fallos con RAID (Redundant Array of Independent Disks, «matriz redundante de discos independientes»). Se recomienda separar los datos y los registros y colocarlos en unidades distintas. Esto incluye el disco de quórum para los mecanismos de clúster.

 

Page 12: Manuel SQL

       Protección de los datos: Se debe agregar protección contra fallos inesperados de las unidades de disco, utilizando RAID.

 

 Para los datos, utilicese RAID 0 o RAID 5. Para los registros, utilicese RAID 1. RAID 0 (bandas de disco sin paridad) ofrece un buen rendimiento de lectura/escritura, pero cualquier unidad defectuosa significa que SQL Server no podrá continuar funcionando con la base de datos afectada hasta que se sustituya la unidad.    

     

        No hay redundancia         No hay tolerancia a fallos         Si un disco falla la información que

contiene se pierde  

 RAID 1 (espejo de disco) crea copias duplicadas de los datos en unidades separadas, pero la recuperación de la unidad defectuosa normalmente obliga a interrumpir las operaciones mientras se recupera la unidad defectuosa a partir de los registros de transacción o de las copias de seguridad de la base de datos.

Page 13: Manuel SQL

          2 accesos a disco para cada escritura.         Gran tolerancia a fallos y alto

rendimiento.         Usar para el disco del SO.         Usar para el registro de transacciones.         Se recomienda el uso de cache de

escritura. 

  RAID 5 (bandas de disco con paridad) ofrece una buena protección contra fallos de una sola unidad, pero tiene un pobre rendimiento de escritura. Para un rendimiento y tolerancia a fallos óptimos, se recomienda    

            4 accesos a disco para cada escritura.         Usar en volúmenes de solo lectura o

con un porcentaje de escritura no superior al 10%.

        Se recomienda el uso de cache de escritura.

 

 RAID 0 + 1 (también llamado RAID 10), que es una estructura de espejo de disco, con bandas de disco sin paridad.

Page 14: Manuel SQL

    

        2 accesos a disco para cada escritura.         Usar en volumenes con un porcentaje

de escritura superior al 10.         Usar cuando el rendimiento es critico.         Se recomienda el uso de cache de

escritura. 

Page 15: Manuel SQL

         SAI: SQL Server está diseñado para mantener la integridad de la base de datos en

todo momento y puede recuperar la información utilizando los registros de transacciones. Sin embargo, esto no protege el hardware del servidor frente a una pérdida repentina de la alimentación o frente a las sobretensiones. Ambos sucesos pueden dañar seriamente el hardware. Para evitarlo, hay que usar un sistema de alimentación ininterrumpida (SAI). Un SAI dará tiempo para cerrar el sistema en forma apropiada en caso de interrupción del suministro de energía, y también es importante para mantener la integridad de la base de datos cuando el servidor utiliza controladores de memoria caché de escritura diferida.

 

Page 16: Manuel SQL

Este capítulo sirve de guía durante el proceso de instalación teniendo en cuenta la actualización desde versiones anteriores. Finalmente, y para que se pueda utilizar SQL Server en un entorno cliente/servidor, se detalla el proceso de instalación de las utilidades para los equipos cliente.

  

INSTALACIÓN DEL SERVIDOR Hay tres formas de instalar SQL Server. Se puede realizar instalación local, remota o

desatendida. Una instalación local instala SQL Server en el equipo que se está utilizando actualmente. Mediante una instalación remota se puede instalar SQL Server en otro equipo que se encuentre en la red. Una instalación desatendida permite instalar SQL Server sin tener que estar presente para responder a cualquier petición de datos. En vez de eso, se almacenan por adelantado todas las respuestas a las peticiones de datos en un archivo, y el programa de instalación las lee automáticamente cuando las necesita.

 Cada una de las tres opciones de instalación está descrita en este capítulo. Si es la

primera vez que se instala SQL Server 2000, conviene realizar una instalación local antes de intentar cualquiera de las otras dos opciones. De esta forma nos podemos familiarizar con el procedimiento general de instalación

  Instalación local 

Para realizar una instalación local hay que seguir estos simples pasos para tener SQL Server instalado y funcionando en el servidor:

 1. 1.      Introducir el CD de SQL Server en una unidad de CDs. Si el sistema operativo del

servidor está configurado para iniciar automáticamente los CDs, el cuadro de diálogo de la instalación de Microsoft SQL Server 2000 aparecerá, como se muestra en la Figura 5.l. En otro caso, será necesario ejecutar manualmente el programa Autorun.exe (situado en el directorio de más alto nivel del CD).

 

 

Page 17: Manuel SQL

2. 2.      Si no se han instalado los service packs necesarios para el sistema operativo o la versión requerida de Microsoft Internet Explorer, o si simplemente se desea examinar la lista de requisitos previos, hay que pulsar en Requisitos previos de SQL Server 2000 para mostrar el cuadro de dialogo Requisitos previos de SQL Server 2000.

 Hay que pulsar en el sistema operativo apropiado para ver sus requisitos previos, y pulsar después en el requisito previo que se desea instalar. Si ya está cargado todo el software apropiado se puede ir al paso 3.

 Nota: Si es necesario instalar Microsoft Internet Explorer o los service packs requeridos por Microsoft Windows 2000 o Microsoft Windows NT 4, es posible que haya que reiniciar el sistema y volver a ejecutar Autorun.exe antes de poder proceder con la instalación de SQL Server. 

Una vez que se hayan instalado los requisitos previos hay que volver al cuadro de diálogo principal de la instalación pulsando Atrás.

 3. 3.      Pulsar en Componentes de SQL Server 2000 para comenzar la instalación de SQL

Server.  4. 4.      Aparece el cuadro de diálogo Instalar componentes, como se muestra en la Figura

5.2. Hay que pulsar en Instalar Servidor de bases de datos para que comience la instalación de los componentes principales de SQL Server.

 

 5. 5.      Aparece el cuadro de diálogo de bienvenida al Asistente para la instalación de SQL

Server. Si se están ejecutando otros programas sería conveniente cerrarlos. Hay que pulsar en Siguiente para que continúe el proceso de instalación.

 6. 6.      Aparece el cuadro de diálogo Nombre del equipo. Hay que pulsar en Equipo local y

pulsar después Siguiente. 

Page 18: Manuel SQL

7. 7.      Se muestra el cuadro de diálogo Selección de instalación. Hay que pulsar en Crear una nueva instancia de SQL Server y pulsar entonces Siguiente para continuar.

 8. 8.      Aparece el cuadro de diálogo Información del usuario. Hay que comprobar que el

nombre y la empresa son correctos Pulsar Siguiente para continuar. 9. 9.      Se muestra el cuadro de diálogo Contrato de licencia de software. Hay que pulsar Sí

para aceptar el contrato de licencia y continuar con el proceso de instalación. 10. 10.  Aparece el cuadro de diálogo Clave del CD. Hay que introducir la clave de CD de

25 caracteres que se encuentra en la etiqueta amarilla de la funda del CD y pulsar Siguiente.

 11. 11.  Se muestra ahora el cuadro de diálogo Definición de la instalación. Hay que pulsar

Herramientas cliente y servidor y después Siguiente. 12. 12.  Aparece el cuadro de diálogo Nombre de instancia. Si se desea dar nombre a esta

instancia de SQL Server de forma distinta a la predeterminada, hay que deshabilitar la casilla de verificación Predeterminada y escribir el nombre deseado. Hay que pulsar Siguiente para continuar con el proceso de instalación.

 13. 13.  Aparece el cuadro de diálogo Tipo de instalación, como se muestra en la Figura 5.3.

Se puede seleccionar instalación Típica, Mínima o Personalizada. La instalación Típica incluye todas las opciones excepto las Herramientas de desarrollo y las opciones de Búsqueda de texto. La instalación Personalizada permite añadir esas opciones además de eliminar algunas no deseadas. La instalación mínima es equivalente a la Típica sin las opciones Herramientas de actualización, Libros en pantalla y Herramientas de administración.

 

 

Page 19: Manuel SQL

En muchos casos se querrá realizar una instalación Típica, por lo que pulsaremos Típica en la instalación de práctica. También se puede especificar dónde instalar el programa y los archivos de datos de SQL Server pulsando en los botones Examinar del grupo Carpeta de destino. Hay que pulsar Siguiente para continuar.

 14. 14.  Aparece el cuadro de diálogo Cuentas de servicios, como se muestra en la Figura

5.4. Se puede utilizar o bien una cuenta de usuario de Windows NT o Windows 2000, o la cuenta Administrador. En cualquier caso, la cuenta debe tener el permiso Inicio de sesión como servicio. Si no se está seguro sobre cómo crear estas cuentas de usuario, conviene consultar al administrador o la documentación de Windows NT o Windows 2000. Hay que escribir el nombre y la contraseña de la cuenta creada para el servicio SQL Server en los cuadros de textos apropiados. Si se está instalando SQL Server en una estación de trabajo independiente, hay que pulsar Utilizar la cuenta del sistema local. Hay que pulsar Siguiente para continuar.

 

. 15. 15.  A continuación aparece el cuadro de diálogo Modo de autenticación, como se

muestra en la figura 5.5. Este cuadro de diálogo determina el nivel de seguridad de la instalación de SQL Server. Se puede escoger Modo de autenticación de Windows o Modo mixto. Si se selecciona Modo de autenticación de Windows, todos los permisos de usuario sobre la base de datos se heredarán de la Configuración de seguridad de Windows. Si se selecciona mixto, habrá que establecer una contraseña para la cuenta sa, o administrador del sistema (system administrator) de SQL Server. Se puede optar por dejar esta contraseña en o, pero haciendo eso disminuirá gravemente la seguridad de la instalación de SQL Server. Después de seleccionar un modo de autenticación hay que pulsar Siguiente para continuar

 

Page 20: Manuel SQL

 16. 16.  Aparece el cuadro de diálogo Iniciar la copia de archivos. Hay que pulsar Siguiente

para continuar. 17. 17.  Se muestra el cuadro de diálogo de modo de licencia. Hay dos opciones para

otorgar licencias a los clientes de SQL Server. Se pueden licenciar clientes por puesto o por procesador. Las licencias por puesto requieren una Licencia de acceso de cliente para cada equipo cliente que accederá al servidor. Una vez que se otorga una licencia a un equipo, puede acceder a cualquier equipo de la red que ejecute SQL Server 2000 sin cargo adicional. Las licencias por procesador requieren una licencia para cada procesador en el que se ejecutará SQL Server. Por ejemplo, si se ejecuta SQL Server en una máquina con cuatro procesadores, es necesario adquirir cuatro licencias de procesador para utilizar los cuatro procesadores. Se podría optar por limitar SQL Server a tan sólo dos de los cuatro procesadores. En ese caso sólo sería necesario adquirir dos licencias de procesador.

 Después de adquirir el número apropiado de licencias de procesador se pueden

conectar un número ilimitado de clientes. 

Hay que pulsar Continuar para comenzar la instalación de la aplicación y los archivos de datos de SQL Server. SQL Server instalará los archivos requeridos en el sistema y configurará los componentes necesarios. La instalación tardará tan sólo unos pocos minutos, o podría durar más, dependiendo de la velocidad del sistema.

 18. 18.  Una vez que la instalación está completa, se muestra el cuadro de diálogo Fin de la

instalación. Hay que pulsar Finalizar para completar el proceso de instalación.   Instalación remota

Page 21: Manuel SQL

 Si se sea utilizar el equipo para instalar SQL Server en un servidor de la red, habrá

que realizar una instalación remota. Una instalación remota difiere ligeramente de una instalación local. Los siguientes pasos detallan la forma de realizar una instalación remota.

 1. 1.       Realizar los pasos del 1 al 5 de las instrucciones para una instalación local. 2. 2.       En el cuadro de diálogo Nombre del equipo hay que pulsar en Equipo remoto y

escribir el nombre del equipo del sistema remoto. Pulsar Siguiente para continuar. 3. 3.       Aparece el cuadro de diálogo Selección de instalación de SQL Server 2000. Hay

que pulsar Crear una nueva instancia de SQL Server y después Siguiente para continuar.

 4. 4.       Se muestra ahora el cuadro de diálogo Información del usuario. Hay que verificar

que el nombre y el de la compañía son correctos. Pulsar Siguiente para continuar. 5. 5.       Aparece el cuadro de diálogo Contrato de licencia de software. Hay que pulsar Sí

para aceptar el contrato de licencia y continuar con el proceso de instalación. 6. 6.       Se muestra el cuadro de diálogo Clave del CD. Hay que introducir la clave de CD

de 25 caracteres que se encuentra en la etiqueta amarilla de la funda del CD y pulsar siguiente.

 7. 7.       Se muestra el cuadro de diálogo Información para la instalación remota, como se

muestra en la Figura 5.6. 

 Hay que escribir el nombre de cuenta, la contraseña y el dominio del equipo

dónde se desea instalar SQL Server. Hay que asegurarse de que la cuenta que se utiliza tiene autoridad para instalar software en el equipo. También hay que escribir en el cuadro de texto Ruta de acceso destino la ruta de acceso para la instalación en el equipo

Page 22: Manuel SQL

remoto. La ruta de acceso para la instalación debe de estar en el formato del Convenio de nomenclatura universal (UNC, Universal Naming Convention), por ejemplo, \\servidorremoto\c$\Archivos de programa\Microsoft SQL Server. Pulsar Siguiente para continuar.

 8. 8.       Aparece el cuadro de diálogo Definición de instalación. Hay que pulsar

Herramientas cliente y servidor y pulsar después Siguiente 9. 9.       Se muestra el cuadro de diálogo Nombre de instancia. Si se desea dar nombre a

esta instancia de SQL Server de forma distinta a la predeterminada, hay que deshabilitar la casilla de verificación Predeterminada y escribir el nombre deseado. Hay que pulsar Siguiente para continuar con el proceso de instalación.

 10. 10.   Aparece el cuadro de diálogo Tipo de instalación. Al igual que en la instalación

local, en la instalación remota se puede seleccionar instalación Típica, Mínima o Personalizada. La instalación Típica incluye todas las opciones excepto las Herramientas de desarrollo y las opciones de Búsqueda de texto. La instalación Personalizada permite añadir esas opciones además de eliminar algunas no deseadas. La instalación mínima es equivalente a la Típica sin las opciones Herramientas de actualización, Libros en pantalla y Herramientas de administración.

 En muchos casos se querrá realizar una instalación Típica, por lo que pulsaremos

Típica en la instalación de práctica. También se puede especificar dónde instalar el programa y los archivos de datos de SQL Server pulsando en los botones Examinar del grupo Carpeta de destino. Hay que pulsar Siguiente para continuar.

 11. 11.   Aparece el cuadro de diálogo Cuentas de servicios, como se mostraba en la Figura

7.4. Hay que escribir el nombre y la contraseña de la cuenta creada para el servicio SQL Server en los cuadros de textos apropiados. (Si no se creó una cuenta independiente se puede utilizar la cuenta Administrador de Windows NT o Windows 2000.) Hay que pulsar Siguiente para continuar.

 12. 12.   A continuación aparece el cuadro de diálogo Modo de autenticación. Este cuadro

de diálogo determina el nivel de seguridad de la instalación de SQL Server. Se puede escoger Modo de autenticación de Windows o Modo mixto. Cuando se selecciona Modo de autenticación de Windows, todos los permisos de usuario sobre la base de datos se heredan de la Configuración de seguridad de Windows. Si se selecciona Modo mixto, se puede definir y administrar la seguridad de la base de datos de forma independiente. Si se selecciona Modo mixto, habrá que establecer una contraseña para la cuenta del administrador del sistema («sa» en el cuadro de diálogo) de SQL Server. Se puede optar por dejar esta contraseña en blanco, pero haciendo eso disminuirá gravemente la seguridad de la instalación de SQL Server. Después de seleccionar un modo de autenticación hay que pulsar Siguiente para continuar.

 

Page 23: Manuel SQL

13. 13.   Se muestra el cuadro de diálogo de modo de licencia. Como en la instalación local, en la instalación remota hay dos opciones para otorgar licencias a los clientes de SQL Server. Se pueden licenciar clientes por puesto o por procesador. Consúltese el paso 16 del procedimiento de instalación local para más información sobre los dos métodos de licencias.

 14. 14.   Una vez que el proceso de instalación se haya conectado al equipo remoto y haya

verificado que se ha podido establecer la conexión, se realizará la instalación remota de la misma forma que lo hizo la local. Todas las selecciones y opciones se escogen de la misma forma que en la instalación local.

 Durante el proceso de instalación remota de SQL Server, SQL Server crea un archivo

llamado Sqlstp.log. Este archivo se encuentra en la carpeta %Systemroot% en un sistema Windows NT o Windows 2000. La carpeta %Systemroot% es normalmente C:\Winnt. Este archivo enumera cada paso ejecutado además de cualquier error o problema que haya encontrado el proceso de Instalación. Si, por casualidad, falla la instalación remota, este archivo puede ayudar en el proceso de solución de problemas.

Instalación desatendida SQL Server proporciona utilidades que permiten automatizar el proceso de

instalación. Estas utilidades permiten realizar una instalación sin estar presente, lo que resulta especialmente útil cuando se instala SQL Server en un gran número de servidores. Los pasos para crear una instalación desatendida son los siguientes: 1. 1.      Desde la línea de comandos hay que cambiar el directorio a la unidad de CD-ROM. 2. Ejecutar uno de los archivos de procesamiento por lotes (.bat) que se han proporcionado para la instalación desatendida. Estos archivos son los siguientes:

 Sqlins.bat, para realizar una instalación Típica de SQL Server en Windows 95/98,

Windows NT o Windows 2000. Este archivo de procesamiento por lotes utiliza el archivo de inicialización Sqlins.iss.

 Sqlcst.bat, para realizar una instalación Personalizada de SQL Server en

Windows 95/98, Windows NT o Windows 2000. Este archivo de procesamiento por lotes utiliza el archivo de inicialización Sqlcst.iss.

 Sqlcli.bat, para instalar las utilidades para clientes. Estas utilidades se instalan

utilizando el archivo de inicialización Sqlcli.iss. Las utilidades para clientes se instalan en la carpeta C:\Archivos de programa\Microsoft SQL Server\80.

 Sqlrem.bat, para eliminar todos los componentes de SQL Server del sistema. Se

debe especificar la carpeta de instalación de SQL Server como parámetro.

Page 24: Manuel SQL

 Antes de ejecutar el archivo de procesamiento por lotes apropiado se puede

personalizar el archivo iss asociado para sistemas particulares. Por ejemplo, se puede cambiar el modo de licencia del predeterminado por servidor a por puesto. Para llevar esto a cabo se debería modificar la sección [License] del archivo iss apropiado cambiando LicenseMode=PERSERVER por LicenseMode=PERSEAT.

  

ACTUALIZACIÓN DESDE VERSIONES ANTERIORES Si el sitio ya contiene datos de Microsoft SQL Server 6.5 o Microsoft SQL Server 7,

se puede actualizar la información a SQL Server 2000 de forma sencilla. Para actualizar instalaciones de SQL Server 6.5 se utilizará el Asistente para la actualización de SQL Server. Las instalaciones de SQL Server 7 se actualizan automáticamente durante el proceso de instalación de SQL Server 2000.

  Actualización de SQL Server 7 a SQL Server 2000

 El proceso que actualiza los datos de SQL Server 7 al formato de SQL Server 2000 es

un componente incorporado en la instalación de SQL Server 2000. Una vez que se ha completado el proceso de instalación, SQL Server 2000 ejecuta una serie de secuencias de comandos de actualización sobre los datos de SQL Server 7. Dependiendo del número de Datacenter Server y tablas que se estén actualizando, este proceso puede llevar algún tiempo. Se mostrarán mensajes de estado a medida que progresa el proceso de actualización.

  

Actualización de SQL Server 6.5 a SQL Server 2000 Antes de iniciar el Asistente para la actualización de SQL Server para actualizar los

datos de SQL Server 6.5 al formato de SQL Server 2000, será necesario comprobar que los elementos de la siguiente lista de comprobación son correctos para la instalación de SQL Server 6.5:

          Comprobar que el parámetro user_connections de sp_configure tiene un valor en

tiempo de ejecución de al menos 25. Las nuevas bibliotecas de red pueden requerir mas de las 15 conexiones predeterminadas para realizar la actualización.

          Asegurar que hay copia de seguridad de todos los archivos de datos de SQL Server

6.5, incluyendo la base de datos master. 

Page 25: Manuel SQL

        Ejecutar todas las comprobaciones de consistencia de la base de datos (por medio de DBCC) en las bases de datos de SQL Server 6.5 para asegurarse de que se encuentran en estado coherente.

          Establecer tempdb en, al menos, 10 megabytes (MB). El tamaño recomendado es 25

MB, pero 10MB serán suficientes.          Deshabilitar todos los procedimientos almacenados de inicio que haya activos.          Detener todos los servicios de duplicación y asegurarse de que el registro de

duplicación está vacío.           Instalar Service Pack 3 para SQL Server 6.5 o posterior, si no lo está ya. 

Para actualizar la información de SQL Server 6.5 a los formatos de SQL Server 2000 (después de haber instalado SQL Server 2000) hay que completar los siguientes pasos:

 1. 1.      Pulsar Inicio, apuntar a Programas, después a Microsoft SQL Server-conmutador y

pulsar Asistente para actualización de SQL Server para mostrar la pantalla de bienvenida del Asistente para actualización de SQL Server, como se muestra en la Figura 5.7. Pulsar Siguiente para comenzar el proceso de actualización.

 2. 2.      Aparece la pantalla Transferencia de datos y objetos del Asistente para

actualización de SQL Server, como se muestra en la Figura 5.8. De forma predeterminada, el Asistente para actualización de SQL Server convertirá todos los objetos y datos de la base de datos del formato de SQL Server 6.5 al de SQL Server 2000. Para comprobar que esta conversión se realiza con éxito hay que seleccionar la casilla de verificación Validar la transferencia correcta de datos de objetos. La comprobación puede consumir mucho tiempo, pero es mejor realizar esta selección.

Page 26: Manuel SQL

 Si hay preocupación sobre la consistencia de la información convertida, se puede

seleccionar, la casilla de verificación Comprobación exhaustiva de la integridad de los datos. Esta opción provocará que el proceso de conversión dure aún más pero asegurará el más alto nivel de integridad. Si no se ha ejecutado recientemente DBCC de SQL Server 6.x, se debería seleccionar esta opción para asegurar que la corrupción de la base de datos no afectará al proceso de conversión. Si se dispone de una unidad de cintas presente en el sistema, se proporcionará una opción para utilizar cintas en lugar de canalizaciones con nombre como método de transferencia de datos. Hay que pulsar Siguiente para continuar.

 

 3. 3.      La pantalla Inicio de sesión del Asistente para actualización de SQL Server se

muestra a continuación, al igual que en la Figura 5.09. Hay que seleccionar el nombre del servidor desde la lista desplegable y escribir la contraseña del administrador del sistema SQL Server para la base de datos de SQL Server 6.5 que se está convirtiendo. También hay que escribir la contraseña del administrador del sistema SQL Server para la base de datos de SQL Server 2000 destino. Si se desean argumentos de inicio para alguno de los servidores hay que escribirlos en el cuadro de texto Argumentos opcionales de inicio apropiado. Estas opciones pueden incluir indicadores de traza. Si se opta por no incluir argumentos de inicio hay que dejar estos cuadros de texto en blanco. (Para información adicional consúltese el índice de los Libros en pantalla y búsquese «opciones de inicio».) Hay que pulsar Siguiente para continuar.

 

Page 27: Manuel SQL

 4. 4.      Una pantalla del Asistente para actualización de SQL Server muestra un mensaje

advirtiendo de que el Asistente para actualización de SQL Server necesita detener e iniciar de nuevo las bases de datos de SQL Server 6.5 y SQL Server 2000 y que no debería haber usuarios con sesión iniciada en ninguno de los servidores de base de datos mientras se realiza el proceso de conversión. Hay que pulsar Sí para continuar.

 Nota: En este punto el sistema conmutará entre SQL Server 6.5 y SQL Server 2000.

 5. 5.      Aparece la pantalla Selección de página de códigos. Esta pantalla permite

especificar la página de código de secuencia de comandos (que determina el juego de caracteres) que se va a utilizar para la conversión. A menos que haya una necesidad especial de otros juegos de caracteres distintos de los que el sistema ha configurado previamente, se debería aceptar la configuración predeterminada. Hay que pulsar Siguiente para continuar.

 6. 6.      El Asistente para actualización de SQL Server se comunica con la base de datos de

SQL Server 6.5 para determinar las bases de datos disponibles para la conversión y muestra una lista con dichas bases de datos en la pantalla Actualizar bases de datos a SQL Server 2000, como se muestra en la Figura 5.10.

 

Page 28: Manuel SQL

 Las bases de datos que se van a convertir se muestran en el cuadro de lista de la

derecha. Para excluir una base de datos del proceso de conversión hay que seleccionar su nombre en el cuadro de lista Incluir estas bases de datos y pulsar después Excluir. La base de datos excluida aparecerá en el cuadro de lista de la izquierda. A menos que no se desee utilizar una base de datos en particular nunca más, no hay ninguna razón para excluir ninguna base de datos. Hay que pulsar Siguiente para continuar.

 7. 7.      Aparece la pantalla Creación de bases de datos, como muestra la Figura 5.11. Esta

pantalla permite especificar cómo se crean las bases de datos. Normalmente, se utilizará la configuración predeterminada. Se puede cambiar la configuración si se desea especificar una nueva ubicación para los archivos de datos. Hay que pulsar Siguiente para continuar. 

 Nota: En la configuración predeterminada, SQL Server crea archivos que son lo suficientemente grandes para almacenar los datos y los objetos que se van a convertir (tal cual se han cargado en las bases de datos de SQL Server 6.5). Sin embargo, no crea espacio libre en estos archivos. También se crea un archivo de registro para cada base de datos convertida. Se puede cambiar el nombre y la ruta de acceso de los archivos de registro, el tamaño inicial del archivo y e/ incremento de crecimiento pulsando Modificar. La segunda opción para crear bases de datos es Utilizar bases de datos ya creadas en SQL Server 2000. Con esta opción hay que crear los archivos de datos y de registro con SQL Server 2000 antes de iniciar el Asistente para actualizar, y SQL Server utilizará esas bases de datos para la información convertida. La tercera opción es utilizar una secuencia de comandos para la creación de¡ archivo de la base de datos. Esta secuencia de comandos debería contener la Instrucción CREATE DATABASE necesaria para crear los archivos de datos y de registro que se utilizarán para la conversión. Hay que pulsar Examinar para localizar esta secuencia de comandos. La segunda y tercera opciones no se recomiendan porque se deben

Page 29: Manuel SQL

utilizar en SQL Server 2000 los mismos nombres para las bases de datos que se utilizaron en SOL Server 6.5, y los archivos de SQL Server 2000 pueden ocupar más que los archivos originales de SOL Server 6.5. Si se utiliza la opción predeterminada, SQL Server estimará por sí mismo este crecimiento de la información. 

8. 8.      Aparece la pantalla Configuración del sistema, como se muestra en la Figura 5.12. Esta pantalla permite especificar qué objetos y configuraciones del sistema se transfieren a la nueva base de datos. Si se selecciona la casilla de verificación Configuración del servidor, se convierten todos los inicios de sesión y los registros de inicio de sesión remota. Si se selecciona la casilla de verificación Configuración de SQL Executive, se convierten todas las tareas programadas. Si se selecciona la casilla de verificación Configuración de duplicación, se convertirá el soporte de duplicación. (La casilla de verificación Configuración de duplicación se encuentra desactivada en nuestro ejemplo porque no se utilizaba replicación en nuestras bases de datos de SQL Server 6.5, por lo que no hay nada disponible aquí para transferir. La duplicación de bases de datos se trata en el Capítulo 26.)

 

 Bajo Configuración avanzada en el Asistente para actualización, se pueden

establecer las opciones Valores Null ANSI e Identificadores entre comillas. La opción Valores Null ANSI afecta a las comparaciones que utilizan valores nulos. Si se establece como Activados, los operadores de comparación (= y <>) siempre devolverán NULL cuando uno de los argumentos del operador sea NULL. Si se establece como Desactivados, estos operadores devolverán TRUE si ambos argumentos son NULL, o FALSE si alguno de los argumentos es NULL y el otro es NOT NULL.

 La opción Identificadores entre comillas determina la forma en que SQL Server

2000 manejará las comillas dobles. Si esta opción se establece como Activados, las comillas dobles indicarán un identificador como un nombre de columna. Si se establece como Desactivados, las comillas dobles indicarán una cadena de caracteres, al igual que hacen las comillas simples. Si se pulsa Mixtos, SQL Server 2000 convertirá los objetos

Page 30: Manuel SQL

con la opción Identificadores entre comillas como estuviera establecida en SQL Server 6.5. Si no se está seguro sobre esta opción, lo mejor es pulsar Mixtos. Hay que pulsar Siguiente para continuar.

 9. 9.      Después de una pequeña demora, aparece la pantalla Finalización del Asistente para

actualización de SQL Server, como se muestra en la Figura 5.13. Esta pantalla permite revisar todas las opciones de conversión seleccionadas. Si es necesario realizar cambios, hay que pulsar Atrás y cambiar la configuración. En otro caso, hay que pulsar Finalizar para proceder con el proceso de conversión.

 10. 10.  Aparece el cuadro de diálogo Intérprete de secuencias de comandos de

actualización de SQL Server, como se muestra en la Figura 5.14. Este cuadro de diálogo muestra una lista de ejecución de los elementos actualizados, lo que permite al administrador algo e respuesta sobre el progreso del proceso de actualización.

 

 Nota: Dependiendo del tamaño de las bases de datos que se están convirtiendo y de sí se optó por comprobar de forma extensiva las bases de datos convertidas, este proceso de conversión podría durar varias horas. Cuando el proceso de actualización se haya completado, aparecerá el cuadro de

diálogo Actualización completada. Hay que pulsar Aceptar para descartar el cuadro de diálogo y pulsar después Cerrar para cerrar el cuadro de diálogo Intérprete de secuencias de comandos de actualización de SQL Server.

 

INSTALACIÓN DEL CLIENTE La instalación de los archivos cliente de SQL Server es tan simple como instalar el

propio SQL Server. Para instalar los archivos cliente de SQL Server en un equipo cliente hay que seguir los siguientes pasos:

 

Page 31: Manuel SQL

1. 1.      Realizar los pasos del 1 al 9 tal cual se esbozaron antes en la sección Instalación local.

 2. 2.      Cuando aparezca el cuadro de diálogo Definición de instalación, hay que pulsar

Sólo herramientas cliente y después Siguiente para continuar. 

3. 3.      En el cuadro de diálogo Seleccionar componentes que aparece, hay que seleccionar las opciones deseadas y pulsar Siguiente. Se puede seleccionar Herramientas de administración, Conectividad de clientes, Libros en pantalla, Herramientas de desarrollo, Ejemplos de código o cualquier combinación de dichas opciones. De forma predeterminada están seleccionadas las opciones Herramientas de administración, Conectividad de clientes, Libros en pantalla y Herramientas de desarrollo.

 4. 4.      Cuando aparezca el cuadro de diálogo Iniciar la copia de archivos hay que pulsar

Siguiente para continuar.

Page 32: Manuel SQL

SERVICIOS DE SQL SERVER Una vez que se haya instalado Microsoft SQL Server 2000 puede comenzar a

utilizarse. Pero antes de iniciar una sesión y empezar a construir una base de datos se debe conocer cómo iniciar el servicio SQL Server y sus componentes Agente SQL Server, Coordinador de transacciones distribuidas de Microsoft y Microsoft Search. Estos componentes se ejecutan como servicios separados aparte del servicio SQL Server. A continuación se muestra cómo iniciar, parar y administrar estos servicios mediante la utilización de tres herramientas: Administrador de servicios de SQL Server, Administrador corporativo de SQL Server y Servicios de Windows 2000. 

Un servicio es un programa o proceso que lleva a cabo una función específica para dar soporte a otros programas. Al iniciar SQL Server, el servicio SQL Server se inicia en Windows NT o, Windows 2000. Este servicio gestiona los archivos de bases de datos, procesa sentencias Transact-SQL (T-SQL), ubica recursos entre conexiones de usuarios concurrentes, asegura la consistencia de los datos y mucho más. Si se instalan una o más instancias de SQL Server, el nombre de servicio para cada instancia de SQL Server es MSSQL$NombreInstancia, donde NombreInstancia es el nombre de instancia que se eligió en tiempo de instalación. El servicio Agente SQL Server correspondiente para una instancia se llama SQLAGENT$NombreInstancia. Sin embargo, para múltiples instancias de SQL Server sólo existirá una instalación tanto del Coordinador de transacciones distribuidas de Microsoft como de Microsoft Search. 

Los tres servicios componentes se proporcionan junto a la copia con licencia de SQL Server. Agente SQL Server se instala de manera predeterminada al instalar SQL Server. Si no se ha instalado el Coordinador de transacciones distribuidas de Microsoft y Microsoft Search, se puede ejecutar de nuevo el programa de instalación de SQL Server para instalar dichos componentes, que se denominan Compatibilidad con cliente DTC y Búsqueda de texto, respectivamente. Se verá a continuación qué funcionalidad ofrece cada uno de estos servicios. 

El Agente SQL Server soporta la planificación y ejecución de trabajos, alertas, notificaciones y planes de mantenimiento de bases de datos. Sin este servicio se apreciará que el trabajo del administrador es mucho más difícil, si no imposible. El Agente SQL Server permite automatizar las tareas de mantenimiento rutinario de las bases de datos. Por ejemplo, se puede crear un trabajo para realizar automáticamente una copia de seguridad de la base de datos cada noche a la 1 de la madrugada y otro trabajo para realizar copias de seguridad de los registros de transacciones cada 30 minutos. Para mantener comprobaciones del rendimiento del sistema, se puede crear una alerta de condición de rendimiento que informe si la utilización de la CPU del servidor supera el 90 por ciento. El Agente SQL Server debe estar ejecutándose para que realice este tipo de tareas. Este servicio puede configurarse para que arranque automáticamente cuando se inicie SQL Server o puede lanzarse manualmente. Se le debe configurar para que se inicie

Page 33: Manuel SQL

automáticamente para asegurar que los trabajos, alertas y notificaciones planificadas puedan ejecutarse.  

El Coordinador de transacciones distribuidas de Microsoft es un administrador de transacciones que ofrece la capacidad de incluir diferentes fuentes de datos, incluyendo datos de bases de datos remotas, en las transacciones de las aplicaciones cliente. Esto significa que una única transacción puede actualizar datos en múltiples servidores remotos. Este administrador de transacciones asegura que todas las actualizaciones se convertirán en permanentes si se lleva a cabo la transacción o, en caso de error, asegura que las modificaciones se desharán en todas las fuentes de datos. El servicio Microsoft Search se arranca al iniciar Microsoft Search, que soporta indexación y búsqueda de texto completo. La indexación sobre texto completo permite que se realicen búsquedas más complejas sobre datos de cadenas de caracteres. Por ejemplo, se pueden buscar palabras que sean similares a una palabra dada o se pueden buscar cadenas que contengan una frase particular. 

Como se ha dicho antes en este capítulo, hay varias herramientas que pueden utilizarse para parar e iniciar los servicios de SQL Server: el Administrador de servicios de SQL Server, el Administrador corporativo de SQL Server y Servicios de Windows 2000.   

USO DEL ADMINISTRADOR DE SERVICIOS DE SQL SERVER 

Para iniciar o detener los servicios de SQL Server mediante el uso del Administrador de servicios de SQL Server se deben seguir estos pasos. (El servicio SQL Server también se puede poner en pausa, como se verá más adelante.) 

 1. Pulsar Inicio, apuntar a Programas, apuntar a Microsoft SQL Server y a

continuación elegir Administrador de servicios para mostrar la aplicación Administrador de servicios, que aparece en la figura anterior.

 

Page 34: Manuel SQL

2. El nombre del servidor local y el nombre del servicio de SQL Server aparecen en las listas desplegables Servidor y Servicios. En la lista desplegable Servidor, seleccionar el nombre del servidor a cuyos servicios se quiera controlar. (Nótese que el Administrador de servicios puede utilizarse para administrar un servidor a través de la red.) En la lista desplegable Servicios, seleccionar el servicio específico que quiera controlarse: SQL Server (MSSQLSERVER), Coordinador de transacciones distribuidas de Microsoft (Coordinador de transacciones distribuidas), Microsoft Search (Microsoft Search) o Agente SQL Server (SQLSERVERAGENT).

 3. Se puede iniciar o detener el servicio seleccionado al pulsar el botón apropiado. Si

se ha seleccionado el servicio SQL Server, también se dispone de la opción de detener el servicio. El símbolo del círculo (ligeramente por debajo y a la izquierda del centro de la ventana de diálogo) muestra el estado actual del servicio seleccionado. Si SQL Server se encuentra en estado de pausa, pulsar Iniciar o continuar para reanudar el servicio. Al poner en pausa SQL Server se evita que los usuarios inicien sesión y da tiempo para pedir a los usuarios que terminen se trabajo y terminen su sesión antes de detener el servidor. Si se detiene SQL Server sin la pausa, todos los procesos de servidor terminan inmediatamente Detener SQL Server evita nuevas conexiones y desconecta a los usuarios que estén conectados.

 4. Mientras se ejecuta el Administrador de servicios, la pantalla se actualiza cada 5

segundos. Para cambiar el intervalo de actualización, pulsar el pequeño icono de la esquina superior izquierda de la ventana de diálogo para desplegar el menú Sistema y elegir Opciones para mostrar la ventana de diálogo Opciones del Administrador de servicios de SQL Server.

 En el cuadro Intervalo de sondeo se puede especificar un nuevo tiempo de

intervalo de sondeo para los servicios. Si se selecciona la casilla de verificación Comprobar acción de control del servicio, el Administrador de servicios verificará cualquier acción que se realice para iniciar, detener o poner en pausa los servicios mediante una pregunta con un cuadro de diálogo. Las configuraciones de intervalo de sondeo y verificación se ajustarán igual para cada uno de los cuatro servicios.

 Nota: Si los servicios SQL Server y el Agente SQL Server no se encuentran configurados para que se inicien automáticamente se les debe iniciar de manera manual.

 

USO DE SERVICIOS DE WINDOWS 2000 

También se pueden iniciar y detener los servicios de SQL Server mediante el uso de Servicios de Windows 2000, tanto local como remotamente. Incluso se pueden configurar los servicios de SQL Server para que se inicien automáticamente cada vez que se inicie el

Page 35: Manuel SQL

sistema. Para iniciar automáticamente los servicios de SQL Server desde Servicios de Windows 2000 se han de seguir los pasos siguientes: 

1. Pulsar Inicio, apuntar a Programas, apuntar a Herramientas administrativas y a continuación elegir Servicios para iniciar Servicios.

 

 2. Desplazarse hacia abajo en el cuadro de lista de Servicios para encontrar

Coordinador de transacciones distribuidas, Microsoft Search, MSSQLSERVER o SQLSERVERAGENT. Pulsar con el botón derecho el servicio para el que se quiera configurar la opción de inicio y elegir Propiedades del menú de contexto para mostrar la ventana Propiedades.

 3. 3.       En la lista de opciones desplegable Tipo de inicio, seleccionar Automático,

Manual o Deshabilitado. Al seleccionar Automático se hará que el servicio se inicie automáticamente cada vez que se inicie el sistema. Al seleccionar Manual se requerirá que se inicie el servicio manualmente cuando quiera usarse. Al seleccionar Deshabilitar se evitará que ese servicio se inicie, tanto automática como manualmente. Pulsar Aceptar para guardar la configuración.

 4. 4.       Hay tres pestañas más en la ventana Propiedades. La pestaña Iniciar sesión

permite especificar la cuenta con que el servicio seleccionado debe iniciar sesión. La pestaña Recuperación permite configurar opciones que deben ocurrir si el servicio seleccionado falla. La pestaña Dependencias muestra de qué servicios depende y qué servicios dependen del servicio seleccionado, si los hay. Por ejemplo, el servicio Agente SQL Server depende del servicio SQL Server. El servicio Agente SQL Server no puede inciarse si e1 servicio SQL Server se encuentra detenido.

 

Page 36: Manuel SQL

USO DEL ADMINISTRADOR CORPORATIVO DE SQL SERVER 

El Administrador corporativo es parte de Microsoft Management Console (MMC). MMC aplicación central que se utiliza para administrar todos los aspectos de un sistema que ejecute Windows 2000 Server. En Windows 2000 y en versiones futuras de Windows, MMC jugará un papel cada vez más importante en la administración de las aplicaciones Microsoft BackOffice corno Microsoft Exchange Server, Microsoft Proxy Server, Microsoft Site Server, Microsoft Systems Management Server y Microsoft SNA Server.  Administración de SQL Server 

El Administrador corporativo es la herramienta más completa para configurar y administrar la instalación de SQL Server. Mientras el Administrador de servicios permite solamente iniciar, hacer una pausa o detener un servicio, el Administrador corporativo permite iniciar y detener un servidor, y también capacita para realizar las siguientes tareas: 

- Registrar el servidor.- Configurar servidores locales y remotos.- Configurar y administrar una instalación de múltiples servidores.- Ajustar la seguridad de inicio de sesión y añadir usuarios, administradores de sistema

y operadores.- Asignar una contraseña de administrador de sistema (system administrator, sa).- Crear y programar trabajos.- Crear alertas y configurar SQL Server para que se comunique con los administradores

de sistema a través de correo electrónico.- Configurar y administrar bases de datos, tablas, índices, vistas, procedimientos

almacenados, reglas, desencadenadores, definiciones DEFAULT, dispositivos de copia de seguridad y registros de error.

- -   Administrar otros servicios de SQL Server. 

Page 37: Manuel SQL

La lista siguiente describe cuatro tareas que pueden realizarse mediante la utilización del Administrador corporativo. Se deben realizar estas tareas antes de comenzar a utilizar la instalación de SQL Server por primera vez.  

- Crear un grupo de servidores: Mediante la creación de un grupo de servidores se puede restringir el acceso a la información a únicamente ese grupo. Las cuentas con necesidades de recursos similares pueden y deberían reunirse en grupos para simplificar la gestión de cuentas.

 - Registrar el servidor: Debe registrarse el servidor con MMC antes de poder empezar

a administrarlo. 

- Acceder al servidor: Una vez que se ha registrado el servidor, se pueden ver y configurar varias propiedades. Si se tiene un entorno multiservidor, se puede utilizar el Administrador corporativo para administrar y configurar los servidores desde un único lugar.

 - Cambiar la contraseña de administrador de sistema predeterminada Al instalar

SQL Server, la cuenta de administrador de sistema predeterminada se configura sin contraseña. Se debe especificar una contraseña antes de comenzar a usar SQL Server

  Creación de grupos de servidores 

El Administrador corporativo permite crear grupos de servidores para ayudar en las tareas administrativas. Los grupos de servidores ayudan a organizar un conjunto de servidores relacionados para un acceso sencillo más o menos como las carpetas ayudan a organizar archivos relacionados. Se puede entonces realizar acciones que afecten a todos los servidores del grupo utilizando un solo comando, en lugar de mediante la repetición del comando para cada servidor. De manera predeterminada, al instalar SQL Server, se crea un grupo SQL Server, llamado Grupo de SQL Server. Para crear un grupo de servidores, seguir estos pasos: 

1. 1.      Pulsar Inicio, apuntar a Programas, apuntar a Microsoft SQL Server y a continuación elegir Administrador corporativo para iniciar la aplicación Administrador corporativo.

 2. El lado izquierdo de la ventana del Administrador corporativo muestra las carpetas

grupos de servidores como subcarpetas de Servidores Microsoft SQL Server, y el lado derecho de la ventana contiene los iconos de grupos de servidores. Para crear un grupo de SQL Server, pulsar con el botón derecho la carpeta Servidores Microsoft SQL Server y a continuación elegir Nuevo grupo de SQL Server en el menú de contexto que aparece.

 

Page 38: Manuel SQL

3. Escribir un nombre para el nuevo grupo de servidores en la ventana de diálogo Grupos de servidores que aparece. Si se pulsa en Subgrupo de, se puede seleccionar el grupo del que el nuevo grupo de servidores será subgrupo. Si se pulsa Grupo de nivel superior, el nuevo grupo de servidores será un grupo de SQL Server de nivel superior, del mismo nivel que Grupo de SQL Server. Pulsar Aceptar para guardar el nuevo grupo.

  Registro del servidor 

Tras crear un grupo de SQL Server se pueden registrar los servidores locales o remotos como miembros del grupo. Para registrar un servidor hay que seguir estos pasos: 

1. Pulsar con el botón derecho del ratón un icono de grupo de servidores en el panel derecho de la ventana de Administrador corporativo. (Si el encabezamiento Servidores Microsoft SQL Server está expandido, también se puede pulsar con el botón derecho el nombre de la carpeta de grupo en el panel izquierdo.) Elegir Nuevo registro de servidor SQL Server en el menú de contexto.

 2. Aparece la pantalla de bienvenida del Asistente para registro de servidor SQL

Server Para muchas de las tareas de administración rutinarias que se realizarán utilizando el Administrador corporativo se proporciona un asistente que ayuda a través del proceso. Pulsar Siguiente para continuar el proceso de registro.

 3. Aparece la pantalla Seleccionar un servidor SQL Server. Las instalaciones de SQL

Server disponibles en la red se muestran en el cuadro de lista Servidores disponibles. Seleccionar los servidores que se quieran registrar (o escribir un nombre de servidor en el cuadro de texto) y pulsar a continuación Agregar para mover el nombre de servidor al cuadro de lista Servidores agregados. Tras completar las selecciones, pulsar Siguiente.

 4. Aparece la pantalla Seleccionar un modo de autenticación. Seleccionar el tipo de

seguridad que se quiera utilizar para conectar a la instalación de SQL Server. (Si se realizó una Instalación típica, SQL Server ya está configurado para utilizar el modo de autenticación de Windows NT.) Pulsar Siguiente para continuar.

 5. 5.       Aparece la pantalla Asistente para registro de servidor SQL Server. Se puede

seleccionar un grupo existente al que se puede agregar el servidor o crear un grupo de servidores de nivel superior para el servidor. Si se quiere agregar el servidor a un grupo existente, pulsar la primera opción de la pantalla y a continuación seleccionar el nombre del grupo de la lista de opciones desplegable. Si se desea crear un grupo, pulsar la segunda opción y luego escribir el nombre del grupo en el cuadro de texto. Pulsar Siguiente para continuar.

 

Page 39: Manuel SQL

6. Aparece la pantalla Completando el Asistente para registro de servidor SQL Server. El servidor de la lista será registrado. Si se necesita realizar cualquier cambio, pulsar Atrás; de lo contrario, pulsar Finalizar para terminar el proceso de registro.

 7. Aparece la ventana de diálogo Registrar mensajes de SQL Server, que confirma que

el registro se finalizó con éxito. Pulsar Cerrar para cerrar esta ventana de diálogo.  Acceder al servidor 

Una vez que se haya registrado con éxito el servidor utilizando Administrador corporativo, se puede acceder a todas sus propiedades, bases de datos y objetos. Para ver las propiedades y objetos del servidor recién registrado, en primer lugar hay que expandir el grupo de servidores en el panel izquierdo de la ventana de Administrador corporativo. Aparece una lista de todos los servidores del grupo. A continuación expandir el nombre del servidor para que se muestren todas sus propiedades y objetos.  Cambiar la contraseña predeterminada 

Todas las instalaciones de SQL Server tienen una cuenta administrativa incorporada, la cuenta sa (system administrator). En instalaciones nuevas la cuenta del usuario sa no tiene asignada una contraseña. Para asegurar el mayor nivel de seguridad en la instalación de SQL Server, se debe asignar una contraseña a la cuenta sa. Para hacer esto, se deben seguir estos pasos: 

1. 1.      Acceder al servidor cuya contraseña se quiere cambiar. 2. 2.      Expandir la carpeta Seguridad y luego pulsar en Inicios de Sesión (Logins) para

mostrar las cuentas de usuario de SQL Server en el panel de la derecha. 

3. 3.      Pulsar el botón derecho del ratón en la cuenta de usuario sa y elegir Propiedades en el menú de contexto que aparece.

 4. 4.      Escribir una contraseña nueva en el cuadro de texto Contraseña y a

continuación pulsar Aceptar para que se muestre el cuadro de diálogo Confirmar contraseña.

 5. 5.      Volver a escribir la contraseña y pulsar Aceptar. Este es un paso importante

para asegurar la instalación de SQL Server.

Page 40: Manuel SQL

ESTRUCTURA DE LAS BASES DE DATOS Una vez se ha instalado Microsoft SQL Server 2000 y se ha diseñado una

distribución de bases de datos y discos, se está preparado para crear una base de datos. SQL Server 2000 hace uso de los métodos mejorados de almacenamiento de datos y administración del espacio que se presentaron en SQL Server 7. Las versiones anteriores del producto utilizaban dispositivos lógicos y segmentos de un tamaño fijo para el almacenamiento de los datos; SQL Server 2000 usa archivos y grupos de archivos que pueden ser configurados para que crezcan o decrezcan automáticamente.  

Cada base de datos de SQL Server 2000 se crea a partir de un conjunto de archivos del sistema operativo. Estos archivos se pueden agrupar en grupos de archivos para mejorar la administración de datos, el emplazamiento de datos y el rendimiento. En esta sección se aprenderá acerca de los archivos y grupos de archivos de SQL Server y se examinará su papel en la creación de bases de datos.  Archivos 

Como ya se ha mencionado, una base de datos de SQL Server está compuesta de un conjunto de archivos del sistema operativo. Un archivo de base de datos puede ser un archivo de datos o bien un archivo de registro. Los archivos de datos se usan para almacenar datos y objetos como tablas, índices, vistas, desencadenadores y procedimientos almacenados. Hay dos tipos de archivos de datos: principales y secundarios. Los archivos de registro sirven para almacenar solamente información del registro de transacciones. El espacio de registro se gestiona siempre de manera separada del espacio de datos y nunca puede formar parte de un archivos de datos. 

Todas las bases de datos deben crearse con, al menos, un archivos de datos y un archivo de registro, y los archivos no pueden ser utilizados por más de una base de datos, esto es, las bases de datos no pueden compartir archivos. La lista siguiente describe los tres tipos de archivos que puede usar una base de datos: 

       Archivo de datos principal: Un archivo de datos principal contiene toda la información de inicio para la base de datos y sus tablas y objetos de sistema. Apunta al resto de archivo creados en la base de datos. También puede almacenar tablas y objetos definidos por el usuario, pero no tiene por qué hacerlo. Cada base de datos debe tener exactamente un archivo principal. La extensión de archivo recomendada es mdf.

         Archivos de datos secundarios: Los archivos de datos secundarios son

opcionales. Pueden contener datos y objetos que no se encuentren en el archivo principal. Una base de datos podría no tener ningún archivo secundario si todos sus datos se encuentran en el archivo principal. Se pueden tener cero, uno, o múltiples

Page 41: Manuel SQL

archivos secundarios. Algunas bases de datos necesitan archivos secundarios múltiples para poder repartir los datos entre discos separados. La extensión de archivo recomendada es ndf.

         Archivos de registro de transacciones: Un archivo de registro de

transacciones contiene toda la información de registro de transacciones utilizada para recuperar la base de datos. Toda base de datos debe tener al menos un archivo de registro y puede tener múltiples archivos de registro. La extensión de archivo recomendada es ldf.

 Nota: El tamaño máximo para una base de datos de SQL Server es de 32 terabytes (TB) para archivos de datos y 4 TB para archivos de registro.

 Una base de datos simple podría tener un archivo de datos principal, que sea

suficientemente grande corno para contener todos los datos y objetos y un archivo de registro de transacciones. Una base de datos más compleja podría tener un archivo de datos principal, cinco archivos de datos secundarios y dos archivos de registro de transacciones. Entonces, ¿cómo podrían estar los datos repartidos entre todos los archivos de datos? La respuesta es que se pueden utilizar grupos de archivos para ordenar los datos.

Grupos de archivos 

Los grupos de archivos permiten agrupar archivos con propósitos administrativos y de emplazamiento de datos. (Son similares a los segmentos de Microsoft SQL Server 6.5 y anteriores.) Los grupos de archivos pueden mejorar el rendimiento de la base de datos permitiendo que se cree una base de datos repartida entre múltiples discos, múltiples controladoras de disco u sistemas RAID. Se pueden crear tablas e índices en discos específicos mediante el uso de grupos de archivos, permitiendo de esta manera dirigir la E/S de una cierta tabla o índice a discos, controladoras o conjuntos de discos específicos. 

Hay tres tipos de grupos de archivos. Las características principales de estos grupos de archivos se resumen en la siguiente lista: 

       Grupo de archivos principal: Contiene el archivo de datos principal y todos los otros archivos que no se hayan puesto en otro grupo de archivos. Las tablas del sistema -que definen usuarios, objetos y permisos para una base de datos- están asignadas al grupo de archivos principal de esa base de datos. SQL Server crea automáticamente las tablas de sistema al crearse una base de datos.

         Grupos de archivos definidos por el usuario: Incluyen cualquier grupo de

archivos creado por el usuario mientras dura el proceso de creación (o cambio posterior) de una base de datos. Una tabla o un índice puede ser creado para ser colocado en un grupo de archivos definido por el usuario específico.

 

Page 42: Manuel SQL

       Grupo de archivos predeterminado: Guarda todas las páginas para las tablas e índices que no tienen un grupo de archivos especificado al crearse. El grupo de archivos predeterminado es, de manera predeterminada, el grupo de archivos principal. Los miembros de la función de base de datos db_owner pueden conmutar la propiedad de predeterminado de un grupo de archivos a otro. Solamente un grupo de archivos puede ser predeterminado en un momento dado -nuevamente, si no hay especificado ningún grupo de archivos predeterminado, el grupo de archivos principal permanece como el predeterminado automáticamente.

 Para mejorar el rendimiento se puede controlar la ubicación de los datos mediante la

creación de tablas e índices en grupos de archivos diferentes. Por ejemplo, podría desearse poner una tabla que es utilizada intensivamente en un grupo de archivos de un grupo grande de discos (compuesto de 10 unidades de disco, por ejemplo) y poner otra tabla que se utiliza de una manera menos intensiva en otro grupo de archivos creado en un grupo de discos distinto, más pequeño (compuesto de 4 unidades de disco, por ejemplo). Así, la tabla a la que se accede más frecuentemente estará repartida en el número mayor de discos, permitiendo una E/S de disco con mayor paralelismo. Si no se utiliza RAID pero se tienen múltiples unidades de disco aún se puede hacer uso de los grupos de archivos. Por ejemplo, se puede crear un archivo diferente en cada unidad de disco, poniendo cada archivo en un grupo definido por el usuario distinto. Esto permite asignar cada tabla e índice en un grupo de archivos definido por el usuario distinto (y en un disco específico) mediante la designación del grupo de archivos en el momento de crear la tabla o índice. La figura siguiente muestra un orden de ejemplo: un archivo de datos principal en el grupo de archivos principal en la unidad C, un archivo de datos secundario en cada uno de los grupos de archivos definidos por el usuario (FG1 y FG2) en las unidades E y F y un archivo de registro en la unidad G. A continuación se pueden crear tablas e índices en cualquiera de los grupos de archivos definidos por el usuario: FG1 o FG2.

 

 0 podría usarse un grupo de archivos definido por el usuario para repartir los datos

entre varios discos. La figura siguiente muestra un grupo de archivos definido por el

Page 43: Manuel SQL

usuario (FG1) que incluye dos archivos de datos secundarios, uno en la unidad E y otro en la unidad F (con el archivo de registro en la unidad G y el archivo principal en la unidad C). Nuevamente, en este caso, se supone que cada archivo de la base de datos se crea en una única unidad de disco física; no hay hardware RAID implicado. Las tablas e índices que se creen en el grupo de archivos definido por el usuario se repartirán entre los dos discos, como resultado de la estrategia de relleno proporcional de SQL Server.

 

  

Si se utiliza un sistema RAID podría necesitarse repartir los datos de una tabla más grande de lo normal entre múltiples disposiciones lógicas de discos configuradas en dos o más controladoras RAID. Esto se hace creando un grupo de archivos definido por el usuario que incluya un archivo en cada una de esas controladoras. Supóngase que se han creado dos archivos de datos secundarios, cada uno de ellos en una disposición de discos diferente, con cada disposición compuesta de ocho discos físicos y configurada con RAID 5. Las dos disposiciones se encuentran en controladoras RAID distintas. Para crear una tabla o un índice repartido entre las dos controladoras (esto es, entre las 16 unidades de disco) se debe definir un único grupo de archivos definido por el usuario en el que se coloquen los dos archivos, y a continuación crear la tabla o índice en ese grupo de archivos. La figura siguiente muestra el grupo de archivos definido por el usuario, (FG1) que abarca 16 discos físicos, o dos disposiciones lógicas de discos RAID. También muestra el archivos de datos principal en otra controladora (con RAID 1) y el archivo de registro en otra controladora más (con RAID 10). 

SQL Server permite distribuir de manera óptima los datos entre unidades de disco porque secciona, o reparte, automáticamente los datos de manera proporcional entre todos los archivos de un grupo de archivos. «Distribución en conjuntos de bandas» es el término utilizado para describir la distribución de datos entre más de un archivo de base de datos. La distribución de archivos de SQL Server es independiente de la distribución en conjuntos de bandas para discos RAID, y puede usarse solo o junto con RAID, como se ha visto en los ejemplos anteriores.

 

Page 44: Manuel SQL

  

Para distribuir los datos, SQL Server escribe datos en un archivo en una cantidad proporcional al espacio libre en ese archivo comparado con el espacio libre en otros archivos. El espacio se asigna a las tablas e índices en extensiones. Una extensión es una unidad de 8 páginas, y cada página es de 8 kilobytes (K), que hacen un total de 64K por extensión. Por ejemplo, si se necesitan asignar cinco extensiones entre el archivo F1, que tiene 400 megabytes (MB) libres y el archivo F2 que tiene 100 MB libres, cuatro extensiones se asignan a F1 y una se asigna a F2. Ambos archivos se llenarán más o menos al mismo tiempo, lo que permite una mejor distribución de E/S entre los discos. Se dará distribución proporcional si los archivos F1 y F2 están en un grupo de archivos definido por el usuario o en el grupo de archivos principal. Si todos los archivos de un grupo de archivos se definen con el mismo tamaño inicial, los datos se repartirán a partes iguales entre los archivos a medida que se cargan. Este método de crear los archivos con el mismo tamaño inicial en un grupo de archivos es el recomendado para distribuir los datos a partes iguales entre las unidades, para intentar conseguir E/S también distribuida a partes iguales. Otro beneficio de la utilización de grupos de archivos es que SQL permite realizar copia seguridad de la base de datos basadas en un archivo o grupo de archivos. Si la base de datos es demasiado grande como para hacer copia de seguridad de toda ella de una sola vez, se puede hacer copia de seguridad de sólo ciertas partes.      Reglas y recomendaciones 

Page 45: Manuel SQL

Se debe tener una estrategia bien desarrollada para el uso de archivos y grupos de archivos antes de crear la base de datos. Para ello se deben conocer las siguientes reglas de SQL Server 2000: 

        Los archivos y grupos de archivos no pueden ser usados por más de una base de datos.

          Un archivo sólo puede ser miembro de un grupo de archivos.          Los datos y la información del registro de transacciones no pueden formar parte

del mismo archivo. El espacio de registro siempre se gestiona de manera separada del espacio de datos. Los archivos de registro de transacciones no son nunca parte de un grupo de archivos.

          Una vez se crea un archivo como parte de una base de datos, no puede moverse

a otro grupo de archivos. Si se quiere mover un archivo, hay que borrarlo y volverlo a crear.

 Además de estas reglas, hay modos específicos de uso de archivos y grupos de

archivos que ayudan a diseñar la base de datos:          La mayoría de las bases de datos funcionarán correctamente con sólo un archivo

de datos principal y un archivo de registro de transacciones. Este es el diseño recomendado para bases de datos que no hacen un uso particularmente intenso de la E/S. Si se tiene un sistema con una utilización intensiva de la E/S que requiera muchas unidades de disco, probablemente se desee utilizar grupos de archivos definidos por el usuario que repartan los datos entre discos o disposiciones de discos para mejorar el rendimiento de la E/S paralela.

          Colocar los archivos de registro siempre en discos distintos de los discos que

contengan archivos de datos, tal y como mencionó anteriormente.          Si se necesita usar archivos de datos múltiples, utilizar el archivo de datos

principal solamente para las tablas y objetos del sistema, y crear uno o más archivos de datos secundarios para los datos y objetos del usuario.

          Crear los archivos y grupos de archivos entre tantos discos físicos como haya

disponibles para permitir una mayor cantidad de E/S de disco paralela y maximizar el rendimiento.

          Colocar los índices no agrupados para tablas utilizadas intensivamente en un

grupo de archivos separado en discos físicos diferentes de los discos que contengan los datos de la tabla en sí. Esta técnica también permite E/S de disco paralela.

 

Page 46: Manuel SQL

        Poner las tablas diferentes que se usen en una misma consulta en discos físicos diferentes, si es posible, para permitir E/S paralela de disco mientras el motor de búsqueda encuentra los datos.

 Crecimiento automático de archivos 

SQL Server permite que los archivos crezcan automáticamente cuando sea necesario. Cuando se crea un archivo se puede especificar si se permite a SQL Server hacer crecer automáticamente al archivo. Permitir el crecimiento automático, que es la opción predeterminada cuando se crea una base de datos, se recomienda, ya que ahorra al administrador la molestia de supervisar y aumentar manualmente el espacio de archivo. 

Un archivo se crea con un tamaño inicial. Cuando se llena el espacio inicial, SQL Server aumentará el tamaño del archivo en una cantidad especificada, conocida como el incremento de crecimiento. Cuando se llena este nuevo espacio, SQL Server asignará otro incremento de crecimiento. El archivo continuará creciendo en la cantidad especificada, según se vaya necesitando, hasta que el disco esté lleno o hasta que se alcance el tamaño máximo de archivo (si se ha especificado). 

Nota: El crecimiento automático de archivos es diferente al llenado proporcional. Con el crecimiento automático de archivos, SQL Server aumenta el tamaño de un archivo cuando éste se llena. Con el llenado proporcional, SQL Server pone los datos en los archivos en proporción a la cantidad de espacio que tienen disponible los archivos pero no aumenta el tamaño de los archivos.

 El tamaño máximo de archivo es simplemente eso -el tamaño máximo hasta el que

se permite crecer a un archivo. Este valor también se especifica en la creación de un archivo pero se puede revisar posteriormente utilizando el Administrador corporativo o el comando ALTER DATABASE. Si no se fija un tamaño máximo para un archivo, SQL Server continuará haciendo crecer al archivo hasta que se llene todo el espacio de disco. Para evitar que se termine el espacio de disco y que SQL Server reciba errores hay que fijar un tamaño máximo para cada archivo. Si alguna vez un archivo alcanza su tamaño máximo, se puede incrementar el tamaño máximo mediante el uso de la sentencia ALTER DATABASE o se puede crear otro archivo en el mismo disco si aún hay espacio en ese disco o en un disco distinto. Hay que asegurarse de que el nuevo archivo esté en el mismo grupo de archivos que el archivo original. Si se permite a un archivo crecer sin restricciones (que es lo predeterminado) hasta que se utilice todo el espacio de disco disponible, habrá que crear un archivo en otro disco que tenga espacio libre. 

Por norma, debería utilizarse crecimiento automático de archivos y tamaños de archivo máximos. Incluso aunque se encuentre disponible el crecimiento automático de archivos, aún se debería supervisar el crecimiento de la base de datos regularmente -quizás diaria o semanalmente para unos registros propios. Se puede mantener la información de crecimiento en una hoja de cálculo, por ejemplo. Con esta información se puede extrapolar para estimar cuánto espacio en disco se va a necesitar para el mes que viene, el año que

Page 47: Manuel SQL

viene, los próximos cinco años, etc. Mediante la supervisión del espacio se debería conocer qué archivos han experimentado crecimiento automático y cuándo o si se debería alterar la base de datos para añadir más archivos. Esta evaluación continua del espacio ayudará a evitar el alcanzar el tamaño máximo de archivo o el utilizar todo el espacio en disco disponible.  

BASES DE DATOS DEL SISTEMA 

Al instalar SQL Server se crean cuatro bases de datos del sistema: las bases de datos master, tempdb, model y msdb. Estas bases de datos se describen en la siguiente lista:         Master: Registra la información a escala de sistema, la información de

inicialización de SQL Server y los parámetros de configuración de SQL Server. Esta base de datos también registra todas las cuentas de inicio de sesión, la existencia de todas las demás bases de datos y la posición del archivo principal de todas las bases de datos de usuario. Siempre se debe mantener una copia de seguridad reciente de la base de datos master.

         Tempdb: Alberga tablas y procedimientos almacenados temporales. Esta base de

datos también se utiliza para otras necesidades de almacenamiento temporales de SQL Server, por ejemplo para la ordenación de datos. Se vuelve a crear una copia limpia de la base de datos tempdb cada vez que se inicia SQL Server. Seguidamente crece de manera automática, según vaya siendo necesario. Si se necesita una gran cantidad de espacio tempdb, se puede aumentar el tamaño predeterminado de la base de datos mediante el uso del comando ALTER DATABASE.

         Model: Sirve como plantilla para todas las demás bases de datos que se creen en el

sistema, entre ellas tempdb. Cuando se crea una base de datos, la primera parte de ella se crea como una copia de los contenidos de la base de datos model. El resto de la base de datos se rellena con páginas vacías. La base de datos model debe existir en el sistema porque se utiliza para volver a crear tempdb cada vez que SQL Server se inicia. Se puede alterar la base de datos model para que incluya tipos de datos, tablas, etc., definidos por el usuario. Si se altera la base de datos model, cada base de datos que se cree tendrá los atributos modificados.

         Msdb: Contiene tablas que el Agente de SQL Server utiliza para la planificación de

trabajos y alertas y para el registro de operadores. Esta base de datos también alberga las tablas que se usan para la duplicación.

 Cada una de estas bases de datos del sistema tiene sus propios archivo de datos

principal y archivo de registro. Las bases de datos se almacenan en la carpeta que se designó para archivos del sistema durante la instalación de SQL Server. 

Page 48: Manuel SQL

 

CREACIÓN DE BASES DE DATOS 

SQL Server proporciona tres métodos para la creación de una base de datos: el Asistente para creación de bases de datos, el Administrador corporativo de SQL Server y comandos T-SQL que pueden guardarse en un archivo y ejecutarse como un archivo de comandos: 

El Asistente para creación de bases de datos tiene algunas limitaciones que deben tenerse en cuenta. El asistente coloca todos los archivos de datos que crea en una sola unidad de disco en la carpeta que se le especifique. No se puede poner archivos de datos en posiciones físicas diferentes (ni en unidades diferentes ni en carpetas diferentes) si se utiliza el asistente. Se pueden poner archivos de registro en una unidad o una carpeta separada de los archivos de datos pero, nuevamente, en una única posición física. No pueden especificarse grupos de archivos definidos por el usuario, y todos los archivos heredan las mismas opciones de crecimiento. Debido a estas limitaciones, el Asistente para creación de bases de datos es la mejor elección si sólo se necesita un archivo de datos principal y un archivo de registro de transacciones en la base de datos. (Por otra parte, siempre se pueden añadir archivos y grupos de archivos a la base de datos posteriormente si se necesitan.) 

Debería usarse el Administrador corporativo o un archivo de comandos T-SQL para crear la base de datos si se tienen archivos de datos secundarios que se quieren colocar en una unidad de disco distinta de la que contenga el archivo de datos principal, si se quieren añadir grupos de archivos definidos por el usuario o si se necesitan opciones de crecimiento distintas para los diferentes archivos.  Uso del Asistente para creación de bases de datos 

Para creadores de bases de datos principiantes, el Asistente para creación de bases de datos puede ser el método más fácil; si, de todas formas, se ajusta a las necesidades propias a pesar de las limitaciones antes mencionadas, debe usarse. Hay que seguir estos pasos para crear una base de datos, si se quiere utilizar el Asistente para creación de bases de datos: 1. 1.      Iniciar el Administrador corporativo de SQL Server y seleccionar el servidor en el

que se quiere crear la base de datos. Para seleccionar el servidor hay que comenzar por expandir la carpeta Servidores Microsoft SQL Server. (Pulsar el signo más a la izquierda del nombre de la carpeta.), expandir la carpeta Grupo de SQL Server y a continuación pulsar en el nombre del servidor que quiera usarse. En el menú Herramientas, seleccionar Asistentes,Expandir Base de datos.

 2. 2.      Pulsar dos veces en el Asistente para creación de bases de datos para iniciar el

Asistente para creación de bases de datos.

Page 49: Manuel SQL

 3. 3.      Pulsar Siguiente para pasar a la pantalla Dar nombre a la base de datos y especificar

su ubicación. Escribir el nombre de la base de datos que se quiere crear y las rutas de las posiciones donde se quieren almacenar los archivos de datos y los archivos de registro. Estas posiciones deben contener una unidad válida y una carpeta que ya exista en el sistema local. Si se pulsa el botón para examinar [ ... ] a la derecha de uno de los cuadros de texto inferiores se puede buscar y seleccionar una carpeta. Una vez se haya nombrado la base de datos y localizado la ruta en que deben estar los archivos de datos y registro, pulsar Siguiente para continuar.

 

 4. 4.      Se muestra la pantalla Dar nombre a los archivos de base de datos. En esta pantalla

se puede escribir el nombre y tamaño inicial para cada uno de los archivos de base de datos. El archivo principal de la base de datos se crea automáticamente y se le da el nombre de la base de datos como prefijo en su nombre. Se puede aceptar este nombre o escribir uno diferente. El archivo de datos principal tiene una extensión mdf. Si se tiene idea de cómo de grandes serán los archivos de la base de datos, escribir un valor de tamaño inicial ahora. De otro modo, dejar el tamaño predeterminado; se puede modificar más tarde utilizando el Administrador corporativo o el comando ALTER DATABASE. Cualesquiera archivos que se creen aparte del archivo primero o principal serán archivos secundarios y se les dará automáticamente la extensión ndf. Todos los archivos creados aquí serán colocados en el grupo de archivos principal. No hay opción para crear grupos de archivos definidos por el usuario con el Asistente para creación de bases de datos. En el ejemplo, se deja el archivo principal, MiBD_Data, y se añade un archivo secundario, MiBD_Data2. Ambos archivos serán colocados en el mismo lugar que se especificó en el paso 3. (No se debe continuar sí no se desea poner todos los archivos de datos en la misma unidad y la misma carpeta. Por el contrario, deberá utilizarse uno de los otros métodos que se muestran en las secciones siguientes para crear una base de datos.) Pulsar Siguiente para continuar.

 

Page 50: Manuel SQL

  5. 5.      Se muestra la pantalla Definir el crecimiento del archivo de base de datos. Como se

ha mencionado antes en este capítulo, SQL Server puede aumentar automáticamente el tamaño de la base de datos según se necesite, lo cual ayuda a reducir la sobrecarga de mantenimiento En general, se debería seleccionar la característica de crecimiento automático (Crecimiento automático de archivos de base de datos) porque implica poca sobrecarga de rendimiento de otra forma, se necesitará ajustar manualmente el tamaño de la base de datos según sea necesario. Si se pulsa Crecimiento automático de archivos de base de datos se puede especificar la manera en que el archivo de base de datos deberá aumentar: bien en fragmentos de un número fijo de megabytes o según un porcentaje del tamaño actual. Debe tenerse en cuenta que el archivo de base de datos crecerá sólo según se necesite. También se puede restringir la base de datos a un tamaño máximo o dejarla crecer sin restricciones. Las configuraciones de esta pantalla se aplicarán a cada archivo de base de datos que se creara en el paso 4. No se puede utilizar el Asistente para creación de bases de datos para configurar parámetros de crecimiento para archivos individuales. Pulsar Siguiente para continuar.

   

Page 51: Manuel SQL

 6. Aparece la pantalla Dar nombre a los archivos del registro de transacciones. Esta

pantalla parece igual a la pantalla Dar nombre a los archivos de base de datos, pero esta versión es para el archivo de registro. Ha de tenerse cuidado de no confundir las pantallas.

 Tal y como se hizo en el paso 4 para los archivos de base de datos, escribir el nombre y tamaño inicial para el registro de transacciones. (Recuérdese que un registro de transacciones contiene una grabación de todas las modificaciones de la base de datos para posibilitar la recuperación en caso de un fallo de sistema.) El primer archivo de registro de transacciones se crea automáticamente y se le da el nombre de la base de datos como prefijo de su nombre. Se puede aceptar este nombre o escribir uno distinto. Los datos del registro de transacciones se almacenan en un archivo con la extensión Idf. Se puede añadir más archivos de registro en unidades diferentes si es necesario. Si se tiene idea del tamaño que tendrá el archivo de transacciones, escribir un valor ahora. De otra manera, dejar el tamaño predeterminado; se puede modificar posteriormente utilizando el Administrador corporativo o el comando ALTER DATABASE. Pulsar Siguiente para continuar.

 7. Se muestra la pantalla Definir el crecimiento del archivo de registro de transacciones.

Esta pantalla parece igual que la pantalla Definir el crecimiento del archivo de base de datos. De igual modo que en el paso 5, se puede seleccionar Crecimiento automático de archivos de registro de transacciones y, si se desea, se puede especificar los parámetros de crecimiento y el tamaño máximo de archivo. Pulsar Siguiente para continuar.

 8. Aparece la pantalla Completando el Asistente para creación de bases de datos. Revisar

la información que se ha especificado para la nueva base de datos. Si es aceptable, pulsar Finalizar para terminar la creación de la base de datos; de lo contrario, pulsar Atrás y hacer cualquier cambio necesario.

 

Page 52: Manuel SQL

9. Una vez se ha creado la base de datos, aparece un cuadro de mensaje Asistente para creación de bases de datos para informar que la base de datos se ha creado correctamente. Pulsar Aceptar para cerrar este cuadro de mensaje.

 10. Aparece otro cuadro de mensaje, que pregunta si se quiere crear un plan de

mantenimiento para la nueva base de datos. Se recomienda crear un plan de mantenimiento para asegurarse de que la base de datos tenga un comportamiento correcto, se haga copia de seguridad regularmente por si hay fallo del sistema y sea verificada contra inconsistencias.

  Uso del Administrador corporativo 

El Administrador corporativo de SQL Server da la capacidad de crear bases de datos más complejas que las creadas con el Asistente para creación de bases de datos. Se pueden especificar opciones de crecimiento para cada archivo que se cree, en vez de para todos los archivos en grupo y se pueden crear grupos de archivos definidos por el usuario. Para crear una base de datos utilizando el Administrador corporativo hay que realizar los pasos resumidos en la siguiente lista. En el ejemplo se creará una base de datos de muestra llamada MiBD con un archivo de datos principal, tres archivos de datos secundarios (que residen en un mismo grupo de archivos definido por usuario) y un archivo de registro. 

1 . Abrir el Administrador corporativo. En el panel izquierdo, expandir el grupo de SQL Server que contenga el nombre del servidor sobre el que se quiere crear la base de datos y expandir el propio nodo del servidor. A continuación pulsar con el botón derecho del ratón en la carpeta Bases de datos y elegir Nueva base de datos.

 2. 2.       Se abre la ventana Propiedades de la base de datos, con la pestaña General en

primer plano, como se ve en la figura siguiente. Escribir el nombre de la base de datos en el cuadro Nombre.

 

 

Page 53: Manuel SQL

3. 3.       Pulsar la pestaña Archivos de datos. Como se muestra en la figura siguiente, el Administrador corporativo crea automáticamente el archivo de datos principal, con el nombre de la base de datos como prefijo y PRIMARY como grupo de archivos. Se puede cambiar el nombre, posición y tamaño del archivo principal, pero no se puede cambiar el grupo de archivos del archivo de datos principal. Escribir el nombre de archivo (nombre lógico), ubicación (nombre físico), tamaño y grupo de archivos de cada archivo que se desee crear. Para cada archivo distinto del archivo principal se puede escribir un nombre de grupo de archivos definido por el usuario, y dicho grupo de archivos será creado.

 En el ejemplo, se crea el archivo de datos secundario MiBD_Data2 en el grupo de archivos Mi_FG.

 La ubicación de cada archivo es de manera predeterminada la carpeta en la unidad en que SQL Server está instalado. Se puede cambiar esta configuración escribiendo una nueva ruta o mediante el uso del botón de examinar. 

  

4. En el área Propiedades de archivo en la parte baja de la ventana se pueden seleccionar las opciones de crecimiento automático según cada archivo. Seleccionar el nombre del archivo para el que se quiera configurar las opciones de crecimiento. Seleccionar la casilla de verificación Crecimiento automático del archivo para habilitar el crecimiento automático para ese archivo. A continuación se puede especificar el incremento de crecimiento en megabytes o como porcentaje del espacio libre restante en el archivo. También se puede especificar un tamaño máximo de archivo pulsando Limitar crecimiento de archivo a (MB) e introducir un tamaño en megabytes o se puede dejar el tamaño del archivo sin limitar. Se puede configurar estas opciones a medida que se crea cada archivo o se pueden dejar los

Page 54: Manuel SQL

valores predeterminados y cambiarlos posteriormente mediante la ventana Propiedades de la base de datos de Administrador de archivos. Si se necesita borrar un archivo de la lista, seleccionar el nombre de ese archivo y presionar la tecla Suprimir.

 5. Tras terminar la configuración de todos los archivos de datos, pulsar la pestaña

Registro de transacciones de la ventana Propiedades de la base de datos para configurar los archivos del registro de transacciones. Los archivos de registro se configuran de la misma manera que los archivos de datos, excepto que no se puede seleccionar un grupo de archivos para los archivos de registro dado que éstos no pertenecen a ningún grupo de archivos. Escribir el nombre de archivo (nombre lógico), la ubicación (nombre físico) y el tamaño inicial del archivo o los archivos de registro. Hay que elegir también las opciones de crecimiento automático para los archivos de registro como se ha descrito en el paso 4 para archivos de datos.

 6. 6.      Una vez se hayan definido tantos archivos como se desee, pulsar Aceptar. SQL

Server creará la base de datos. Volver al Administrador corporativo y pulsar la carpeta Bases de datos del servidor al que se ha añadido la base de datos. En el panel derecho del Administrador corporativo se verá que SQL Server ha añadido un icono para esa base de datos.

  

EXAMINAR BASES DE DATOS 

Tras crear una base de datos se puede utilizar el Administrador corporativo para explorar y ver objetos en ella. También puede verse información acerca de una base de datos mediante la ejecución de comandos SQL con OSQL en línea de comandos. Uso del Administrador corporativo 

Para ver información de la base de datos utilizando el Administrador corporativo se deben seguir estos pasos: 

1. 1.      En el Administrador corporativo, expandir (pulsando los signos más) las listas del grupo SQL Server, el nombre del servidor en que reside la base de datos y la carpeta Bases de datos.

 2. Pulsar el nombre de la base de datos que se desee para mostrar los objetos que

contienen la base de datos.   

BORRAR UNA BASE DE DATOS 

Page 55: Manuel SQL

En algún momento se puede querer quitar una base de datos. Hay que recordar que esto es una calle de dirección única -una vez que se borra una base de datos, la única manera de recuperarla es restaurar una versión de copia de seguridad. Es más seguro, por tanto, hacer copia de seguridad de la base de datos antes de borrarla, sólo por si acaso se pueda volver a necesitarla más tarde. Se puede borrar una base de datos utilizando Administrador corporativo o comandos T-SQL.  Uso del Administrador corporativo 

Como se ha mencionado anteriormente, el Administrador corporativo permite realizar administración sobre las bases de datos además de ver información. Para borrar permanentemente una base de datos y todos sus archivos utilizando el Administrador corporativo hay que seguir estos pasos: 

1. 1.      En el Administrador corporativo, expandir el grupo SQL Server y el nombre del servidor en que la base de datos se halla instalada.

 2. 2.      Desplegar la carpeta Bases de datos para ver las bases de datos disponibles.

 3. Pulsar con el botón derecho del ratón en el nombre de la base de datos que se

quiere eliminar y, a continuación, elegir Eliminar en el menú de contexto. Aparece el cuadro de mensaje Eliminar base de datos. Pregunta si se quiere eliminar el historial de copia de seguridad y recuperación de la base de datos, así como borrar la base de datos. Si se selecciona esta opción, toda la información de copia de segu-ridad y recuperación de las tablas de historial de copia de seguridad y recuperación que reside en la base de datos msdb será borrada. Si se quiere guardar esta información, quitar la selección de la casilla de verificación. Pulsar Sí para confirmar el borrado.

 Tras borrar una base de datos se debería hacer una nueva copia de seguridad de la base

de datos master, de manera que contenga la información actual acerca de bases de datos de usuario y no incluya información sobre la base de datos que acaba de ser eliminada. Adviértase también que una base de datos no puede borrarse mientras haya usuarios accediendo a ella. Todos los usuarios deben desconectar de una base de datos antes de que sea eliminada.

Page 56: Manuel SQL

 

TABLAS EN LAS BASES DE DATOS 

Una vez se haya creado una base de datos (con archivos y grupos de archivos), el siguiente paso es crear los objetos, denominados tablas, que permiten organizar y almacenar los datos. Este apartado examina las decisiones principales que implica la creación de una tabla de una base de datos. La creación de una tabla puede ser un proceso ligeramente complicado debido a las muchas opciones que se encuentran disponibles. Primero se examinarán los requisitos básicos para una tabla y seguidamente se explorarán algunas de las opciones, dando ejemplos mientras se avanza. 

En este apartado se aprenderá sobre tipos de datos definidos por el usuario y por el sistema, cómo ubicar tablas en grupos de archivos, valores NULL y la propiedad IDENTITY. Se aprenderá a crear una tabla mediante la utilización del Administrador corporativo.  

Al tiempo que se empiezan a diseñar las tablas de la base de datos se deben tomar varias decisiones en relación con su estructura. Estas decisiones incluyen la determinación de qué partes de los datos necesitan almacenarse en las tablas y cómo deben relacionarse las tablas entre sí. Este proceso ayudará a tener una visión global antes de entrar en los detalles de la creación de tablas. La siguiente lista da un esquema de estas decisiones de diseño:  

• ¿Qué datos contendrá cada tabla?• ¿Qué columnas deben crearse para albergar los datos y cómo deben llamarse?• ¿Cuáles son los requisitos del rango de los datos que se permitiría contener a una

columna qué tipo de datos Microsoft SQL Server 2000 debe utilizarse para cada columna?

• ¿Hay alguna columna a la que se deba permitir contener valores NULL o pueden utilizarse valores predeterminados en su lugar? (Permitir valores NULL provoca mayor carga de procesamiento que la utilización de valores predeterminados.)

• ¿Qué columnas serán claves principales y cuáles serán claves ajenas?• ¿Qué tipo de índices (agrupados o no agrupados) debe tener la tabla y en qué columna

columnas deben definirse dichos índices?• ¿Qué usuarios deben tener acceso a qué tablas?

 Se debe intentar resolver tantas de estas decisiones de diseño como sea posible y

representarlas sobre papel o con diagramas en pantalla para entender el diseño general de las tablas de la base de datos antes de crearlas. También se debe averiguar de los usuarios la manera en que se accederá a los datos. Por ejemplo, averiguar si una tabla determinada será de sólo lectura o si se realizaran inserciones, eliminaciones y actualizaciones. Determinar qué consultas se realizarán más frecuentemente y qué columnas necesitan recuperarse. Establecer qué información se necesita realmente en la base de datos y cuál es innecesaria almacenar. Esta información ayudará a decidir la manera de construir tablas e índices, qué

Page 57: Manuel SQL

restricciones podrían necesitarse, dónde podrían ser útiles valores predeterminados y más cosas. A continuación se abordará el aprendizaje de la creación tablas desde sus cimientos.REPASO DE CONCEPTOS BÁSICOS SOBRE TABLAS 

En esta sección se revisarán algunos conceptos simples pero importantes acerca de las tablas. Se incluye una tabla de base de datos de muestra para presentar los elementos básicos de una tabla y se aprenderá sobre los tipos de datos del sistema, y cómo crear y eliminar tipos de datos definidos por el usuario. Definición de tabla de una base de datos 

Una tabla es un objeto de una base de datos que almacena datos en una colección de filas y columnas. Una tabla se define por las columnas que contiene. Así, los datos pueden organizarse de forma similar a una hoja de cálculo, como se ilustra en la tabla siguiente, que muestra una tabla de base de datos de ejemplo llamada Info_Productos.  

La tabla Info_Productos se utiliza para almacenar información sobre cada producto que haya a la venta en una tienda. Cuando un producto se halle disponible para la venta, se añaden sus datos como una nueva fila de la tabla. Esta tabla contiene cinco columnas de información: ID_Producto, Nombre_Producto, Descripción, Precio e ID_Marca. La tabla anterior ilustra una muestra de tres filas de datos de la tabla Info_Productos.  

Tabla Info_Productos ID_Producto Nombre_Producto Descripción Precio ID_Marca 

1 Tienda cinco pies Para una o dos personas 80,00 122 Miniestufa Alimentada con queroseno 20,00 333 Mochila Con estructura de acero 60,00 15

  

Para definir una tabla se debe decidir qué columnas definir y qué tipo de datos, como por ejemplo datos de caracteres o numéricos, se permite que haya en cada columna. También se debe decidir sobre un rango permisible a esos datos -por ejemplo, podría decidirse permitir hasta 30 caracteres o números de 4 bytes. Estos atributos se especifican mediante la asignación a cada columna de un tipo de datos, que es un conjunto de atributos que determinan qué tipo y rango de datos puede albergar esa columna. SQL Server proporciona algunos tipos de datos de sistema que pueden utilizarse, o se pueden crear unos propios construyéndolos sobre los tipos del sistema. (No se puede cambiar un tipo de datos del sistema, pero se puede crear un tipo completamente nuevo.)  Utilización de tipos de datos del sistema 

Page 58: Manuel SQL

Como se ha mencionado, se especifica un tipo de datos para cada columna de una tabla. La asignación de un tipo de datos a una columna fija los siguientes atributos: - -         La clase de datos que la columna puede contener, como caracteres, enteros o

imágenes. - -         El tamaño o longitud de los datos de una columna.  - -         La precisión del número (sólo para tipos numéricos) -esto es, el número de dígitos

que puede contener un número. - -         La escala del número (sólo para tipos numéricos) -esto es, el número de dígitos que

pueden almacenarse a la derecha del punto decimal. 

Los tipos de datos también afectan a las columnas en las vistas, a los parámetros en los procedimientos almacenados, a las variables y a las funciones T-SQL que devuelven uno o más valores de datos. Los tipos de datos integrados que ofrece SQL Server se definen en la tabla siguiente. SQL Server 2000 introduce tres tipos de datos: bigint, sql_variant y table. (Con pocas excepciones, expuestas en esta tabla, se utilizan los mismos tipos de datos para todos los objetos mencionados.)

 Tipo de datos Descripción Tamaño de almacenamiento  bigint Un número entero de 8 bytes. 8 bytes binary [(n)] Datos binarios de longitud fija de n bytes, donde n es un n + 4 bytes

valor de 1 a 8000. Hay que usar binary cuando las entradasde datos de una columna se supongan próximas al mismotamaño.

 bit Tipo de datos entero que puede tomar los valores 1, 0 o 1 byte para una tabla con

NULL. Las columnas de bits no pueden tener índices en columnas de hasta 8 bits, 2ellas. bytes para una tabla con

columnas de entre 9 y 16 bits,y así sucesivamente.

 char [(n)] Datos de caracteres no Unicode de tamaño fijo con longitud n bytes

de n caracteres, donde n es un valor de 1 a 8000. cursor Una referencia a un cursor. Sólo puede usarse para variables No aplicable

y parámetros de procedimientos almacenados. datetime Datos de fecha y hora desde el 1 de enero de 1753 al 31 8 bytes

de diciembre de 9999, con una precisión de 3,33 milisegundos. decimal [(p, [s])] o Números de precisión y escala fijas. (El tipo de datos nume- De 5 a 17 bytes, dependiendonumeric [(p, [s])] ric es sinónimo de decimal.) La precisión (p) especifica el de la precisión.

número total de dígitos que pueden almacenarse, tanto a laizquierda como a la derecha del punto decimal. La escala (s)especifica el número máximo de dígitos que pueden almacenarse a la derecha del punto decimal. La escala debe sermenor o igual que la precisión. La precisión mínima es 1, yla precisión máxima es 28 a no ser que se inicie SQL Servercon el parámetro -p, en cuyo caso la precisión puede ser

Page 59: Manuel SQL

hasta 38. float [(n)] Datos numéricos de precisión flotante que pueden alcanzar De 4 a 8 bytes, dependiendo de

desde -1, 79E+308 hasta 1, 79E+308. El valor n es el núme- la precisión.ro de bits utilizados para almacenar la mantisa del númerode coma flotante y puede variar entre 1 y 53.

 image Utilizado para datos binarios de longitud variable mayor de 16 bytes para el puntero.

8000 bytes, con un máximo de 2^31 1 bytes. Una entradaen una columna image es un puntero a la posición del valorde los datos image. Los datos se almacenan de manera sepa-rada de los datos de la tabla.

 integer o int Datos de un número entero desde -21131 (-2.147.483.648) 4 bytes

hasta 2^31 - 1 (2.147.483.647). money Valores de datos monetarios entre -21163 8 bytes

(-922.337.203.685.477,5808) y 2^63 - 1(922.337.203.685.477,5807), con exactitud hasta la diezmi-lésima de una unidad monetaria.

 nchar [(n)] Datos de caracteres Unicode de longitud fija de n caracte- 2 bytes x el número de caracte-

res, donde n es un valor entre 1 y 4000. Los caracteres res introducidos.Unicode usan 2 bytes por carácter y pueden soportar todoslos caracteres internacionales.

 ntext Datos Unicode de longitud variable con un máximo de 16 bytes para el puntero y 2

2-30 = 1 (1.073.741.823) caracteres. La entrada en la bytes x el número de caracterescolumna ntext es un puntero a la posición de los datos. El introducidos para los datos.dato se almacena de manera separada de los datos de latabla.

 nvarchar Datos Unicode de longitud variable de n caracteres, donde 2 bytes x el número de caracte

n es un valor entre 1 y 4000. Recuérdese que los caracteres res introducidos.Unicode usan 2 bytes por carácter y pueden soportar todoslos caracteres internacionales.

 real Datos numéricos de precisión flotante que pueden variar 4 bytes

entre -3,40E+38 y 3,40E+38. El sinónimo del tipo real esfloat (24)

 smalldatetime Datos de fecha y hora desde el 1 de enero de 1900 hasta el 4 bytes

6 de junio de 2079, con exactitud hasta el minuto (menospreciso que el tipo de datos datetime).

 smallint Datos enteros entre -2^15 = 32.768) hasta 2^15 = 1 2 bytes

(32.767). smallmoney Valores de datos monetarios desde -214.748,3648 hasta 4 bytes

214.748,3647, con exactitud de hasta una diezmilésima deunidad monetaria.

 sql_variant Permite valores de diferentes tipos de datos. El valor del El tamaño varía.

dato y los datos que describen ese valor -su tipo de datosbase, escala, precisión, tamaño máximo e intercalación- sealmacenan en esta columna.

 sysname Un tipo de datos definido por el usuario de SQL Server 256 bytes

especial y proporcionado por el sistema. El tipo de datossysname está definido por SQL Server como nvarchar(128), lo cual significa que puede almacenar 128 caracteresUnicode (o 256 bytes). Hay que usar sysname para colum-

nas que almacenen nombres de objetos. table Similar a utilizar una tabla temporal -la declaración inclu- Varía según la definición de la

ye una lista de columnas y tipos de datos. Puede utilizarse tablapara definir una variable local o para el valor de retorno de

Page 60: Manuel SQL

una función definida por el usuario. text Usado para datos de caracteres no Unicode de longitud 16 bytes para el puntero.

variable mayor que 8000 bytes. Una entrada en una colum-na text puede albergar hasta 2^31 = 1 caracteres. Es un pun-tero a la posición del valor del dato. El dato se almacena demanera separada de los datos de la tabla.

 timestamp Una columna timestamp se actualiza automáticamente cada 8 bytes

vez que se inserta o actualiza una fila. Cada tabla puedetener sólo una columna timestamp.

 tinyint Datos enteros entre 1 y 255. 1 byte uniqueidentifier Almacena un valor binario de 16 bytes que es un identifica- 16 bytes

dor exclusivo global (Globally Unique Identifier, GUID). varbinary Datos binarios de longitud variable de n bytes, donde n es Longitud real de los datos

un valor entre 1 y 8000. Usar varbinary cuando se espere introducidos = 4 bytes.que las entradas de datos en una columna varíen considera-blemente en tamaño.

 varchar [(n)] Datos de caracteres no Unicode de longitud variable de n Longitud real de los datos

caracteres m donde n es un valor entre 1 y 8000. introducidos.

   Selección del tipo de datos adecuado 

La selección del tipo de datos adecuado para cada columna es importante a la hora de crear tablas. Se desea que esté permitido el rango de los valores que se necesita almacenar en la columna, y también se desea que se rechacen los valores que no deberían ser permitidos (como un valor de caracteres en una columna que requiere un número). Los tipos de datos se encargarán de esto. Hay dos preguntas que pueden ayudar a guiarse al elegir tipos de datos: - -         ¿Es el tipo de datos apropiado para la clase de datos que se necesita almacenar? - -         ¿Debe usarse un tipo de datos de longitud fija o variable? 

La selección del tipo de datos apropiado es un proceso relativamente sencillo. Los datos que se vayan a introducir en una columna deben satisfacer al tipo de datos especificado para esa columna. Así, se debe elegir el tipo de datos que cubra mejor el rango de valores que la columna pueda albergar a lo largo del tiempo de vida de la aplicación, al tiempo que limite la cantidad de espacio desperdiciado. Espacio desperdiciado es espacio que está asignado a una columna pero que no se usa. Por ejemplo, supóngase que se tiene una columna que sólo necesitará contener valores enteros en el rango de 1 a 100. El tipo de datos integer permitiría ciertamente dichos valores, pero cada entero toma 4 bytes de espacio. El tipo de datos tinyint permite valores entre 0 y 255, y sólo ocupa 1 byte de espacio. En este caso, tinyint sería la mejor elección porque ahorraría espacio en disco al almacenar los datos de esa columna. 

Page 61: Manuel SQL

A continuación debe elegirse entre utilizar tipos de datos de longitud fija o variable. Si todos los valores de una columna estuvieran cerca de un mismo tamaño, un tipo de datos de longitud fija es más eficiente debido a la sobrecarga implicada por los tipos de datos de longitud variable. Generalmente, los tipos de datos de longitud variable son apropiados cuando se espera una amplia variación en el tamaño de los datos almacenados en la columna y cuando los datos de la columna no cambien con frecuencia. Los tipos de datos de longitud variable incluyen varchar, nvarchar, varbinary, text, ntext e image. El uso de tipos de datos de longitud variable puede redundar en significativos ahorros de espacio de almacenamiento. Por ejemplo, si se define un tipo de datos de longitud fija que sea suficientemente grande para almacenar el mayor valor posible en una columna, todos los valores más pequeños de esa columna tomarán tanto espacio de almacenamiento como el que toma el mayor valor. Esto da como resultado un enorme desperdicio de espacio si sólo un pequeño porcentaje de filas se almacenan el valor más grande. Si la mayoría de filas almacenan un valor más pequeño, el espacio adicional utilizado para almacenar esos valores más pequeños es espacio desperdiciado. Por otro lado, si se define un tipo de datos de longitud variable, los valores menores tomarán sólo el espacio que necesiten. Pero, de nuevo, los tipos de datos de longitud variable necesitan mayor sobrecarga de procesamiento. Así que si no se necesita el tipo de longitud variable, mejor utilizar longitud fija. Si, de todos modos, tiene sentido utilizar un tipo de longitud variable por los ahorros de espacio, debe usarse. 

Entonces, ¿cómo hacer elecciones sobre tipos de datos y tamaños para las tablas? Síganse los consejos precedentes y háganse las elecciones que sean más apropiadas a las necesidades de la aplicación. En general, se debe intentar no desperdiciar espacio al fijar las longitudes de las columnas y no olvidar considerar necesidades futuras.  Trabajo con tipos de datos definidos por el usuario 

Los tipos de datos definidos por el usuario, o tipos de datos alias, son tipos de datos del sistema que se han personalizado. Personalizar, o definir, un tipo de datos es útil cuando se tienen varias tablas que han de almacenar el mismo tipo de datos en una columna y se desea asegurar que las correspondientes columnas de cada tabla tendrán exactamente el mismo tipo, longitud y admisión de nulos. Se puede definir un tipo de datos con un nombre descriptivo para facilitar la programación y consistencia. Luego, puede usarse el tipo de datos al crear las distintas tablas. 

Por ejemplo, supóngase que se tiene otra tabla -llamada Marcas- en la misma base de datos en que está Info_Productos. La tabla Marcas tendrá una columna ID_Marca que se corresponde con la columna ID_Marca de la tabla Info_Productos y la tabla Marcas proporcionará el nombre de la marca y otras informaciones convenientes acerca de las marcas. Para asegurar que las columnas ID_Marca de las dos tablas tengan el mismo tipo de datos y no permitan valores NULL podría crearse un tipo de datos definido por el usuario y asignarlo a ambas columnas. Ahora, cabe imaginar que se tienen varias tablas con columnas que necesitan tener los mismos atributos. Podría no recordarse si se utilizó

Page 62: Manuel SQL

smallint o tinyint para aquella columna de una tabla o si se permitían valores NULL. Si se hubiera definido un tipo de datos con un nombre descriptivo no habría que preocuparse sobre los atributos cada vez que se usara, y se habría asegurado que los tipos de datos son consistentes entre las distintas tablas. 

Nota: Al definir un tipo de datos en una base de datos en particular, sólo podrá usarse en esa base de datos. Sin embargo, si se define el tipo de datos en la base de datos model (la plantilla para todas las demás bases de datos), existirá en todas las nuevas bases de datos.

  Creación de tipos de datos definidos por el usuario mediante el uso del Administrador corporativo Podría desearse crear tipos de datos para datos como números de teléfono, códigos postales, números de la Seguridad Social y cualesquiera otros datos que se puedan definir claramente y que se vayan a utilizar en más de una tabla de base de datos. Al definir un tipo de datos se deben dar los siguientes fragmentos de información: - -         El nombre del tipo de datos. - -         El tipo de datos del sistema en que se basa el nuevo tipo de datos. - -         La admisión de nulos en el tipo de datos -esto es, si permite valores NULL. 

Una vez que se haya tomado una decisión acerca de estos detalles, se está preparado para crear el tipo de datos. Para crear un tipo de datos definido por el usuario utilizando el Administrador corporativo, seguir estos pasos: 

1. En el Administrador corporativo, expandir un grupo SQL Server (pulsando en el signo más al lado de la carpeta) y a continuación expandir un servidor.

 2. Expandir la carpeta Bases de datos y luego expandir una base de datos.

 

Page 63: Manuel SQL

3. Pulsar con el botón derecho del ratón en Tipos de datos definidos por el usuario y elegir Nuevo tipo de datos definido por el usuario en el menú de contexto. Aparece la ventana Propiedades del tipo de datos definido por el usuario.

 4. Escribir el nombre del nuevo tipo de datos en el cuadro de texto Nombre, como se

muestra en la siguiente figura. 

 5. A continuación se debe especificar el tipo de datos SQL Server y la longitud que de

describen el campo definido por el usuario. En el ejemplo de la figura anterior se está definiendo un tipo de datos para la columna ID_Marca, así que se elegirá el tipo smallint, con un valor de longitud predeterminado de 5. (Si se hubiese creado tipo de datos de caracteres se permitiría especificar la longitud.)

 6. 6.      Si el tipo de datos debe permitir valores NULL, seleccionar la casilla de

verificación Permitir valores NULL. 7. Si el tipo de datos debe utilizar alguna regla predefinida o valor predeterminado,

seleccionarlo en su respectivo cuadro de lista.  8. 8.      Pulsar Aceptar para guardar el nuevo tipo de datos.

  Eliminación de tipos de datos definidos por el usuario mediante el uso del Administrador corporativo 

Si se ha creado un tipo de datos definido por el usuario que ya no se utiliza (o si se cometió un error durante su creación y se quiere volver a crearlo), se puede eliminar. Para borrar un tipo de datos definido por el usuario, síganse estos pasos: 

1. 1.      En el Administrador corporativo, localizar el tipo de datos definido por el usuario que se quiera eliminar. (Expandir un grupo SQL Server, expandir un

Page 64: Manuel SQL

servidor, desplegar la carpeta Bases de datos y a continuación expandir la base de datos que contenga el tipo de datos que se quiera eliminar.)

 2. 2.      Pulsar la carpeta Tipos de datos definidos por el usuario. Los tipos de datos

definidos por el usuario de la base de datos se expondrán en el panel de la derecha, como se ve en la figura siguiente.

 

 3. 3.      Pulsar con el botón derecho del ratón sobre el tipo de datos definido por el

usuario que se quiera eliminar y elegir Eliminar del menú de contexto que aparece. Aparece el cuadro de diálogo Quitar objetos como se aprecia en la figura siguiente.

 

 4. 4.      Antes de eliminar realmente el tipo de datos, pulsar Mostrar dependencias para

que aparezca el cuadro de diálogo Dependencias, mostrado en la figura siguiente. 

Page 65: Manuel SQL

El cuadro de lista en el lado izquierdo del cuadro de diálogo Dependencias expone los objetos de la base de datos que dependen del tipo de datos definido por el usuario, y el cuadro de lista de la derecha muestra los objetos de los que depende el tipo de datos. Si el tipo de datos está siendo utilizado por alguna tabla u objeto (como lo está el tipo de datos del ejemplo), no se permitirá su eliminación -al intentarlo, aparecerá un mensaje de error.

 5. Si el tipo de datos no tiene problemas con las dependencias, cerrar el cuadro de

diálogo Dependencias y pulsar Quitar todos en el cuadro de diálogo Quitar objetos para eliminar el tipo de datos. No hay que preocuparse -sólo los tipos de datos que se muestren en el cuadro de diálogo Quitar objetos, y no todos los tipos de datos definidos por el usuario, serán eliminados.

  USO DE VALORES NULL 

Un valor NULL es un valor desconocido al que se le refiere como NULL. La admisión de nulos de una columna se refiere a la posibilidad de la columna de aceptar o rechazar valores NULL. Un valor NULL en una columna indica normalmente que no se ha introducido nada para una fila particular de datos porque el valor es desconocido, no aplicable, no definido o se ha de añadir en un momento posterior. Los valores NULL no son ni valores vacíos ni valores 0; sus valores verdaderos son desconocidos -así, no hay dos valores NULL que sean iguales. Podría necesitarse una columna con nulos si la información que se necesita no se encuentra aún disponible -por ejemplo, la inicial del segundo nombre de un cliente. ¿Qué debería contener la columna en un registro de alguien que no tiene segundo nombre y que, por tanto, no tiene inicial de su segundo nombre? Si se permite NULL en esa columna, un valor nulo en ese registro sería verdadero y tendría sentido permitiría saber que esa información no es aplicable. 

Como norma general se debe evitar el uso de valores NULL. Causan mayor complejidad en consultas y actualizaciones y algunas opciones, como claves principales y la propiedad IDENTITY no pueden utilizarse en una columna con nulos.

 Una excelente alternativa a permitir NULL en una columna es definir un valor

predeterminado en esa columna. Si se define una columna que permita valores NULL, se puede introducir un NULL en esa columna de una de estas dos maneras:

Page 66: Manuel SQL

    Si se inserta una fila en la tabla pero no se especifica un valor para los datos de la

columna con nulos, SQL Server le asignará el valor NULL (a no ser que se haya especificado un predeterminado para esa columna).

  Un usuario puede escribir la palabra NULL, sin comillas, de manera que no pueda ser con fundida con la cadena de caracteres «NULL».

 ADICIÓN DE LA PROPIEDAD IDENTITY 

Al crear una tabla se puede especificar una columna como columna de identidad añadiendo la propiedad IDENTITY a la definición de la columna. Si se crea una columna con la propiedad IDENTITY, SQL Server genera automáticamente un valor de fila para esa columna, basándose en un valor semilla y un valor de incremento. El valor semilla es un valor que será el valor de identidad para la primera fila insertada en la tabla. El incremento es la cantidad en la que SQL Server aumentará el valor identidad para inserciones sucesivas. Cada vez que se inserte una fila, SQL Server asigna el valor de identidad actual a la columna de identidad de la fila. La siguiente fila que se inserte recibirá un valor identidad que sea un incremento mayor que el valor identidad actual más alto. De esta forma, cada fila que se inserte recibe un valor de identidad único. La propiedad de identidad es útil para columnas en las que cada fila de esa columna deba tener un ID único, como la columna ID_Producto. Es más fácil dejar que SQL Server genere el valor de identidad de las filas que se inserten que llevar la cuenta de cuál debe ser el siguiente valor que se inserte. Una columna de identidad se utiliza comúnmente como restricción de clave principal en la tabla para identificar de manera única a una fila.  

Por ejemplo, si se especifica IDENTITY (0,10), la primera fila que se inserte tomará un valor de columna de identidad de 0, la segunda fila tomará 10, la tercera fila tomará 20, y así sucesivamente. Los valores de semilla e incremento predeterminados, si no se especifica ninguno son (1, 1). Se deben especificar los dos parámetros o ninguno. Sólo se permite una columna de identidad por tabla. 

De forma predeterminada, no se pueden insertar datos directamente en las columnas de identidad ni pueden ser actualizados.    

CREACION DE UNA TABLA MEDIANTE EL ADMINISTRADOR CORPORATIVO 

Ahora que se entienden los elementos básicos de la creación de tablas utilizando SQL Server pasará por un ejemplo de uso del Administrador corporativo para crear una tabla. Sin embargo o, antes de comenzar este proceso es crítico recordar que cuando se diseñen bases de datos propias se deben diseñar todas las tablas de la base de datos y sus relaciones antes de empezar realmente a crearlas. Para crear una tabla de base de datos utilizando el Administrador corporativo hay que seguir estos pasos: 

Page 67: Manuel SQL

1. 1.       En el Administrador corporativo, desplegar un grupo SQL Server y a continuación expandir un servidor.

 2. 2.       Desplegar la carpeta Bases de datos para ver las bases de datos disponibles.

 3. 3.       Expandir la base de datos en que se desee trabajar, en este caso, MiBD.

 4. 4.       Pulsar con el botón derecho del ratón la carpeta Tablas y elegir Nueva tabla en

el menú de contexto que aparece. Aparece la ventana Tabla nueva, como se muestra (maximizada) en la figura siguiente.

 

 En la figura anterior se puede ver la ventana Tabla, que contiene una rejilla con

aspecto de una hoja de cálculo, donde cada fila de la rejilla representa una columna de la tabla. Cada columna de la rejilla representa un atributo diferente de la columna de la tabla – tipo de datos, longitud o admisión de nulos.

 Nota: Deben adoptarse estándares al nombrar las columnas de la tabla. En realidad, no importa qué tipo de norma se adopte, pero hay que ser consistente. Cada vez que se utilice la misma columna en tablas diferentes se debe usar exactamente el mismo nombre. Esta consistencia ayudará a evitar confusión al realizar consultas.

 5. 5.       Definir cada una de las columnas de la tabla de la base de datos -trabajando fila

por fila - escribiendo el nombre en la columna Nombre de columna, eligiendo el tipo de datos del menú desplegable de la columna Tipo de datos, eligiendo la longitud cuando sea aplicable (como para tipos de datos de caracteres) y presionando la tecla Mayúsculas (o la barra espaciadora) o pulsando en la columna Permitir valores nulos para conmutar la marca de In (para permitir o prohibir, respectivamente, los valores nulos).

 

Page 68: Manuel SQL

En la imagen siguiente se muestra la tabla Info_Producto. Adviértase que se ha elegido el tipo de datos definido por el usuario tipo_marca para la columna ID_Marca. Pero hay que fijarse también en que la marca de verificación de la columna Permitir valores nulos se encuentra activada, incluso para el tipo de datos tipo_marca, que se creó para no permitir valores nulos. Se debe desactivar esta marca de verificación para ser consistente con la anulabilidad que se le supone al tipo de datos.

 

 Los datos de las filas de la tabla se almacenarán físicamente en el orden en que se

han definido las columnas. Si se quiere insertar una fila de definición de columna en esta rejilla entre dos filas existentes se debe pulsar con el botón derecho del ratón en la fila inmediatamente posterior al lugar en que se quiere insertar una nueva fila y elegir Insertar columna en el menú de contexto que aparece. Para quitar una fila, pulsar con el botón derecho del ratón la fila apropiada y elegir Eliminar columna en el menú de contexto. En el ejemplo de la tabla Info_Productos, se configurará la columna ID_Producto como la columna clave principal pulsando con el botón derecho del ratón el nombre de columna ID_Producto y eligiendo Establecer clave principal en el menú de contexto. Aparecerá un icono de una llave junto al nombre de la columna. 

 6. En la parte inferior de la ventana hay una ficha etiquetada «Columnas». Esta ficha

permite cambiar algunos atributos de la columna seleccionada en la parte superior.

Page 69: Manuel SQL

Por ejemplo, se ha seleccionado la columna ID_Marca y a continuación se ha asignado una descripción y un valor predeterminado de 0 para ella en la ficha Columnas de debajo, como se muestra en la figura anterior.

 7. 7.      Se pueden crear otras restricciones e índices sobre la tabla pulsando con el botón

derecho del ratón sobre cualquier nombre de columna y eligiendo índices y claves, Relaciones, Restricciones CHECK o Propiedades en el menú de contexto, o pulsando en el icono Propiedades de tabla e índice junto al icono Guardar en la barra de herramientas. Cualquiera de estos métodos lleva a la ventana Propiedades, que se muestra en la siguiente figura. El nombre de la tabla aparecerá como Tabla1, Tabla2 o algo por el estilo. En este caso se llama Tabla2. Se puede cambiar este nombre, como se enseña en el siguiente paso, al guardar la tabla.

 

 8. 8.      Para dar nombre a la nueva tabla hay que pulsar el icono Guardar y aparecerá

una venta de diálogo en donde se puede escribir el nombre de la tabla. Escribir el nombre que se desee y pulsar Aceptar, y la tabla que se ha diseñado será creada y su información guardada. Ahora se puede cerrar la ventana Tabla nueva y se verá aparecer al nombre de la tabla en el panel de la derecha de Administrador corporativo.

 

Page 70: Manuel SQL

VALORES PREDETERMINADOS 

Lo primero es comentar la razón del uso de valores predeterminados para las columnas de ciertas tablas mediante la observación de lo que ocurre si no se usa un valor predeterminado. Si se inserta una fila en una tabla que contiene columnas sin valores predeterminados y los valores de los datos para una o más columnas que admiten nulos no se introducen específicamente, a estas columnas que admiten nulos se les asigna el valor NULL. Pero si una columna se ha definido como NOT NULL y no se proporciona un valor para dicha columna cuando se inserta una fila, devolverá un mensaje de error informando que no se puede insertar NULL en la columna. En este caso es cuando los valores predeterminados son útiles. Los valores predeterminados se pueden usar para especificar un valor que se inserta en vez de NULL de forma que no se reciba ningún mensaje de error. Se deberían usar los valores predeterminados en las columnas en vez de permitirse los valores nulos, debido a que las operaciones con columnas que admiten nulos implican más sobrecarga de procesamiento que aquellas que se realizan sobre columnas que no los admiten. 

Microsoft SQL Server 2000 permite definir un valor predeterminado para cada columna de tabla. No se puede definir un valor predeterminado para las columnas que tengan el tipo de timestamp o las propiedades IDENTITY o ROWGUIDCOL, ya que dichas columnas deben tener valores únicos. Estos tipos de columnas no son compatibles con los valores predeterminados ya que si se usa un valor predeterminado para esa columna más de una vez, esa columna deja de tener valores únicos. Sólo se puede asignar un valor como valor predeterminado, y se usará automáticamente todas las veces que sea necesario. Una nota importante acerca de los valores predeterminados es: el valor especificado como la definición predeterminada para una columna debe ser compatible con el tipo de datos de dicha columna. 

Se puede crear y modificar una definición predeterminada de varias formas. En esta sección se explicará cómo definir un valor predeterminado al crear la tabla y cómo modificar una columna para añadirle o cambiar un valor predeterminado usando el Admistrador Corporativo. También se comentarán las opciones disponibles y los efectos de añadir un valor predeterminado a una columna existente de la tabla.  Definición y modificación de los valores predeterminados usando el Administrador corporativo 

El uso del Administrador corporativo es probablemente la forma más fácil de crear, ver y modificar las tablas de la base de datos. Cuando se crea o se modifica una tabla o columna usando el Administrador corporativo, SQL Server se encarga automáticamente de ejecutar los comandos T-SQL adecuados para realizar la tarea. En esta sección se verá la manera de usar el Administrador corporativo para asignar una definición de un valor predeterminado a una columna, modificar un valor predeterminado de una columna y crear un objeto Default. Éste es el método preferido. Se comienza con los ejemplos de asignación y modificación de definiciones de valores predeterminados.

Page 71: Manuel SQL

  Asignación y modificación de definiciones de valores predeterminados 

Se supone que hay una tabla denominada Product_info en la base de datos MyDB. La estructura de la tabla se muestra en la figura siguiente. 

 Para definir un valor predeterminado, simplemente hay que pulsar en el nombre de

la columna a la que se quiere asignar el valor predeterminado y escribir el valor predeterminado al lado de Valor predeterminado en la ficha Columnas en la parte inferior de la ventana. En la figura anterior, se ha asignado un valor predefinido de 'n/a' a la columna Description; este valor predeterminado puede ser un valor marcador de posición que indica que no se conoce todavía la descripción de un producto. Además, el valor predeterminado va entre paréntesis (el Administrador corporativo se encarga de añadir estos automáticamente cuando se salva la tabla ). 

El cambio de un valor predeterminado es igual de simple. Hay que reemplazar el valor predeterminado original con el nuevo valor predeterminado y guardar el trabajo pulsando en el botón Guardar. La siguiente figura muestra el valor predeterminado de Description cambiado a 'not available'.  

Nota: Sí se introduce una cadena de caracteres en el valor predeterminado, hay que encerrarla entre comillas simples o SQL Server muestra un mensaje error cuando se intentan guardar los cambios.

Page 72: Manuel SQL

 Como con T-SQL, cuando se crea o cambia un valor predeterminado de una

columna que ya existía mediante el uso de Administrador corporativo, las filas que ya había en la tabla no se ven afectadas -sólo las nuevas columnas que se añadan usan el valor predeterminado. Si se añade una nueva columna a la tabla y se le asigna un valor predeterminado, cualquier fila de datos que ya existiera tendrán el valor predeterminado para esa nueva columna, sólo si el NULL no está permitido. Si se permite el NULL, se les asignará este valor a las filas existentes en la nueva columna. Para permitir el NULL en la nueva columna y también forzar a que se inserte el valor predeterminado en todas las filas existentes, es necesario usar el comando «ALTER DEFAULT» del T-SQL.

Creación y gestión de los objetos Default 

Usando el Administrador corporativo, también se puede crear un objeto Default y ver los objetos Default que existen. Para ver cualquier objeto Default existente, se abre el Administrador corporativo y se expande el servidor y la base de datos que se quiere usar, se pulsa en Valores predeterminados. Todos los objetos Default aparecen en la sección de la derecha.  

Para crear un nuevo objeto Default y vincularlo a una columna o a un tipo de datos definido por el usuario usando el Administrador corporativo, hay que seguir los siguientes pasos:  

1. 1.       Expandir el servidor y la base de datos, pulsar con el botón derecho en Valores predeterminados y elegir Nuevo valor predeterminado del menú contextual para mostrar la ventana Propiedades predeterminadas, como se muestra en la figura siguiente. El objeto Default sellamará DF_none y se le asignará el valor 'none'. Pulsar Aceptar cuando se haya terminado.

 

Page 73: Manuel SQL

 2. 2.       Para vincular el valor predeterminado a un tipo de datos definido por el usuario

o a una columna, pulsar con el botón derecho en el nombre del valor predeterminado (en este caso, DF_none) en la sección derecha del Administrador corporativo y elegir Propiedades del menú contextual. Aparece de nuevo la ventana Propiedades predeterminadas, pero ahora están disponibles los botones Enlazar UDT (tipos de datos definidos por el usuario) y Enlazar columnas. Pulsar en Enlazar UDT para mostrar el cuadro de diálogo Enlazar predet. con tipos de datos definidos por usuario, como se muestra en la figura siguiente. Este cuadro de diálogo muestra todos los tipos de datos definidos por el usuario. De esta lista se puede seleccionar el tipo de datos definido por el usuario al que se quiere vincular el valor predeterminado. En la figura siguiente se pueden ver el tipo de datos area_code y brand_type. Si se han definido más tipos de datos, estos también aparecerán en la lista. Cuando se haya terminado, se pulsa en Aplicar y después en Aceptar para volver a la ventana Propiedades predeterminadas. Se podría no haber elegido vincular el valor predeterminado a un tipo de datos definido por el usuario; en lugar de eso se podría vincular a una columna, como se ve en el siguiente paso.

 

 3. 3.       Para vincular el valor predeterminado a una columna, pulsar en Enlazar

columnas para mostrar el cuadro de diálogo Enlazar predeterminado con las columnas. Después seleccionar columna a la que se quiere vincular el valor predeterminado. Primero se selecciona el nombre de la tabla en la lista desplegable Tabla. Después seleccionar, en la lista Columnas no enlazadas, el nombre de la columna a la que se quiere vincular el valor predeterminado. Después pulsar Agregar. (La figura siguiente muestra el cuadro de diálogo después de haber

Page 74: Manuel SQL

añadido do a la lista Columnas enlazadas la columna phone de la tabla customer_data.)

 

 4. 4.       Pulsar Aceptar para volver a la ventana Propiedades predeterminadas y pulsar

de nuevo Aceptar para cerrar la ventana Propiedades predeterminadas. 

Para desvincular un objeto Default de un tipo de datos definido por el usuario desde la ventana de Propiedades predeterminadas, abrir el cuadro de diálogo Enlazar predet. con tipos de datos definidos por usuario como se ha descrito anteriormente y desactivar el cuadro de verificación Enlazar para desvincular un objeto Default de una columna, abrir el cuadro de diálogo Enlazar predeterminado con las columnas, seleccionar el nombre de la columna y pulsar en Quitar. Para borrar un objeto Default, primero se debe desvincular el valor predeterminado de todos los demás objetos (como se ha descrito). SQL Server mostrará un mensaje si se intenta borrar un valor predeterminado que está vinculado a uno o más objetos. Para borrar un Default, pulsar en Valores predeterminados en la sección izquierda del Administrador corporativo pulsar con el botón derecho en el nombre del objeto Default, elegir Eliminar del menú contextual y pulsar Quitar todos en el cuadro

Page 75: Manuel SQL

CREACIÓN Y USO DE UN DIAGRAMA DE BD 

Las tablas también se pueden modificar mediante un diagrama de base de datos en el Administrador corporativo. Para crear un diagrama de base de datos para MiBD con las dos tablas ejemplo Bicycle_Sales y Bicycle_Inventory hay que seguir estos pasos: 

1 . Expandir MiBD en el panel izquierdo del Administrador corporativo y entonces pulsar con el botón derecho del ratón sobre Diagramas. Elegir Nuevo diagrama de base de datos del menú contextual para mostrar la pantalla de bienvenida del Asistente para creación de diagramas de bases de datos.

 2. Pulsar Siguiente para visualizar la pantalla Seleccionar tablas para agregar mostrada

en la siguiente figura. Hay que seleccionar las tablas que se desean incluir en el diagrama de la lista Tablas disponibles y después pulsar Agregar. En este ejemplo hemos agregado las tablas Bicycle_Inventory y Bicycle_Sales.

 

 3. 3.      Pulsar Siguiente para visualizar la pantalla Completando el Asistente para

creación de diagramas de bases de datos. Pulsar Finalizar si las tablas seleccionadas son las correctas o pulsar Atrás y hacer los cambios necesarios. 

4. 4.      Después de pulsar Finalizar se puede ver el diagrama de base de datos, como se muestra en la figura siguiente.

 

 5. 5.      Guardar el diagrama con un nombre descriptivo pulsando el botón Guardar e

introduciendo un nombre cuando se solicite.

Page 76: Manuel SQL

 La línea vertical que finaliza con una clave y conecta las dos tablas en el diagrama

representa la relación de restricción de clave externa entre ambas. Para mostrar la etiqueta de la relación se ha de pulsar con el botón derecho del ratón sobre el fondo de la ventana y elegir Mostrar etiquetas de relación del menú contextual. Aparece el nombre de la restricción de clave externa. 

Para seleccionar una tabla hay que pulsar sobre ella; para seleccionar más de una tabla hay que mantener pulsada la tecla Ctrl y pulsar sobre cada tabla. Si se pulsa con el botón derecho del ratón sobre una de las tablas y después se elige una opción del menú contextual se realizará esa acción sobre todas las tablas seleccionadas. Por ejemplo, si seleccionamos ambas tablas en nuestro diagrama de base de datos, pulsamos el botón derecho del ratón sobre una de las tablas y se elige Vista de tabla y Estándar del menú contextual, e entonces se modificarán ambas tablas para mostrar todas las columnas de propiedades, como se muestra en la siguiente figura.

 

 La pantalla de las propiedades de las columnas para cada tabla es similar a la

ventana Diseñar tabla y cada tabla se puede modificar utilizando los mismos métodos que los utilizados con la ventana Diseñar tabla. Simplemente se agregan o cambian los datos de la columna en las celdas deseadas y se guardan los cambios pulsando el botón Guardar. También se pueden mover y cambiar el tamaño de las tablas en el diagrama de base de datos, mostrar diferentes vistas de las tablas y más posibilidades. Se ha de experimentar con los diferentes comandos del menú contextual. Nótese que tan pronto como se realiza un cambio en una tabla aparecerá un asterisco justo después del nombre de la tabla para indicar que se ha realizado un cambio. 

RESTRICCIONES DE FOREIGN KEY EN LOS DIAGRAMAS DE BD 

En los diagramas de base datos, una de las posibilidades mas usadas es la de establecer restricciones FOREIGN KEY (Clave Ajena). Para aprender a crear y modificar

Page 77: Manuel SQL

una restricción FOREIGN KEY usando un diagrama de base de datos, se desarrollará un diagrama usando las mismas dos tablas que se han usado en el ejemplo anterior, items e inventory. Lo primero será observar el diagrama de base de datos de estas tablas sin la relación de clave externa y después se añadirá la clave externa.  

 Como se puede ver en la figura anterior, la columna item_id de la tabla items es una

columna de clave primaria. Para crear una relación de clave externa entre la columna item_id de la tabla inventory y la columna item_id de la tabla items, hay que seguir estos pasos: 

 1. Pulsar en la parte más a la izquierda de la fila (en el cuadro gris) para la columna

item_id de la tabla items y mantener pulsado el botón del ratón mientras se mueve el cursor a la tabla inventory. (Se ve una línea de puntos que sigue al cursor.) Soltar el botón del ratón cuando se apunte a la fila de la columna item_id de la tabla inventory. Aparece el cuadro de diálogo Crear relación, como se muestra en la figura anterior. Este es parecido a la ventana Propiedades de la ventana Diseñar tabla, como se ha visto previamente. La columna item_id aparece en las columnas

Page 78: Manuel SQL

de cada tabla en el cuadro de diálogo, indicando que hay una relación de clave externa entre las dos columnas item_id

 2. 2.        Si se quiere, se puede cambiar el nombre de la relación. Se seleccionan o

desactivan las casillas de verificación en la parte inferior del cuadro de diálogo para elegir las opciones que se quieren.  Aparecen varias casillas de verificación en la parte inferior de la ventana. Seleccionar la opción Comprobar datos existentes al crear cuando se quiere que SQL Server compruebe si los datos existentes cumplen la relación de clave externa. La creación de la restricción falla si los datos no la cumplen. Se debe desactivar esta opción sólo si todavía no se tienen datos, si se sabe que los datos que hay cumplen la restricción o si no se quiere que los datos cumplan la restricción por alguna a razón concreta. Esto puede producir problemas más tarde al intentar actualizar o borrar una de estas filas. La siguiente casilla de verificación es Exigir relación para duplicación. No se debe seleccionar esta casilla si no se están usando las duplicaciones. Incluso si se están usando duplicaciones no es necesario seleccionar esta casilla de verificación debido a que los datos ya se comprueban frente a la restricción en las tablas originales, por lo tanto no debería tener que volverse a comprobar en las duplicaciones. Si se activa la relación para duplicar, y si las programaciones de las duplicaciones de las dos tablas de la relación no están bien sincronizadas, se recibirán errores durante la duplicación que indican que una fila no ha podido duplicarse debido a que violaba la restricción de clave externa. La siguiente casilla de verificación es Exigir relación para INSERT y UPDATE. La selección de esta casilla de verificación significa que se comprobará la restricción FOREIGN KEY cuando se realicen inserciones y actualizaciones, igual que en los borrados. Si éste es el objetivo, se debe seleccionar esta casilla de verificación. Al seleccionarla, se activan las dos casillas de verificación situadas debajo de ésta. Son Actualizar en cascada los campos relacionados y Eliminar en cascada los campos relacionados («campo» se refiere a una fila de datos) La selección de Actualizar en cascada los campos relacionados significa que si se actualiza la columna referenciada de la tabla referenciada (tal como actualizar un valor de item_id en la tabla items), la actualización se hará también en la tabla de la clave externa. (En este caso, ese mismo valor de item_id se actualizará, si existe, en la tabla inventory.) Sólo se actualiza el valor de la columna; el resto de la información de la fila de la tabla de la clave externa se mantendrá igual. La selección de esta opción también permite que pueda ocurrir la actualización de la columna referenciada. Si no se selecciona esta casilla de verificación, no se podrá actualizar una columna referenciada cuando ésta exista en la tabla con la clave externa. Se producirá un mensaje de error de SQL Server parecido al siguiente: «Instrucción UPDATE en conflicto con la restricción COLUMN REFERENCE ‘FK_inventory_items'. El conflicto ocurrió en la base de datos 'MyDB', tabla 'inventory', columna 'item_id'. La instrucción se ha detenido.»

Page 79: Manuel SQL

 La selección de Eliminar en cascada los campos relacionados significa que un borrado de la tabla referenciada se pasará a la tabla de la clave externa. Por ejemplo, si una fila de la tabla items se borra y una fila de la tabla inventory tienen el mismo valor para item_id que el de la fila borrada, esa fila también se borrará de la tabla inventory. Esto mantiene consistente la información. Si no se selecciona esta opción, no se podrá borrar una fila de la tabla referenciada si se hace referencia a la fila en una fila de la tabla con la clave externa. Se producirá un mensaje de error de SQL Server parecido al siguiente: «Instrucción DELETE en conflicto con la restricción COLUMN REFERENCE ‘FK_ inventory_items'. El conflicto ocurrió en la base de datos 'MyDB', tabla 'inventory', columna 'item_id'. La instrucción se ha detenido.»

 3. 3.        Pulsar Aceptar cuando se haya terminado de crear la relación en el diagrama

(Todavía no se ha guardado.) Una línea con una llave al final ya desde la tabla de la clave externa a la tabla referenciada.

 4. 4.        Pulsar el botón Guardar para guardar los cambios. Se preguntará para dar un

nombre al diagrama de base de datos y después para confirmar los cambios de las tablas implicadas. Pulsar Sí para terminar.