El Diccionario de Datos – Parte 2

En la primera entrega del Diccionario de Datos, vimos como obtener la estructura de una tabla y como actualizar las descripciones de las tablas y de las columnas. En esta entrega vamos a ver como podemos mejorar el contenido del diccionario, incluyendo no solo estructura y descripciones sino tambien características especiales de cada columna:

Esta vez no nos vamos a concentrar en las descripciones de tabla y columna, si no en las llaves y y otras restricciones. En el siguiente script estamos creando tablas muy parecidas a las del post anterior, pero con llaves primarias y foraneas, defaults, reglas y columnas calculadas (notar líneas resaltadas en el script): […]

El Diccionario de Datos

El diccionario de datos es un repositorio de metadatos que contiene las definiciones de los objetos de datos, descripciones y relaciones entre si. El diccionario es muy importante en el desarrollo de aplicaciones, ya que permite a los involucrados en el desarrollo conocer a detalle las bases de datos.

Lamentablemente esta información no siempre esta disponible, y si lo está, se encuentra incompleta o desactualizada.

Una forma práctica de gestionar el diccionario de datos es mantenerlo completo en la misma base de datos. A partir de la versión 2008 de SQL Server se mejoró mucho el manejo de metadatos y se cuenta con información suficiente de fácil acceso para obtener toda la definición de las tablas, vistas, etc.

En este artículo vamos a mostrar unos scripts sencillos para obtener las definiciones de las tablas de una base de datos y como actualizar las descripciones de tablas y columnas de las tablas. Vamos a comenzar con la creación de una base de datos muy simple […]

Columnas IDENTITY (Parte 2)

En el artículo Columnas IDENTITY (Parte 1) estudiamos los conceptos básicos de una columna de identidad, como se configura y los aspectos que debemos tener en cuenta al momento de utilizar este tipo especial de columna. Esta es una continuación de dicho artículo, por lo que recomendamos leer primero la parte 1.

En este artículo vamos a ver como insertar un valor explicito en una columna de tipo Identity. Pero antes quería recalcar que en una tabla solo puede haber un campo definido como columna de identidad, solo uno. Comenzamos creando nuestra base de datos y tabla de prueba: […]

Columnas Sparse

Las columnas sparse (Columnas Dispersas) son introducidas en SQL Server 2008.

Las columnas sparse son columnas normales que disponen de un almacenamiento optimizado para los valores NULL. Este tipo de columnas reducen los requisitos de espacio de los valores NULL a costa de una mayor sobrecarga a la hora de recuperar valores no NULL. Considere la posibilidad de utilizar columnas sparse si el ahorro de espacio se sitúa entre el 20 y el 40 por ciento.

A continuación, algunas restricciones de uso de los columnas sparse: […]

Trigger genérico para auditar cambios en una tabla

El siguiente trigger permite auditar los cambios (Inserciones, Actualizaciones y eliminaciones) a una tabla. Es un trigger genérico. Es decir, el mismo trigger funciona para cualquier tabla de la base de datos. Hay que tener en cuenta solo tres cosas:

  1. Se debe crear una tabla de log para almacenar la información de auditoría.
  2. En el script hay que cambiar manualmente el nombre de la tabla sobre la cual se esta creando el trigger.
  3. Solo funciona con tablas que tienen llave primaria.

Este trigger fue diseñado por Nigel Rivett y funciona con las versiones 2005 en adelante. He hecho cambios mínimos de forma y he traducido e incluido comentarios para hacer mas legible y entendible el script.

Lo primero que hay que hacer es crear la tabla de auditoría, sobre la cual el trigger escribirá el detalle de las transacciones realizadas:

CREATETABLEdbo.logTransacciones(

  TipoTrnchar(1),

  Tablavarchar(128),

  PKvarchar(1000),

  Campovarchar(128),

  ValorOriginalvarchar(1000),

  ValorNuevovarchar(1000),

  FechaTrndatetime,

  Usuariovarchar(128))

GO

.

En esta tabla se almacena el tipo de transacción(I-Insert, U-Update, D-Delete), el nombre de la tabla, la llave del registro, el o los campos que han sufrido algún cambio, el valor original y el valor nuevo para las actualizaciones y por ultimo la fecha en la que se hizo el cambio y el usuario que lo ejecutó. Cualquier cambio realizado en cualquier tabla de la base de datos que tenga el trigger, será almacenado aquí

Vamos ahora a crear la tabla Cliente, que nos servirá para […]

Primer Artículo – Archivos de Base de Datos

A finales del 2008 mis amigos del MUG Perú me invitaron a colaborar con un boletín que estaban lanzando. Si quieren ver el boletín completo lo pueden bajar haciendo clic aqui. Se puede decir este que fue el primer artículo público que escribí sobre SQL Server: . ESTRUCTURA FISICA DE UNA BASE DE DATOS SQL[…]

Datos numéricos en SQL Server (Parte 2)

CONSIDERACIONES DE ALMACENAMIENTO EN EL USO DE ENTEROS En la primera parte revisamos como se comportan ciertos tipos de datos. Pero los tipos de datos también definen cuanto bytes va a consumir en almacenamiento el dato que vamos a registrar. Es importante considerar esto por que impacta en el almacenamiento total de la base de[…]

Datos numéricos en SQL Server (Parte 1)

 Cuando diseñamos una base de datos debemos tener en cuenta los tipos de datos que se manejan es SQL Server. En este artículo nos enfocaremos en hacer precisiones con respecto a los tipos de datos para almacenar números. Vamos a comenzar analizando los tipos de datos decimal y numeric, los cuales son equivalentes. Comenzaremos por[…]