El objetivo de esta investigación, es estudiar en forma concreta una aplicación diseñada especialmente para operar dentro del ambiente de las redes de computadoras, tal como lo es Microsoft SQL Server 7.0; con el fin de poder conocer su arquitectura, las plataformas en las cuales es capáz de operar,sus metodos de instalación, los procedimientos necesarios para trabajar en él y los elementos por los cuales se encuentra constituída dicha aplicación.
INTRODUCCIÓN
SQL Server es un sistema administrador para Bases de Datos relacionales basadas en la arquitectura Cliente / Servidor (RDBMS) que usa Transact-SQL para mandar peticiones entre un cliente y el SQL Server.

Figura 1
ARQUITECTURA CLIENTE / SERVIDOR:
SQL Server usa la arquitectura Cliente / Servidor para separar la carga de trabajo en tareas que corran en computadoras tipo Servidor y tareas que corran en computadoras tipo Cliente:
La arquitectura Cliente /Servidor permite desarrollar aplicaciones para realizar en una variedad de ambientes.
SISTEMA ADMINISTRADOR PARA BASES DE DATOS RELACIONALES (RDBMS):
El RDBMS es responsable de:
TRANSACT - SQL:
Éste es una versión de SQL (Structured Query Languaje) usado como lenguaje de programación para SQL Server. SQL es un conjunto de comandos que permite especificar la información que se desea restaurar o modificar. Con Transact – SQL se puede tener acceso a la información, realizar búsquedas, actualizar y administrar sistemas de Bases de Datos Relacionales.
PLATAFORMAS PARA SQL

Figura 2
Los componentes Cliente y Servidor de SQL Server corren en los Sistemas Operativos mostrados en la siguiente tabla:
|
PLATAFORMA |
COMPONENTE SERVER |
COMPONENTE CLIENTE |
|
Microsoft Win 95/98 |
Si |
Si |
|
Microsoft Windows NT Workstation 4.0 y posteriores |
Si |
Si |
|
Microsoft Windows NT Server 4.0 y posteriores |
Si |
Si |
|
Microsoft Windows NT Server Enterprise Edition 4.0 y posteriores |
Si |
Si |
|
Windows 3.X |
No |
Si |
|
MS-DOS |
No |
Si |
|
Third party |
No |
Si (Unix, apple Macintosh) |
|
Internet browsers |
No |
Si |
Tabla 1.
INTEGRACIÓN DE SQL CON MICROSOFT WINDOWS NT
SQL se encuentra totalmente integrado con Windows NT y toma ventaja de muchas de sus características:
SEGURIDAD:
SQL Server está integrado con el sistema de seguridad de Windows NT. Esta integración permite accesar tanto a Windows NT como a SQL Server con el mismo user name y password. Además SQL Server una las características de encriptación que Windows NT para la seguridad en red. SQL Server está provisto de su propia seguridad para clientes no-Microsoft.
SOPORTE MULTIPROCESADOR:
SQL Server soporta las capacidades de multiprocesamiento simétrico (SMP) de Windows NT. SQL Server automáticamente toma ventaja de cualquier procesador adicional que sea agregado al Servidor.
SERVICIOS DE WINDOWS NT:
SQL Server corre como un servicio dentro de Windows NT, permitiendo operarlo remotamente.
MICROSOFT CLUSTER SERVER:
Es un componente de Windows NT Enterprise Edition. Soporta la conexión de dos servidores, o nudos, en un cluster para aumentar las habilidades y tener un mejor manejo de la información y las aplicaciones. SQL Server trabaja en conjunto con el Cluster Server para intercambiar papeles automáticamente en caso de que el nodo primario falle.
INTEGRACIÓN DE SQL CON MICROSOFT BACK OFFICE
SQL Server es capaz de funcionar con los productos Microsoft Back Office. Back Office es un grupo de aplicaciones para servidor que trabajan juntos para ayudar a construir business-solutions.

