Vistas de metadatos de Oracle, cómo buscar objetos de la base de datos


Vistas de metadatos de Oracle, cómo bucear por los objetos de la base de datos

En alguna ocasión hemos tenido que hacer una consulta en Oracle sobre una tabla cuyo nombre no recordamos con exactitud y nos hemos tenido que pegar con la documentación del proyecto (si existe, claro) hasta encontrarla. Con el IDE TOAD for Oracle podemos usar el Schema Browser para encontrar rápidamente a través de los filtros de metadatos la tabla en cuestión, sin embargo, si estamos con cualquier otra herramienta que no disponga de un buscador para el diccionario de datos de  la base de datos, la única forma de buscar entre todos los objetos del sistema es utilizando alguna de las vistas de metadatos propias de ORACLE del esquema SYSTEM (SYS), que almacenan toda la información sobre los objetos de la BBDD.

Existe una vista por cada nivel de acceso en función del usuario con el que nos hemos conectado, por ejemplo, las vistas que agrupan toda la información sobre los índices serían DBA_INDEXES, ALL_INDEXES y USER_INDEXES.

  • DBA_: contiene todos los objetos de la instancia a la que nos hemos conectado. Es necesario tener los privilegios suficientes.
  • ALL_: contiene todos los objetos accesibles por el usuario con el que nos hemos conectado, tanto los propios como sobre los que se tiene acceso (ya sean de otros usuarios o esquemas)
  • USER_: sólo contiene los objetos que pertenecen al usuario.

Estas vistas de metadatos nos permiten buscar rápidamente cualquier objeto de la base de datos.

  • SYS.DBA_TABLES ó SYS.DBA_ALL_TABLES (Tablas)
  • SYS.DBA_VIEWS (Vistas)
  • SYS.DBA_INDEXES (Índices)
  • SYS.DBA_TABLESPACES (Tablespaces)
  • SYS.DBA_USERS (Usuarios)
  • SYS.DBA_PROCEDURES (Procedures)
  • SYS.DBA_SEQUENCES (Secuencias)
  • SYS.DBA_TRIGGERS (Triggers o Disparadores)




Una consulta de ejemplo con la que obtendríamos el nombre completo de una tabla sería:

SELECT OWNER, TABLE_NAME, TABLESPACE_NAME
FROM SYS.DBA_TABLES
WHERE TABLE_NAME LIKE ‘%EMPLEADOS%’;

En relación a las tablas DBA_TABLES y DBA_ALL_TABLES, mencionar que la diferencia radica en que la primera sólo contiene información de las tablas, mientras que la segunda incluye también metadatos de los Object Tables, que en Oracle son tipos de datos definidos por el propio usuario (son estructuras o arrays que pueden incorporarse como columnas de una tabla o incluso permiten crear nuevas tablas instanciando estos objetos; para crearlos se utiliza la sentencia CREATE TYPE < nombre > AS OBJECT).

 

SYS.ALL_TAB_COLS: buscar tablas por sus columnas en Oracle

Otra tabla del system que nos puede ayudar a la hora de buscar información en los metadatos de Oracle es  SYS.DBA_TAB_COLS. Esta tabla contiene las columnas de cada objeto table de nuestra base de datos, de forma que buscando por el campo COLUMN_NAME podremos saber en qué tablas se encuentra (útil cuando sabemos el campo de destino y queremos saber saber de donde viene o por donde pasa).

Por ejemplo, para obtener todas las tablas del sistema que incluyen una columna en concreto podríamos utilizar esta query:

SELECT OWNER, TABLE_NAME, COLUMN_NAME
FROM SYS.ALL_TAB_COLS
WHERE COLUMN_NAME = ‘FECHA_ALTA’;

 

SYS.DBA_TAB_PRIVS: Ver los permisos o privilegios de una tabla en Oracle

La forma más rápida de ver los permisos de una o varias tablas es utilizando la vista SYS.DBA_TAB_PRIVS. Filtrando por el nombre de la tabla recuperaremos una tupla con cada permiso otorgado (select, alter, insert, update, delete, execute, etc.), el rol al que se le ha asignado y el usuario propietario. Aunque la nomenclatura de la vista incluye _TAB, se pueden consultar los permisos de cualquier objeto de la BBDD: tablas, vistas, secuencias, etc.

SELECT GRANTEE, OWNER, TABLE_NAME, GRANTOR, PRIVILEGE
FROM SYS.DBA_TAB_PRIVS
WHERE TABLE_NAME LIKE ‘%EMPLEADOS%’

Sin Comentarios

Curso de Community Manager gratis para trabajadores en activo On-line

Curso de Community Manager gratis para trabajadores en activo On-line

Desde hace un tiempo el término Community Manager forma parte de nuestro vocabulario y cada vez se está dibujando con mayor claridad el perfil laboral que debe desempeñar un recurso con esta denominación. Como todo lo nuevo o poco conocido, normalmente el acceso es muy complicado y acceder a formación especializada podría resultar complicado y sobre todo, caro. Sin embargo, desde hace unos días he visto que varias academias de formación e-learning han comenzado a promocionar cursos de Formación Continua de Community Manager gratuitos para trabajadores en activo, ya que están subvencionados por la Fundación Tripartita de la EU o bien forman parte de la bolsa de cursos de Formación Continua (antiguo FORCEM).

Por un lado, tenemos el curso de 50 horas La figura del Community Manager como dinamizador, impartido por Directivo Global, que sólo pide como requisito ser un trabajador en activo y estar cotizando en la Seguridad Social. El curso se divide en cinco temas, donde podemos conocer la base del concepto de Community Manager: las redes sociales; cómo gestionar comunidades de foros o blogs; asistencia a los usuarios y audiencia de nuestros proyectos; herramientas principales de un CM y estrategias en Social Media.

Por otro lado, el curso que imparte Formación Continua, denominado Técnico Superior en Marketing Digital, Redes Sociales y Web 2.0 es muchísimo más completo, ya que cuenta con 300 horas lectivas. El único pero es que se basa en los créditos de Formación continua (FORCEM), es decir, la empresa del trabajador tiene una bolsa de dinero subvencionada por la UE para invertir en la formación de sus trabajadores, y lo que suele ocurrir en la mayoría de las empresas es que si cuentan con una carrera profesional y un plan de formación, ya han decido donde invertir ese dinero, por lo que es muy probable que no estén dispuestos a pagar el curso al empleado. También  pudiera ser que dieran la opción de elegir entre el plan de formación corporativo o (“o” exclusivo) el curso que quiera hacer el empleado. Este curso tiene una base mucho más completa de marketing, dedicando los varios temas al marketing comercial y en redes sociales, a los consumidores, medios o plataformas donde ejercer las tareas de un Social Media, herramientas o productos multimedia que ofrecer (video, audio, podcasts). Desde mi punto de vista, el más recomendable y completo.

Hay otras academias donde se imparte el curso de Community Manager con un temario similar, pero de caracter presencial o semi-presencial, tanto para trabajadores en activo como para desempleados. En FORMAN, academia malagueña, ofrecen el curso semi-presencial de 50 horas Gestor de Comunidad: Community Manager. Para acceder al curso subvencionado hay que superar una prueba técnica y la aprovación del perfil por un tribunal de la academia (es necesario enviar el CV).

Más info | La figura del Community Manager como dinamizador
Más info | Técnico Superior en Marketing Digital, Redes Sociales y Web 2.0
Más info | Gestor de Comunidad: Community Manager

6 Comentarios

Mejora la usabilidad y accesibilidad de los formularios en HTML 4.0

Acabo de descubrir varias etiquetas para formularios HTML 4.0 que no conocía y que nos permiten  mejorar la usabilidad y la accesibilidad de nuestros formularios considerablemente. Desde Eslomas nos ofrecen una  explicación de éstas y varios ejemplos donde comprobar el resultado. Tal y como nos indican, estas  etiquetas están admitidas por la W3C, por lo que no tendremos ningún problema al validar nuestro formulario.

Fieldset y Legend

Estas etiquetas nos permiten crear un área visible dentro del formulario agrupando varios controles que estén relacionados facilitando al usuario su comprensión y usabilidad, ya que permite desplazarse de un control a otro a través de la tecla TAB. La etiqueta Fieldset crea el recuadro que agrupa a los controles, mientras que Legend nos permite implementar el título del área.

<fieldset>

<legend>Datos personales:</legend>

Nombre: <input size=”20″ type=”text” />

Dirección: <input size=”20″ type=”text” />

Teléfono: <input size=”20″ type=”text” />

</fieldset>

Datos personales:

Nombre:

Dirección: 

Teléfono: 

Label

Aunque no es una etiqueta desconocida, puede que el uso que se la da no sea el apropiado o simplemente que no es explota todo su potencial. Esta etiqueta permite definir un título a un control del formulario. Cada etiqueta label sólo puede estar asignada a un control, y digo asignada porque aquí es donde está el verdadero uso de esta etiqueta. Mediante el atributo for (propio de la etiqueta label) podemos especificar el id del control de formulario al que queremos asignar el label, de esta forma el usuario podrá hacer click sobre el control o sobre el label al realizar las operaciones con el formulario. Donde realmente podemos ver su efecto es en controles radiobutton ó checkbox, ya que para seleccionarlos o chequearlos podremos hacer click sobre el label o sobre los propios controles. De esta forma se mejora considerablemente la usabilidad del formulario. Cabe mencionar que dentro de la etiqueta label podemos incluir tanto texto como imágenes.

Selecciona tu vehículo

<input id=”bmw” name=”coche” type=”radio” />

<label for=”bmw”>BMW

<input id=”audi” name=”coche” type=”radio” />

<label for=”audi”><img src=””/> Audi

Selecciona tu vehículo:

Optgroup

Esta etiqueta nos permite crear grupos dentro de desplegables select. Los grupos están definidos por un título que aparecerá en negrita y cursiva, y que no será seleccionable.

La utilidad de optgroup reside en facilitar al usuario la lectura y comprensión de la lista desplegable.

<select name=”Modelo”>

<option selected=”selected” value=”none”>Seleccione…</option>

<optgroup label=”BMW”>

<option value=”bmw120d”>BMW 116d

<option value=”bmw118d”>BMW 118d

<option value=”bmw120d”>BMW 120d

<option value=”bmw318d”>BMW 318d

<option value=”bmw320d”>BMW 320d

</optgroup>

<optgroup label=”AUDI”>

<option value=”A1″>A1

<option value=”A2″>A2

<option value=”A3″>A3

<option value=”A4″>A5

</optgroup>

</select>

Selecciona el modelo:

Más info | http://www.eslomas.com/campos-fieldset-legend-label-optgroup

3 Comentarios

uCertify

uCertify es un repositorio de pago de exámenes de certificaciones tecnológicas donde, tras pagar la cuota del examen que desees comprar (aprox 200$ cada uno), tendrás acceso al pool de preguntas que saldrán en el examen oficial. Su catálogo incluye la mayoría de las certificaciones más imporatantes del sector: JAVA, Oracle, Microsoft, CISCO, Adobe, ITIL, UML, Linuz, IBM, etc. Las preguntas que te proporcionan son las que luego aparecerán en el examen oficial, por lo que tal y como ellos afirman: tu aprobado está garantizado al 100%, y si no, te devuelven el dinero.

Para poder tener acceso a las preguntas es necesario bajarse la suite de software de uCertify PrepKit, donde tras indicar el e-mail y un código generado al comprar la licencia para uno o varios exámenes, podremos acceder a un pequeño test de prueba, cinco exámenes generados con el pool global de preguntas, y un test final. Otras opciones son un cuestionario interactivo, donde sabremos al instante si la opción elegida es la correcta o no, e incluso podremos personalizar y crear nuestros propios test utilizando como base su repositorio de preguntas.

ucertify

Cabe destacar también las herramientas de apoyo que ofrece PrepKit: temas y conceptos generales, temario completo y guías paso a paso de cómo estudiarlo, notas de estudio con explicaciones o anotaciones sobre conceptos ambiguos y que generan dudas en los exámenes, artículos relacionados, ejemplos y guías que explican algunas funciones o procedimientos de los que luego se preguntan en el examen, consejos de estudio, etc. Quizás sea esta parte la que mayor valor le otorgue a la suite de uCertify, no sólo proporcionan las preguntas de los exámenes, si no que además te permiten estudiarlas de una forma más organizada y completa.

