Te presento mi nuevo sitio web: ---------> "El Futuro de los Datos"

Aunque SQL Server Si!, seguirá activo, iré bajando la frecuencia de publicación.
Si quieres conocer todas las novedades que vaya publicando, te recomiendo que lo visites y te suscribas. Tengo un regalito para mi audiencia:

Tu primer Dashboard en "piloto automático" listo en 30 minutos
Sólo para suscriptores.
.

22 ene 2009

Charla sobre Report Builder y mesa redonda sobre Business Intelligence, en Bilbao

Aprovechando un viaje de trabajo por Bilbao, voy a impartir una charla en el grupo de usuarios Artalde. Será el próximo martes 27 de enero, en la Universidad de Deusto.

Agenda:

19:00 - 19:15 Registro
19:15 - 20:15 Report Builder. ¡Qué los informes los haga el usuario!
Report Builder es una herramienta que permite al usuario final realizar sus propios informes ad-hoc. Eso sí, previamente debemos preparar un modelo de datos que sea entendible. Mostraremos cómo crear estos modelos de datos y a usarlos posteriormente para la creación de informes.
20:15 - 21:00 Mesa redonda: BI ( Bussiness Intelligence ) vs IB ( Informes Bonitos )
La mesa redonda estará abierta a debatir cualquier cuestión que esté relacionada con el tema del evento, tratando temas como "qué es realmente BI", si desarrollamos verdaderas aplicaciones de BI para nuestros usuarios o simplemente a unos informes bonitos y con cierto dinamismo y navegación le aplicamos la etiqueta de BI

Aquí os dejo el link con todos los detalles del evento en el blog de artalde  (fecha, hora, lugar, contenido...) y el link de registro (por si algún lector de este blog puede asistir).

21 ene 2009

Libro. Applied Microsoft SQL Server 2008 Reporting Services

Uno de los primeros libros publicados sobre SQL Server Reporting Services 2008, muy recomendable. Escrito por Teo Lachev, también autor del libro de Analysis Services comentado en este blog. Podéis ampliar información en su sito web: Prologika

De los libros que he estado viendo de Reporting Services 2008 es el que más me ha gustado, os dejo el índice

Part 1. Introduction
     1. Introducing Reporting Services
     2. Installing Reporting Services
Part 2. The Report Designer
     3. Report Designer fundamentals
     4. Designing Data Access
     5. Designing Tablix Reports
     6. Designing for Data Visualization
     7. Advanced Report Design
Part 3. The Report Builder
     8. Building Report Models
     9. Autoring Ad-Hoc Reports
     10. Previewing Report Builder 2.0
Part 4. Management
     11. Management Fundamentals
     12. Managing Report Execution and Subscriptions
     13. Advanced Report Management
Part 5. Integration
     14. Integration Fundamentals
     15. Reporting for .NET Clients
     16. Integrating with Analysis Services
     17. Integrating with Sharepoint
Part 6. Extensibility
     18. Extending Data Access
     19. Customizing Security
     20. Extending Report Delivery
     21. Implementing Custom Report Items
     22. Customizing Reports Definitions

Puedes ampliar información en Amazon, accede pinchando en la imagen del libro o aquí

20 ene 2009

Introducción a la Seguridad en SQL Server

Esto es una introducción para todos aquellos que siempre han usado SQL Server con sa (y sin contraseña muchas veces). Antes de entrar en asuntos más complejos es útil distinguir entre usuarios, roles, etc. Esta es la respuesta a un compañero en los grupos de noticias públicos de SQL Server, que quiero compartir con vosotros.

Logins, users, etc

Login: son los accesos al servidor, lo cual no quiere decir que puedan acceder a las bases de datoa que allí hay. Para poder acceder a cada una de las bases de datos necesitas un user.

User: usuario de la base de datos. Da acceso a la base de datos, pero esto tampoco quiere decir que pueda hacer cualquier operación sobre la base de datos, en principio no puede hacer casi nada, salvo que le vayas asignando roles y otros privilegios para darle permisos de acceso a los objetos de esa base de datos.

