miércoles, 8 de junio de 2011

Performance.

Durante el repaso de los ejercicios de la BD Facultad "saltó" la liebre de la doble relación de claves foráneas que tiene la tabla "RECOMENDACIONES".

Como todos recordaréis yo sostuve que mantener dos claves foráneas en una tabla compuesta por dos campos no tenía mucho sentido.

Cité, sin haberlo visto en PostgreSQL pero si en otros motores, que para resolver cualquier solicitud de datos relacionada con el segundo campo de la tabla "RECOMENDACIONES", lo más lógico sería acudir a la creación de una tabla temporal que estableciese el nexo necesario entre las tablas involucradas...

Esto condujo a que se pidiese resolver una consulta que permitiese ver los nombres de la asignatura y de la recomendación.

He aqui la solución:

Se elimina la segunda clave foránea de la tabla "RECOMENDACIONES", por innecesaria.

Se crea una tabla "TEMPORAL" que tenga tres campos, conteniendo como primer campo el código de la asignatura recomendada y como segundo campo el nombre de la asignatura que la recomienda, dejando el tercero para una actualización posterior, pues en la misma sql no es posible (o al menos yo no lo he descubierto), anidar más de un SELECT como origen del INSERT INTO.

Finalmente se actualiza la tabla "TEMPORAL", cargando el tercer campo utilizando un WHERE que relacione las tablas "TEMPORAL" y "ASIGNATURA".

El resultado en la imagen.

jueves, 26 de mayo de 2011

DbVisualizer.


Como ya os habréis dado cuenta, la mayor dificultad a la hora de utilizar el Lenguaje de Manipulación de Datos (DML) es la de obtener una perspectiva suficientemente clara de los entresijos de la base de datos, para manejar con soltura los nodos que la componen.

PgAdmin, aún siendo un magnífico programa para la Administración de Bases de Datos, tiene algunas carencias importantes como por ejemplo la imposibilidad, por ahora, de obtener un DER para disponer de una vista general de la base de datos y sus dependencias.

Por ello os recomiendo no dejéis de echar un vistazo a DbVisualizer, programa muy habitual entre quiénes se dedican a estos menesteres.

Lo bueno: pues casi todo.

Lo malo: es propietario, si bien disponen de una versión para uso personal con funcionalidad reducida (aunque más que suficiente para las tareas más habituales).

jueves, 19 de mayo de 2011

Manual muy interesante de PostgreSQL

En muchas ocasiones se nos queda la cara de este elefante ya que no encontramos una página con un tutorial que cuente con las 3 B's: bueno, "bonito" (el diseño deja un poco que desear), y sobre todo barato.

Pues aquí está. Es una página argentina en la que explican brevemente y de una manera muy práctica un listado bastante extenso de conceptos de PostgreSQL.

Espero que le echeis un vistazo, porque la verdad es que merece bastante la pena.

martes, 17 de mayo de 2011

Administrador de Bases de Datos: Contenido del curso.

MODULO 1: DISEÑO DE BASES DE DATOS RELACIONALES.
  • Información, sistemas, sistemas de información y procesos de negocio.
  • Datos, relaciones, entidades, atributos, cardinalidades, listas y conjuntos.
  • Diseño conceptual, lógico y físico.
  • Representación gráfica del modelo Entidad / Relación.
  • Dependencias y Normalización del modelo lógico: 1FN, 2FN, 3FN, FNBC.
  • Sistema de ficheros. Ficheros, registros, campos, formatos, claves ajenas y primarias e índices.
  • Bases de Datos (BD).
    • Jerárquicas.
    • En red.
    • Relacionales.
    • Orientadas a objeto.
  • Bases de Datos Relacionales (BDR).
    • Tablas.
    • Claves ajenas y primarias.
    • Claves ajenas y primarias.
    • Índices.
    • Integridad referencial.
    • Disparadores.
  • Ventajas de las Bases de Datos
    • Redundancia.
    • Fácil actualización.
    • Acceso común a los datos.
    • Control de concurrencia.
    • Independencia de los datos del nivel físico.
    • Integridad-Transacciones.
    • Seguridad.
    • Confidencialidad.

MODULO 2: CONFIGURACIÓN E IMPLEMENTACIÓN DE BASES DE DATOS RELACIONALES.
  • Sistemas Gestores de Bases de Datos (SGBD).
    • Funhciones.
    • Arquitectura.
  • Lenguajes de Definición (DDL) y de Manipulación (DML). El lenguaje SQL.
  • Sentencias de Definición. Creación, eliminación y modificación de
    • Tablas.
    • Campos.
    • Claves ajenas y primarias.
    • Índices.
    • Restricciones.
  • Concurrencia. Bloqueos de campo, registro, tabla y página
    • Confidencialidad.
    • Usuarios.
    • Roles y permisos.
    • Ficheros de auditoria.
  • Integridad de transacciones: métodos de integridad.
  • Seguridad: usuarios y permisos.
  • Copias de seguridad y restauraciones a un estado anterior válido de la base de datos. Ficheros Log y restauración ante fallos.
  • Esquemas externos y esquema Interno. Mantenimiento de vistas. Sentencias asociadas.
  • Metadato, diccionario de datos y repositorio.
  • Utilidades y formatos para la exportación e importación entre SGBD.

MODULO 3: GESTIÓN Y ADMINISTRACIÓN DE BASES DE DATOS RELACIONALES.
  • Lenguaje de Manipulación de base de datos (DML).
  • Actualizaciones y Consultas mediante las utilidades interactivas del SGBD.
    • Altas.
    • Bajas.Altas.
    • Modificaciones.
    • Consultas de registros.
  • Actualizaciones mediante las sentencias del SQL.
    • Altas: Insert-into.
    • Bajas: Delete-where.
    • Modificaciones: Update-set-where.
  • Consulta mediante sentencias del SQL.
    • Consultas de Registros: La sentencia SELECT.
    • La ordenación. Ascendente ó descendente, por un campo, ó por varios mediante la sentencia ORDER BY.
    • El complemento DISTINCT.
    • La sentencia JOIN.
    • Los JOIN’s anidados.
  • Agrupación de registros.
    • El complemento GROUP BY y el HAVING.
    • Los complementos SUM, COUNT, AVG, MAX y MIN.
  • Operaciones entre tablas.
    • UNION, JOIN, IN, MINUS, SOME, ALL, EXISTS.
  • Operadores de comparación: igual, distinto, mayor y menor, between y like.
  • Operadores aritméticos: +, - , * , /.
  • Funciones matemáticas y de carácter: SIN(), SQR(), LEFT(), LEN(), etc.
  • Integridad y Transacciones.
    • Inicio, fin y aborto de transacción.
    • Sentencias asociadas: Start-Transaction, Commit y Roll-Back.
  • Álgebra Relacional, operaciones.
    • Unión, diferencia, producto.
    • Proyección, selección.
    • División.
    • JOIN, EQUIJOIN, JOIN NATURAL Y SEMIJOIN.
  • Procedimientos Almacenados.
    • Cursores.
    • Variables, variables de entorno.
    • Funciones lógicas, aritméticas y de carácter.
    • Sentencias condicionales y de bucles.
    • Llamadas a otros procedimientos.
  • Utilidades para el análisis del rendimiento de las consultas y los procedimientos almacenados.

MODULO 4: ENTORNOS DE DESARROLLO DE CUARTA GENERACIÓN PARA BASES DE DATOS RELACIONALES.

  • Procesos interactivos y por lotes.
  • Arquitectura cliente-servidor. Acceso remoto.
  • Distintas formas de ejecución del SQL: interactivo, batch e inmerso.
  • Lenguajes de cuarta generación.
    • Generadores de menús.
    • Generadores de pantalla.
    • Generadores de informes.
    • Generadores de consultas.
  • Elaboración de prototipos.
  • Repositorio.
  • Herramientas de prueba.
  • Librerías del sistema.
  • Entornos de desarrollo: Editor, compilador, enlazador, depurador.
  • Manual de usuario de la aplicación creada.
  • Ayuda en línea de las aplicaciones.
  • Generadores de documentación.
    • Matrices de referencias cruzadas procesos-tablas.

Recopilatorio de algunas de las Leyes de Murphy de la Informática.




  • Si algo puede salir mal... saldrá mal..
  • Nada es tan fácil como parece.