Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sistemas de Informacin I
Partiendo del modelo entidad-relacin obtenido como resultado de la prctica I se
realizar la transformar al modelo relacional y se implementar en la base de datos
postgreSQL (www.postgresql.org). A continuacin se describe la prctica y en el
apndice A podis encontrar consejos sobre como utilizar postgreSQL en los
laboratorios.
Al transformar el modelo Entidad-Relacin al modelo relacional no os olvidis de
justificar (al menos) los siguientes puntos:
-
Claves extranjeras
Si se elimina una entidad, qu debe hacer la base de datos con las entidades
relacionadas con ella.
Una vez implementada la base de datos en postgreSQL, poblarla con datos, empleando
de manera ordenada sentencias SQL (INSERT o COPY). Las pginas web mencionadas
en la prctica 1 pueden ser una buena fuente de informacin.
El resultado de esta prctica estar compuesto por:
1. Diagrama Entidad Relacin obtenido en la prctica anterior. (Inclyase las
restricciones de cardinalidad tal y como se muestran en el ejemplo del Apndice B
apartado a).
2. En caso de que se desee modificar el diseo de la base: nuevo diagrama E-R y
justificacin de los cambios.
3. Esquema del modelo relacional incluyendo los razonamientos para obtenerlo (y
en particular los puntos resaltados arriba). (Sgase la notacin del ejemplo del
Apndice B apartado b).
4. Diagrama relacional. (Sgase el modelo descrito en el Apndice B apartado c)
5. Conjunto de sentencias SQL para la creacin de las tablas (incluidas las
restricciones).
6. Script necesario para crear y poblar las tablas en postgreSQL.
7. Volcado de la base de datos (pg_dump).
Qu hay que entregar? Se deber entregar una memoria por escrito conteniendo los
primeros 5 apartados y se entregar electrnicamente tanto la memoria como el
resultado de los apartados 6 y 7 (vedse
http://www.ii.uam.es/~jiperez/si1practicas/enunciado.html seccin Entrega de prcticas
va web) .
El resultado del apartado 6 ser un fichero con el nombre tablas.sql que deber generar
las tablas si se ejecutan los comandos
Sistemas de Informacin I
Prctica 2 - 1
createdbnombredemibasededatos
cattablas.sql|psqlnombredemibasededatos
(vase apndice A para una introduccin al uso de postgreSQL).
Por favor, generar cuidadosamente los ficheros solicitados en los apartados 6 y 7, y
aseguraos que funcionan en la versin de postgreSQL instalada en los laboratorios,
es absolutamente imprescindible para aprobar la prctica que estos ficheros se
comporten correctamente.
Sistemas de Informacin I
Prctica 2 - 2
Recordad que los ordenadores son pblicos y por lo tanto hacer backups de la base de
datos (vase ms adelante) al terminar cada sesin
Clientes para editar una base de datos
Una vez creada la base de datos se procede a la creacin de tablas utilizando uno de los
dos clientes habituales en postgreSQL, dichos clientes son:
psql: Cliente basado en lnea de comandos, desde donde se pueden insertar las sentencias SQL
que generan tablas, realizan consultas, etc.
pgaccess: Cliente con interfaz grfica desde donde se pueden realizar tareas similares.
En las prcticas que realicemos, se puede utilizar tanto uno como otro indistintamente.
Almacenamiento de la informacin y posterior recuperacin.
Para poder guardar el trabajo realizado en los laboratorios vamos a hacer uso de una de
las utilidades que suministra postgreSQL para la realizacin de back ups. pg_dump
vuelca el contenido de una base de datos (con toda la informacin de control que aade
postgreSQL a la misma) en un fichero de texto.
La sintaxis de este comando es:
pg_dump
Para recargar uno de los dumps generados por pg_dump podemos utilizar el siguiente
comando:
cat inputfile | psql dbname
En el fondo, lo que esto significa es que sobre la consola de psql se ejecuten todas las
sentencias que aparecen en el fichero inputfile, que debera corresponder con el
outputfile generado con pg_dump, y esto implica que la base de datos dbname tiene que
haber sido creada previamente. Para ello y para evitar errores en la recarga del dump,
debemos borrar nuestra base de datos dropdb dname y volver a crearla:
createdb -T template0 dbname
Ejecucin de scripts
Sistemas de Informacin I
Prctica 2 - 3
En la primera linea USING DELIMITERS '|' es opcional y significa que los valores
estarn separados por el carcter '|'. El separador por defecto es el tabulador. El nmero
de campos en cada lnea debe ser igual al nmero de atributos. Los datos deben acabarse
con '\.' En una lnea independiente
Nota: COPY (a diferencia de INSERT) es un comando propio de postgreSQL
Sistemas de Informacin I
Prctica 2 - 4
Apndice B
Apartado a: Diagrama E-R con restricciones de cardinalidad.
Sistemas de Informacin I
Prctica 2 - 5
studentMajor(studentId , major)
course(courseId, title, credits, hours)
section
)
officeRoomId ,
profId
Sistemas de Informacin I
section
approval,
type
divisionId
roomId
time)
Prctica 2 - 6
Sistemas de Informacin I
Prctica 2 - 7