miércoles, 25 de mayo de 2011

Operaciones de Conjuntos en SQL Server 2005 (UNION, EXCEPT, INRERSECT)

En este blog no solo se habla de religion o del fin del mundo, si ya estabas muy asustado con eso. Tambien aqui tratamos otras cosas y eso es de lo que se trata este aporte de SQL Server 2005. Al trabajar con sistemas administradores de bases de datos (DBMS siglas en ingles de Database Management Systems) hemos ido heredando muchos conceptos de matematicas discretas y uno de ellos precisamente son las operaciones de conjuntos. Antes de entrar de lleno en el tema, es necesario hacer una visita a un concepto —heredado de las matematicas— que vamos a tratar aqui: las operaciones de conjuntos. Las operaciones aplicables tanto a un conjunto como a una tabla son las siguientes: Union, Interseccion, diferencia y diferencia simetrica como se observa en la tabla a continuacion

Operaciones de conjuntos en SQL

Como practica, Consideremos el caso siguiente:
Tres cursos se impartieron en una escuela: Matematicas, Ingles, Historia y se necesita saber lo siguiente: 1) quienes han cursado al menos una materia 2)Quien ya curso todas 3)Quien no ha cursado matematicas

Primero, creamos tres conjuntos de datos (o en este caso van a ser tablas temporales) y las llenamos con informacion

create table #historia (nombre varchar(30))
create table #matematicas (nombre varchar(30))
create table #ingles (nombre varchar(30))

insert into #historia (nombre) values ('Luis Osorio')
insert into #historia (nombre) values ('Martha Martinez')
insert into #historia (nombre) values ('Daniel Gonzalez')
insert into #historia (nombre) values ('Noemi Sanchez')

insert into #ingles (nombre) values ('Luis Osorio')
insert into #ingles (nombre) values ('Martha Martinez')
insert into #ingles (nombre) values ('Daniel Gonzalez')
insert into #ingles (nombre) values ('Cristal Lopez')

insert into #Matematicas (nombre) values ('Luis Osorio')
insert into #Matematicas (nombre) values ('Martha Martinez')
insert into #Matematicas (nombre) values ('Noemi Sanchez')
insert into #Matematicas (nombre) values ('Cristal Lopez')


Despues, iremos respondiendo cada cuestionamiento. Empezamos con el #1, saber quienes han cursado al menos una materia. En este caso la operacion que realizariamos seria una union, en esta se utiliza el operador UNION de SQL Server con el cual combinariamos los resultados de tres queries en uno solo y tendriamos algo como esto:

Union en SQL Server 2005

Por defecto, UNION elimina los registros duplicados como se observo en el ejemplo anterior. Si se desea tener esos duplicados se puede especificar UNION ALL en nuestro ejemplo y con eso tendriamos de vuelta los registros duplicados, aunque generalmente lo que se requiere es no tener duplicidad de datos.

El siguiente caso a resolver es quien ya curso las tres materias. La operacion a realizar sera una interseccion ya que en este caso buscamos miembros de los tres conjuntos. El operador que usaremos ahora es INTERSECT, que retorna registros coincidentes en los tres queries de nuestro ejemplo dando como resultado lo siguiente:

Intersection en SQL Server 2005

Y finalmente, para saber quien no curso matematicas, usamos el operador EXCEPT el cual permite saber cuales "registros de A no estan en B", dicho de otra forma si tenemos la clases de Ingles e Historia y a esas clases les aplicamos el operador EXCEPT sabriamos quien ya llevo esas dos materias pero no ha llevado matematicas, el resultado de este ultimo se los presento a continuacion:



Esto es a grosso modo como funcionan las operaciones de conjunto en SQL Server 2005 y es como todo, bastante util si sabes donde usarlo y sacarle provecho y puedo decir a ciencia cierta que me ha sido util

lunes, 23 de mayo de 2011

