prácticas edat curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •linux: =# copy...

19
Prácticas EDAT Curso 11/12 Alejandro Bellogín Escuela Politécnica Superior Universidad Autónoma de Madrid Septiembre 2011 http://www.eps.uam.es/~abellogin

Upload: others

Post on 19-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Prácticas EDAT Curso 11/12

Alejandro Bellogín

Escuela Politécnica Superior Universidad Autónoma de Madrid

Septiembre 2011

http://www.eps.uam.es/~abellogin

Page 2: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Esquema

• Parte I: Práctica 2 - apartado 1 • Manejo de datos • Utilización de front-ends

• Parte II: Práctica 2 - apartado 2 • Consultas • Más comandos de SQL

• Parte III: Práctica 2 - apartado 3 • Otra base de datos • ODBC

• Crear fuentes de datos • Usar SQL desde C

Page 3: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

• Parte I: Práctica 2 - apartado 1 • Manejo de datos • Utilización de front-ends

• Parte II: Práctica 2 - apartado 2 • Consultas • Más comandos de SQL

• Parte III: Práctica 2 - apartado 3 • Otra base de datos • ODBC

• Crear fuentes de datos • Usar SQL desde C

Esquema

Page 4: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Manejo de datos

• Similar a lo hecho en P1 – Decidir entidades y relaciones (número de tablas)

– Decidir atributos de cada tabla

– Primary/foreign keys?

• Insertar datos – Útil el comando COPY

• Además: – Restricciones UNIQUE, NOT NULL

Page 5: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Comando COPY - Ejemplo

• Importante incluir la ruta absoluta del fichero

• Windows:

=# COPY tabla FROM ‘D:\\fichero.txt’;

• Linux:

=# COPY tabla FROM ‘/home/user/fichero.txt’;

Page 6: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Utilización de front-ends

• En laboratorios – Linux: Tora

– Windows: Navicat, pgAdmin3 (también para Linux)

• Muy similares – Conexión a la BD

– Distintas ventanas para • Tablas de la BD

• Esquema de tabla

• Datos de tabla

• Consultas

Page 7: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Front-ends: Navicat

Page 8: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Front-ends: pgAdmin3

Page 9: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

• Parte I: Práctica 2 - apartado 1 • Manejo de datos • Utilización de front-ends

• Parte II: Práctica 2 - apartado 2 • Consultas • Más comandos de SQL

• Parte III: Práctica 2 - apartado 3 • Otra base de datos • ODBC

• Crear fuentes de datos • Usar SQL desde C

Esquema

Page 10: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Consultas

• Tres bloques más inventadas

• El resultado debe ser único

– No podéis eliminar ni añadir datos

Page 11: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Más comandos de SQL

• Revisar los de la P1

– Consultas a varias tablas

– Agregaciones (‘group by’)

– Vistas

• Utilizar resultados intermedios ‘SELECT id FROM (SELECT id, nombre FROM t WHERE …)’

• Top-N resultados ‘SELECT * FROM t LIMIT N’

Page 12: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

• Parte I: Práctica 2 - apartado 1 • Manejo de datos • Utilización de front-ends

• Parte II: Práctica 2 - apartado 2 • Consultas • Más comandos de SQL

• Parte III: Práctica 2 - apartado 3 • Otra base de datos • ODBC

• Crear fuentes de datos • Usar SQL desde C

Esquema

Page 13: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Otra base de datos

• Añadir las tablas de la nueva BD

– Otra vez, hacer lo mismo que en el apartado 1

Page 14: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

ODBC

• Estándar que permite conectar cualquier BD con cualquier aplicación

• En esta práctica:

– Conectar C con PostgreSQL

• Pasos:

– Definir BD

– Crear fuente de datos (DSN)

– Hacer código en C que comunique con la DSN

– Compilar y linkar con las librerías adecuadas

Page 15: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Usar SQL desde C

• Definir BD

• Crear fuente de datos

Configuración

de la base de

datos

Nombre de la

fuente de

datos (DSN)

Page 16: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Usar SQL desde C

• Hacer código en C que comunique con la DSN

– Usar el ejemplo de ‘c_odbc.zip’

– Se puede usar como caja negra

Page 17: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Usar SQL desde C

• Compilar y linkar

– Usar los ficheros BATCH incluidos en ‘c_odbc.zip’

Page 18: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

Usar SQL desde C

• Tarea

– Pedir por consola un identificador de usuario

– Mostrar las puntuaciones de dicho usuario

• Opcional

– Mostrar otro tipo de estadísticas del usuario

Page 19: Prácticas EDAT Curso 11/12ir.ii.uam.es/~alejandro/2011/edat/slides_p2.pdf · •Linux: =# COPY tabla FROM /home/user/fichero.txt [; Utilización de front-ends •En laboratorios

FIN