clase 1: introducción -...

86
CC3201-1 BASES DE D ATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan [email protected]

Upload: truongcong

Post on 22-Oct-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

CC3201-1BASES DE DATOSPRIMAVERA 2016

Clase 1: Introducción

Aidan [email protected]

Page 2: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Información General

• Profesor: Aidan Hogan– Email: [email protected]

• Profesor Auxiliar: Sebastián Ferrada– Email: [email protected]

• Ayudantes: – Ismael Álvarez– Hernán Sarmiento

Page 3: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

POR QUÉ NECESITAN ESTE CURSO

Page 4: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 09:15Despierto

(Bostezo.)

Page 5: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 09:35 Reviso el correo

Nada urgente, ¡uf!

Page 6: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 09:50Café: pago con tarjeta

Mmm. Café.

Page 7: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 10:15Me meto al banco (me pagaron?)

Sí. Me pagaron.

Page 8: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 10:20Reviso u-cursos (algo en el foro?)

No, salvo ...

Page 9: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 10:30IMDb (Mr. Robot … ¿es bueno?)

Sí.

Page 10: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 10:35Amazon (Mr. Robot … ¿cuánto cuesta?)

Demasiado.

Page 11: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 10:36ThePirateBay (Mr. Robot … me pagaron pero …)

Listo. Pero tengo hambre …

Page 12: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 10:52Al supermercado (¿cuánto cuesta?)

Barrato.

Page 13: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 10:55Al supermercado (esperando en la fila …)

Meowth? Fomé.

Page 14: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 10:57Al supermercado (uso mi tarjeta de fidelidad)

Acumulas puntos? Sí.

Page 15: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: 11:00Desayuno

Page 16: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un día cualquiera: antes que las 11:00Estas actividades tienen algo en común?

Page 17: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Bases de datos:

Page 18: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Interactuamos con bases de datostodo el tiempo, todos los días

• Especialmente con la Web: – Búsqueda (Google, Bing, Yahoo!, …)– Tiendas (Amazon, eBay, …)– Redes sociales (Facebook, Twitter, …)– Enciclopedias (Wikipedia, IMDb, …)– Bancos– Aerolíneas– U-cursos…

Page 19: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Pero frecuentemente solo nos damos cuenta cuando hay un problema

Page 20: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

¿Por qúe este curso?Una base de datos es una de nuestrasherramientas más importantes

un carpintero : un martillo

un alumno de computación : una base de datos

Page 21: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

QUÉ ES UN SISTEMA DE “BASES DE DATOS”

Page 22: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

Un ejemplo de una base de datos?

Page 23: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

Page 24: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

Page 25: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

Page 26: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

Page 27: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

Page 28: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Depende a como se defineuna “base de datos”

Page 29: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Aquí, una base de datos es:

• Una colección de datos(típicamente datos estructurados)(típicamente datos electrónicos)

organizada en alguna forma

para facilitar hacer consultasen una forma eficiente

Page 30: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

(hablando de los datos, no la aplicación …) Aquí, sí!

Page 31: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

(es un sistema de base de datos entonces …) Aquí, no!

Page 32: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un sistema de bases de datos es:

• Un sistema (de software) generalpara manejar

bases de datos …• Facilitar (en una forma general):

• representar datos, • cargar datos,• organizar datos,• definir datos,• actualizar datos,• consultar datos,• …

• DBMS: (DataBase Management System)

Page 33: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un sistema general significa que podemos resolver un problema general …

Un sistema de bases de datos. Diez aplicaciones.

Page 34: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

(es una aplicación de base de datos entonces …) Aquí, no!

Page 35: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

(es una aplicación de base de datos entonces …) Aquí, no!

Page 36: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una base de datos?

Hmm.

Page 37: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

POR QUÉ SE NECESITAN SISTEMAS DE “BASES DE DATOS”

Page 38: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Sé programar en Java, sé programar en Python,… podría programar algo sin problema!

Page 39: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Intentemos implementar una aplicación sin un sistema de bases de datos (p.e., en Java)

Un sistema de bases de datos. Diez aplicaciones.

Page 40: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

cursos.csvnotas.csv

auxiliares.csv

profesores.csv

alumnos.csv

Tenemos información de profesores, auxiliares, integrantes y notas parciales en cada curso

Page 41: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

alumnos.csv

Queremos saber todos los códigos del cursos que toma el alumno “12.323.792-8”

• En Java, podemos leer todo el archivo, filtrar todas las filas con otros RUTs y entregar solo la información relevante

Algún problema aquí?

Page 42: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Bueno, si los usuarios son impacientes y los archivos grandes …

Mapa en memoria principal de alumnos.csv

• En Java, podemos cargar los datos en memoria principal, y utilizar un índice con RUTs como claves (p.e., un “hashmap”)

Algún problema aquí?

Page 43: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Indíce (m. principal)

Bueno, si los usuarios son impacientes y los archivos no caben en memoria …

alumnos.csv

• En Java, podemos crear bloques de datos ordenados por RUT, y utilizar un índice con el primer RUT en cada bloque

Algún problema aquí?

Page 44: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Inserciones (m. principal)

Bueno, si tenemos que actualizar la tabla con datos nuevos …

• En Java, podemos crear un bloque en memoria principal, o podemos dejar espacio en los bloques para datos nuevos o …

Algún problema aquí?

Indíce (m. principal)

alumnos.csv

Page 45: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Bien, si a veces hay que consultar por el nombre del alumno entonces …

• En Java, podemos crear otro índice ordenado por nombre …

Algún problema aquí?

Índice (m. principal)

alumnos.csv

Page 46: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

ok ok, si a veces hay que consultar por el nombre del cursos del alumno entonces …

• En Java, podemos crear otro índice para cursos.csv e implementar “joins” entre ambos índices

Algún problema aquí?

cursos.csv(Indexado por Codigo)

alumnos.csv(indexado por RUT y Nombre)

Page 47: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

… fine, si hay que asegurar que los alumnos solo tienen cursos que aparecen en cursos.csv …

• En Java, antes que hacer una inserción a alumnos.csv, podemos consultar a cursos.csv para verificar que el curso existe.

Algún problema aquí?

cursos.csv(Indexado por Codigo)

alumnos.csv(indexado por RUT y Nombre)

Page 48: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

… pues, si hay que permitir quitar cursos …

• En Java, podemos agrupar inserciones y/o borrados para mantener la consistencia de los datos (transacciones)

Algún problema aquí?

cursos.csv(Indexado por Codigo)

alumnos.csv(indexado por RUT y Nombre)

Page 49: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

… si hay múltiplos usuarios actualizando la base de datos al mismo tiempo …

• En Java, hay que aislar transacciones para evitar esta tipa de situación (y otras similares)

Algún problema aquí?

cursos.csv(Indexado por Codigo)

alumnos.csv(indexado por RUT y Nombre)

Page 50: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

… si hay que contar el numero de cursos que cada alumno toma u otra formas de consultas …

• En Java, podemos implementar un lenguaje de consulta general que cubre los rasgos más necesitados

Algún problema aquí?

cursos.csv(Indexado por Codigo)

alumnos.csv(indexado por RUT y Nombre)

Page 51: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

… si el rendimiento de consultas no basta para los usuarios podemos optimizar …

• En Java, podemos implementar varias optimizaciones en un planificador de ejecución

Algún problema aquí?

cursos.csv(Indexado por Codigo)

alumnos.csv(indexado por RUT y Nombre)

Page 52: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

(╯°□°)╯︵┻━┻

¡Sí!• Faltan valores• Cursos pueden tener más que un nombre• Tenemos valores como fechas, booleanos, etc., que queremos

comparar, ordenar, manipular, sumar …• El rendimiento de algunas consultas todavía es terrible • El cargo de datos todavía es demasiado lento• No hay suficiente memoria para mantener los índices• Los administradores quieren agregar columnas nuevas como

la carrera de los alumnos • Los alumnos no deberían tener acceso para cambiar sus notas• Hay “l33t h4cker$” que quieren pwnear nuestra base de datos

para cambiar sus notas• Tenemos que mantener backups en una forma segura

Page 53: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

… y si pudiéramos solucionar estos problemas en una forma general …

… habríamos implementado un sistema de bases de datos

Page 54: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

… y si pudiéramos solucionar estos problemas en una forma general …

… habríamos implementado un sistema de bases de datos

(… y probablemente tendríamosuna rueda no muy bien reinventada)

Page 55: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Estos son problemas generales que se encuentran en muchas aplicaciones

Page 56: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

… muchas aplicaciones importantes

Page 57: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Un sistema de bases de datos es:

• Un sistema (de software) generalpara manejar

bases de datos …• Facilitar (en una forma general):

• representar datos, • cargar datos,• organizar datos,• definir datos,• actualizar datos,• consultar datos,• …

• DBMS: (DataBase Management System)

Page 58: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Con un DBMS …

Los usuarios se encargan de:

• diseñar la estructura de la base de datos,• escribir consultas, • actualizar los datos,• …

… solo las cosas especificas en el contexto de la aplicación especifica.

Page 59: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Con un DBMS …Por debajo, el DBMS se encarga de:

