SQL Server y otras hierbas

SQL Server 2008 R2 ya tiene fecha de lanzamiento

Estimados,

Microsoft publicó hoy en el blog oficial de SQL Server que en mayo de 2010 estará disponible SQL Server 2008 R2.

A medida que vaya saliendo información mas detallada, la voy a ir publicando. Mientras, sus consultas o comentarios sobre SQL Server son mas que bienvenidas.

Saludos,

Listar las tablas y columnas de una Base deDatos

Hoy me encontré con una petición bastante inusual (inusual, porque nunca me lo habían pedido antes…). ¿Como obtengo una lista de TODAS las tablas y TODAS las columnas de una Base de Datos?

No fue menor la solicitud. Obtener el listado de todas las columnas de una tabla no es difícil, pero esta Base de Datos tenia cerca de 60 tablas y algunas de estas tablas tienen casi 20 columnas, la tarea se hacía un poco tediosa.

Hasta que se me ocurrió ponerme a cachurear por ahí y encontré las siguientes consultas:

Para Bases de Datos SQL Server 2000

SELECT SO.NAME, SC.NAME

FROM sysobjects SO INNER JOIN syscolumns SC

ON SO.ID = SC.ID

WHERE SO.XTYPE = ‘U’

ORDER BY SO.NAME, SC.NAME

Para Bases de Datos SQL Server 2005

SELECT SO.NAME, SC.NAME

FROM sys.objects SO INNER JOIN sys.columns SC

ON SO.OBJECT_ID = SC.OBJECT_ID

WHERE SO.TYPE = ‘U’

ORDER BY SO.NAME, SC.NAME

 

Como siempre, sus dudas y comentarios son bienvenidos.

Posted: 11/1/2010 15:12 por Felipe Zuñiga | con 9 comment(s) |
Archivado en: ,
¿Eres estudiante? CERTIFICATE!!!!

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

Hace unas semanas hice una charla sobre SQL Server Integration Services 2008 en una Universidad en el norte de Chile y me sorprendió gratamente la cantidad de alumnos interesados en certificase en alguna tecnología.

A todos ellos que me preguntaron sobre certificaciones les tengo una MUY BUENA noticia. Hasta el 31 de Julio de 2010, Microsoft tendrá precios especiales para estudiantes en sus exámenes de certificación. En el caso de Chile, el descuento es de un 50%.

El listado de los exámenes esta en: http://www.prometric.com/microsoft/student

El único requisito para hacer efectivo este descuento es presentar una identificación que acredite tu condición de estudiante al momento de rendir el examen.

Durante el fin de semana iré publicando links donde encontrar material de preparación para algunos exámenes.

Como siempre si tienen dudas o comentarios, son bienvenidas.

Saludos,

Microsoft Business Intelligence VPC 7.1

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

Este articulo hace referencia a algo un poco antiguo, pero que por algún descuido no había puesto acá.

Microsoft tiene disponible una Maquina Virtual con TODO lo que necesitamos para hacer pruebas de una plataforma de Business Intelligence.

Ojo con los requerimientos de ejecución de esta maquina virtual. Al tener todo en uno, no es muy “liviana” que digamos. Necesitamos 1.5 ó 2 GB de RAM (lo optimo serian mas de 2GB), además esta creada para usarse en Virtual Server o Virtual PC así que deben recordar modificarla para usarla en Windows Virtual PC o Hyper-V. Finalmente, se recomienda almacenar el Disco Virtual en una unidad de disco distinta a la que almacena el SO de la maquina Host.

Un par de datos útiles: La contraseña para ingresar a la MV es: pass@word1 y La MV expira el 15 de Abril de 2010.

LOS LINKS:

BIR7.part01.exe

BIR7.part02.rar

BIR7.part03.rar

BIR7.part04.rar

BIR7.part05.rar

BIR7.part06.rar

BIR7.part07.rar

BIR7.part08.rar

Saludos,

TRANSPARENT DATA ENCRYPTION

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

La pregunta lógica que uno hace al saber que hay una versión nueva de algún producto es: ¿Cuáles son las nuevas características que trae incluidas? Y lógicamente, el tema de seguridad es uno de los más consultados.

En SQL Server 2008 una de las nuevas características es TRANSPARENT DATA ENCRYPTION (TDE). En este post vamos a tratar de explicar en qué consiste y cuáles son los usos y ventajas de usar esta modalidad de encriptación de datos.

¿QUE ES TDE?

SQL Server 2005 ya traía incorporadas ciertas capacidades de encriptación en forma de librerías; estas capacidades permitían encriptación basadas en roles de usuarios. TDE permite realizar encriptación de todos los datos en la Base de Datos, datos físicos y logs de transacciones. Esto se realiza al encriptar los datos a medida que se escriben al disco y desencriptando al realizar la lectura.

¿POR QUE USAR TDE?

Uno de los usos posibles de esta característica es si necesitamos darle acceso a nuestras Bases de Datos a personal externo a nuestra empresa (ej.: Desarrolladores Externos). Si la Base de Datos es demasiado grande para enviarla vía Correo Electrónico o FTP; o si nuestras políticas de seguridad no permiten dar acceso a nuestra red a personal externo, la única opción que nos quedaría es entregarle a ese Desarrollador una copia de la Base de Datos en un Disco Externo. Lógicamente el Desarrollador firmara una serie de documentos legales en los cuales se compromete a no divulgar la información contenida en la Base de Datos, pero ¿y si le roban el disco externo? O ¿Si la empresa que tenía que transportarlo lo extravía en el camino?

¿CUANDO USAR TDE?

TDE es una manera eficiente y muy fácil de implementar de asegurar nuestras bases de datos (incluyendo los respaldos). Esto la convierte en una herramienta muy potente cuando necesitamos enviar copias de nuestras Bases de Datos a personal externo, sucursales o los respaldos que, tal como dicen las buenas prácticas, almacenamos en un lugar físico distinto a nuestras oficinas.

Una de las principales ventajas de TDE es que no importa si alguien se roba el Disco Externo donde enviamos la Base de Datos al desarrollador externo, no podrá acceder la información a menos que tenga un certificado que da acceso a los datos. Además de ese certificado, necesitamos una llave privada y las credenciales para acceder a esa llave. Lógicamente, cada uno de estos elementos debe ser almacenado de manera independiente y en caso de tener que enviarlos a alguien se debieran enviar de manera separada.

¿COMO FUNCIONA TDE?

Si bien existen otros métodos de encriptación, estos usualmente encriptan los datos antes de que se escriban o actualicen los datos. Generalmente, la encriptación ocurre a nivel de aplicación; en un nivel intermedio del código o en el servidor de Base de Datos con las características que trae SQL Server 2005. La clave acá es que los datos se encriptan antes de escribirse en la cache (y por lo tanto en el disco) y se mantienen encriptados en la cache y en el disco. La desencriptación ocurre cuando los datos se recuperan desde la cache y esto puede ocurrir a nivel de código medio o aplicación.

En el caso de TDE no se encripta parte de los datos, se encriptan TODOS los datos en bloques de 8K a medida que los datos se escriben en el disco y la desencriptación ocurre al leerse desde el disco. Esta encriptación ocurre a bajo nivel y aunque ocurre para todas las páginas de datos, solo ocurre al escribir y leer datos desde el disco. Por lo tanto, si la Base de Datos tiene un bajo nivel de transacciones y un alto nivel de consultas (las cuales se generan principalmente en cache), no se notara un cambio significativo en el rendimiento. En cambio, si la Base de Datos es altamente transaccional (por lo tanto, con un alto nivel de operaciones de I/O) se notara un impacto en el rendimiento.

Un aspecto importante sobre TDE es que al encriptar cualquier numero de bases de datos en una instancia, se encripta automáticamente la base TEMPDB. Esto puede resultar en una disminución del rendimiento en otras bases de datos que no estén encriptadas y que tengan un alto nivel de uso de la base Tempdb. Si este es el caso, es conveniente considerar la opción de instalar una instancia de SQL Server especifica para las bases encriptadas o buscar otra alternativa de encriptación.

Por ahora es suficiente, como siempre sus comentarios y sugerencias son mas que bienvenidos.

Saludos,

Creando un Plan de Respaldo en SQL Server

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

Una de las tareas más importantes de un DBA es la creación e implementación de un plan de respaldo y recuperación de nuestras Bases de Datos. La creación de este plan puede tomar bastante tiempo y trabajo, hay que pensar en las Bases de Datos que se respaldaran, cada cuanto se harán los respaldos, etc.

Vamos a ver algunos de los puntos en los cuales fijarnos al preparar el plan de respaldo.

· ¿Qué Bases de Datos me conviene respaldar? La Base de Datos Master es vital para el funcionamiento de SQL Server. Si falla o se corrompe, el servidor completo se vuelve inútil. Lo bueno es que esta Base de Datos solo sufre cambios si creamos Bases de datos nuevas, creamos nuevos logins o cambiamos la configuración del servidor. Lógicamente en estos casos es conveniente hacer un respaldo de la Master. Sin embargo, si una Base de Datos contiene datos vitales de nuestros clientes y sufre cambios repetidamente, necesita ser respaldada más seguido.

· ¿Qué tan importante son los datos almacenados? Una base de datos de desarrollo o testeo no es tan importante como una que se encuentra en producción, por lo tanto la primera basta con respaldarla una vez a la semana, en cambio la segunda se recomienda respaldarla todos los días. Esto también va a influir en el tipo de Backup que realizaremos, un backup completo toma demasiado tiempo en el caso de una Base de Datos en producción como para realizarlo todos los días. Si la Base de Datos es demasiado crítica, se puede realizar un Backup completo 2 veces a la semana y el resto de los días un Backup Diferencial y cada una hora un Backup de los logs de transacciones.

· ¿Cada cuanto tiempo hay cambios en los datos? Una Base de Datos de solo lectura no tiene muchos cambios y por lo tanto puede pasar más tiempo entre respaldos. Por el contrario, una Base de Datos que se actualiza varias veces al día debe ser respaldada al menos una vez al día.

· ¿Qué tan rápido necesito tener la información disponible? En caso de un fallo, es importante el tiempo que nos demoraremos en tener disponible los datos nuevamente. Si tenemos nuestros respaldos en cinta, la recuperación tomará más tiempo que si lo tenemos en un disco o en varios dispositivos de respaldo.

· ¿Tengo el equipamiento para realizar los respaldos? Si no tenemos donde almacenar los respaldos, difícilmente podremos hacer un plan de respaldo apropiado. Es bueno considerar más de un tipo de dispositivo de respaldo (cintas, medios ópticos, discos duros, etc.)

· ¿Cuál es la mejor hora para realizar respaldos? La idea es hacer los respaldos durante el tiempo en que las Bases de Datos tienen un menor uso. Esto va a disminuir el tiempo que demora el respaldo en hacerse, pero a veces es importante considerar que hay Bases de Datos que están en uso durante el tiempo en que otras no lo están.

· ¿Es necesario almacenar mis respaldos en otro lugar físico? Mantener copia de nuestros respaldos en otra oficina o lugar físico es una manera de proteger los datos si nuestras instalaciones se ven afectadas por un desastre mayor (incendio, terremoto, etc.). Pero es importante considerar que también es importante mantener una copia de nuestro sistema de respaldo para poder recuperar rápidamente los datos.

Herramientas de SQL Server 2005

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

Dentro de SQL Server 2005 se pueden encontrar las siguientes herramientas:

  • Database Services: Incluye el motor de bases de datos y los componentes de búsqueda. El motor de base de datos es el núcleo de SQL Server. La replicación aumenta la disponibilidad de los datos distribuyéndolos entre varias bases de datos, permitiendo escalar la carga de trabajo de cada servidor. La búsqueda permite realizar consultas en lenguaje plano dentro de los datos almacenados en una base de datos.
  • Analysis Services: Provee las funcionalidades para OLAP y Data Mining orientadas a aplicaciones de Inteligencia de Negocios. Analysis Services le permite agregar datos desde varias fuentes, como bases de datos relacionales y trabajar estos datos de variadas formas.
  • Data Integration Services: Entrega transformación de datos y soluciones de integración para extraer y transformar datos desde múltiples fuentes y direccionarlas a uno o mas destinos. Esto permite unir datos desde múltiples fuentes y cargar estos datos en Data Warehouses.
  • Notification Services: Incluye un motor de notificación y los componentes de clientes para generar y enviar mensajes personalizados cada vez que un evento ocurra. Las notificaciones pueden enviarse a dispositivos inalámbricos, como celulares o PDA's, cuentas de Messenger o Correo.
  • Reporting Services: Incluye Report Manager y Report Server para proveer una plataforma completa para crear, administrar y distribuir reportes. Report Server esta construido sobre el standard de IIS y la tecnología .NET Framework, permitiendo combinar los beneficios de SQL Server e IIS para alojar y procesar reportes.
  • Service Broker: Permite creación de colas y mensajería como parte del núcleo de la base de datos. Las colas se pueden usar para apilar trabajos, como consultas y otras solicitudes, y ejecutarlas a medida que los recursos estén disponibles. La mensajería permite a las aplicaciones que usan las bases de datos comunicarse entre ellas.
Log Shipping en SQL Server 2005

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

A pedido de un amigo vamos a dedicarle un tiempo a ver un poco de Log Shipping en SQL 2005, voy a tratar de hacer esto lo mas simple posible para quienes lo lean.

Vamos por parte: Log Shipping es el proceso mediante el cual Respaldamos, Copiamos y Restauramos el log de transacciones de una Base de Datos ubicada en un servidor a otro(s) servidor(es). ¿Para Que?: Por que en caso de un fallo en uno de nuestros servidores, tener estos respaldos nos permiten recuperar rápidamente nuestras Bases de Datos en servidores de contingencia. (Créanme, es útil...)

¿Como Funciona? No tiene mucha ciencia en realidad. Básicamente creamos un respaldo de nuestro(s) log de transacciones, lo(s) copiamos a un servidor secundario y en caso de fallo levantamos este respaldo. Pero ojo, el proceso de levantar el servidor secundario no se hace en forma automática, debemos hacerlo nosotros.

Las operaciones que se realizan durante el proceso de Log Shipping los automatiza SQL Server Agent. La información de las operaciones efectuadas se almacenan en la Base de Datos MSDB.

¿Que necesitamos? La configuración recomendada es de 5 componentes: 1 Base de Datos Primaria, 1 Servidor Primario, 1 Base de Datos Secundaria, 1 Servidor Secundario y 1 Servidor de Monitoreo. El ultimo es opcional, pero permite administrar mas efectivamente los procesos que se realizan.

El proceso de Log Shipping consiste en 3 operaciones:

  1. Respaldar el Log de Transacciones de la Base de Datos Primaria
  2. Copiar el respaldo realizado en el servidor secundario.
  3. Restaurar el respaldo en la Base de Datos Secundaria.

INFRAESTRUCTURA NECESARIA

Debemos tener al menos 2 servidores o 2 instancias. Para configurar un servidor de monitoreo aparte, necesitamos un tercer servidor o instancia.

Todos los servidores deben tener SQL Server 2005 Standard, Enterprise, Workgroup o Developer Edition. Por lo tanto, SQL Server Express no admite Log Shipping.

Los servicios del SQL Server Agent deben estar corriendo y configurados con credenciales de red. Se puede configurar Log Shipping con los servicios detenidos, pero el proceso no se ejecutara en forma automática.

La Base de Datos primaria debe estar configurada en modo de recuperación FULL o BULK-LOGGED.

Debe existir una carpeta compartida donde copiar los respaldos realizados. La cuenta de servicio de SQL Agent en el servidor primario debe tener permisos de Lectura/Escritura en la carpeta. La cuenta de servicio de SQL Agent en el servidor secundario debe tener permisos de Lectura en esta carpeta.

El usuario que configura el procedimiento debe tener acceso de SYSADMIN en TODOS los servidores.

Montando Discos Virtuales en Windows 7

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

En mi último post les conté sobre la posibilidad de quemar ISOS sin necesidad de un software de terceros.

Ahora les voy a comentar sobre una característica que, personalmente, me gustó aún mas: Montar Discos virtuales directamente.

¿Como se hace?

  1. Abrimos el Menú Inicio
  2. Click derecho en Equipo y seleccionamos Administrar
  3. Expandimos Almacenamiento y seleccionamos Administrador de discos
  4. Hacemos click en Acciones y seleccionamos Montar VHD
  5. Ingresamos la ubicación y el nombre del archivo VHD
  6. OK

LISTO

¿Y cuando quiera desmontar el VHD?

Aún mas simple: Botón derecho en el disco virtual y seleccionamos Desmontar VHD

Voy a tratar de poner capturas apenas pueda.

A propósito, también funciona en Windows Server 2008 R2.

Saludos,

Posted: 20/12/2009 12:49 por Felipe Zuñiga | con no comments
Archivado en:
Windows Disc Image Burner

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

Estimados,

Me confieso… No he posteado la instalación de Windows Server 2008 R2 porque he estado todo el fin de semana “jugando” con Windows 7.

Hoy curioseando entre mis discos externos, encontré una imagen ISO que necesitaba grabar; una de las aplicaciones que no he instalado aun en Windows 7 es PowerISO, pero para mi sorpresa Windows 7 trae integrada la posibilidad de quemar archivos ISO.

Creo que desde Windows XP yo quería que esta capacidad viniera integrada en el SO.

Les dejo capturas del proceso y lo fácil que es:

image

 

image

Saludos,

Posted: 20/12/2009 12:43 por Felipe Zuñiga | con no comments
Archivado en:
Roles en SQL Server

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

Cuando alguien dice que se especializa en Bases de Datos es normal que te pidan saber de todo. Pero entre los que usamos SQL Server hay varios tipos distintos de usuarios y cada tipo tiene un enfoque distinto (que muchas veces tienen cosas en común).

La idea de este post es tratar de ayudar a quienes están recién empezando con SQL Server y aun no saben muy bien a que "área" dedicarse.

  • Arquitecto

Define el diseño de la infraestructura y tecnología que utilizará el sistema o solución. También define la visión, alcance e interoperabilidad del proyecto y la implementación de cada parte del sistema o solución.

  • Administrador

Ejecuta las operaciones diarias del sistema en áreas como disponibilidad, monitoreo, optimización, actualización, implementación, resolución de problemas y configuración.

  •  Analista

Crea reportes y modelos de datos para uso personal y del resto de la organización. Los analistas pueden ser profesionales del área de procesamiento de datos, pero generalmente son los responsables de analizar los datos de la empresa mientras realizan otras funciones paralelas.

  • Desarrollador

Diseña, implementa y prueba Sitios Web, Reportes o Aplicaciones que utilizan partes específicas del sistema diseñado por el Arquitecto. En lo particular, los Desarrolladores de Bases de Datos diseñan, implementan y prueban los schemas y objetos, como tablas y procedimientos almacenados, en una Base de Datos.

  • Information Worker

Traduce la información disponible en un sistema a información de la empresa.

Mandar Live Messenger al System Tray en Windows 7

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

Estimados,

Una de las mejoras que trae Windows 7 es la barra de tareas. Nos permite agrupar los iconos automáticamente, tiene mejores vistas previas, etc. Pero yo le encontraba un solo problema: Al ejecutar Live Messenger, este quedaba en la barra de tareas y no en la System Tray al lado del reloj como era hasta Vista. Si bien no parece ser tan molesto, personalmente me gusta el escritorio lo mas limpio posible y eso incluye la barra de tareas.

Bueno, investigando por ahí descubrí como mandar el icono del Live Messenger a la System Tray como antes.

1º Sin ejecutar el Live Messenger, vamos a las propiedades del acceso directo.

2º Cambiamos el modo de compatibilidad a Windows XP o Windows Vista

3º LISTO!

Acá las capturas de rigor:

1 2 3 4 5 6 7 8 9 10 11

Posted: 20/12/2009 12:38 por Felipe Zuñiga | con 1 comment(s)
Archivado en:
Creando un USB booteable para instalar Windows 7

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

Lo primero que necesitaremos es un pendrive de al menos 4 GB para almacenar todos los archivos de Windows 7. El formateo del pendrive lo haremos usando DISKPART.

El proceso es el siguiente:

  1. Insertamos el DVD de Windows 7 en nuestro lector.
  2. Insertamos el pendrive y esperamos que sea visible en el Explorer
  3. Ejecutamos DISKPART en una línea de comandos. Ahora partimos con las capturas

0

  • Escribimos LIST DISK para ver la lista de discos disponibles

1

  • Escribimos SELECT DISK 1 (en mi caso es Disk 1)

2

  • Escribimos CLEAN para eliminar lo que haya en el disco

3

  • Escribimos CREATE PARTITION PRIMARY

4

  • Escribimos SELECT PARTITION 1

5

  • Escribimos ACTIVE para hacer esta la partición activa

6

  • Escribimos FORMAT FS=FAT32 (y esperamos hasta que se complete el 100%)

7

  • Escribimos ASSIGN para asignarle una letra a la unidad en Explorer

8

Ahora tenemos listo nuestro pendrive para copiar TODOS los archivos desde el DVD de Windows 7. Una vez terminada la copia, tenemos listo un dispositivo removible para instalar Windows 7 por ejemplo en un Netbook (o un Macbook AIR… jejeje).

Saludos,

Instalación de drivers desactualizados en Windows 7

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

Estimados,

El sábado recién pasado en las oficinas de Microsoft Chile, se realizó un Install Fest de Windows 7. Aparte de la cantidad de asistentes que tuvimos (160 durante los 3 grupos que hicimos), estuvo bastante interesante tanto para quienes a instalar como para quienes estábamos allí apoyando.

Hubo un par de casos bastante interesantes que me toco ver. Pero el que voy a mencionar ahora es el que se llevo los honores. Ustedes saben (y si no saben les cuento) que Windows 7 tiene una base de drivers bastante amplia lo cual permite que los dispositivos se instalen en una gran mayoría durante la instalación del SO. Si el dispositivo no se instala en esa etapa no hay problemas, nos conectamos a Windows Update y ahí encontraremos varios drivers más. Ahora, si el driver no está en Windows Update tampoco hay problema, vamos al sitio del fabricante del dispositivo y descargamos el ultimo driver disponible para Windows Vista (los drivers de Windows Vista son compatibles con Windows 7). Pero ¿Qué pasa si el fabricante no tiene disponibles drivers para Windows Vista?...

Eso paso con un Laptop el día sábado, casi todos los drivers se instalaron ya sea en la instalación del SO o a través de Windows Update. El casi lo puso el driver de video… Mas encima el de video, que es el más atractivo debido a Aero y las otras capacidades graficas de Windows 7. Fuimos al sitio del fabricante y nada. El driver más actualizado era para Windows XP. Cuando ya estábamos al borde del pánico y pensando en nuestro primer tropiezo de todo el Install Fest (Era el último grupo…) una luz al final del túnel.

Si el driver del fabricante es un ejecutable, y un ejecutable en Windows 7 puede ejecutarse en modo de compatibilidad con SO anteriores… ¿Se podrá instalar el driver en modo compatibilidad? Adivinen… ¡SE PUEDE! Ejecutamos el instalador del driver en modo compatibilidad con Windows Vista y listo… Driver instalado y Aero corriendo.

Saludos,

Posted: 20/12/2009 10:46 por Felipe Zuñiga | con no comments
Archivado en:
Grabación de pasos para soporte

(Este articulo fue publicado anteriormente en mi antiguo blog)

Familiar NN: “Felipe, me salió un error en la pantalla”

Felipe: “¿Que decía?

Familiar NN: “No me acuerdo”

Felipe:”¿Que estabas haciendo cuando te salió el error?”

Familiar NN: “Nada… No me acuerdo”

Este dialogo, salido absolutamente de mi imaginación (si claro…), seguramente ha sido reproducido mil veces en todas las empresas, casas, cibercafés, y en general en cualquier lugar donde haya usuarios con PC’s o Laptops y alguien que se encargue del soporte.

Windows 7 trae una nueva característica que nos va a simplificar la vida a muchos de los que hacemos soporte o le arreglamos el computador de la casa a la mamá (upsss, se me salió…). Grabación de pasos para soporte.

Esta pequeña aplicación, que se encuentra en el Panel de Control, consiste en un generador de una pagina web MHTM con capturas de pantallas automáticas a cada clic que hacemos en la pantalla. Además, genera automáticamente los pasos seguidos en cada clic, mas información técnica para el departamento de soporte (o familiar computín de turno).

Otro uso que le podemos dar, es para quienes hacemos tutoriales o capturas de pantallas para nuestros blogs. De hecho, las capturas de pantallas de mi ultimo articulo las saque con esa aplicación.

Actualización 02 de Septiembre de 2009

Para quienes quieran crear un acceso directo, vayan a Inicio, escriben PSR.EXE, hacen clic con el botón derecho y crean el acceso directo o pueden enviarlo directamente al TaskBar.

Como siempre sus comentarios, dudas y sugerencias son bienvenidas.

Saludos,

Posted: 19/12/2009 12:39 por Felipe Zuñiga | con 2 comment(s)
Archivado en:
El rol del DBA en la “nube”

(Este artículo fue publicado anteriormente en mi antiguo blog)

“Realmente no me gusta el termino “nube”, porque es solo computo, pero entiendo la idea. La pregunta es: ¿Cual es el rol del DBA en un ambiente “en la nube”? Si tu empresa mueve su estructura a un proveedor, ¿Que hace el DBA?

Creo que lo que debe hacer es seguir con lo que estamos haciendo hasta ahora – movernos de un rol táctico a uno estratégico.

Es cierto, uno debe saber como hacer respaldos de la Base de Datos, donde se almacenan los datos, formas de normalización, y todo lo que un MCDBA debe saber. Pero como les he dicho antes, hay que conocer el negocio de la empresa. Debemos asegurarnos de pensar en temas mas grandes, como los archivos de datos, estrategias de acceso y retención, continuidad del negocio y mas. Debemos pasar de ser Administrador de Datos a Profesional de Datos. Nuestro rango de visión en el activo mas valioso de la compañía: LOS DATOS. Debemos ser vistos como campeones de los datos de la compañía en lugar de ser solo una persona que administra bits y bytes.

No me malentiendan – aun nos falta mucho. Aun hay servidores que instalar, Bases de Datos que optimizar, mantenimiento, optimización y parches de seguridad que aplicar. Pero en el camino, debemos usar un poco de nuestro tiempo entendiendo la compañía u organización y como utiliza los datos. Solo así estaremos listo cuando “Las nubes” se junten.”

Este articulo es una traducción (con todos los permisos) de uno que leí en CARPE DATUM. Uno de los blogs que mantengo en mis RSS y que siempre estoy revisando. Para quienes tengan interés en ser un DBA, se los recomiendo 100%.