En SQL Server nos encontramos con tres niveles o capas en los cuales podemos gestionar la seguridad. El primero de ellos se encuentra a nivel de servidor, en él podemos gestionar quién tiene acceso al servidor y quién no, y además gestionamos que roles va a desempeñar. Para que alguien pueda acceder al servidor debe tener un inicio de sesión (login) asignado, y a éste se asignaremos los roles o funciones que puede realizar sobre el servidor.

El que alguien tenga acceso al servidor no quiere decir que pueda acceder a las bases de datos que se encuentran en él. Para ello hay que tener acceso a
la siguiente barrera de seguridad, que es a nivel de base de dato. Para que un login tenga acceso a una base de datos, tenemos que crear en ella un usuario (user). Deberemos crear un usuario en cada una de las bases de datos a las que queramos que acceda un login.

Análogamente, el que un usuario tenga acceso a una base de datos no quiere decir que tenga acceso a todo su contenido, ni a cada uno de los objetos que la componen. Para que esto ocurra tendremos que irle concediendo o denegando permisos sobre cada uno de los objetos que la componen.

A continuación podéis observar un gráfico que refleja este modelo.

image

Mover bases de datos entre servidores SQL Server

Es muy habitual, sobre todo por desconocimiento, que se nos presenten problemas cuando movemos una base de datos de un servidor SQL Server a otro, independientemente del medio que utilicemos (backup, copia de .mdf .ndf .ldf,...). En cada base de datos tenemos información de los usuarios (users) y sus permisos sobre dicha base de datos, esta información, al ir en la propia base de datos, se mueve de un servidor a otro. Pero en la estructura de seguridad de SQL Server, tenemos como primer nivel los logins (que indican quien tiene acceso al servidor) que se almacenan en la base de datos master, y por tanto no se mueven al nuevo servidor. Como mover la base de datos master al nuevo servidor no suele ser la opción apropiada, a parte de por su mayor complejidad, porque posiblemente me lleve otra información que no necesito y además machaque información del servidor destino que necesite, en la KB se ha publicado un artículo detallando todo lo que hay que realizar adicionalmente a mover la base de datos. Aquí os dejo el link:

Cómo mover bases de datos entre equipos que están ejecutando SQL Server

Te recomiendo también que leas el post de Introducción a la Seguridad en SQL Server para aclarar los conceptos básicos de seguridad: logins (inicios de sesión), users (usuarios), roles, etc.

16 ene 2009

Analysis Services. Procesamiento incremental de dimensiones

Primer post de una serie de tres. Es una práctica muy interesante, incluso necesaria cuando tenemos dimensiones dimensiones de gran tamaño, lo que hoy en días es cada vez más habitual, por ejemplo quien no tiene un gran número de clientes, catálogos, visitantes de su web...

Para acceder al post, publicado en BICorner, pinchad aquí

Conforme vayan publicándose el resto de posts os mantendré informados.

15 ene 2009

SSIS. Despligue de paquetes de Integration Services - Parte 1

He publicado en BICorner (el blog sobre BI que mantenemos varios compañeros de Solid Quality Mentors)un post sobre Despliegue de paquetes de Integration Services, es el primero de una serie de cinco que iré publicando en los próximos días.

Trata sobre las diversas posibilidades de despliegue de los paquetes en los diferentes entornos (desarrollo, explotación, pruebas, explotación, ...) que tengamos en nuestra empresa. Siempre, de un entorno a otro habrá que hacer ciertos cambios, aunque sean mínimos, por ejemplo cambiar la IP de algún origen de datos. Lo que se trata es de tener que abrir el paquete con Visual Studio y hacer estos cambios. Os cuento la base teórica para ver las posibilidades que tenemos, diversos ejemplos y buenas prácticas.

Espero que los resulte interesante y continuéis leyendo el resto de posts conforme los vaya publicando. Os tendré informados a través de este blog también. Y que os hagais seguidores de BICorner, un blog dedicado a las herramientas de Business Intelligence de Microsoft.

