Introducción
Integridad
Herramientas
SQL Executive
SQL Trace
ISQL/W
Dispositivos
Databases
Instr. SQL
Volver

 
Introducción

Microsoft SQL Server pertenece a la familia de las RDBMS (sistemas de administración de base de datos), operando en una arquitectura cliente/servidor de gran rendimiento.
Su desarrollo fué orientado para hacer posible manejar grandes volúmenes de información, y un elevado número de transacciones, sobre redes basadas en Microsfot Windows NT.

Posee una arquitectura abierta, lo que hace posible su interacción con otros sistemas como UNIX.
En su CD de instalación se distribuye las versiones para las distintas plataformas de hardware (Intel, Alpha, MIPS, etc).
Se brindan además herramientas para el cliente.

El motor de SQL Server admite aplicaciones exigentes, entre las cuales podemos encontrar aplicaciones de ayuda en toma de decisiones y procesamiento de transacciones en línea, mediante la versión de Microsoft del SQL (Transact-SQL), el cual se explicará más adelante.

SQL Server permite la creación de procedimientos almacenados, los cuales consisten en instrucciones SQL que se almacenan dentro de una base de datos de SQL Server.

Esto agrega una gran practicidad, ya que permite instrumentar consultas y transacciones muy desarrollada dentro de los procedimientos almacenados, y después vincularse a ellos mediante la aplicación cliente (he encontrado en esta posibilidad una gran solvencia frente a grandes problemas).
Los procedimientos almacenados presentan además otra gran ventaja, se ejecutan más rápido que instrucciones SQL independientes.

Es muy importante hacer el mayor uso posible de ellos, ya que centralizan mucha de la política de la base de datos en un solo lugar, en vez de, por ejemplo, distribuirlo en la codificación de las aplicaciones cliente (lo que presenta enormes inconvenientes si un proyecto es realizado por más de una persona, lo que aumentaría una probabilidad de errores).

A la hora de modificar políticas en la estructura de la base de datos, los procedimientos almacenados nos proporcionan una gran facilidad y centralización para que éstas modificaciones sean exitosas.

Otra ventaja también destacable de los procedimientos almacenados es la seguridad. Por ejemplo, podemos dar permisos sobre deteminado procedimiento a un usuario en particular, pero no darlo a las tablas subyacentes, de ésta manera sólo se permitirá la modificación de los datos de una manera preestablecida.
 

Integridad de un sistema

La integridad lógica de una base de datos en SQL Server debe de gestionarse dentro de la misma base de datos, y no en las aplicaciones clientes, que generan muchas posibilidades de error (especialmente al realizar futuras modificaciones).
SQL Server se vale de muchas características para mantener la integridad de los datos, entre las que podemos encontrar:

Tipos de Datos

Los tipos de datos también nos ayudan a mantener la integridad de la base de datos, pudiendo utilizar los tipos de datos estándar o definir los nuestros.

Integridad Referencial Declarativa

Se corresponde a un principio básico en las bases de datos relacionales, que cada tupla de cada relación debe de poder ser identificada de manera exclusiva.
Para ello se utilizan las claves primaria (primary key), pudiendo existir sólo una en una tabla.
Las claves alternativas o candidatas identifican otras columnas que también deben de ser exclusivas por poseer esa particularidad dentro de la tabla, pudiendo existir más de una de estas claves en una misma tabla (a diferencia de las primarias que sólo puede existir una).

SQL Server nos brinda además una posibilidad de generación de número exclusivos, mediante la propiedad Identity de una columna.

Para establecer las relaciones contamos con las restricciones Foreign Key (clave externa), que consisten en una columna (o un conjunto de columnas) que se corresponden con la clave primaria de otra tabla, siendo éste el paradigma de las bases de datos relacionales.
Las tuplas relacionadas deben de coincidir en su tipo de datos.

Reglas y Restricciones de Comprobación

Las reglas y restricciones de comprabación (restricciones Check) operan de la siguiente forma, cada vez  que un usuario intenta ingresar un dato en la base de datos, SQL Server verifica que cumplan las reglas y restricciones, y no permite el ingreso de datos que no cumplan con ellas.

Disparadores

Los disparadores (triggers) consisten en un procedimiento almacenado que se ejecuta automáticamente en determinadas condiciones, por ejemplo, al insertar una tupla en una relación.

Nos permiten de esta manera un gran control sobre la política del sistema, por ejemplo, podríamos evitar mediante los triggers de inserción y actualización, que un cliente tenga una deuda superior a determinado importe.

Valores Predeterminados

Mediante éstos SQL Server introducirá un valor si no se introduce un valor en un campo determinado.

Procesamiento mediante Transacciones

