jueves, 19 de agosto de 2010

1Z0-051 - Oracle Database 11g: SQL Fundamentals I (I)

No tengo muy claro que esto pueda servir de ayuda a alguien, es información muy básica, pero ahí va:

Los dos primeros objetivos del examen 1Z0-051 son sencillos:
  • Describir las capacidades de una sentencia SELECT
  • Ejecutar sentencias SELECT básicas
Las sentencias SELECT sirven para recuperar la información almacenada en una base de datos relacional, concretamente en unos objetos llamados tablas. La estructura de estos objectos se basa en el Modelo Relacional, por lo que para consultarlos será necesario que tengamos conceptos del Álgebra Relacional. Ésta la parte más teórica, y aunque voy a intentar centrarme en la práctica (recordemos que el objetivo es el examen), hay tres capacidades de las sentencias SELECT que necesitamos tener claras:
  • Proyección (Projection), restricción por atributos (columnas).
  • Selección (Selection), restricción por tuplas o registros.
  • Unión (Joining), interacción de una tabla con el resto.
Fácil ¿no?

Lo primero será conocer que tablas hay y cual es su estructura. La lista de tablas de las que es propietario el usuario con el que nos hemos conectado podemos obtenerla así:

SQL> select table_name from USER_TABLES;

Para consultar su estructura utilizaremos la sentencia "DESCRIBE":

SQL> describe ;

Esta información sobre las tablas y su estructura son los "Metadatos" y Oracle los almacena en el Diccionario de Datos. Aunque Oracle no distingue entre mayúsculas y minúsculas (excepto en literales) los metadatos suelen estar en mayúsculas.

Por último, hay cuatro puntos básicos sobre las sentencias SELECT a tratar:

Sintaxis
  • Hay que intentar no utilizar palabras reservadas para los objectos (lo típico).
  • Un alias es una alternativa para referencias columnas o expresiones (sobretodo expresiones).
  • Podemos utilizar la clausula DISTINCT para eliminar los duplicados del resultado de una sentencia SELECT (útil sobretodo cuando combinamos columnas).
  • Especial atención a las consultas ciegas (blind queries), tienen la forma "SELECT * FROM " y en función del tamaño de la tabla, podemos provocar un grave problema de rendimiento.
Reglas Básicas
  • Oracle no distingue entre mayúsculas y minúsculas, a menos que utilicemos comillas dobles para los alias o nombre de columnas.
  • Para terminar las sentencias se debe utilizar un terminador, suele ser un punto y coma. Aunque en scripts se suele utilizar el intro y la barra (forward slash '/').
  • Se recomienda escribir las sentencias en varias lineas, mas que nada por "higiene"...
Expresiones y Operadores
  • Sobre aritmética, que voy a contar...
  • Es útil utilizar alias para expresiones, si queremos utilizar varias palabras o conservar las mayúsculas, será necesario utilizar comillas dobles. Por legibilidad podemos utilizar la clausula AS para separar la expresión del alias, pero es opcional.
  • Para trabajar con expresiones literales (no basados en tablas), utilizaremos la pseudo-tabla DUAL.
  • Los literales suele ir entre comillas simples, si queremos utilizar las comillas simples dentro del literal tenemos dos opciones: a) utilizar dos comillas simples para "escapar" el símbolo, b) o utilizar un operador alternativo de la forma: SELECT q'X'mi 'ejemplo' de comillasX'.
Nulos
  • Cuando hablamos de nulos nos referimos a la ausencia de datos.
  • Se pueden marcar ciertas columnas como NOT NULL, para que Oracle no permita que contengan nulos.
  • Cualquier cálculo aritmético con un nulo, da como resultado otro nulo.
  • Oracle permite nulos en campos con claves foráneas, pero no permite nulos en campos con claves primarias.
Seguro que ha sido aburrido, de ahí la imagen... =)

Imagen: SQL Humor

miércoles, 18 de agosto de 2010

Confianza

Esta semana es muy curiosa, depende el artículo que leas Google puede estar en el cielo o en los infiernos de la libertad digital.


Resulta que en pocos días Google se ha visto inmersa en dos noticias de portada:
El monopolio de las búsquedas y la publicidad en Internet desata pasiones, pero parece imposible que exista una disparidad semejante de opiniones:

Ser el diablo de la libertad en la red y a la vez un gran defensor del software libre.

La Neutralidad en la Red es un tema al rojo vivo desde principios de año, debido a la presión de los proveedores de servicio como Telefónica, y algún debate en Europa. Por lo que no era de extrañar que el manifiesto junto al proveedor Verizon hiciera ponerse nervioso a más de uno.

En este caso el resultado ha sido una manifestación en Google, de la que os he dejado una foto. Y donde Google es el diablo de las libertades. Pero ya aquí nos encontramos los primeros problemas con los titulares, y pongo a dos medios 'tradicionales':
Parece que la libertad es 'matizada' o no, en función de quien lea el manifiesto. No creo que lo importante sea si uno u otro medio tienen intereses o si después se respondieron a las críticas. Queda confirmado, otra vez, que no puedes leer un solo medio si realmente quieres formarte una opinión.

Para compensar resulta que Oracle ha demandado a Google por no respetar las condiciones de Java en dispositivos móviles. Parece que Java tiene licencia GPL solo 'en parte', los dispositivos móviles quedaban excluidos.

En este caso el éxito de Android (plataforma afectada) ha hecho que mucha gente (seguramente, los mismos que arriba llamaban diablo a Google) surja como defensora de Google y sus aportaciones al software libre (dejar de lado OpenSolaris y la campaña en defensa de MySQL de su ex-propietario tampoco ha ayudado).

Podríamos discutir sobre Solaris Express, sobre como los creadores de dispositivos móviles con Android te dejan sin garantía al modificar el S.O. o  como Google demandó a Cyanogen por modificar el S.O. pero utilizar los programas (Mail, Calendar, Contacts y Youtube ¿tiene sentido Android sin ellos?).

Pero no lo voy a hacer ;) , por que esta noticia llegó a mi pantalla:


Ahora lo entiendo, resulta que es un problema de Confianza.

No se vosotros pero cuando tengo que elegir un servicio me baso en su "confiabilidad", y no en la "confianza" que tenga en la empresa.

Las patentes/derechos de autor parecen necesarias para muchos ámbitos, pero en el mundo digital se han de replantear unas cuantas cosas y el software libre necesita tiempo.

Ahora mismo multitud de empresas invierten su dinero en software libre para obtener beneficios, o buscar visibilidad para salvarse (como Sun con Solaris y Java). En mi caso ,si utilizo software libre es por que es más sencillo, más accesible, rápido o evitarme una demanda; en mi beneficio.

Si le planteo a mi empresa un producto de Oracle es por que creo que me dará el mejor servicio, no por que "confíe" en ellos, del mismo modo que cuando Oracle compró Sun seguro que fue para obtener beneficios...

Realmente hace falta interiorizar tanto a las grandes multinacionales como para que "confiemos" en ellas...

Internet esta llegando a todas las casas, y eso también supone batallas feroces y mucha más gente en el blanco y en el negro. Por suerte, es muy sencillo aportar tu granito de arena para aportar un poco de gris.

Imagenes:

lunes, 9 de agosto de 2010

¿Qué es el SQL?

En mi particular vuelta al cole, me he dado cuenta que el primer capítulo del libro para el examen 1Z0-051 contempla 5 objetivos que no entran en el examen...

Si, la intención de los autores era recalcar temas "vitales para entender el propósito del SQL y lo que intenta conseguir" y aunque el primer paso sea describir varios productos de Oracle (¿?) me ha hecho pensar...

Recuerdo perfectamente la primera vez que escuche SQL (`sequel`), fue para ofrecerme trabajo y yo no tenía ni la más remota idea del tema. Dejando de lado lo que pudo llegarme a marcar aquello, también recuerdo lo que me costó hacerme una idea sobre de que trataba eso del `esecuele`.

Por eso me he decidido a aportar mi granito de arena:

"La mayoría de sistemas donde se almacenan grandes cantidades de información lo hacen del mismo modo, para luego poder utilizar un mismo lenguaje para recuperar la información. SQL es el lenguaje que utilizamos para indicar a las bases de datos la información que nos interesa en aquel preciso instante.

Lo lanzamos contra la Base de Datos y nos devuelve lo que le hemos pedido.
"