Hoy es 23 de Mayo... y aqui seguimos

Una amiga que yo tuve en el bachillerato, prepa, preparatoria o como le quieran llamar y de eso hace ya mas o menos algo de tiempo solia decir que "el mundo se acaba para el que se muere" y aunque tal cosa no es del todo cierta, creo que si tengo algo de que hacer burla que debo decir y eso es Ven como tenia razon en que el mundo no se iba a acabar el dia 21 de Mayo! y a parte de eso, hay otra cosa un poco mas seria que no debo dejar de hacer notar.
La biblia habla de que alguna vez el cristiano seria aborrecido del mundo (Mateo 24:9, Mateo 10:22) aun al mismo Cristo lo aborrecieron, por tanto si padecemos por su causa si seriamos tenidos por bienaventurados (Mateo 5:10-12) pero actualmente no solo somos burla del mundo por esto sino porque -segun algunos- como andamos vaticinando lo que no sabemos quedamos en ridiculo porque no sucede lo que profetizamos y aqui es donde digo NO TODOS LOS CRISTIANOS CREEMOS LAS CHARLATANERIAS DE ALGUNOS NI TAMPOCO PREDICAMOS LAS MISMAS PATRANAS!... Gloria a Dios si este no es tu caso! Lo unico que les queda a quienes les da por vaticinar fechas del fin de los tiempos es una doble verguenza: Si, doble porque tienen la burla de los incredulos y tienen la burla de quienes SI estudian la palabra de Dios y de antemano sabiamos que no pasaria nada absolutamente, yo se que algun que otro ateo se pasea por aqui de vez en vez y por eso desde antes que sucediera esto deje un escrito -inconcluso pero suficientemente claro aun asi- para declarar que yo no suscribo a las ideas de Harold Egbert Camping y su organizacion "Family Radio".
Por otra parte, siendo honestos a mi me hubiera gustado tener un asiento en primera fila para ver como este miserable mundo se termina para dar paso a uno mejor, tengo esa esperanza como creyente en Cristo y aunque no lo crean hay cosas despues de la muerte que pondrian los pelos de punta a mas de uno, de ahi que el buen amigo Davy Jones dijera "La vida es cruel ¿Por qué no habría de serlo la muerte también?" Yo aconsejo a quien lea esto que no espere a ese momento para descubrir que sucedera despues de haber llegado a la tumba.
Lero lero, el mundo no se acabo!

martes, 17 de mayo de 2011

Razones por las cuales el fin del mundo no sera en 2012

Este dia llego por fin, cuando todo mundo cree que el fin del mundo esta por ocurrir. Hay quienes incluso dicen que las profecias mayas hablan de un fin del mundo en el 2012 y otros tantos que inclusive dicen que sera en cuatro dias mas (21 de Mayo de 2011) Pero asi como ya he publicado escritos de siete razones en otros asuntos tales como el porque un ataque zombie no es factible, ya le tocaba el turno al fin del mundo... y aguas con esto, yo SI CREO EN QUE UN DIA EL MUNDO SE ACABARA pero lo que trato de objetar con este escrito es que no sera ni en 2012 como creen unos ni tampoco en 4 dias como creen otros aunque para ser honestos me hubiese gustado tener un asiento en primera fila para ver desaparecer este miserable lugar.
Sin mas preambulos, aqui tienen siete razones por las cuales el fin del mundo no sucedera en 2011 ni en 2012:

1) La mas importante: La Biblia no declara el dia exacto del fin. Si eres un buen cristiano y tambien si no lo eres, la Biblia —que es la ultima palabra en los asuntos espirituales de Dios— es clara ya que el mismisimo Jesus dijo (no con estas palabras pero mas o menos) que el volveria a este mundo como el ladron en la noche si supieras cuando viene el ladron a casa entonces estarias preparado siempre. En otras palabras, si supieramos el dia exacto en que Cristo volvera estoy seguro que muchos, como buenos mexicanos, vivirian perdidamente toda su vida y un par de dias antes o el mero dia si son tan valemadristas descuidados, estaran pidiendo perdon por sus pecados copiandose del ladron arrepentido en la cruz... por esa y otras razones de mas peso Jesucristo nunca dijo el dia exacto cuando volveria y mucho menos cuando se acaba el mundo. Una cosa va de la mano con la otra: Jesucristo vuelve por segunda vez, hay hecatombes por todo el mundo y finalmente POW! se acaba todo lo que concemos

El debate de esto lo voy a continuar con algunos de mis hermanos del buen foro ekklesia, y los resultados los vamos a postear de poco a poco. Este es un tema interesante que no debemos perder de vista, tenemos harto de falsos profetas a los cuales desgraciadamente hasta los que dicen ser creyentes les dan credito ¡malamente! pero cierto por desgracia.




Saludos a todos los que pasen por aqui, desde mis oscuros dominios

martes, 10 de mayo de 2011

Tiempo hay mas que vida, pero hasta cuando?

El tiempo dedicado a algo, lo que sea, es tiempo que no se puede recuperar y todos lo sabemos, aqui y ahora la cuestion es como invertimos el ingrato tiempo que no se detiene a esperar por nadie ni tampoco tiene piedad. He oido decir "Dios perdona, el tiempo no" a varias personas y hasta yo mismo esgrimi en varias ocasiones la frasecita en cuestion y la verdad, es mas que cierto... recuerdo que a los dieciocho anios podia memorizar casi cualquier cosa con verla solo una vez y hoy a catorce anios de distancia ya me cuesta mas aprender cosas pero como programo computadoras desde los quince a estas alturas de mi vida ya tengo una logica que me permite deducir D desde A sin tener que pasar por B y C (Si vieron la pelicula "El hombre sin sombra" saben de que estoy hablando)
En fin, el proposito de todo esto no era presumir las habilidades de su servidor, mas bien es amonestarnos a no solo sacar mejor provecho del tiempo, no nada mas recordarnos una vez mas que cada vez el inevitable y fatidico final esta mas cerca pues las profecias de la biblia -Y no las mayas o "Nostardamus"- estan viendo su cumplimiento, sino que tambien nos demos cuenta que tenemos un periodo breve de existir en este mundo que Dios creo. Es increible todo lo que tiene uno a mano por hacer y el como a veces nos quedamos "a medias" e inclusive jamas concluimos las cosas. El tiempo es una de las cosas mas ingratas y miserables que pueden existir, tan es asi que hasta al mismo Einstein lo hizo pasar su mal rato cuando trabajo con la teoria general de la relatividad
Cuando uno esta en este miserable mundo se pueden hacer toda clase de cosas tanto buenas como malas, tomar decisiones acertadas o estupidas, pero tambien aqui es donde se decide donde pasaras la eternidad creas o no que hay algo mas alla de la muerte que al fin y al cabo a todos nos ha de llegar por igual, el tipo de la guadaña tiene la dudosa virtud de ser bastante parejo pues igual se lleva al rico como al pobre, al joven como al viejo... vivo es cuando deben hacerse las cosas importantes, muerto ya para que, y una de esas cosas es buscar la salvacion del alma que esa si es eterna y el unico que puede proveerla es Cristo Jesus, ahora que paso hace poco menos de un mes la semana santa recordaras bien que hubo un sacrificio redentor por toda la humanidad caida, muerta en sus delitos y pecados, hoy que todavia estas de paso en este miserable mundo puedes tomar la mejor decision de tu vida, pero aunque no se solucionaran todos tus problemas en realidad hay uno que si se va a solucionar y ese es precisamente que sucedera una vez que mueras, si hoy decides por Jesucristo y vives para EL lo que te resta de vida por lo menos tendras el mejor destino posible despues de que tu tiempo en este mundo miserable haya terminado