Figura 3.
La siguiente tabla describe algunas aplicaciones de Back Office que trabajan con SQL Server:
|
APLICACIÓN BACK OFFICE |
DESCRIPCIÓN |
|
Microsoft Windows NT Server |
Permite que SQL Server se comunique con clientes de Internet |
|
Microsoft Exchange Server |
Permite que SQL Server envíe e-mails usando el servidor de Exchange u otro MAPI (Messaging Application Programming Interface). |
|
Microsoft SNA Server |
Enlaza ambientes IBM corriendo el protocolo SNA (Systems Network Architecture) con redes PC-based |
|
Microsoft Systems Management Server |
Administra el software y el hardware, usa SQL para almacenar sus bases de datos, de las cuales tiene inventarios. |
Tabla 2.
SERVICIOS DE SQL SERVER
Los servicios de SQL Server incluyen MSSQLServer, SQLServerAgent, Microsoft Distributed Transaction Coordinator (MSDTC), y Microsft Search. Aunque estos servicios de SQL generalmente corren en Windows NT, también pueden correr como aplicaciones.

Figura 4.
SERVICIO MSSQLServer:
Este servicio es el motor de la Base de Datos. Este es el componente que procesa todas las declaraciones de Transact-SQL y administra todos los archivos que definen a la Base de Datos dentro del Servidor. Sus características son:
SERVICIO SQLServerAgent:
Este es un servicio que trabaja conjuntamente con SQL Server para crear y administrar tareas locales o externas; letras y operadores.
SERVICIO MICROSOFT DISTRIBUTED TRANSACTION COORDIRATOR:
MSDTC permite a los clientes incluir muchos tipo de datos en una transacción. Coordina la correcta realización de las transacciones distribuidas para asegurar que todas las actualizaciones en todos los servidores son permanentes; o en caso de errores, que las modificaciones son canceladas.
SERVICIO MICROSOFT SEARCH:
Este servicio es un motor de full-text que corre como un servicio de Windows NT. El soporte Full Text involucra la habilidad de emitir queries hacia los datos y la creación y mantenimiento de índices que facilitan dichos queries.
SOFTWARE DE SQL SERVER
SQL Server incluye una variedad de software para administrar y mantener al servidor, encontrando ayuda acerca de temas específicos, diseñando y creando Bases de Datos y buscando información.
SQL SERVER ENTERPRISE MANAGER SNAP-IN:
SQL Server está provisto de un cliente administrativo, que es el SQL Server Enterprise Manager, el cual es una Consola de Administración de Microsoft (MMC) de tipo Snap-in. MMC es una interfase de usuario compartida para administración de servidor usada por Back Office. Esta consola compartida, provee un ambiente consistente para administración de herramientas.
HERAMIENTAS Y ASISTENTES PARA ADMINISTRACIÓN DE SQL SERVER:
Sql Server provee un número de herramientas administrativas y asistentes que atienden aspectos particulares de SQL Server. La siguiente tabla describe las herramientas y asistentes de SQL Server:
|
HERRAMIENTA GRÁFICA |
APLICACIÓN |
|
Configuración Cliente de SQL Server |
Utilidad para administrar la configuración cliente para componentes de comunicación |
|
Monitor de Funcionamiento de SQL Server |
Archivo usado para integrar SQL Server con El Monitor de Funcionamiento de Windows NT, para informar las estadísticas más recientes de actividad |
|
SQL Server Profiler |
Utilidad para capturar el record continuo de la actividad del servidor |
|
Analizador de Queries de SQL Server |
Herramienta gráfica de Queries usada para analizar el plan de un query, visualizar información estadística, y administrar varios queries en diferentes ventanas al mismo tiempo. |
Tabla 3.
ARQUITECTURA DE SQL SERVER
COMUNICACIÓN:

Figura 5.
SQL Server usa una arquitectura de comunicación por capas para aislar aplicaciones internas de red y protocolos. Esta arquitectura permite desplegar la misma aplicación en diferentes ambientes de red. Los componentes en la arquitectura de comunicación incluyen:
DESARROLLO DE APLICACIONES:
Los usuarios accesan al SQL Server a través de una aplicación que está escrita con una interfaz de objetos de datos o con una API. SQL Server soporta interfaces comunes y APIs nativos de bajo nivel.
INTEFACES DE PROGRAMACIÓN DE APLICACIONES:
Una Base de Datos API define como escribir una aplicación para conectar una Base de Datos y pasar comandos a la Base de Datos. SQL Server provee soporte nativo para dos clases principales de Bases de Datos API, lo cual define la interfaz de objetos de datos que se puede usar. Las Bases de Datos API se usan para tener mayor control sobre el comportamiento y desarrollo de las aplicaciones.