¿Demasiado simple? quizás, pero cuando uno esta a cero, se agradece un explicación realmente básica.

¿Alguna otra idea?

"Do not just take the steps will take you one day to your objective... every step you do must to be itself a goal in itself, while it takes you forward."
Johann Goethe


Imagen: Objective


miércoles, 4 de agosto de 2010

Edition Based Redefinition (para ir abriendo boca) [MICRO]

EBR es un tema que se me resiste... si...

Por eso no me he podido resistir a publicar este curioso vídeo introductorio en forma de entrevista a uno de los ponentes de la feria ODTUG Kaleidoscope 2010.


No comentaré nada sobre el atuendo, pero si sobre EBR, una tecnología que promete migrar una aplicación de versión (modificación del esquema incluida) mientras los usuarios trabajan.

Quizás las escasas posibilidades de verlo en funcionamiento o que hace más bien poco que tengo un 11gR2 en producción (versión mínima para EBR) sean las causas de relegar el artículo a mi lista de "Someday".

martes, 3 de agosto de 2010

La Vuelta al Cole

No, no me he equivocado, primeros de agosto y hablando de vuelta al cole.


La educación esta cambiando, hay un pequeño debate social sobre si se esta haciendo demasiado rápido o en realidad el cambio es demasiado lento, pero todo estamos de acuerdo: la educación tiene que cambiar.

No pretendo inmiscuirme en el dialogo social, pero si comentar varios conceptos que, a priori, me parecen interesantes:
  • La "Edad Escolar" es algo que ya no tiene sentido, en la antigüedad solo la nobleza podía permitirse el lujo de estudiar durante toda la vida; durante una época hemos intentando dividir las nuestras en tiempo para el estudio y otro para el trabajo. Ahora nos vemos obligados a estudiar durante toda nuestra vida productiva.
  • Comunicación Unidireccional fracasa, desconozco si algún día sirvió para algo ya que nunca me ha convencido, pero creo que ahora ya son más de uno los expertos de acuerdo con la idea de potenciar la participación en las aulas.
  • Material Didáctico se diversifica, la wikipedia, los libros electrónicos, una pagina de facebook o una etiqueta en twitter pueden llevar una clase a otros límites.
Pero aunque haya puesto la imagen de un pequeño alumno, al que seguramente solo le interese jugar, voy a intentar predicar con un ejemplo para mayores:

Me propongo pasar el examen 1Z0-051 de Oracle sobre "Fundamentos del SQL I", tal y como se puede ver en el enlace, el examen puede realizarse "online" (quizás lo comente en otro post). Mi material didáctico esta vez se basa en un libro "SQL Fundamentals I Exam Guide (Exam 1Z0-051)" con el que viene un CD con los capítulos en PDF. Ha sido muy sencillo, gracias a Calibre, convertir los PDF a ePub y disponer del libro en mi lector de eBooks.

Comentar que Oracle Certification dispone de blog, página de facebook, una cuenta de twitter y un foro, donde podemos dirigir nuestras consultas sobre la certificación, o un foro específico sobre temas de SQL y PL/SQL para nuestras dudas.

Es un examen sencillo, pero si no estáis contentos con todo ésto, aquí tenéis un pequeño mapa mental sobre lo que se pide para el examen, y este blog donde intentaré poner la mayor información posible:



Apenas se nada sobre educación pero... feliz aprendizaje!!

Imagen: vuelta al cole

domingo, 7 de marzo de 2010

Oracle en la Feria Toolinux de Software Libre en Paris [MICRO]

Oracle estará presente con un stand y presentando varias conferencias el 16 de Marzo en la feria Toolinux en Paris.

Parece que además seguir promocionando 11gR2 y comentar las ventajas que pueden ofrecer a los desarrolladores de PHP, Ruby, Python o Perl, también se tocarán temas como:
  • ¿Cuáles son las iniciativas, proyectos y contribuciones de Oracle a la comunidad Linux?
  • ¿Cuál es la estrategia de Oracle en el modelo de licencias y la distribución de código abierto?
No tengo dudas sobre el objetivo de Oracle, llegar a una gran masa de desarrolladores, los cuales muchas veces se mueven en el mundo Linux, pero también hay que comentar que ese es su gran debilidad en estos momentos. No hay productos que aprovechen las funciones que ofrecen como base de datos.