Sin más aquí os dejo el link: Despliegue de paquetes de Integration Services - Parte1



12 ene 2009

Libro. The Microsoft Data Warehouse Toolkit. With SQL Server 2005 and de Microsoft Business Intelligence Toolset

Libro sobre la realización de proyectos de Business Intelligence completos basados en Microsoft SQL Server 2005, escrito por miembros de Kimball Group.

Con este libro aprenderás a:

  • Identificar los requerimientos de un proyecto de BI
  • Diseñar un modelo dimensional
  • Proveer herramientas útiles a los usuarios de negocio
  • Usar Data Mining
  • Realizar aplicaciones de BI con Reporting Services
  • Mantener, asegurar y operar un sistema DW/BI

Puedes ampliar información sobre el libro en Amazon pinchando aquí. También puedes ampliar información sobre el libro escrita por los propios autores pinchando aquí. Y por último, no dejes de visitar el site de Kimball Group.

9 ene 2009

Manuales de Data Warehouse

A través de uno de los grupos en los que participo en Linkedin, concretamente en BI Beers, Carlos Fernandez (uno de los participantes) ha publicado estos dos links a dos manuales de Data Warehouse publicados en la web  de Dataprix (que también la tenéis en la sección de links de este blog)

Manual de adquisición de un sistema Data Warehouse

Data Warehousing y metodología Hefesto

A ver si poco a poco vamos recopilando información en español sobre este tema.

Si conocéis cualquier link a algún manual interesante sobre este tema, por favor agregad un comentario con la URL y vuestra opinión.

Nota actualización 21-ene-09:
Hay una nueva Actualización de la metodología Hefesto
Gracias "caryson" por la información.

Libro. Microsoft SQL Server 2005 Analysis Services

Libro que profundiza en Microsoft SQL Server Analysis Services 2005, partiendo de una explicación de los conceptos fundamentales, para más adelante explorar el modelo de objetos multidimensional, los conceptos fundamentales de MDX, la arquitectura del servidor, gestión de memoria y otros muchos temas.

Libro de nivel intermedio-avanzado, recomendable para todo aquel que ya haya comenzado a familiarizarse con Analysis Services 2005. Espero que pronto haya una versión para Analysis Services 2008

Para ampliar información sobre él en Amazon, y leer opiniones sobre él de los lectores, pincha aquí, o en la imagen del libro.

7 ene 2009

Migrar a SQL Server 2008

Supongo que muchos os estaréis planteando migrar a la última versión del producto. En caso de que os decidáis a hacerlo, os recomiendo la lectura del siguiente white paper: SQL Server 2008 Upgrade Technical Reference Guide

Es un documento de 490 páginas que cubre las fases y pasos esenciales para la migración de instancias existentes de SQL Server 2000 y 2005 a SQL Server 2008, aplicando el uso de las mejores prácticas.

Además de leer este documento, si os interesa una colaboración externa que os dé apoyo en dicha migración, podéis contactar conmigo y os ofreceré a través de mi actual empresa, Solid Quality Mentors, nuestros servicios de consultoría, formación y mentoring (llevamos trabajando con SQL Server 2008 y colaborando con el equipo de desarrollo de producto en Redmond desde su origen cuando apareció la primera CTP).

Microsoft Business Intelligence Virtual Machine

Si queréis practicar con todas las herramientas de Microsoft Business Intelligence sin necesidad de realizar una instalación compleja, ni de dedicar una máquina al tema. Os recomiendo que utilicéis Microsoft Virtual PC 2007, y que os descarguéis una máquina virtual ya instalada y configurada, lista para su uso y de forma totalmente gratuita:

Microsoft Business Intelligence VPC Release5.1 (Part 1 of 2)

Microsoft Business Intelligence VPC Release5.1 (Part 2 of 2)

Si, son unos ficheros grandes, pero es ya una máquina virtual con Windows Server, SQL Server y todos sus componentes instalados, Office, Proclarity y Performance Point.