Figura 6.
DATA OBJECT INTERFACES:
En general, estas interfaces son más fáciles de usar que las Bases de Datos API pero pueden no tener tanta funcionalidad como un API.
ADMINISTRACIÓN:
SQL Server provee una variedad de herramientas de administración para minimizar y automatizar las tareas administrativas rutinarias. Las declaraciones de Transact-SQL son el mecanismo interno usado para administrar SQL Server.

Figura 7.
ADMINISTRACIÓN DE SQL SERVER:
SQL Server puede ser administrado usando:
ADMINISTRACIÓN DISTRIBUÍDA DE OBJETOS SQL:
(SQL-DMO) Es una colección de objetos de administración basados en COM, usados por SQL Server. SQL-DMO oculta los detalles de las operaciones Transact-SQL y es apropiado para escribir scripts de administración para SQL Server. Las herramientas de administración incluidas en SQL Server están escritas usando SQL-DMO.
SQL SERVER AGENT:
Es un servicio que trabaja en conjunto con SQL Server para desempeñar las siguientes tareas administrativas:
SEGURIDAD EN SQL SERVER
SQL Server valida a los usuarios con 2 niveles de seguridad; autentificación del login y validación de permisos en la Base de Datos de cuentas de usuarios y de roles. La autentificación identifica al usuario que está usando una cuenta y verifica sólo la habilidad de conectarse con SQL Server. El usuario debe tener permiso para accesar a las Bases de Datos en el Servidor. Esto se cumple para asignar permisos específicos para la Base de Datos, para las cuentas de usuario y los roles. Los permisos controlan las actividades que el usuario tiene permitido realizar en la Base de Datos del SQL Server.
AUTENTIFICACIÓN DEL LOGIN:
Un usuario debe tener una cuenta para conectarse al SQL Server. Este reconoce 2 mecanismos de autentificación: Autentificación de SQL Server y de Windows NT. Cada uno tiene un diferente tipo de cuenta.

Figura 8.
AUTENTIFICACIÓN DE SQL SERVER:
Cuando se usa, un administrador del Sistema de SQL Server, define una cuenta y un password WQL Server. Los usuarios deben suministrar tanto el login como el password cuando se conectan al SQL Server.
AUTENTIFICACIÓN DE WINDOWS NT:
Cuando se usa, el usuario no necesita de una cuenta de SQL Server, para conectarse. Un administrador del sistema debe definir, ya sea cuentas de Windows NT o grupos de Windows NT como cuentas válidas de SQL Server.
MODO DE AUTENTIFICACIÓN:
Cuando SQL Server está corriendo en Windows NT, un sistema administrador puede especificar que está corriendo en uno de 2 modos de autentificación:
CUENTAS DE USUARIO Y ROLES EN UNA BASE DE DATOS:
Después de que los usuarios han sido autentificados, y se les ha permitido conectarse al SQL Server, deben tener cuentas en la Base de Datos. Las cuentas de usuario y los roles, identifican permisos para ejecutar tareas.

Figura 9.
CUENTAS DE USUARIOS DE LA BASE DE DATOS:
Las cuentas de usuario utilizadas para aplicar permisos de seguridad son las de usuarios, o grupos de Windows NT o las de SQL Server. Las cuentas de usuario son específicas para cada Base de Datos.
ROLES:
Permiten reunir a los usuarios en una sola unidad a la cual se le pueden aplicar permisos. SQL Server contiene roles de servidor y de Base de Datos predefinidos, para tareas administrativas comunes, de manera que pueden asignársele determinados permisos administrativos a un usuario en particular. También se pueden crear roles de Base de Datos definidos por el usuario. En SQL Server, los usuarios pueden pertenecer a varios roles:
VALIDACIÓN DE PERMISOS:
Dentro de cada Base de Datos, se asignan permisos a las cuentas de usuarios y a los roles para permitir o limitar ciertas acciones. SQL Server acepta comandos después de que un usuario ha accesado a la Base de datos.

