Este es el repositorio con el contenido del curso Bases de Datos No Relacionales de la Licenciatura en Ciencia de Datos del ITAM impartido por el Prof. Miguel Escalante.
- El alumno se familiarizará con los conceptos de las bases de datos no relacionales
- El alumno entenderá las diferencias y usos de las distintas familias de bases de datos
- El alumno analizará los diferentes casos de uso y podrá elegir la mejor base de datos para cada caso.
- El alumno podrá interactuar con los diferentes motores de base de datos.
Las BDs relacionales no son suficientes para contar toda la historia de un evento o de un objeto de negocio, de una orden, de un cliente, o de un envío. Frecuentemente la huella está dispersa en transacciones de una base de datos, visitas a unas páginas web, audios de atención a cliente, geolocalizaciones a lo largo de una ruta, texto libre en comentarios, grafos de redes sociales, y datos en memoria de los sistemas involucrados. Necesitamos saber interactuar con dichas bases de datos, y sobre todo, necesitamos poder consolidarlas en un repositorio central para lograr hacer analítica de todas las partes de la historia, sin dejar fuera ninguna fuente con la que corramos peligro de “quedar ciegos”. En esta materia veremos como interactuar con dichas BDs no-relacionales (NoSQL = Not only SQL), y como construir dicho repositorio central.
En una frase, esta materia trata de consolidación de datos para contar una historia completa.
Escribe a miguel.escalante@itam.mx
y por favor que el subject del correo diga [NOSQL 2022]
.
- Velocidades en BDS
- Base de datos con base en documentos
- Bases de datos columnares
- Bases de datos con base en Grafos
- Data Lake
- Spark
La calificación final está compuesta de la manera siguiente:
Entregable | Porcentaje |
---|---|
Primer Parcial | 30% |
Examen Final | 30% |
Proyecto Final (equipos) | 30% |
Presentación | 10% |
A la mitad del semestre haremos una evaluación con los temas vistos hasta el momento, todo lo visto o mencionado en clase es sujeto a ser evaluado en este examen. Tendrá un componente teórico y un componente práctico, más o menos al 50%.
Al final del semestre tendremos una evaluación global de temas del curso, abarca todo el contenido que hayamos visto hasta ese momento. Habrá componentes teóricos y prácticos alrededor del 50% cada uno.
Al final del semestre también espero que entreguen un proyecto englobando todos los conceptos que veamos. Será entregar un dashboard de analítica avanzada con interactividad. El equipo puede ser de a lo más 3 personas y será asignado aleatoreamente.
Una parte fundamental de la ciencia de datos es el presentar resultados a los interesados en el problema, por lo que para ejercitarlo se harán presentaciones de 10 minutos, (si 10% de su calificación en 10 minutos). Los 10 minutos son para establecer un hallazgo que hayan tenido en algún dataset que les interese. Tendremos presentaciones como esta durante el curso y cuando sea momento abriré los lugares para que se puedan organizar.
Para la evaluación del código que lleguen a escribir se contemplará la siguiente escala a manera de referencia.
Puntos | Descripción |
---|---|
5 | Excelente. Código limpio, conciso, documentado y exploró los conceptos en profundidad. |
4 | Completo y correcto. Incluye el análisis, el programa, el caso de pruebas y responde a las preguntas planteadas. |
3 | Contiene unos cuentos errores menores. |
2 | Entrega parcial o tiene errores mayores. |
1 | Le faltó mucho. |
0 | Ni lo intentó :( |
El proyecto se evaluará promediando las siguientes categorías. Se usará la escala recién mostrada en cada una de ellas.
Categoría | Descripción |
---|---|
Diseño | El proyecto está bien organizado, fácil de seguir y se especifica claramente el problema a resolver. |
Documentación | Instrucciones de como ejecutar el código. Nombres de las variables y funciones son descriptivas. Incluye comentarios para que el lector pueda seguir el algoritmo. Se incluyen casos de prueba. |
Completez | Todos los elementos del proyecto están incluidos. |
Correcto | La lógica del código es correcta y produce resultados con sentido. |
Análisis | Todas las preguntas de análisis en la descripción del proyecto fueron resueltas. La interpretación del resultado está incluida. |
Al final del curso, tendrás que mostrar tu proyecto en 15 minutos a la clase. Se calificará por mí y por tus compañeros.
- El código NO es la respuesta.
- La gráfica NO es la respuesta.
- Debes de mostrar que entendiste la solución y el problema.
Adaptado del departamento de ciencias de la computación de Grand Valley State University y de George Washington University)
- Se espera que tú…
- Crees / desarrolles tus tareas (incluyendo el código fuente).
- Entiendas tus soluciones
- Reconozcas la ayuda de otros en la escritura.
- Cites la fuente en la tarea.
- Te protejas de sospecha al no permitir que otros vean tu tarea antes de que sea enviada.
- Contactes al profesor para aclarar los requerimientos de las tareas.
- Uses extensivamente Github para socializar el conocimiento, soluciones, dudas, etc.
- Se prefiere que tú…
- Discutas diversos caminos para alcanzar la solución.
- Compartas tu conociemiento con otros estudiantes acerca de errores de sintáxis, trucos de código, etc.
- Proveas y recibas ayuda respecto a errores de ejecución.
- Proveas y recibas ayuda usando el ambiente de computación.
- Participes, junto con otros estudiantes, en discuiones hacer de las tareas, requerimientos, estrategais de solución, etc.
- Eres culpable de romper el código de conducta si …
- Le das tu código fuente a cualquiera en formato electrónico o analógico.
- Recibes de otro estudiante la solución en formato electrónico o analógico.
- Subes al repositorio como tuyos otros archivos, soluciones o documentos.
- Subes tareas sin indicar que colaboraste con alguien.
- Realizas modificaciones al código en un esfuerzo de ocultar un engaño.
- Usas material no permitido en examen o te comunicas con alguien de manera no autorizada durante el examen.
Primer tarea!!
- Instalar
git
- Si estás en una distro de
GNU/Linux
tipoDebian
:sudo apt-get install git
. - Si estás en una MacOS sigue las instrucciones de aquí y sigue las instrucciones.
- Si estás en una distro de
- Crea una cuenta en github
- Crear una llave ssh y conectarla a Github.
- Instalar docker
- Instalar un editor de textos
GNU/Emacs
VsCode
Después de tener converso al director de la Maestría, estoy convencido del valor que provee tener una herramienta como Emacs disponible, tanto para temas de escritura científica, como para programación, durante el curso verán que uso esta herramienta. Denle una oportunidad aunque su curva de aprendizaje sea un poco inclinada. :)
Por favor entren aquí para llenar sus usuarios de github.