Ya no tenéis excusa para conocer y practicar en las herramientas de Inteligencia de Negocio que ofrece Microsoft.

Está disponible la versión 7.1 de dicha Máquina Virtual, para obtener más información pincha aquí
Gracias a Diego Arenas por la actualización :-)

5 ene 2009

Libro. Applied Microsoft Analysis Services 2005 and Microsoft Business Intelligence Platform

Muestra como construir soluciones con Microsoft SQL Server Analysis Services 2005, tanto para desarrolladores que deseen construir soluciones OLAP, como para administradores que posteriormente tendrán que mantenerlas. No sólo se centra en el desarrollo de los cubos OLAP en sí, sino que abarca otras tareas interesantes, como el despliegue, la administración, la creación de aplicaciones .Net que mediante la jerarquía de clases AMO y mediante ADOMD.Net acceden a datos almancenados en Analysis Services, acceso desde reporting services etc. Como su título indica da una visión de toda la plataforma Microsoft Business Intelligence.

Para ampliar más información en Amazon, pincha aquí.

2 ene 2009

Creación de campos Autonuméricos (identity) en SQL Server

Se puede definir una columna de valor incremental al momento de crear su tabla o alterar su estructura.

Adicionalmente, se puede definir una "semilla" que se utilizara como valor inicial, en la primera fila, mientras que se utilizara el valor "incremento" para ir calculando los siguientes.

Para realizar esta tarea desde el Administrador Corporativo, bien en la creación o en la modificación de una tabla, tenemos los campos: identidad (identity), iniciación de identidad, e incremento de identidad.

Podemos utilizar cualquier tipo de dato numérico, en la figura anterior hemos utilizado un int, cuyo valor inicial es 100, y su incremento 1.

En el siguiente ejemplo, crea la misma tabla "alumnos" con un campo que representa
un código de identificación que tendrá valores a partir de 100:

CREATE TABLE alumnos (Nombre char(20), ident int IDENTITY (100,1), curso char(5), edad int null)

En el siguiente ejemplo, se altera una tabla para agregar una columna autoincremental:
ALTER TABLE ex_alumnos ADD ex_alumno_Id INT IDENTITY (100,1)

Usar NOT FOR REPLICATION.

La opción NOT FOR REPLICATION se utiliza en la duplicación de Microsoft® SQL Server™ 2000 para implementar intervalos de valores de identidad en un entorno con particiones. La opción NOT FOR REPLICATION es especialmente útil en una duplicación transaccional o de mezcla cuando una tabla publicada se divide en particiones con filas de varios sitios.

Cuando un agente de duplicación se conecta con una tabla con cualquier identificador de inicio de sesión, se activan todas las opciones NOT FOR REPLICATION de la tabla. Cuando se establece la opción, SQL Server 2000 mantiene los valores de identidad originales de las filas agregadas por el agente de duplicación, pero sigue incrementando el valor de identidad en las filas agregadas por otros usuarios. Cuando un usuario agrega una nueva fila a la tabla, el valor de identidad se incrementa de forma normal. Cuando un agente de duplicación duplica dicha fila en un suscriptor, el valor de identidad no se ve modificado cuando la fila se inserta en la tabla del suscriptor.

Por ejemplo, considere una tabla que contenga filas insertadas desde dos orígenes: el Publicador A y el Publicador B. Las filas insertadas en el Publicador A se identifican con valores crecientes entre 1 y 1000, y las filas del Publicador B se identifican con valores entre 1001 y 2000. Si un proceso del Publicador A inserta una fila localmente en la tabla, SQL Server asigna a la primera fila el valor 1, a la siguiente fila el valor 2 y así sucesivamente, en incrementos automáticos. De forma similar, si un proceso del Publicador B inserta una fila localmente en la tabla, a la primera fila se le asigna el valor 1001, a la siguiente fila el valor 1002, y así sucesivamente. Cuando se duplican las filas del Publicador A en el B, los valores de identidad siguen siendo 1, 2, etc., pero los valores de inicio locales no se reinician en el Publicador B.

