¿Qué es Microsoft SQL Server?
Microsoft SQL Server es un Sistema de Administración de Bases de Datos Relacionales (RDBMS) cliente/servidor, que usa Transact-SQL para establecer la comunicación entre el cliente y el servidor SQL Server. Es un estándar informático comúnmente utilizado para definir, modificar y gestionar datos y controlar cómo se realizan cambios en la base de datos usando tablas, índices, claves, filas y columnas para almacenar la información. SQL fue desarrollado a partir de las ideas del Dr. Edgard F. Codd, de IBM, que colaboró en el desarrollo del modelo relacional cuando trabajaba en los laboratorios de investigación de IBM en los años 70.
Microsoft SQL Server 2000 se puede ejecutar en los sistemas operativos Windows 98, Windows Me, Windows NT, y Windows 2000. SQL Server 2000 está implementado como un servicio tanto en Windows NT Workstation como en Windows NT Server y Windows 2000 Professional y Server (lo que hace que opere del lado del servidor), y como una aplicación en Windows 98 y Windows Me.
¿Qué es una base de datos?
SQL Server utiliza un tipo de base de datos denominado base de datos relacional.
Las bases de datos relacionales son aquellas en las que los datos están organizados en tablas. Las tablas están organizadas agrupando datos acerca del mismo tema y contienen columnas y filas de información. Las tablas se relacionan entre sí por medio del motor de base de datos cuando se solicita.
En general, se puede pensar en una base de datos como un conjunto de datos relacionados. En los primeros productos de base de datos, una base de datos por lo regular era solo un archivo, tal como empleados.dbf, el cual contenía una sola tabla de datos. Dentro del archivo empleados.dbf había columnas que relacionaban los datos del empleado, como remuneración, fecha de contratación, nombre, número de seguro social, etc. Había una fila para cada persona de la compañía, con los valores correspondientes en las columnas apropiadas. Los índices, empleados para acelerar el acceso a los datos, estaban en un archivo separado, como lo estaba cualquier elemento relacionado con la seguridad.
En SQL Server, una base de datos no necesariamente está atada a un archivo, es mas bien un concepto lógico con base en un conjunto de objetos relacionados. Por ejemplo, en SQL Server, una base de datos contiene no solo los datos, sino además la estructura de la base de datos, todos los índices, la seguridad de la base de datos y tal vez otros objetos como vistas o procedimientos almacenados, relacionados con esa base de datos en particular.
Objetos de una base de datos relacional
Una base de datos relacional está compuesta de diferentes tipos de objetos. Los siguientes son algunos de los objetos más comunes:
Tablas (tables), son los objetos que contienen a los tipos de datos, y los datos en si.
Columnas (columns), son las partes de la tabla que almacenan los datos. A una columna debe asignársele un tipo de dato y un nombre único.
Tipos de datos (datatypes), hay varios tipos de datos de donde elegir, como carácter, numérico o fecha. A una columna en una tabla se le asigna un solo tipo de dato.
Procedimientos almacenados (stored procedures), éstos son similares a las macros que se utilizan en productos como Excel o Word. Podemos escribir código Transact-SQL y almacenarlo bajo un nombre. Al ejecutar el procedimiento almacenado, usted de hecho ejecuta el código Transact-SQL contenido en él. Un uso seria tomar el código Transact-SQL que ejecuta un informe semanal, guardarlo como un procedimiento almacenado, y a partir de ahí ejecutar solamente el procedimiento almacenado para generar informes. También pueden emplearse como mecanismos de seguridad.
Disparadores o desencadenantes (triggers), son procedimientos almacenados que se activan cuando se agrega, se modifica o se elimina datos de una base de datos. Las reglas de negocio y la integridad de datos se suele definir mediante triggers. Por ejemplo, un trigger puede asegurar que todo libro en una biblioteca tenga asignado un editor.
Funciones definidas por el usuario (user defined functions), adicionalmente a las funciones proporcionadas por Transact-SQL, podemos crear nuestras propias funciones para ampliar la capacidad del lenguaje.
Reglas (rules), se asignan a las columnas para garantizar que los datos que se registran en ellas cumplan con determinadas condiciones establecidas por la regla. Por ejemplo, puede utilizar una regla para asegurar que el campo o columna de números telefónicos solo contenga números.
Claves principales (primary keys), aunque no son objetos en si, las claves son esenciales para las base de datos relacionales. Las claves principales garantizan que cada fila es única en una tabla, proporcionando una forma de identificar de manera única cada elemento que se almacena.
Claves foráneas (foreign keys), las claves foráneas son columnas que hacen referencia a claves principales o restricciones únicas de otras tablas. SQL Server usa las claves principales y externas para relacionar datos almacenados en tablas separadas al efectuar consultas.
Restricciones (constraints), son mecanismos de integridad de datos implementadas por el sistema, con base en el servidor.
Valores predeterminados (defaults), se puede asignar un valor predeterminado a una columna de modo que si no se registra dato durante una operación INSERT en la columna especifica, se utiliza dicho valor.
Vistas (views), básicamente las vistas son consultas almacenadas en la base de datos que pueden hacer referencia a una o varias tablas. Puede crearlas y guardarlas a fin de utilizarlas con facilidad en el futuro. Por lo regular las vistas excluyen ciertas columnas de una tablas, o bien, vinculan varias tablas. También pueden emplearse como mecanismos de seguridad para que ciertos usuarios puedan consultarlas y otros no.
Indices (indexes), pueden ayudarle a organizar los datos a efecto de que las consultas se ejecuten con mayor rapidez.
Herramientas de MS SQL Server
Una vez que finaliza la instalación de SQL Server 2000 encontrará una variedad de herramientas cuya funcionalidad explicaremos a continuación.
Administrador corporativo (Enterprise Manager)
El Administrador corporativo de SQL Server (SQL Server Enterprise Manager) es la principal interfase gráfica para administración y desarrollo de SQL Server. Hay muy poco que el administrador corporativo no pueda lograr a partir de un comando de Trannsact-SQL. Sin embargo, en ocasiones es mas conveniente el administrador corporativo ya que da una visión gráfica de las labores desarrolladas.
El Administrador corporativo de SQL Server es lo que se conoce como una incorporación MMC. MMC son las siglas de Microsoft Management Console (Consola de Administración de Microsoft). MMC es un utilitario común que pueden usar Microsoft y otros fabricantes como interfase administrativa común para sus productos. Todos los productos BackOffice utilizan MMC como su interfase administrativa primaria.
Administrador de servicios (Service Manager)
El utilitario Administrador de servicios de SQL Server (SQL Server Service Manager) le permite controlar en su computadora los servicios relacionados con SQL Server.
Analizador de consultas (Query Analyzer)
El Analizador de consultas de SQL Server (SQL Server Query Analyzer) es su interfase principal para ejecutar consultas de Transact-SQL o procedimientos almacenados.
Analizador (Profiler)
El utilitario Analizador de SQL Server (SQL Server Profiler) le permite supervisar toda la actividad en su SQL Server. También puede emplear este utilitario para realizar actividades de afinación del rendimiento, como examinar el plan de ejecución que usará SQL Server para ejecutar sus consultas. El Analizador tiene mecanismos sofisticados de filtrado que le permiten seguir la huella solo a usuarios, aplicaciones o tipos de comando especifico.
Configurar compatibilidad con SQL XML en IIS
Para administrar los directorios virtuales de Internet Information Service.
Herramienta de red de cliente (Client Network Utility)
La Herramienta de red de cliente no es difícil de utilizar, pero tiene un tremendo impacto sobre la conectividad de sus computadoras cliente a su SQL Server. Administra y configura los componentes de comunicación de los clientes SQL Server.
Herramienta de red de servidor (Server Network Utility)
Este utilitario se parece a la herramienta Configuración del Cliente (Client Configuration); ambas están estrechamente relacionadas. A diferencia de la utilería de configuración del cliente la cual controla cómo sus aplicaciones a SQL Server, la Herramienta de red de servidor (Server Network) administra las bibliotecas de red sobre las que está trabajando SQL Server 2000.
Importar y exportar datos (Import and Export Data)
Esta opción del grupo de programas de SQL Server inicia los asistentes para importación/exportación con servicios de transformación de datos.
Libros en pantalla (Books Online)
Los Libros en pantalla de SQL Server (SQL Server Books Online) son su principal fuente de consulta. Cuando tenga una pregunta acerca de SQL Server, puede acudir a los libros en pantalla que se incluyen en lugar de los manuales impresos, aunque es posible solicitar copias impresas a Microsoft.
Los libros se entregn como un conjunto compilado de paginas HTML, así que puede verlos dentro del contexto de Microsoft Internet Explore 4.01 o posterior.
Herramientas de Administración de SQL Server
Administración de SQL Server
Para administrar el SQL Server disponemos de:
- Las utilidades batch proporcionadas con SQL Server.
- Las herramientas gráficas de administración proporcionadas con SQL Server Enterprise Manager.
- Aplicaciones compatibles como PowerBuilder, Visual Basic, etc.
Las sentencias Transact-SQL son fundamentalmente mecanismos utilizados por el administrador de SQL.
SQL Server Agent
SQL Server Agent es un servicio que trabaja en conjunto con SQL Server, y que permite administrar lo siguiente:
Administración de alertas (Alert Management)
Una alerta provee información del estado de los procesos, cuando se produce un evento o cuando ocurre un error. SQL Server Agent monitorea la aplicación Event Log de Windows NT/2000 y genera alertas.
Notificación (Notification)
SQL Server Agent envía mensajes vía e-mail al operador o inicia otra aplicación cuando ocurre una alerta. Por ejemplo cuando se realiza un backup y no ha terminado satisfactoriamente, en este caso se debe enviar un mensaje al operador.
Ejecución de trabajos (Job Execution)
SQL Server Agent incluye la creación de trabajos y su ejecución en un horario determinado del servidor.
Administración de la replicación (Replication Management)
La replicación es el proceso de copiar data o las transacciones desde un servidor SQL a otro. SQL Server Agent es el responsable de sincronizar la data entre los servidores, monitorear la data para cambios y replicar la información hacia otro servidor.
Modo de autenticación
Una aplicación cliente necesita los siguientes datos para conectarse a un servidor SQL:
- El nombre del servidor SQL.
- El nombre de inicio de sesión (login id).
- La contraseña (password).
El login id es el identificador de la cuenta SQL que permite el acceso al servidor SQL. El proceso de autenticación de la conexión se puede realizar de dos maneras:
Autenticación SQL Server
Para conectarse utilizando este modo de autenticación es necesario proporcionar el login id de una cuenta definida en el servidor SQL. Esta cuenta no está relacionada con las cuentas de Windows 95/98/Me o con las cuentas de red.
Autenticación Windows
Para conectarse usando este modo de autenticación, el usuario simplemente se conecta al servidor Windows NT/2000 utilizando su cuenta NT/2000. Este usuario tendrá acceso al servidor SQL si su cuenta NT/2000 ha sido definida por el administrador del servidor SQL como una cuenta válida para ingresar a SQL Server. No necesitará proporcionar un login id de SQL.
Selección del modo de autenticación
El administrador del servidor SQL puede especificar que el servidor se ejecute utilizando uno de los siguientes modos de autenticación:
Modo de autenticación Windows
Solo está permitida la autenticación Windows. Los usuarios no pueden especificar un login id de inicio de sesión de SQL Server.
Modo de autenticación mixta
Si el usuario suministra un login id de SQL Server, será autenticado mediante ese login id. Si no lo suministra, será autenticado a través de Windows NT/2000.
Funciones fijas de bases de datos
Los clientes Administrador corporativo y Analizador de consultas
El Analizador de consultas es el cliente utilizado básicamente para desarrollo. Está formado por el Examinador de objetos y la ventana de Consulta.
El Examinador de objetos permite revisar todas las bases de datos y objetos de bases de datos presentes en el sistema. Cuenta además con el panel de Plantillas para creación de objetos del servidor: bases de datos, tablas, vistas, funciones, etc.
La ventana de Consulta, que permite ejecutar consultas interactivas, y escribir programas SQL (scripts, guiones ó secuencias de comandos SQL), y verificar el resultado. Está formada por los paneles: Consulta, Cuadrículas, Mensajes, Plan de ejecución, Trazar y Estadísticas.
Registro del servidor
Para administrar un servidor desde la consola del Administrador corporativo debe ser registrado. Para registrarlo debe especificar:
- El nombre del servidor.
- El modo de autenticación, y el login id y la contraseña si fuera necesario.
- El nombre del grupo bajo el que se desea registrar al servidor.
Para registrar un servidor
1. En el Administrador corporativo haga clic con el botón secundario del ratón sobre un servidor ó grupo de servidores.
2. En el menú contextual seleccione Nuevo registro de servidor SQL Server. Se carga el Asistente para registro de servidor SQL Server. Haga clic en Siguiente.
3. En Servidores disponibles seleccione el servidor ó digite su nombre, y haga clic en Agregar. Luego en Siguiente.
4. Seleccione el modo de autenticación: Autenticación de Windows ó Autenticación de SQL Server.
5. Si seleccionó Autenticación de SQL Server, especifique la opción de conexión: Iniciar sesión automáticamente con un login id y contraseña específicos, ó Pedir la infomación de cuenta SQL Server al conectar. Haga clic en Siguiente.
6. Especifique el grupo bajo el que desea registrar el servidor. Haga clic en Siguiente, y luego en Finalizar.
7. Para culminar, haga clic en Cerrar.
Instancias de SQL Server
Las instancias múltiples de SQL Server 2000 ofrecen métodos mejorados para trabajar con las versiones anteriores de Microsoft SQL Server ya instaladas en el equipo. Puede dejar intactas las instalaciones anteriores y, además, instalar y ejecutar SQL Server 2000. Por ejemplo, puede ejecutar SQL Server 7 y una instancia con nombre de SQL Server 2000 al mismo tiempo o puede ejecutar SQL Server versión 6.5 en una configuración de conmutación de versiones con SQL Server 2000. Si necesita instalar tres versiones distintas de SQL Server en el mismo equipo, existen varias maneras de llevarlo a cabo.
Las bases de datos del Sistema
Cuando se instala SQL Server, se crean cuatro bases de datos de sistema y dos bases de datos de usuario. Las bases de datos de sistema contienen las tablas de sistema, las que a su vez contienen metadatos; es decir, los datos que permiten operar y administrar el sistema.
Las bases de datos de usuario son como cualquier base de datos que los usuarios crean. Las creadas durante la instalación del servidor sirven como bases de datos de ejemplo.
La siguiente tabla describe cada una de las bases de datos creadas durante la instalación de SQL Server:
Las tablas del Sistema
Las tablas del sistema almacenan metadatos acerca del sistema y de los objetos de la base de datos.
El Catálogo de la Base de Datos
Cada una de las bases de datos, ya sea de sistema o de usuario, contiene una colección de tablas de sistema que almacenan datos que describen a una base de datos específica. Esta colección de tablas se conoce como el Catálogo de la Base de Datos. El siguiente cuadro muestra algunas de las tablas que forman el Catálogo de la Base de Datos.
El Catálogo del Sistema
Es una colección de tablas de sistema que almacenan datos acerca del sistema y todas las bases de datos. Esta colección de tablas solo está presente en la base de datos de sistema master. El siguiente cuadro muestra algunas de las tablas que forman el Catálogo del sistema.
Consultas a los catálogos
Consulta directa
SELECT * FROM sysobjects WHERE type = 'U'
Muestra una lista de todas las tablas de usuario de la base de datos actual efectuando una consulta directa a su tabla de sistema sysobjects.
Con procedimiento almacenado del sistema
sp_help customers
Consulta el Catálogo de la base de datos actual para mostrar toda la información acerca de la definición de la tabla customers.
Con vista de información de esquema
SELECT * FROM information_schema.tables
Muestra una lista de todas las tablas de la base de datos actual. El cuadro siguiente muestra algunas de las tablas de sistema, y el procedimiento almacenado del sistema con el que se puede consultar dicha tabla: