1 0 Archive | SQL RSS feed para esta categoría
post icon

Como programar en n-Capas con C# (Parte 1)

Este es un tema polémico del que se habla mucho y nada, digo que se habla mucho porque al buscar algo de información en Internet, uno se da cuenta, que esta plagado de sitios donde preguntan como aplicar programación en 3 capas, o N-Capas, pero en muy pocos lugares se responde con algo cierto y concreto, la mayoría hacen referencia a libros gordos que tardarías en leer semanas (no estoy en contra de la lectura, es un proceso largo nada más y casi todos buscamos aprenderlo un poco más rápido). Este artículo también será bastante largo y me aventuro a decir que me tomará varias noches escribirlo completamente, pero no será nada comparado con un libro con un lomo de 15 centímetros :P

La primer gran confusión que noto, es que la mayoría no sabe diferenciar entre los conceptos (Continuar Leyendo sobre Como programar en n-Capas con C# (Parte 1))

Leave a Comment
post icon

Exportar datos de MySQL a ficheros CSV

La tarea de importar y exportar datos a una base de datos es tan común y tan útil que casi todos los motores de hoy día traen su propia herramienta para hacer eso, ya no es necesario ir programando utilidades de este tipo. Estas pequeñas herramientas nos ahorraran bastante tiempo y dinero especialmente.

Exportar los datos de una tabla o varias tablas a un fichero .CSV (fichero con valores separados por comas) es tan sencillo que básicamente son unos parámetros  más a nuestro query de SELECT.

Además que es tan flexible y nos permite elegir (Continuar Leyendo sobre Exportar datos de MySQL a ficheros CSV)

Leave a Comment
post icon

VoltDB, la nueva generación de bases de datos OLTP

Hace poco vio la luz un nuevo DBMS, en el año 2009, llamado VoltDB, y su creador es nada más y nada menos Mike Stonebraker quien trabajó en el desarrollo de PostgreSQL e Ingres. Es un motor que promete bastante, y trae ideas bastantes nuevas, personalmente por su características no me parece que reemplazará a los tradicionales y robustos moteres empresariales que tenemos hoy día en el mercado, pero si me parece una muy buena alternativa para los servicios que requieren alta disponibilidad de los mismos no tanto alta fiabilidad de datos.

Quienes pueden requerir este tipo de productos? Hoy día servicios como facebook, twitter y otros requieren de súper velocidades de respuestas ya que son tan populares y deben ser rápidos éstos en responder.

Este motor se enfoca mucho a trabajar en memoria constante, y no tanto en disco físico. Además que prometen ser una 50 veces más rápido que otros motores, pudiendo procesar unas 53.000 transacciones por segundo, contra las (Continuar Leyendo sobre VoltDB, la nueva generación de bases de datos OLTP)

Leave a Comment
post icon

Capturar Output de los Procedimientos Almacenados de SQL Server con Java

A parte de un conjunto de datos que puede devolver un Stored Procedure en SQL Server, también podemos hacer que ellos devuelvan uno o varios valores escalares, un caso tipico es cuando insertamos un registro y la tabla tenia una PK Identity, si queremos recuperar esa clave podemos usar este mecanismo, aunque no necesariamente se reduce a esa posibilidad, con un poco de imaginación podemos darle usos en otras situaciones. El ejemplo que muestro esta construido con SQL Server, pero es funcional con otros motores que manejan el retorno de valores escalares en sus procedimientos almacenados..

1
2
3
4
5
6
7
8
9
10
11
CREATE PROCEDURE InsCliente
   @IdCliente INT OUTPUT,
   @Nombre VARCHAR(25),
   @Ruc VARCHAR(25)
AS
BEGIN
   -- Insertamos un registro
   INSERT INTO Cliente VALUES (@Nombre, @Ruc);
   -- Recuperamos el Id que se genero
   SELECT @IdCliente = @@Identity;
END

Tomando en cuenta este procedimiento que (Continuar Leyendo sobre Capturar Output de los Procedimientos Almacenados de SQL Server con Java)

Leave a Comment
post icon

Insert or Update [FIREBIRD]

Recién hemos visto como hacer ésta tarea en MySQL y fue bastante sencillo, en el caso de Firebird es aún mucho más sencilla y es la implementación que más me ha gustado :D Hay que tener en cuenta que Firebird soporta ésta sintaxis recién a partir de la versión 2.1.

Básicamente consiste en insertar 1 registro si no existe o actualizarlo en caso contrario sin necesidad de hacer manualmente la validación. Algunos factores a tener en cuenta son que no se puede la sentencia OLD en los triggers, además no es necesario que contenga todas la columnas de la tabla.

Además se tiene la posibilidad de hacer el “merge” basado en cualquiera de las columnas, no está limitado a las PK o Unique Index (estos pequeños detalles hizo que me guste su implementación además que (Continuar Leyendo sobre Insert or Update [FIREBIRD])

Leave a Comment
post icon

Insert or Update [MySQL]

En el día a día laboral cuando trabajamos con bases de datos nos encontramos con tareas repetitivas en donde debemos hacer altas o modificaciones en los registros de nuestras bases de datos, normalmente para decidir que acción llevar a cabo primeramente nos tomamos la molestia de hacer una consulta a la fuente, y verificamos si no existe lo que buscábamos procedemos por el INSERT y si existe UPDATE. Esto podemos hacerlo de manera mucho más eficiente, rápida y con menos código en ambos lados (BD y App) de distintas maneras en las distintas bases de datos del mercado (al menos en las más difundidas MySQL, Firebird, SQL Server [2008], Oracle, etc). En esta entrada lo implementaremos en MySQL aunque espero en los próximos días hacer las entregas de los otros motores.

Ya en éste motor específico tenemos 2 sentencias que nos pueden ayudar con ésta tarea: INSERT ON DUPLICATE KEY UPDATE o también REPLACE. Personalmente siempre opto por la primer opción ya que éste lo que hace por “debajo” es insertar si no existe o actualizar si existe (justo lo que queremos) en cambio la segunda opción inserta si no existe, pero si se da el caso contrario elimina la fila y vuelve a insertar, esto supone un problema si (Continuar Leyendo sobre Insert or Update [MySQL])

Leave a Comment
post icon

Realizar Consultas Paginadas en SQL Server, MySQL, Oracle & PostgreSQL

Paginar nuestras consultas resulta que siempre aligera más la carga del motor de base de datos, siempre y cuando éste tenga los índices donde corresponden y no en cualquier columna o peor aun, no tener indices, ya que sólo se transmiten los datos a mostrarse en el momento, ésta característica se siente mucho mejor cuando estamos trabajando con aplicaciones web, u otras que corran sobre una red de baja velocidad o alta concurrencia. De ahí su gran implementación en los últimos tiempos.

Para lograrlo necesitamos de la ayuda de nuestro motor de base de datos, ésta vez veremos el ejemplo en 4 motores muy populares, SQL Server, Oracle, MySQL y PostgreSQL. Personalmente creo que es más sencillo implementarlo en MySQL y PostgreSQL, seguido de Oracle y SQL Server. Aunque esto no hace que (Continuar Leyendo sobre Realizar Consultas Paginadas en SQL Server, MySQL, Oracle & PostgreSQL)

Leave a Comment
post icon

Diagrama de Venn implementado en SQL

Si queremos aplicar operaciones de conjuntos en el lenguaje SQL tenemos un par de formas de hacerlo, el modo más elegante de hacerlo es utilizar las sentencias diseñadas para este efecto. Los ejemplos que pondre se aplican a SQL Server y Firebird, esto también se puede hacer en Oracle, pero de un modo un tanto distinto, que lo veremos más adelante.

  • UNION Soportados por todas las versiones de SQL Server, y Firebird
  • EXCEPT Soportado por SQL Server 2005 en adelante, no soportado por Firebird 1.5 ni 2
  • INTERSECT Soportado por SQL Server 2005 en adelante, no soportado por Firebird 1.5 ni 2

Para poder utilizar estas sentencias solo debemos cumplir con dos condiciones:

  1. Todos los conjuntos de datos deben tener la misma cantidad de columnas, del mismo tipo de datos.
  2. Sólo se puede aplicar una sentencia ORDER BY, en el ultimo SELECT.

Los siguientes ejemplos trabajaremos con las entidades PROFESORES y ALUMNOS. (Continuar Leyendo sobre Diagrama de Venn implementado en SQL)

Leave a Comment
Página 2 de 212