De todas formas, el tema de la compra de Sun y el futuro de MySQL todavía esta al rojo vivo, y no estará nada mal ver como se defienden ante un montón de potenciales fanáticos del GNU.

Los detalles en su web, visto en el twitter de matthewSeed.

sábado, 6 de marzo de 2010

IMPOSSIBLE IS NOTHING

Mi vocación siempre ha sido la de Administrador de Sistemas, pero esta claro que uno no empieza administrando bases de datos. En mi caso, el principio fue una mezcla de redes y seguridad.

Esto, además de facilitarme muchas de las tareas como DBA, me permite ayudar a mis compañeros en ciertos "casos". Este en concreto, no tuvo un camino lleno de luz y claridad... si no más bien de oscuridad y noche; pero tuvo un buen final y de paso me sirve para introducir, lo que para mi es, una de las tareas más complejas que he realizado:

Montar una VPN

No solo requiere cooperación, trabajo en equipo, comunicación... sino que además, unos conocimientos técnicos que sin llegar al nivel de guru, te permitan avanzar y no caer en ambigüedades sin salida.

Las Redes Privadas Virtuales entre dos centros permiten una comunicación segura. Antiguamente se contrataban los servicios de un ISP que te ofrecía un "cable" directo, pero ahora existe Internet. Ahora cualquier empresa puede disponer de un equipo que pueda hacer las funciones de concentrador de VPN's.

¿Que provoca esto?, que el administrador del centro A tiene que entenderse con el del centro B; que no es poco. Pero voy a intentar situaros,  para que veáis el alcance que puede llegar a tener:
  • Los administradores seguramente nunca se verán las caras, mucho teléfono, correos, ¿he dicho mucho teléfono?
  • No suele existir la figura del coordinador, cada administrador rinde cuentas a una persona diferente. Es posible que la VPN se englobe dentro de un proyecto, pero el coordinador del proyecto solo quiere que funcione... como es lógico.
  • El problema técnico, es complicado que los dos "centros" haya elegido a la misma marca para sus concentradores de VPN. Pero, aunque los protocolos son "estándar", lo cual debería solucionar las diferencias entre marcas, cada fabricante implementa IPSec como le parece. Esto deja al administrador ante un conjunto de nombres variopintos a más no poder y que ha de intentar casar con el "estándar".
  • Network Address Translation, seguramente ambos centros utilizarán los mismos segmentos de red (192.168.0.0), por lo que será necesario realizar NAT de ambas redes. Esto no ayuda... a las marcas también les ha dado por entender esto "a su manera".

Con un ambiente de trabajo semejante y tras múltiples montajes por todo el territorio, con una amplia gama de fabricantes, quien iba a imaginarse que se podía empeorar.

Pues si, es tan sencillo como que te digan:

"montar ésto es imposible"

La situación no ayuda, pero no creo que tengamos que llegar a estas "rotundidades". Y si, el resultado fue bueno y logramos montar la VPN... pero siempre recordare lo colapsado que me quedé ante aquella afirmación.

Si hay algo que me gusta del trabajo de DBA, es que las cosas no puedes hacerlas funcionar a medias, o sabes lo que haces o no puedes continuar. Con las comunicaciones pasa algo parecido, y se puede resumir en:

NADA ES IMPOSIBLE
cuando sabes lo que haces... =)

Quizás algún día me de por colgar artículos técnicos, pero de momento, si alguien esta interesado en una VPN entre un router Cisco con "NAT on a Stick" y un cluster Checkpoint, que contacte conmigo.

lunes, 1 de marzo de 2010

Silicon Valley DB Geek Trivia [MICRO]

¿Cuál es el código del aeropuerto de San Carlos?

La respuesta es la primera imagen geek del blog =)



domingo, 28 de febrero de 2010

Microsoft: Oracle nos llevara de regreso al infierno de la década de los 70 [MICRO]

A través del twitter de Queiroga Jr. leo el siguiente artículo:




Viene a explicar la posición de Microsoft ante el posible resurgir de una arquitectura olvidada: Sparc.