Mediante el procesamiento de transacciones se garantiza la coherencia de la base de datos, y constan generalmente de varias órdenes SQL, que sólo se ejecutarán al emitir la orden COMMIT.

Las transacciones nos aseguran que la agrupación de las instrucciones se cumplan en su totalidad, es decir, que no se ejecute ninguna instrucción si una de las intrucciones que componen la transaccion falla.
Se trata entonces de las famosa propiedad ACID (atomicidad, coherencia, aislamiento y durabilidad).
La unicidad de una transacción sera conservada aún en el caso de caída del sistema.
 

Herramientas administrativas

SQL Server facilita una herramientas sumamente útiles a la hora de administrar la base de datos y las actividades del sistema, entre las que encontramos algunas de las siguientes:

SQL Enterprise Manager

SQL Enterprise Manager se ejecutará con la opción Menú Inicio/Microsoft SQL Server/SQL Enterprise Manager, el cual presentará el siguiente aspecto.

Mediante una interface amigable podemos manejar diversos aspectos de las base de datos, como ser:


SQL Executive

Nos brinda un medio de programación con soporte a funciones administrativas, como ser la réplica, tareas de gestión, etc.

Interviene en la alerta de sucesos, registrando los sucesos en el registro de sucesos de Windows NT, y/o enviando una mensaje de correo electrónico al administrador opcionalmente.

SQL Executive analiza el número de error de un suceso, su severidad, la base de datos en la que se origina y el texto del mensaje, y si se definió anteriormente una alerta en la tabla de alertas, puede entonces enviar un correo electrónico al administrador del sistema.


SQL Trace

Esta utilidad que permite supervisar y registrar la actividad de la base de datos, facilitando la tarea de los administradores del sistema.
Mediante SQL Trace es posible ver cualquier instrucción SQL o procedimiento almacenado enviado a SQL Server, como así también las respuestas.

SQL Service Manager facilita una interface sumamente sencilla para arrancar, detener o comprobar el estado de los servicios SQL Server, SQL Executive y MS DTC.


ISQL/w, ISQL

Consisten en una ventana que nos permiten ejecutar órdenes SQL y obtener los resultados.
Esta herramienta es sumamente útil e imprescindible para los desarrolladores.

SQL Server Books Online

Toda la documentación acerca de SQL Server en línea, con una búsqueda sencilla y rápida.
Es muy recomendable consultar mediante esta utilidad la documentación, ya que veces encontrará por este medio información no impresa.
 

Dispositivos de Base de Datos

Un dispositivo consiste en una asociación lógica hacia un archivos del Windows NT. Las bases de datos se encuentran al menos en un dispositivo de base de datos lógico, y muchas veces en varios, los cuales se determinan al crear o expandir una base de datos.
Un dispositvo  de base de datos es en sí una asociación lógica a un almacenamiento en un disco físico.

Es importante tener en cuenta que el tamaño de un dispositivo no crece autmáticamente a medida que crezca la base de datos, si el espacio asignado no es suficiente habra que expandirlo manualmente.

Mediante SQL Enterprise Manager podemos crear los dispositivos (device) deseados, el cual nos presenta además el estado y tamaño de los dispositivos de datos existentes.

Creación de una base de datos

Posteriormente a la creación de los dispositivos, podrá crear la base de datos.
Observará que en su sistema ya existen algunas bases de datos (master, model, tempdb, pubs y msdb).

Nuevamente SQL Enterprise Manager nos facilitará la tarea mediante su interface gráfica.
Una vez creada podremos ingresar las tablas que las componen, los campos, claves, restricciones, triggers, etc. El método de manejo es sumamente sencillo e intuitivo, propio de las interfaces gráficas de última generación, permitiéndonos acceder a diferentes opciones con el botón derecho del mouse.

Es importante destacar que algunas restricciones no podrán ser modificadas una vez guardada la base de datos, por lo que se recomienda realizar un minucioso estudio sobre la estructura de la base de datos antes de empezar a crearla (personalmente trato de poner gran atención en este aspecto, ya que cuando decido la modificación de alguna característica de la base de datos, generalmente debo generar un script de la base, luego modificar las instrucciones de éste script, y luego correr el script mediante ISQL/w, lo que es un tanto difícil para los novatos en el manejo de scripts).

Instrucciones SQL
 
Ya se ha familiarizado con el manejo de SQL Serve, ahora es momento para que empezemos a tratar las instrucciones que nos permitirán la consulta, inserción, modificación y eliminación de datos, las que realizaremos por medio de instrucciones SQL.

Las explicaciones serán sumamente sencillas y orientadas a una breve introducción a principiantes. Más adelante se elaborará un completo manual sobre SQL, el cual podrá solicitar subscribiéndose a una lista de usuarios por correo.
 

