Fundamentos de Ingenierıa de Software Práctica 3 1. Descripci´on

Anuncio
Fundamentos de Ingenierı́a de Software
Práctica 3
“Conexión a una base de datos desde PHP”
Profesor: Sergio Luis Pérez Pérez
Fecha: 06-mar-2013
Fecha lı́mite de entrega: miércoles 20-mar-2013 22:00 horas
1.
Descripción de la práctica
PHP nos permite realizar conexiones a una amplia gama de bases de datos de
diferentes proveedores, las cuales puede consultar en el sitio oficial de php:
http://php.net/manual/en/refs.database.php
En particular nosotros trabajaremos con conexiones a PostgreSQL en su versión 8.1.23 (pues es la que está instalada en labred.cua.uam.mx), cuyo tutorial
podemos encontrar en:
http://www.postgresql.org/docs/8.1/static/index.html
El objetivo de esta práctica es realizar una conexión a una base de datos, cosultar algunas tablas, insertar algunos registros y borrar algunos otros, todo evidentemente desde php.
Para crear una base de datos, teniendo instalado PosgreSQL (en nuestro caso
en el servidor de labred), se utiliza la siguiente instrucción en lı́nea de comandos:
createdb nombredb
Donde “nombredb” es el nombre que elija para su base de datos. Para eliminar
la base de datos use el comando:
dropdb nombredb
Para acceder a dicha base de datos (y por tanto al manejador de posgresql)
escriba en lı́nea de comandos:
psql nombredb
Las actividades que debe realizar son las siguientes:
1. Si no tiene creada una base de datos en su cuenta en el servidor de labred
por favor cree al menos una.
2. Dentro de su base de datos elegida, cree una tabla llamada empleado con
los siguientes campos:
a) No empleado de tipo integer. Establezca este campo como Primary
Key.
1
b) Nombre de tipo text.
c) Fecha nacimiento de tipo date.
d) Puesto de tipo varchar(20).
3. Analice el código visto en la clase de práctica, en el cual realizamos la
conexión a una tabla de una base de datos y algunas operaciones sobre ésta,
estos archivos los puede descargar desde el sitio del curso. Los archivos son
“libreria.txt” y “ejemplo sql.txt”.
4. Investigue el funcionamiento de la función rand de php.
http://php.net/manual/en/function.rand.php
5. Realice una página llamada practica3.php que cada vez que se ejecute en
lı́nea de comandos como:
php practica3.php
intente insertar 10 registros cuyos campos deben ser generados de forma
aleatoria con ayuda de la función rand. Las caracterı́sticas de cada campo
deben ser las siguientes:
a) No empleado deberá ser un número aleatorio entre 1 y 100.
b) Nombre deberá ser una cadena aleatoria -formada por mayúsculas,
minúsculas y espacios- de longitud entre 20 y 30.
c) Fecha nacimiento deberá ser una fecha válida entre los años 1980 y
1990. De preferencia sólo genere dı́as del 1 al 28, ası́ no tendra que
evitar cosas raras como un 30 de febrero, o bien inténte agregar tal
validación, será un buen ejercicio de programación. Recuerde que un
año es bisiesto sólo si es múltiplo de 4 y pero no de 100, aunque sı́ de
400.
d) Puesto deberá ser una cadena aleatoria -formada por minúsculas, dı́gitos y espacios- de longitud entre 10 y 20.
Observe que la función aleatoria podrı́a repetir un número de empleado,
sobre todo si la página php es ejecutada varias veces, por lo tanto cada que
intente insertar un nuevo registro realice el siguiente proceso:
a) Realice una consulta que verifique si existe un empleado con dicho
No empleado, si NO existe entonces insértelo en la tabla, de lo contrario -ya existe uno con el mismo No empleado- no realice inserción
alguna.
Note entonces que cada vez que se ejecute la página practica3.php se insertarán cuando mucho 10 registros nuevos o en el peor de los casos ninguno.
6. Cuando finalice los 10 intentos de inserción imprima una tabla que contenga todos los registros actuales en la tabla empleado, incluyendo los insertados en el paso anterior, pero dicha tabla sólo debe contener los campos
de No empleado, Nombre y Fecha nacimiento. Ejemplo:
Número de empleado Nombre
Fecha de nacimiento
6
Lucio Fernando 06-06-1986
9
Felipe de Jesus 09-09-1990
2
Ademas los registros deberán aparecer ordenados por el campo No empleado.
7. También genere un archivo txt llamado “Salida.txt” que contenga TODOS
los campos de la tabla empleados con el siguiente formato:
Numero de empleado | Nombre | Fecha de nacimiento | Puesto
9 | Felipe de Jesus | 09-09-1990 | gerente
6 | Lucio Fernando | 06-06-1986 | supervisor
En este caso los datos en el archivo “Salida.txt” deberán aparecer ordenados
por el campo Nombre. ¿Que observa de extraño?
Para mas información sobre cómo crear/escribir archivos desde php consulte las páginas:
http://php.net/manual/en/function.fopen.php
http://www.php.net/manual/en/function.fwrite.php
8. Preferentemente incluya todas las funciones que utilice para realizar esta
práctica en un archivo adicional -por ejemplo libreria.php- y sólo ponga el
código principal en el archivo practica3.php.
2.
Entregables
Escriba un reporte donde describa -en a lo sumo una página en latex- qué problemas tuvo al realizar esta práctica y sus conclusiones. Además deberá enviar
su código fuente práctica3.php y todo código adicional utilizado -por ejemplo el
archivo libreria.php-. Si no envı́a todo su código fuente no podré pobrar su práctica.
Envı́e al e-mail [email protected] su reporte en un archivo llamado
Practica3 NombreApellido.(tex y pdf) y todos sus códigos fuente.
De preferencia no utilice acentos en los nombres de los archivos.
3.
Tips
1. Lea todos los recursos que he proveı́do en esta página -es decir los sitios
web- y analice el código que le he proporcionado como ejemplo.
3
Descargar