|
|
|
|
|
|
|
|
|
|
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.
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:
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.
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:
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.
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.
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.
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.
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).
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.
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.
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.
|
|
|
|
|
|
|
|
|
|