sábado, diciembre 17, 2011

Inicio Curso de Base de Datos de la univerisidad Stanford traducido al Español



Hace al rededor de cuatro meses empezó un curso de Introducción a las Bases de Datos impartido por la universidad Stanford. Dos cuatrimestres atrás me fue mal en esa asignatura y en el próximo me toca enfrentarla otra vez, pero tratando temas más avanzados, así que decidí empezar el curso para reforzar todo lo que ya sabía y terminar de aprender lo que no, además, de paso podía tener un manifiesto por haber cumplido el curso que como es de Stanford algún valor debía tener. Pero con el afán de la misma universidad no fue fácil seguirlo y términé por abandonarlo. Ahora en vacaciones, aunque el curso ya terminó y no se puede conseguir el manifiesto, todavía el conocimiento sí y quiero compartirlo con ustedes.

El curso como han de saber es virtual por lo que consiste en una serie de vídeos (muy bien explicados por cierto), ejercicios teóricos, prácticos y exámenes que se corrigen al instante. También había un foro en que participaban los mismos estudiantes, como el curso ya terminó se supone que ya nadie está activo, aunque tal vez encuentres a alguien. Lo que podría ser un problema es que está en ingles, pero me he tomado la tarea de traducir los subtítulos de los vídeos y también de los ejercicios teóricos y prácticos para quiénes no sea muy amigo de ese idioma.

Durante estos días publicaré unas cuantas traducciones a los vídeos y ya veremos que me dicen ustedes a ver si continúo. Mínimo me comprometo a publicar los subtítulos pertenecientes a un vídeo por semana y continuaré así hasta que empiece la universidad otra vez, después es posible que sea un poco menos frecuente.

Los temas que se tratan en el curso son los siguientes:

  • Base de datos relacionales
    • El modelo relacional
    • Haciendo consultas a una base de datos relacional
  • Data en XML
    • XML correctamente estructurado
    • Definición de tipo de documento (DTD), ID & IDREFs
    • Esquema XML
  • Álgebra Relacional
    • Select, Project, Join (operaciones del álgebra relacional y SQL)
    • Grupo de operadores, renombrar, notación
  • SQL
    • Introducción a SQL
    • Sentencia básica SELECT
    • Tabla de variables y conjunto de operadores
    • Subqueries en una setencia WHERE
    • Subqueries en setencias FROM y SELECT
    • Agregación
    • Valores nulos
    • Sentencias para modifican los datos
  • Teoría del diseño relacional
    • Vista general del diseño relacional
    • Dependencias funcionales
    • La forma normal Boyde-Codd
    • Dependencias de varios valores, 4ta forma normal
    • Defectos de la FNBC/4FN ó BCFN/4NF
  • Haciendo consultas a bases de datos XML
    • XPath
    • XQuery
    • XSLT
  • Lenguaje de Modelado Unificado (UML)
    • Modelo de datos UML
    • UML a relaciones
  • Constraints y Triggers (Restrinciones y Disparadores)
    • Motivación y visión general
    • Varios tipos de Restrinciones o Constraints
    • Integridad en las referencias
    • Introducción a los Triggers o Disparadores
    • Demo de Triggers o Disparadores (parte 1)
    • Demo de Triggers o Disparadores (parte 2)
  • Índices
    • Índices
  • Vistas
    • Definiendo y usando las vistas
    • Modificaciones a las vistas - introducción
    • Modificaciones a las vistas usando Triggers o Disparadores
    • Modificaciones automáticas a las vista
    • Vistas materializadas
  • Transacciones
    • Introducción a las transacciones
    • Propiedades de las transacciones
    • Niveles de aislamiento
  • Autorización
    • Autorización
  • Recursión en SQL
    • Introducción a la sentencia recursiva básica WITH
    • Demo de la sentencia recursiva WITH
    • Recursión mutua y no linear
  • Procesamiento análitico en línea (OLAP)
    • Introdución a OLAP
    • Demo de OLAP
  • noSQL
    • Motivación
    • Panorama general

Como ven el curso es muy completo, confío en que vamos a aprender mucho.

Respecto a la traducción, las hago yo mismo y bueno, no soy un profesional, así que sepan disculpar si hay errores o si suenan muy literales, pero hago lo mejor que puedo. También trataré de mantener cierta convención con los nombres en inglés, con esto me refiero a, por ejemplo, las palabras "Subqueries", "Triggers" son palabras que se usan normalmente en español sin traducción alguna. Igualmente pasa con las palabras reservadas SELECT, JOIN, WHERE, tendré cuidado de no traducir estas palabras para no causar confusión.

Es casi obligatorio en quienes estudian algo relacionado con informática o computación aprender inglés ya que la mayoría del material y el de mejor calidad está en ese idioma, pero aunque suene irónico, las obligaciones no siempre se cumplen y nadie debería dejar de aprender por eso.