ucertify

Finalmente señalamos las opciones de seguimiento que ofrece la aplicación: estadísticas, objetivos alcanzados, análisis de los test realizados, etc. Para que puedas ver en todo momento el ritmo de tu progreso.

ucertify

Más info en uCertify.

 

No se permite comentar sobre esta nota

Función PHP Shuffle para reordenar aleatoriamente un array

Recientemente he tenido que utilizar en un proyecto php la función Shuffle () para reordenar de forma aleatoria el contenido de un array. En mi caso lo utilicé para una nube de tags, ya que quería que cada vez que se generase la página se ordenasen los tags aleatoriamente. Un ejemplo vale más que mil palabras:

$users = array();

$rs = mysql_query(“SELECT id,name FROM t_users”);

while ($data = mysql_fetch_array($rs)){

$users[] = array (“id” => $ data [0],
“name” => $ data [1]);

}

shuffle($users);

foreach ($users as $user){

echo $user[“name”].”  (“.$user[“id”].”)\n”;

}

Por otro lado, si lo que queremos es, por ejemplo, obtener 5 usuarios aleatorios de una tabla de nuestra base de datos, podemos utilizar directamente la función de MyQSL ORDER BY rand() para obtener todos los registros de la tabla con un orden aleatorio y limitar la consulta al número de usuarios que deseamos recuperar. Con el código mostrado a continuación cada vez que se ejecute la consulta SQL recuperaremos 5 usuarios aleatorios.

SELECT id, name
FROM t_users
ORDER BY rand()
LIMIT 5;

Sin Comentarios

Cursos subvencionados online para aprender a programar y diseñar videojuegos

Cursos subvencionados online para aprender a programar y diseñar videojuegos

En la academia Eticom Corporate University (ECU) imparten varios cursos on-line subvencionados, totalmente gratuitos para trabajadores en activo, para aprender a programar videojuegos en J2ME (Java para móviles), C/C++ y Actionscript (animaciones flash); además, ofrecen otros cursos de diseño de videojuegos para aprender a utilizar la herramienta 3D Studio MAX y conceptos de diseño 3D.

Las convocatorias, que pertenecen al periodo del 2010, finalizan en marzo del 2011, por lo que si estás interesado en participar en alguno de los cursos, que sea cuanto antes. A la hora del registro puedes seleccionar por prioridad hasta 5 cursos de los 6 que ofrecen. Una vez realizada la preinscripción entrarás en una bolsa donde tendrás que ser seleccionado para poder participar en alguno de los que has elegido.

Los cursos disponibles son los siguientes:

  • Programación de Videojuegos
    En este curso se aprenderá a programar videojuegos con la tecnología C/C++ o motores gráficos SDL. Como parte del curso, se verán conceptos de Inteligencia Artificial, diseño de videojuegos, programación para dispositivos móviles, conceptos de animación, sonido, audio, detección de colisiones, etc.
  • Programación de juegos para  móviles con JAVA
    En este caso se pretende impartir conocimientos sobre programación con J2ME, utilizando interfaces, APIs, MIDlets, etc. Se verán conceptos como el almacenamiento persistente de la información, conexión a redes, etc.
  • Especialista en creación de videojuegos para móviles con J2ME y NetBeans
    Como complemento al anterior, se aprenderá a programar J2ME con el IDE Netbeans.
  • Experto en ActionScript para diseñadores de videojuegos
    Se adquirirán conocimientos para diseñar animaciones y películas flash, además del lenguaje de programación ActionScript.
  • Diseño de Videojuegos
    Introducción al diseño 3D con herramientas de modelado y animación.
  • Diseño y animación con 3D Studio MAX
    En base a la herramienta más poderosa del sector, 3D Studio MAX, se aprenderá a crear, modelar y animar escenas y personajes.

Más info | http://www.eticomvideojuegos.com

2 Comentarios