Conceptos Básicos de Bases de Datos, Parte 2

(Este articulo fue publicado anteriormente en mi antiguo blog.)

Recibí un correo de un futuro alumno de Informática de una Universidad acá en Chile, al cual pareció interesarle el tema que toqué en mi post anterior y me preguntaba si podía tocar temas aun más básicos en el campo de bases de datos; así que acá va un “Glosario” básico:

¿Qué es un Procedimiento Almacenado?

Un Procedimiento Almacenado en un conjunto de sentencias SQL que han sido creadas anteriormente y almacenadas en un servidor de bases de datos. A este conjunto de sentencias se le debe asignar un nombre único. Una de las ventajas de utilizar Procedimientos Almacenados es que estos aceptan parámetros de entrada, lo que hace posible su utilización por varios clientes al mismo tiempo a través de la red. Otra ventaja es que si modificamos el Procedimiento, este automáticamente se actualiza para los clientes. Esto permite que haya una mejora en la performance del servidor y reducir el tráfico a través de la red. Además podemos utilizar Procedimientos Almacenados para ayudarnos en la mantención y administración de nuestras Bases de Datos.Una buena práctica es nombrar los Procedimientos Almacenados en la forma: usp_<descripción>.

¿Qué es un Trigger?

Un Trigger es un procedimiento que inicia una acción cuando ocurre algún evento (INSERT, DELETE o UPDATE). Los Triggers se almacenan y administran dentro del DBMS. Es importante mencionar que los Triggers no pueden llamarse o ejecutarse; el DBMS automáticamente ejecuta el Trigger como resultado de una modificación a la tabla asociada. Generalmente son usados para mantener la integridad referencial de los datos en caso que estos cambien a menudo. Los Triggers se parecen bastante a los Procedimientos Almacenados; ambos son procedimientos lógicos almacenados a nivel de la Base de Datos. La diferencia está en que los SP no son manejados por eventos y no están atados a una tabla específica como lo están los Triggers. Los SP se ejecutan cuando hacemos una “LLAMADA” al procedimiento, en cambio el Trigger se inicia automáticamente en respuesta a un evento.

TRIGGER ANIDADO: Un Trigger puede contener sentencias INSERT, DELETE o UPDATE. Al iniciarse el Trigger a raíz de una modificación en los datos de una tabla, el Trigger puede modificar nuevamente los datos gatillando otro Trigger. A esto se le llama Trigger Anidado.

¿Qué es una Vista?

Una Vista es un subconjunto de datos de una Tabla. Se utilizan generalmente para recopilar datos, pero también pueden ser usadas para actualizar o eliminar filas. Las filas que modifiquemos o eliminemos en la vista también lo harán en la tabla original. Si se realizan cambios a la(s) tabla(s) desde donde obtenemos la Vista, esta también cambiara. Los resultados de una Vista no se almacenan en la Base de Datos.

¿Qué es un índice?

Un Índice es una estructura física que contiene punteros a los datos. Se utilizan dentro de una tabla para localizar filas más rápida y eficientemente. Un Índice se puede crear en una o más columnas de una tabla, y cada Índice debe tener un nombre. Los usuarios no pueden ver los Índices; son solo para acelerar las consultas. El uso eficiente de Índices es una de las mejores maneras para mejorar la performance de una aplicación que accede a Bases de datos. Esto, porque cada vez que no existe un índice para ayudar en la consulta, se realiza un barrido completo de la tabla. En un barrido, SQL Server examina CADA fila de la tabla hasta completar la consulta. Es inevitable que esto ocurra en ciertos casos, pero si las tablas son demasiado grandes, un barrido afecta de manera muy importante la performance.

¿Qué es un Cursor?

Un cursor es un objeto de la Base de Datos usado por las aplicaciones para manipular los datos fila a fila, en lugar de hacerlo en bloques de filas como lo hacen los comandos SQL normales.

Para poder trabajar con Cursores, debemos realizar los siguientes pasos:

  • Declarar el Cursor.
  • Abrir el Cursor.
  • Recuperar las filas desde el Cursor.
  • Procesar las filas obtenidas.
  • Cerrar el Cursor.
  • Eliminar la referencia al Cursor.

¿Cuál es la diferencia entre una Función y un Procedimiento Almacenado?

Una Función puede ser usada en una sentencia SQL en cualquier parte donde haya un WHERE, HAVING o SELECT; en cambio un Procedimiento Almacenado no. Además, las Funciones que retornan tablas pueden ser usadas como un conjunto de filas independiente. Así, podemos usarlas en JOINs con otras tablas.

OK, suficiente por hoy. En la próxima entrega: JOINs, Tipos de Índices y otras cosas que seguramente se me ocurrirán en el momento.

Como siempre, sus comentarios son más que bienvenidos igual que sus consultas.

2 comentarios sobre “Conceptos Básicos de Bases de Datos, Parte 2”

  1. Hola

    Quisierra corroborar el hecho de nombrar los procedimientos almacenados como sp_nombreProcedimiento
    He visto en varios posts que no es una buena practica, debido a que los procedimientos que tiene el sistema los nombra con esa nomenclatura, por ende esto hace que al nombrar los procedimientos de usuario de dicha manera se genere un mayor trabajo para el sistema, esto que tan cierto es??

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *