Вы находитесь на странице: 1из 18

Estructuras de Datos

Curso 2011 / 12
Pablo Castells, Francisco de Borja Rodrguez, Simone Santini Alejandro Bellogn, Ana Gonzlez, Jos Miguel Martnez, Alvaro del Val

Escuela Politcnica Superior


Universidad Autnoma de Madrid

Guin
Presentacin de la asignatura
Motivacin y contexto de la materia Aspectos formales y organizativos

Introduccin a la materia SQL

Datos generales de la asignatura


Profesor del grupo 127 Pablo Castells
Despacho B-415 Tutoras: por cita a peticin del estudiante

Profesores de la asignatura
Teora: Pablo Castells, Francisco de Borja Rodrguez, Simone Santini

Prcticas: Alvaro del Val, Alejandro Bellogn, Ana Gonzlez, Jos Miguel
Martnez

Horario
Martes 17 a 19h Mircoles 17 a 18h

Prueba final
Lunes 9 de enero, 10h

D qu trata la asignatura?

Un primer curso en

bases de datos

Qu es una base de datos?

Qu es una base de datos?


Una fuente de informacin estructurada almacenada en memoria secundaria Habitualmente masiva en volumen de datos, variedad y complejidad de las estructuras

Gestionada mediante tecnologas con un alto nivel de generalidad, desarrolladas y estandarizadas al efecto En la asignatura estudiaremos:
Tecnologas de gestin de bases de datos SQL y nociones prcticas

Una introduccin a las metodologas de diseo modelo E/R


La base formal sobre la que se asientan las tecnologas de bases de datos modelo relacional, formas normales, clculo y lgebra relacional La implementacin de tecnologas de gestin de bases de datos registros, ndices, rboles B, hashing, compresin

Un ejemplo
Supongamos que vamos a desarrollar una aplicacin para escuchar msica, con redes sociales Queremos manejar informacin sobre: canciones, artistas, lbumes, usuarios, grupos, eventos, registro de accesos a canciones Esta informacin:
Tiene estructura: p.e. un usuario tiene propiedades (nombre, nick, email, etc.) y relaciones (amigos, artistas favoritos, escuchas a canciones, etc.) Tiene que almacenarse de forma persistente

Almacenamiento en disco
Puede ser masiva: millones de usuarios, millones de canciones, miles de millones de registros de escuchas Inviable carga completa en RAM Acceso continuo a disco en tiempo de ejecucin
7

Para la aplicacin necesitamos:


Acceso (consulta) eficiente a los datos: mostrar a un usuario su lista de amigos, la informacin de una cancin, etc. Actualizacin eficiente de datos: aadir amigos, guardar un log de escuchas, etc.

Acceso concurrente, robustez, seguridad

Solucin: guardar todos los datos en fichero(s) en disco y programar la funcionalidad de acceso
No perder la estructura de los datos

El acceso a memoria secundaria es muy costoso


El problema requiere soluciones elaboradas no triviales (las estudiaremos!)

En rigor esto ya se podra considerar una base de datos!

La dificultad y complejidad de un desarrollo desde cero son considerables, y por otro lado Una buena parte del problema a resolver se repite en muchos dominios: gestin de personal, gestin de inventarios, gestin universitaria, bibliotecas, reserva de viajes, banca, finanzas, contabilidad, competiciones deportivas, correo electrnico, buscadores web
Diseo de las estructuras: tabular Lo estudiaremos (implementacin) Almacenamiento fsico Consulta y actualizacin Integridad, robustez, concurrencia, seguridad

Tecnologa de bases de datos


Lenguaje estndar de creacin, consultas y actualizacin: SQL Motores de ejecucin eficiente de las sentencias SQL SGBD Interfaz de usuario Interfaz de programacin (ODBC, JDBC, PHP) Metodologas de diseo: modelo Entidad / Relacin Paradigmas: modelo relacional, formas normales, clculo y lgebra
9

Herramientas

Mtodo y teora

Interfaz de usuario

Usuario final

Arquitectura ad hoc
Software aplicacin

Programador aplicacin

Lgica de la aplicacin
Acceso y gestin de datos

Archivos de datos Memoria externa


10

Interfaz de usuario

Usuario final

Arquitectura BD
Programador aplicacin

Software aplicacin
Administrador

Lgica de la aplicacin

Entorno / herramientas de administracin


Navicat SQLYog etc.

Sentencias SQL

ODBC, JDBC, PHP

API BD

Almacenamiento Consultas Actualizacin

SGBD

Bases de datos
11

La dificultad y complejidad de un desarrollo desde cero son considerables, y por otro lado Una buena parte del problema a resolver se repite en muchos dominios: gestin de personal, gestin de inventarios, gestin universitaria, bibliotecas, reserva de viajes, banca, finanzas, contabilidad, competiciones deportivas, correo electrnico, buscadores web
Diseo de las estructuras: tabular Lo estudiaremos (implementacin) Almacenamiento fsico Consulta y actualizacin Integridad, robustez, concurrencia, seguridad

Tecnologa de bases de datos


Lenguaje estndar de creacin, consultas y actualizacin: SQL Motores de ejecucin eficiente de las sentencias SQL SGBD Interfaz de usuario Interfaz de programacin (ODBC, JDBC, PHP) Metodologas de diseo: modelo Entidad / Relacin Paradigmas: modelo relacional, formas normales, clculo y lgebra
12

Herramientas

Mtodo y teora

Temario
Introduccin y fundamentos Introduccin a SQL Modelo Entidad / Relacin Modelo relacional Diseo relacional: formas normales Consultas: clculo y lgebra relacional Implementacin de bases de datos
Implementacin Implementacin

Consultas Estructura fsica: campos y registrosConsultas


Indexacin: ndices simples, rboles B, hashing

SQL SQL

Compresin
Modelo Entidad Relacin Modelo Entidad // Relacin Modelo relacional formas normales clculo y lgebra Modelo relacional formas normales clculo y lgebra
13

Outcomes
Las BDs son una rea fundamental en la formacin de un informtico y en la industria del desarrollo de software
Nivel prctico Uso / administracin bsica de BDs Anlisis, diseo y creacin de BDs Manipulacin de BDs, consultas Manejo de SQL

Nivel conceptual
Comprensin de los principios y formalismos sobre los que se asientan las tecnologas de BDs Nivel tcnico Conocimiento de las tcnicas de implementacin interna de un SGBD
14

Bibliografa
Fundamentos de sistemas de bases de datos. Ramez Elmasri, Shamkant Navathe. Pearson Addison Wesley, 2007. INF/681.31.65/ELM. Database Management Systems. Raghu Ramakrishnan, Johannes Gehrke. McGraw-Hill, 2003. INF/C6160/RAM.
Database Systems: The Complete Book. Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom. Prentice Hall, 2008. Fundamentos de diseo de bases de datos. Abraham Silberschatz. McGraw-Hill, 2007. INF/681.31.65/SIL. Estructuras de archivos: un conjunto de herramientas conceptuales. Michael J. Folk, Bill Zoellick. Addison-Wesley, 1992. INF/681.3.01/FOL.

15

Relacin con el plan de estudios


Programacin I y II, Anlisis de algoritmos
Programacin y desarrollo de software tcnicas especficas para almacenamiento y acceso a datos estructurados masivos en disco Algoritmia en RAM revisin para datos en disco

Anlisis y Diseo de Software


Modelado de datos: UML

Sistemas Informticos I
Optimizacin de consultas, interfaces de programacin Bases de datos distribuidas Transacciones

Ingeniera del Software


Las BDs son una pieza bsica en el anlisis y diseo de aplicaciones
16

Evaluacin
25% 40% Evaluacin continua 60% Teora 5 75% 60% Examen final (9 enero) 40% Prcticas 5 (cada prctica 3) Examen intemedio Pruebas ejercicios

17

Grupos de prcticas
Apuntarse en Moodle
https://moodle.uam.es/course/view.php?id=4208

Password: epsuam
Antes del mircoles 14 sep

Grupos de prcticas
Preferencia + equilibrado aleatorio

Grupo teora grupos de prcticas correspondientes


Horarios complementarios con Anlisis de Algoritmos

18

Вам также может понравиться