Consultas de datos

Select

Select es la instrucción más utilizada dentro de SQL,  y es en la cual reside la forma general de consultar datos.
La instrucción Select presenta la siguiente sintaxis:

SELECT [DINSTINCT]   <columnas elegidas>
[FROM]                           <nombre de las tablas>
[JOIN]                              <relación entre las tablas si hay más de una>
[WHERE]                         <criterios que deben cumplirse para seleccionar la fila >
[GROUP BY]                   <columnas para agrupar>
[HAVING]                       <criterios que deben cumplirse para el agrupamiento>
[ORDER BY]                   <orden de los resultados>

Por ejemplo, la instrucción Select * From Clientes nos devolverá todas las columnas de todos los registros de una tabla llamada Clientes.

Si deseamos por ejemplo solo obtener los clientes cuyo nombre es 'Gabriel' (que se encuentra en la columna NombreDelCliente), deberíamos ingresar lo siguiente: Select * From Clientes Where NombreDelCliente = 'Gabriel'.

Supongamos ahora que sólo quiero ver los nombre de los clientes que viven en Uruguay (columna CiudadDelCliente), se llaman Gabriel o Ana y tiene un saldo superior a 5000 (SaldoDelCliente), entonces ingresaría Select NombreDelCliente Where (NombreDelCliente = 'Gabriel' Or NombreDelCliente = 'Ana') And SaldoDelCliente  > 5000

Como hemos visto, el manejo del Select suele ser bastante sencillo, sin embargo, en grandes consultas puede tornarse algo complicado, dificultad que superará a medida de que su experiencia y confianza vayan creciendo con el tiempo.
 

Modificando datos

Para la modificación de datos SQL consta de tres instrucciones básicas: INSERT, UPDATE y DELETE, las cuales serán explicadas a continuación.

Insert

Insert se usa generalmente para insertar una fila en una tabla, siendo el siguiente el formato más utilizado:

INSERT [INTO]    {nombre de la tabla} [(lista de columnas)]
VALUES                lista de  valores

Con SQL Server la instrucción Into siempre es opcional. Si va a insertar valores para todas las columnas y suministra los valores en el mismo orden de las columnas, tampoco le será necesario especificar la lista de columnas.

Por ejemplo, supongamos que nuestra tabla Clientes tiene los campos ID_Cliente, NombreDelCliente, CiudadDelCliente, SaldoDelCliente:
INSERT INTO Clientes VALUES (25, 'Ignacio', 'Uruguay', 2300)

Si deseáramos sólo introducir el número y el nombre los haríamos de la siguiente forma:
INSERT INTO Clientes (ID_Cliente, Nombre) VALUES (32, 'María')

Update

La instrucción Update nos permite modificar una o más filas existentes. Su sintaxis es la siguiente:

UPDATE  {nombre de la tabla}
SET            nombre de la columna 1 = {expresión1 | NULL | DEFAULT | (SELECT)}
                   [ , nombre de la columna 2 = {expresión2 | NULL | DEFAULT | SELECT)}]
WHERE    condiciones de búsqueda

La condición especificada por WHERE nos permite determinar los registros que serán afectados por nuestra instrucción, brindándonos la posibilidad de modificar más de un registro en una sóla instrucción si nuestra condición así lo permite.

Por ejemplo, supongamos que el cliente 30 debe tener ahora un saldo de 500:
UPDATE Clientes SET SaldoDelCliente = 500 Where ID_Cliente = 30

Si deseamos actualizar el saldo a 0 de todos los clientes que viven en Uruguay ingresaríamos:
UPDATE Clientes SET SaldoDelCliente = 0 Where CiudadDelCliente = 'Uruguay'

Delete

Finalmente, para eliminar un registro de una tabla utilizaremos la instrucción DELETE. Su sintaxis es:

DELETE [FROM] {nombre de la tabla} [WHERE condición]

Así, si necesitamos eliminar todos los clientes con un saldo 0 ingresaríamos:
DELETE Clientes Where SaldoDelCliente = 0

Si quisiéramos eliminar los clientes de nombre Daniel que no vivan en Uruguay haríamos:
DELETE Clientes Where NombreDelCliente = 'Daniel' And CiudadDelCliente <> 'Uruguay'

Con estos pocos conocimientos ya podrá empezar a utilizar SQL Server de manera básica, y adentrarse en el manejo de una de las herramientas más utilizadas en nuestros días.

Mas adelante se destribuirá un manual más avanzado que el presente, si desea recibirlo subscríbase a la lista de correo.
 
 

Introducción
Integridad
Herramientas
SQL Executive
SQL Trace
ISQL/W
Dispositivos
Databases
Instr. SQL
Volver