Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manuel SQL
Manuel SQL
5
DE MICROSOFT SQL SERVER 2000
Sistema cliente/servidor
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.
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.
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
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 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.
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 soporte
escritorio y portátiles impresoras, intranet y aplicaciones y servi- de la línea de nego
trabajo en red cios de comercio cio para grandes
electrónico aplicaciones críticas
CPUs soportadas 2 4 8 32
4 GB 4 GB 8 GB 64 GB
Requisitos mínimos CPU compatible con CPU compatible con CPU compatible con CPU compatible con
del 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 de
1 GB de espacio de 1 GB de espacio de 1 GB de espacio de RAM; 1 GB de
disco. 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.
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 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.
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.
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.
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
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 GB
de memoria de memoria
Windows 2000 Datacenter Capacidades limitadas Capacidades de servidor Capacidades de servidor
Sin acceso cliente Hasta 4 CPUs y 2 GB Hasta 64 CPUs y 64 GB
de memoria de memoria
Las pautas clave para elegir el hardware adecuado para SQL Server son las
siguientes:
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.
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.
• • 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
RAID 0 + 1 (también llamado RAID 10), que es una estructura de espejo de disco, con
bandas de disco sin paridad.
• • 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.
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.
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.
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:
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.
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.
6. 6. Aparece el cuadro de diálogo Nombre del equipo. Hay que pulsar en Equipo local y
pulsar después Siguiente.
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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:
• • Asegurar que hay copia de seguridad de todos los archivos de datos de SQL Server
6.5, incluyendo la base de datos master.
• • 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.
• • 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:
Nota: En este punto el sistema conmutará entre SQL Server 6.5 y SQL Server 2000.
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.
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
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.
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.
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.
4. 4. Cuando aparezca el cuadro de diálogo Iniciar la copia de archivos hay que pulsar
Siguiente para continuar.
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.
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.
- 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.
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.
- Registrar el servidor: Debe registrarse el servidor con MMC antes de poder empezar
a administrarlo.
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.
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.
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:
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
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:
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
Hay tres tipos de grupos de archivos. Las características principales de estos grupos
de archivos se resumen en la siguiente lista:
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
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.
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
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.
• • 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.
• • Colocar los archivos de registro siempre en discos distintos de los discos que
contengan archivos de datos, tal y como mencionó anteriormente.
• • 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.
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).
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.
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.
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.)
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.
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.
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.
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.
2. Pulsar el nombre de la base de datos que se desee para mostrar los objetos que
contienen la base de datos.
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.
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:
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é
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
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.
Tabla Info_Productos
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.)
- - 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.)
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, 2
ellas. 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.
decimal [(p, [s])] o Números de precisión y escala fijas. (El tipo de datos nume- De 5 a 17 bytes, dependiendo
numeric [(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 la
izquierda como a la derecha del punto decimal. La escala (s)
especifica el número máximo de dígitos que pueden alma
cenarse a la derecha del punto decimal. La escala debe ser
menor o igual que la precisión. La precisión mínima es 1, y
la precisión máxima es 28 a no ser que se inicie SQL Server
con el parámetro -p, en cuyo caso la precisión puede ser
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úmero
de 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 entrada
en una columna image es un puntero a la posición del valor
de los datos image. Los datos se almacenan de manera sepa-
rada de los datos de la tabla.
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 todos
los 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 caracteres
columna 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 la
tabla.
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 todos
los caracteres internacionales.
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 datos
base, escala, precisión, tamaño máximo e intercalación- se
almacenan 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 datos
sysname está definido por SQL Server como nvarchar
(128), lo cual significa que puede almacenar 128 caracteres
Unicode (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 tabla
para definir una variable local o para el valor de retorno de
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 de
manera separada de los datos de la tabla.
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.
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?
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.
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ó
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:
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:
4. Escribir el nombre del nuevo tipo de datos en el cuadro de texto Nombre, como se
muestra en la siguiente figura.
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.
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.
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.
2. 2. Desplegar la carpeta Bases de datos para ver las bases de datos disponibles.
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.
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).
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.
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.
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.
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 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 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:
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.
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.
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.
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
de cada tabla en el cuadro de diálogo, indicando que hay una relación de clave
externa entre las dos columnas item_id
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.