Figura 10.
SQL Server realiza los siguientes pasos cuando valida permisos:
BASES DE DATOS EN SQL SERVER
Cada SQL Server tiene dos tipos de Bases de datos: Bases de Datos del Sistema y Bases de Datos del usuario. Las Bases de Datos del sistema almacenan información acerca de SQL Server como un total. SQL Server usa la Base de Datos del sistema para operar y administrar al sistema. Las Bases de Datos de usuarios, son Bases de Datos creadas por los usuarios. Una copia del SQL Server puede administra una o más Bases de datos de usuario.

Figura 11.
BASES DE DATOS DE SISTEMA Y DE USUARIO:
Cuando SQL Server es instalado, el setup crea 4 bases de datos de sistema 2y 2 de usuario, de ejemplo. La Base de Datos de distribución es instalada cuando se configura SQL Server para actividades de replicación.
OBJETOS DE LA BASE DE DATOS:
Una Base de Datos, es una colección de datos, tablas y otros objetos. Los objetos de la Base de Datos ayudan a estructurar los datos y definir mecanismos para la integridad de datos.
INSTALANDO SQL SERVER
REQUERIMIENTOS MÍNIMOS DE HARDWARE:
SQL Server 7.0 requiere el siguiente hardware como mínimo:
- Memoria: 32 MB de RAM.
La siguiente tabla muestra la cantidad mínima de espacio disponible en disco que requieren las diferentes instalaciones:
|
OPCIÓN DE INSTALACIÓN |
ESPACIO EN DISCO |
|
Completa |
210 MB |
|
Típica |
185 MB |
|
Herramientas de administración |
90 MB |
|
Mínima |
80 MB |
OPCIONES DE INSTALACIÓN:
El usuario puede elegir entre tres opciones de instalación: típica, mínima y personalizada. Una instalación típica instala los archivos binarios de SQL Server en el directorio Mssql7. La opción típica, instala los dispositivos de datos en el directorio Mssql\Data, y utiliza los llamados Pipes y Sockets escuchando en el puerto 1433. Para cambiar estas configuraciones, se debe seleccionar la instalación personalizada. Si la instalación de SQL Server detecta que SQL Server 6.X está instalado en la computadora, la opción de actualización se presentará en un cuadro de diálogo. La siguiente lista muestra qué componentes se instalan o no con cada opción de instalación:
TÍPICA:
MÍNIMA: (no instala)
PERSONALIZADA:
Después de que los componentes ha sido seleccionados, el programa de instalación tiene información suficiente para continuar. El Setup informa al usuario que tiene suficiente información e inicia el proceso. El proceso de copiar archivos, mueve todos los archivos requeridos a la carpeta de instalación seleccionada y a los directorios de Windows. Después, el setup detiene el MSSQL y al servicio SQL Executive si se tiene una versión previa instalada.
El siguiente paso es instalar los paquetes que son requeridos por componentes de soporte adicionales. Estos consisten en: Microsoft Data Access Components, Microsoft Management Console, MSDTC, HTML Help viewer y DLT Tape driver. La selección de paquetes está basada en las selecciones del usuario para la instalación.
Después de que los valores de registro han sido modificados, el sistema es actualizado para incluir el nuevo Mssql7, y el servicio de SQL Server inicia. Cuando el servicio de SQL Server está funcionando, el Setup inicia el Cnfgsvr.exe para configurar las configuraciones iniciales de SQL Server.
Después de que todos estos pasos se han llevado a cabo, pasa lo siguiente:
ARCHIVOS DE INFORMACIÓN CREADOS:
Durante la instalación, se generan los siguientes archivos de información, para ayudar a localizar cualquier problema que ocurra.
INSTALACIÓN REMOTA:
La
primera pantalla de instalación de SQL Server
da la opción de realizar una instalación
remota, pero los prerequisitos deben estar previamente
instalados en la computadora remota.
Figura 12.
INSTALACIÓN AUTOMÁTICA:
Para iniciar una instalación automática, primero se debe generar un archivo ".iss". Se puede crear este archivo iniciando la instalación de SQL Server con la opción –r y seguir la instalación interactuando con las opciones correctas para su sistema. Una vez que la instalación ha terminado exitosamente se tendrá el archivo Instalar.iss en el directorio de Windows. Se puede copiar o mover este archivo a la ubicación que se desee. En instalaciones subsecuentes se podrá iniciar la instalación de SQL y especificar el archivo ".iss" como entrada, usando la opción de instalación –f1.
SI LA INSTALACIÓN NO TERMINÓ EXITOSAMENTE:
Si falló la instalación de SQL Server 7.0, hay varios archivos que pueden ayudar a determinar qué falló. El primer archivo es Sqlstp.log en el directorio de Windows. El archivo Sqlstp.log da información detallada de lo que hace la instalación. Revisando este archivo se dará una idea de lo que ocurrió durante la instalación.
Si el proceso de instalación falló en la parte de configuración, se debe revisar tanto los archivos de error en el directorio MSSQL7\Log y Cnfgsvr.out en el directorio MSSQL7\Install. La instalación de SQL Server ejecuta una aplicación llamada Cnfgsvr.exe para configurar SQL Server. Esta aplicación inicia SQL Server, se conecta a él y ejecuta los primeros comandos de instalación.
Cualquier error encontrado durante este proceso es escrito en el archivo Cnfgsvr.out. Cuando SQL Server inicia, genera un registro (log) de error que contiene los errores que SQL Server puede encontrar. Este archivo, llamado errorlog, se encuentra en el directorio
DESISNTALACIÓN DE SQL SERVER 7.0:
Para desinstalar SQL Server 7.0, use cualquiera de las siguientes opciones:
DESINSTALACIÓN AUTOMÁTICA:
Cuando SQL Server 7.0 se ha instalado satisfactoriamente, un archivo de desinstalación llamado Uninst.isu, es creado. Este archivo se localiza en el directorio especificado para los archivos de programa. Para iniciar una desinstalación automática, se corre el archivo UnInstallShield, Isuninst.exe, y se selecciona el archivo guión de desinstalación.
POR QUÉ SQL SERVER 7.0 NO SE INSTALA EN UNA COMPUTADORA QUE TENGA UN CHIP CYRIX:
Versiones anteriores del chip Cyrix no soportan el juego completo de instrucciones del chip Pentium. SQL Server 7.0 hace uso de algunas de esas instrucciones por lo que el programa de instalación detecta dicho chip y se niega a instalar el programa.
LIMITACIONES DE INSTALAR SQL SERVER 7.0 DESKTOP EDITION EN UN EQUIPO CON WINDOWS 95 O WINDOWS 98
Las siguientes características no están disponibles en SQL Server 7.0 Desktop si se ejecuta en un equipo con Windows 95 o Windows 98:
CONFIGURANDO SQL SERVER
CONFIGURACIONES
DE MEMORIA RECOMENDADAS PARA SQL SERVER PARA WINDOWS
NT:
Microsoft SQL Server permite el uso de hasta 2,048 MB de memoria virtual. Este artículo describe la cantidad de memoria que debe asignar a SQL Server en distintas configuraciones de memoria.
Windows NT otorga a cada aplicación para Windows de 32-bits, una dirección de espacio virtual de 4-gigabytes (GB), de la cuál, los 2 GB de la parte baja es privada por proceso y disponible para el uso de la aplicación. La parte alta (2 GB) se reserva para uso del sistema.
El espacio de 4-GB se mapea a la dirección física de memoria por el Administrador de Memoria Virtual de Windows NT (Windows NT Virtual Memory Manager, VMM). La memoria física disponible puede ser de hasta 4 GB, dependiendo de la plataforma de soporte de hardware.
Una aplicación Windows de 32-bits tal como SQL Server solamente percibe direcciones virtuales o lógicas, no físicas. La cantidad de memoria física que una aplicación usa en un momento dado (el conjunto de trabajo) se determina por la cantidad de memoria física disponible y el VMM. La aplicación no puede controlar directamente la residencia en memoria.
Los sistemas de direcciones virtuales, como Windows NT permiten un mejor rendimiento de la memoria física, tal que la proporción de memoria virtual contra la física excede 1:1. Como resultado, programas más grandes pueden ser ejecutados en computadoras con una gran diversidad de configuraciones de memoria física. Sin embargo, en la mayoría de los casos, al usar una cantidad significativamente mayor de memoria virtual, que la suma de la combinación de elementos de trabajo de todos los procesos, resultará en un desempeño bajo.
Por lo tanto, configurar SQL Server para más memoria virtual que la cantidad de memoria física disponible, resultará en un desempeño bajo.
También se deben considerar los requerimientos de memoria del sistema operativo Windows NT, unos 12 MB aproximadamente, con algunas variaciones, dependiendo de las demandas posteriores de la aplicación. Ya que los parámetros de SQL Server se configuran hacia delante, estas demandas posteriores pueden ir en aumento conforme Windows NT requiera más memoria residente para soportar elementos adicionales como tablas de páginas, etc.
Esto resulta en una cantidad variable de memoria que podrá ser usada por SQL Server dependiendo de la configuración de memoria de la computadora. La tabla que sigue, muestra un estimado general de configuraciones de memoria y asume que se cuenta con un servidor dedicado para base de datos. Si la computadora se comparte entre varios usuarios (tal como un servidor de archivos, servidor de base de datos, y/o estaciones clientes), menor cantidad de memoria se deberá asignar a SQL Server y más se deberá dejar para el sistema operativo y otros usos.
Recuerde que estos valores solo son estimados, y se presentan para darle una idea aproximada de la ubicación de memoria de SQL Server sobre diferentes estados de memoria. Para más información, usted podrá usar las características de monitoreo de Windows NT (Performance Monitor) para determinar el comportamiento de memoria de sus sistema. Una buena fuente de información es el Volumen 3 de Windows NT Resource Kit, "Optimizing Windows NT," por Russ Blake, [ISBN 1-55615-619-7], quien dedica cerca de 600 páginas a varios aspectos de monitoreo y optimización de Windows NT y Aplicaciones Windows de 32-bits.
|
MEMORIA DE LA COMPUTADORA |
MEMORIA APROX. PARA SQL SERVER |
|
16 MB |
4 MB |
|
24 MB |
8 MB |
|
32 MB |
16 MB |
|
48 MB |
28 MB |
|
64 MB |
40 MB |
|
128 MB |
100 MB |
|
256 MB |
216 MB |
|
512 MB |
464 MB |
|
1 GB |
950 MB |
|
1.5 GB |
950 MB |
|
2 GB |
1500 MB |
Debido a que Windows NT asigna recursos adicionales para cada thread spawned (por ejemplo, se asigna 1 MB por cada thread ), SQL Server rara vez requerirá ser configurado para usar más de 1500 MB, aun en sistemas con 2 GB o más de memoria física. Los intentos de hacerlo pueden causar un comportamiento impredecible cuando toda la memoria en los 2GB de espacio virtuales del procesador se haya utilizado.
En sistemas configurados adecuadamente para ejecutar SQL Server Enterprise Edition, dónde el espacio de memoria virtual disponible se expande a 3 GB, más memoria puede ser configurada para SQL Server. S e debe consultar la documentación de SQL Server Enterprise Edition para más guías en la configuración de memoria de estos sistemas.
La cantidad mínima de memoria para SQL Server en un procesador Intel es de 16 megabytes (MB). SQL Server para plataformas RISC requerirá de más memoria debido a la cantidad promedio de baja densidad de las instrucciones de la computadora.
Sin embargo, considerando en general al software, hardware, aplicaciones e inversión de personal en los sistemas cliente/servidor, agregar más memoria es generalmente una sabia decisión, y por comparación una inversión económica. Muchas instalaciones aseguran que 32 MB es un buen inicio, y no es poco común que se configuren los servidores con 128 MB o incluso más memoria, la cual asignan para usos en beneficio de