La mayoría han montado un revuelo diferentes software, por el futuro de Java o MySQL; pero cada vez queda más claro que lo que quería Oracle era el hardware, servidores, cabinas de disco, tecnologías sólidas.

Vivimos tiempo difíciles, que una empresa como Oracle se decante tanto por un S.O. como Linux no debe hacer mucha gracia en Redmond pero criticar a una arquitectura... por "antigua"... no parece una buena táctica. Todo sería más sencillo con una única arquitectura (x86) y los grandes acuerdos entre Microsoft, Intel y HewlettPackard, pero la competencia es buena.

Del mismo modo que dudamos entre PostgreSQL o SQL Server, también es bueno que podamos tener dudas entre Intel, IBM o Sparc...

domingo, 24 de enero de 2010

Borrar una Base de Datos en ASM/OMF [TRUCO]

Leas donde leas Oracle aconseja a sus DBA's utilizar ASM y OMF, pero solo te explican las ventajas. Los introduzco brevemente:
  • Automatic Storage Management (ASM), una mezcla de gestor de volúmenes y sistema de archivos propiedad de Oracle. Solo diré que logré cambiar de edificio una base de datos en caliente gracias a ASM. Para soluciones realmente avanzadas 11gR2.
  • Oracle Managed Files (OMF), aunque también funciona con sistemas de archivos tradicionales, yo le encontré el sentido con ASM. Si nos abstraemos de los discos, no tendría mucho sentido tener que preocuparse por estructuras de directorios y nombres de archivo. Con OMF también nos abstraeremos de esta tarea.
Pues si señores, esto funciona y funciona muy bien, pero sobretodo para crecer. Crear y ampliar serán tareas que ya no supondrán un problema. Pero cuando queramos mover o borrar, la cosa cambia. Y es que la facilidad al crear se convierte en inconveniente al borrar, ya que tendremos que indicar implícitamente que estamos haciendo para que Oracle no siga teniendo en cuenta lo que estamos borrando... o utilizar un pequeño truco.

Por eso os presento los pasos para borrar una base de datos en ASM y que utilice OMF, en una sentencia y sin que queden "restos" raros, el secreto utilizar RMAN:

$ sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup mount exclusive;
SQL> alter system enable restricted session;
SQL> exit

$ rman target / nocatalog
RMAN> DROP DATABASE;


Si además incluimos la cláusula INCLUDNIG BACKUPS para que también haga limpieza de las copias de seguridad.

Si queréis haceros una idea de lo "trascendental" de este tema, "googlear" un poco y veréis la cantidad de referencias que existen.

sábado, 23 de enero de 2010

La Privacidad y Los Cuernos

Quien iba a decirme que tendría un motivo para poner una foto del presidente de los EE.UU.:



Y la excusa es el Presidente de Oracle (el tipo alto del centro de la foto) Charles Phillips, que se ha visto obligado a confesar un affair con YaVaughnie Wilkins, tras ocho años de relación con su amante parece que ha vuelto con su mujer y estas cosas no sientan bien. Este tipo de noticias, al que estamos acostumbrados en la prensar rosa, comienzan a tener un cierto impacto en las redes sociales; algo que supone un argumento de crítica.

Señores, no es necesario una red social para "abrumar" a alguien, basta con tres anuncios de varios metros de altura:

Y es que la señorita Wilkins ha publicado tres carteles de tamaño no despreciable en Atlanta, San Francisco y Nueva York; con la url de una web (sin servicio en estos momentos) donde había colgado multitud de fotos de la "pareja".

Tras las declaraciones de Mark Zuckerberg, fundador de Facebook, donde aseguraba que la "privacidad ya no existe" se abrió un debate que estaba en boca de todos: La Privacidad en Internet.

Parecía que por culpa de las redes sociales era imposible preservar nuestra privacidad, y tras leer multitud de artículos sobre como preservar nuestra privacidad parecía imposible que con un par de vallas publicitarias todas las teorías se fueran al traste.

Por ser breve, si vais a hacer algo de lo que sabéis que os vais a arrepentir, por favor, aceptar las consecuencias y dejar de criticar a los nuevos medios:



NO CULPES AL MENSAJERO
!!

Charles es uno de los consejeros de Obama en temas de economía, de ahí la foto de arriba.