This course will become read-only in the near future. Tell us at community.p2pu.org if that is a problem.

Semana 1: PostgrSQL [Aug. 20, 2011, 3:13 p.m.]


1. Lecturas

 

 

2. Ejercicios

Recordamos que es necesario tener PostgreSQL instalado para realizar estos ejercicios (ver conjunto de preguntas entre participantes), respondalos en un comentario a esta lectura:

  1. Indique la plataforma (procesador y sistema operativo) que está empleando y los pasos que siguió para instalar PostgreSQL.
  2. Empleando psql, cree un usuario contactos para su base PostgreSQL con permiso para crear bases de datos. La forma exacta del comando variará de acuerdo a su plataforma, en adJ puede emplear:
    			sudo su - _postgresql
    createuser -Upostgres -h/var/www/tmp contactos
    Shall the new role be a superuser? (y/n) n
    Shall the new role be allowed to create databases? (y/n) y 
    Shall the new role be allowed to create more new roles? (y/n) n
    
    En Ubuntu emplee
    createuser -Upostgres contactos
    
    y cuando se lo solicite de la clave del administrador postgres.
  3. Cree una base de datos de nombre contactos cuyo dueño sea el usuario contactos. En adJ lo haría con:
    createdb -h/var/www/tmp -E LATIN1 -U contactos contactos
    
  4. Empleando psql ingrese a su nueva base de datos y cree una tabla persona (una convención típica en nomenclatura de bases de datos es dejar el nombre de cada tabla en singular y sin espacios ni el caracter subrayado (_) --que se reserva para relaciones).    Esa tabla debe tener una identificación autoincrementada y camposo como se muestra a continuación (parte de los campos de la tabla persona de SIVeL, ver http://sivel.cvs.sourceforge.net/viewvc/sivel/sivel/estructura.sql?revision=1.62&view=markup ):
    CREATE SEQUENCE persona_seq;
    
    CREATE TABLE persona (
    	id INTEGER PRIMARY KEY DEFAULT(nextval('persona_seq')),
    	nombres VARCHAR(100) NOT NULL,
    	apellidos VARCHAR(100) NOT NULL,
    	anionac         INTEGER,
    	mesnac          INTEGER CHECK (mesnac IS NULL OR (mesnac>='1' AND mesnac<='12')),
    	dianac          INTEGER CHECK (dianac IS NULL OR (dianac>='1' AND (((mesnac='1' OR mesnac='3' OR mesnac='5' OR mesnac='7' OR mesnac='8' OR mesnac='10' OR mesnac='12') AND dianac<='31')) OR ((mesnac='4' OR mesnac='6' OR mesnac='9' OR mesnac='11') AND dianac<='30') OR (mesnac='2' AND dianac<='29'))),
    	sexo CHAR(1) NOT NULL CHECK (sexo='S' OR sexo='F' OR sexo='M'),
    	tipo_documento VARCHAR(2),
    	numero_documento VARCHAR(50)
    );
    
  5. Inserte información de al menos 5 personas en la tabla recién creada.  Note que no debe llenar el campo id porque este número proviene de una secuencia que lo asignará automáticamente.
  6. Realice consultas para a) extraer toda la información de personas con nombre "JUAN" b) nombre y sexo de todas las personas cuyo año de nacimiento no se conozca o sea anterior a 1980, c) extraer todos los códigos y numero_documento de personas cuyo campo tipo_documento sea CC.
  7. Opcional: Si desea tener la posibilidad de mantener más información de la hoja de vida de cada persona en su base de datos, por ejemplo sitios de estudio y de trabajo junto con el tiempo de estuvo en cada sitio, que otros campos o tablas considera que debe añadir a su base de datos?  Cómo los puede añadir?
  8. Opcional: Revise la estructura de la base de datos de SIVeL y determine: a) problemas de nomenclatura de tablas, b) como agregar los campos latitud y longitud a las tablas departamento, municipio y clase, c) valores de dominio público de latitud y longitud para departamentos, municipios y clase de http://sivel.cvs.sourceforge.net/viewvc/sivel/sivel/datos-geo-col.sql?revision=1.13&view=markup

Publique dudas y ayudas como comentario a esta tarea.

 

3. Bibliografía

  1. Tutorial PostgreSQL. Grupo de Usuarios de PostgreSQL Argentina. http://www.arpug.com.ar/trac/wiki/tutorial.html. Consultado 2011

4. Términos y Condiciones Especiales

Este escrito se cede al dominio público de acuerdo a la legislación colombiana, agradeciendo se de crédito a Pasos de Jesús. 2011.  Ver https://www.pasosdejesus.org/dominio_publico_colombia.html.