• Almacenaje optimizado• Indexación• Motor de consultas• Optimizar consultas• Manejo de transacciones• Manejo de acceso concurrente• Seguridad• ¡y mucho más!

… las cosas generales que se necesitan en el contexto de muchas aplicaciones.

Page 60: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Hay implementaciones con décadas de desarrollo por miles de expertos

Page 61: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Pero DBMS están siempre evolucionando:tecnología cambia

Page 62: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Pero DBMS están siempre evolucionando:los requisitos de las aplicaciones cambian

Logo bingo!!

Page 63: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Por ejemplo, distribución es más importante

Page 64: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Diluvio de datos

Page 65: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

BASES DE DATOS SIEMPRE MODELAN DATOS COMO TABLAS?

Page 66: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

cursos.csvnotas.csv

auxiliares.csv

profesores.csv

alumnos.csv

… son siempre modelados así?

Page 67: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

¿Se puede modelar una base de datos como grafos?

¡Sí!

Page 68: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

¡Sí!

¿Se puede modelar una base de datos como arboles?

Page 69: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

¿Se puede modelar una base de datos como un mapa?

¡Sí!

Page 70: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

cursos.csvnotas.csv

auxiliares.csv

profesores.csv

alumnos.csv

Bases de Datos Relacional

• Tablas = Un Modelo de Bases de Datos – Bases de Datos Relacionales

• El modelo más establecido

• El enfoque del curso

• Pero hablaremos brevemente de otros modelos

Page 71: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

UNA DIVERSIDAD DE TIPOS DE (SISTEMAS DE) BASES DE DATOS

Page 72: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Los sistemas más utilizados en la práctica …

http://db-engines.com/en/ranking

Page 73: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

QUÉ VAMOS A APRENDER:

Page 74: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Una introducción a bases de datos:

• Hay tres tipos tipicos de “usuarios” para un sistema de bases de datos:

1. Usuarios finales2. Administradores del sistema3. Desarrolladores de un sistema

• Enfocaremos en el primer tipo– Incluye desarrolladores de aplicaciones de bases de

datos• Hablaremos menos de tipos dos y tres

Page 75: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

En este curso, aprenderán

• Como se puede generalizar la consultación, la indexación, la gestión, etcétera, de datos

• Modelos de bases de datos– Con énfasis en el modelo relacional– Otros modelos: grafos, arboles, NoSQL …

• Usar y manejar sistemas de bases de datos– Cargar datos, escribir consultas, actualizar datos

Page 76: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

No aprenderán (específicamente)

• Rasgos específicos de todos los sistemas• Como se puede implementar un sistema de

basos de datos (en detalle)• Minería de datos• Sistemas distribuidos (en detalle)• Datalog / lógica / “deductive databases”• Temas de investigación

Page 77: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

La estructura del curso

• Introducción / Motivación• El Modelo Relacional• La Algebra Relacional• SQL (consultas)• Diseño Relacional• SQL (actualizaciones)• Transacciones / Vistas• Indexación / Optimización• OLAP• Otros Modelos: XML, Grafos, NoSQL

(Dado que es mi primera vez

dictando este curso, puede cambiar)

Page 78: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

METODOLOGÍA DEL CURSO:

Page 79: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

“Semi-flipped classroom”

• Los martes: una cátedra

Page 80: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

“Semi-flipped classroom”

• Los jueves: una sesión interactiva:– Ejercicios escritos o laboratorios con notebooks– Trabajar en grupos para solucionar algo

Page 81: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Sesiones Auxiliares

• Los lunes: si perdemos una clase o si tratamos con temas difíciles, por ejemplo, tendremos una sesión auxiliar– No cada lunes!!– Pondré un mensaje en el foro al menos el jueves

antes en anticipación

Page 82: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Material

• Subiré todas las diapositivas aquí después de cada cátedra:– http://aidanhogan.com/teaching/cc3201-1-2016/

• Las diapositivas sirvirán como el material canónico del curso– pero si quieren leer más, se recomienda:

• “Database Management Systems”– Ramakrishnan / Gehrke, Third Edition

Page 83: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Evaluación del curso

• 50% tareas:– 40% ejercicios/laboratorios– 10% proyecto

• 50% exámenes:– 2 controles, 1 examen final

Page 84: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Este jueves … laboratorio

• Vamos a implementar algo aquí

• Trabajaremos en grupos de dos o tres

• ¿Podrían llevar algunos notebooks por favor?

Page 85: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Sé programar en Java, sé programar en Python,… podría programar algo sin problema!

… vamos a ver .

Page 86: Clase 1: Introducción - aidanhogan.comaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-01.pdf · BASES DE DATOS PRIMAVERA 2016 Clase 1: Introducción Aidan Hogan ... Una base

Preguntas?