Debo agradecer a Buck Woody, quien me autorizo para tomar su articulo y traducirlo al español para mostrárselo a ustedes.

Como siempre, sus comentarios y preguntas son bienvenidos.

Saludos,

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

Posted: 18/12/2009 6:41 por Felipe Zuñiga | con no comments
Archivado en: ,
Conceptos Básicos de Bases de Datos

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

Unos días atrás estuve conversando con un amigo que esta recién iniciándose en el tema de las Bases de Datos; su intención es convertirse en DBA y especializarse en SQL Server.

Una de las preguntas que me hizo fue: ¿Cuales son los conceptos básicos que debe manejar un DBA?

Luego de desempolvar algunos libros de mi época de estudiante, hacer un poco de research por internet y consultarle a los expertos que conozco, me decidí a escribir este articulo esperando que le sea de utilidad a mi amigo y a quienes tengan interés en dedicarse al área de Bases de Datos

Por lo extenso del tema, lo voy a dividir en 2 o 3 artículos que iré publicando dentro de la semana.

1. ¿Que es un RDBMS?
RDBMS es la sigla para Relational Data Base Management System. Básicamente son sistemas que mantienen registros de datos e índices en las tablas. Las relaciones pueden crearse y mantenerse a través y dentro de las tablas. En una BD relacional, las relaciones entre los datos se expresan en forma de tablas. La interdependencia entre estas tablas se expresa en valores en vez de punteros. Esto permite que los datos sean mas independientes unos de otros. Un RDBMS es capaz de combinar los datos desde distintos archivos, entregando herramientas para el uso de los datos.

2. ¿Cuales son las propiedades de las tablas?
Las tablas relacionales tienen 6 propiedades:

  1. Los valores son atómicos.
  2. Los valores en las columnas son del mismo tipo.
  3. Cada fila es única.
  4. Technorati Tags: ,
  5. La secuencia de las columnas no importa.
  6. La secuencia de las filas no importa.
  7. Cada columna debe tener un nombre único.

3. ¿Que es OLTP?
OLTP es la sigla para On-Line Transaction Processing. Este sistema es básicamente una aplicación que modifica los datos a medida que los recibe y permite tener un gran numero de usuarios concurrentes.

4. ¿Que es OLAP?
OLAP es la sigla para On-Line Analytical Processing. Este tipo de sistemas son aplicaciones que recolectan, administran, procesan y presentan datos multidimensionales para administración y análisis.

5. ¿Cual es la diferencia entre OLTP y OLAP?
Existen varias diferencias entre OLTP y OLAP, las voy a dividir de acuerdo a ciertos conceptos claves:

  • Origen de Datos
    • OLTP: Los datos provienen de la fuente original.
    • OLAP: Consolidación de datos desde distintas fuentes.
  • Objetivo del Procesamiento
    • OLTP: Instantánea de procesos de negocios que realizan tareas fundamentales para el negocio.
    • OLAP: Vistas multi-dimensionales de actividades del negocio, para permitir administración y planificación.
  • Consultas
    • OLTP: Consultas rápidas y simples que pueden ser ejecutadas por los usuarios.
    • OLAP: Consultas complejas y de ejecución mas larga, ejecutadas por el sistema para actualizar la data recién agregada.
  • Diseño de la Base de Datos
    • OLTP: Pequeñas Bases de Datos normalizadas. Se utiliza el Modelo Entidad-Relación y diseño orientado a las aplicaciones.
    • OLAP: Grandes Bases de Datos No-normalizadas. Se utiliza un diseño orientado al sujeto mediante los Modelos de Estrella, Copo de Nieve o Constelación.
  • Respaldo
    • OLTP: Respaldos regulares de las Bases de Datos.
    • OLAP: Volver a cargar los datos OLTP se considera una buena forma de respaldo.

Creo que con esto es suficiente para comenzar. Como siempre pueden hacer sus comentarios, dejar dudas o sugerencias para incluirlos en el siguiente articulo.