Independientemente del papel que desempeñe en la duplicación, la propiedad IDENTITY no requiere que sea única por sí misma, simplemente inserta el valor siguiente. Aunque puede proporcionar un valor explícito con SET IDENTITY INSERT, dicha función no es apropiada para la duplicación, ya que también vuelve a iniciar el valor. La opción NOT FOR REPLICATION se ha creado específicamente para las aplicaciones que utilizan la duplicación. Por ejemplo, sin esta opción, en cuanto la primera fila del Publicador B (con valor 1001) se propagara al Publicador A, el siguiente valor de identidad del Publicador A sería 1002. La opción NOT FOR REPLICATION es una forma de indicar a SQL Server 2000 que el proceso de duplicación prescinde de dicho valor cuando suministra uno explícito y que el contador local no tiene que reiniciarse. Cada publicador que utilice esta opción obtiene el mismo permiso para no reiniciar el contador.

Se requieren procedimientos almacenados personalizados que utilicen instrucciones INSERT, UPDATE y DELETE con listas de columnas completas, antes de que la duplicación funcione con propiedades de identidad. Si no se utilizan listas de columnas completas, se devolverá un error.

El siguiente ejemplo de código ilustra cómo implementar identidades con intervalos diferentes en cada publicador:

En el Publicador A, empieza por 1 e incrementa de 1 en 1.
CREATE TABLE authors ( COL1 INT IDENTITY (1, 1) NOT FOR REPLICATION PRIMARY KEY )

En el Publicador B, empieza por 1001 y se incrementa de 1 en 1.
CREATE TABLE authors ( COL1 INT IDENTITY (1001, 1) NOT FOR REPLICATION PRIMARY KEY )

Después de activar la opción NOT FOR REPLICATION, las conexiones de los agentes de duplicación con el Publicador A insertan filas con valores como 1, 2, 3 y 4. Dichas filas se duplican en el Publicador B sin ser modificadas (es decir, 1, 2, 3 y 4). Las conexiones desde agentes de duplicación con el Publicador B obtienen los valores 1001, 1002, 1003 y 1004. Dichas filas se duplican en el Publicador A sin ser modificadas. Cuando se distribuyen o se mezclan todos los datos, ambos Publicadores tienen los valores 1, 2, 3, 4, 1001, 1002, 1003 y 1004. El valor de la siguiente fila insertada localmente en el Publicador A es 5. El valor de la siguiente fila insertada localmente en el Publicador B es 1005.

Se recomienda utilizar siempre la opción NOT FOR REPLICATION con la restricción CHECK para asegurar que los valores de identidad asignados están dentro del intervalo permitido. Por ejemplo:
CREATE TABLE sales
(sale_id INT IDENTITY(100001,1)
NOT FOR REPLICATION
CHECK NOT FOR REPLICATION (sale_id <= 200000),
sales_region CHAR(2),
CONSTRAINT id_pk PRIMARY KEY (sale_id)
)

Incluso si alguien utiliza SET IDENTITY INSERT, todos los valores insertados localmente quedan dentro del intervalo definido. Sin embargo, los procesos de duplicación siguen quedando fuera de la comprobación.

Nota Si va a utilizar la duplicación transaccional con la opción de actualización de suscriptores inmediata, no utilice el diseño IDENTITY NOT FOR REPLICATION. En su lugar, cree la propiedad IDENTITY sólo en el publicador y haga que el suscriptor utilice sólo el tipo de datos de base (por ejemplo, int). Así, el siguiente valor de identidad siempre se genera en el publicador.

Usar DBCC CHECKIDENT.

Se utiliza para cambiar o alterar el contenido de una columna auto incremental (IDENTITY).

Sintaxis
DBCC CHECKIDENT ( 'table_name' [ ,
{ NORESEED | { RESEED [ , ew_reseed_value ] } } ] )

En este ejemplo se establece el valor de identidad actual de la tabla jobs en 30.

USE pubs
GO
DBCC CHECKIDENT (jobs, RESEED, 30)
GO

Google