El curso tiene mucho material disponible. Lo principal son los vídeos, pero también están PPTs o PDFs de lo mismo que se ve el vídeo que a mi parecer están para repaso; también está cualquier archivo usado de ejemplo, como documentos XML (*.xls) o SQL; hay lecturas opcionales y libros recomendados, claro no se incluyen los libros solo están como referencia y finalmente indican cualquier programa usado.

El material de los ejercicios no siempre será posible de traducir, por ejemplo, supongamos que tengamos que hacer consultas de una base de datos que tal vez esté alojada en la página del curso, no me es viable descargar una base de datos para traducirla. Pero siempre que no presente ningún inconveniente estarán los materiales con que se realizan los ejercicios traducidos y en versión original. De cualquier manera esto no debe ser un problema ya que, volviendo al ejemplo anterior, para hacer una consulta a la base de datos lo único que necesitamos saber sobre la misma es el nombre de las tablas y eso hasta con un traductor se sabe.

Quien ya tiene conocimientos y solo quiere consultar un tema puede hacerlo sin ningún condicionamiento. Para el que no tiene conocimiento lo mejor es que siga la secuencia de las clases porque algunas son prerrequisito de otras. Hay que decir que el curso empieza desde cero. Es recomendable tener conocimientos básicos de programación aunque no es que necesario, solo lo digo porque se pueden hacer muchas analogías con los lenguajes de programación y las bases de datos.

Si eres organizado te recomiendo que uses un gestor de tareas GTD (Wunderlist, RememberTheMilk, GettingsThingsDone (si usas linux te lo recomiendo), Evernote, SpringPadIt, etc) hay muchísimos. De esta formas anotas todas las "clases que has asistido" (vídeos vistos) y los ejercicios hechos.

Los ejercicios los publicaré aquí mismo usando las facilidades que me da Zoho. Puedes completarlos todas las veces que quieras, se recomienda que lo intentes todas las veces posibles hasta que alcances la puntuación máxima.

Cada entrada del blog perteneciente a una lección  irá acompañada de un resumen que será de lo mismo que se ve en el vídeo y traducido del PDF correspondiente. Es posible que no entiendas mucho cuando veas el resumen porque es el vídeo donde se explican los temas. Te recomiendo que lo leas antes y después de ver el vídeo. Antes para hacerte una idea de los temas que se van a tratar y después para repasar.

Ejemplo de los exámenes

Mientras el blog vaya creciendo junto con mis conocimientos, pondremos una sección donde estarán los cursos disponibles, con sus respectivos exámenes, mucho mejor organizado.

Los exámenes tendrán el formato que vemos a continuación. No te preocupes si no entiendes nada. Esto es solo un ejemplo para familiarizarse con el formato. De cualquier forma si sigues el curso, en la tercera clase, ya sabrás manejarlo.



Por ahora la mayor parte de código que aparecen en las preguntas son imágenes que si haces clic sobre para abrirlas en una nueva pestaña te llevan al mismo código en Pastebin. La razón del enlace a Pastebin es por si quieres copiar el código y trabajar con las herramientas que quieras, además será necesario tener el código editable para hacer algunas validaciones como veremos en clases posteriores. Es más profesional poner el código que directamente se pueda copiar y pegar, pero por limitaciones de la herramienta (Zoho Challenge) no pude hacerlo así.

Puedes tomar la prueba cuando sea, no tiene fecha de expiración. Tampoco hay límite de tiempo, puedes tomarte el tiempo que necesites para llenar cada pregunta.

Cuando hayas terminado el test verás una explicación a algunas preguntas incluso a las que hayas contestado bien.

Si quieres mantener un record de las calificaciones que has obtenido, es altamente recomendable que te registres en Zoho Challenge, así tendrás un nombre de usuario y cuando publique los resultados sabrás quien eres tú y evitarás confusiones con personas que se llamen igual. Si lo haces de esta forma, asegúrate de que estés logueado con tu cuenta de Zoho cuando vayas a tomar el exámen. Cuando estás logueado el mensaje de bienvenida dice tu nombre, de lo contrario pone "Welcome Guest"

Acceso al curso

 El curso está disponible aquí. Solo tienes que registrarte (cuadro rojo que dice "Enroll") poner tus datos y ya tienes acceso.

Para descargar los vídeos en el menú de la izquierda haces clic en luego en el espacio de la derecha aparecerá la lista de vídeos, has clic en , la lista se cargará otra vez, pero ahora en vez de reproducir los vídeos podrás descargarlos.

Como ya he dicho el curso es de Stanford, impartido por la profesora Jennifer Widom. En este enlace pueden ver los créditos de los que participaron construyendo la plataforma. Yo independientemente de el staff que preparó el curso, solo me ocupo de traducir el material.

Quería empezar en está misma entrada el capítulo de introducción, pero ya el post se ha extendido mucho, así que nos vemos en la próxima entrada. Cualquier pregunta la dejan en los comentarios.


No hay comentarios:

Publicar un comentario

¿Qué opinas?