Diseño de una base de datos heterogénea y su implementación en MySQL, y PostgreSQL Propósito: Diseñar una base de datos relacional con el modelo entidad relación e implementarla en Mysql, y PostgreSQL. Objetivo general: Desarrollar una aplicación WEB distribuida con PHP que interactue con una base de datos heterogénea con Mysql, y PostgreSQL. Objetivos particulares: - Diseñar una base de datos relacional con el modelo entidad relación. - Aplicar las funciones de conectividad a un servidor de bases de datos relacional PostgreSQL mediante el lenguaje PHP. - Gestionar una base de datos PostgreSQL por medio de phpPgAdmin, Usermin o línea de comandos psql. Desarrollo de competencia: - Entender y aplicar el modelo entidad relación en el diseño de bases de datos. Evaluación: Este foro lo evalua el instructor, cada mensaje es valorado de acuerdo a la eficacia en su ejecución de su producto, y calificado en una escala del 1 al 100. Requisitos previos: Conocimientos básicos acerca del modelo de bases de datos relacional, programación estructurada, Sistema Operativo Unix, HTML, PHP, SQL y conectividad a MySQL con PHP. Herramientas: Computadora personal con conección a Internet. - Servidor Linux con PHP, Mysql, PostgreSQL, phpMyAdmin, phpPgAdmin, Usermin y WebFTP o algún cliente FTP (Ejemplo: CuteFTP), editor de archivos (Ejemplo: dzphp36) y cliente telnet/ssh (Ejemplo: putty). Indicaciones al instructor o técnico: - Crear una base datos PostgreSQL por cada uno de los participantes. Ejemplo: create database al300000 with owner = al300000 TEMPLATE template0; - Crear un usuario PostgreSQL por cada participante. Ejemplo: CREATE USER al3000000 PASSWORD 'password' NOCREATEDB NOCREATEUSER; - Explicar a los participantes el funcionamiento general de PostgreSQL, de las funciones de conectividad de PHP para PostgreSQL, del programa phpPgAdmin, Usermin y línea de comandos psql, orientado al desarrollo de aplicaciones en el WEB. Antecedentes: - Leer el manual de referencia de las funciones de conectividad de PHP para PostgreSQL disponible en http://www.php.net/pgsql Procedimiento: Ingresar al administrador de bases pablotorres.ens.uabc.mx/admin/phpPgAdmin pablotorres.ens.uabc.mx:20000/postgresql con o tu de datos a cuenta - Seleccionar tu base de datos, y ejecutar las siguientes ordenes SQL. - Crear tabla. CREATE TABLE especialidad ( id integer NOT NULL PRIMARY KEY, descripcion varchar(20) ); http://www.php.net/pgsql pablotorres.ens.uabc.mx/admin/phpPgAdmin - Agregar registros con phpPgAdmin o Usermin. Insert into especialidad (id, descripcion) values (1,'calefaccion'); Insert into especialidad (id, descripcion) values (2,'electricidad'); - Por medio de la línea de comandos psql: phpPgAdmin y usermin contraseña. ssh pablotorres.ens.uabc.mx pablotorres> psql -U al300000 psql> Ordenes SQL; psql> exit; - Emplear las funciones de conectividad a PostgreSQl con PHP: <?php //pruebaconecpgsql.php $conn = pg_pconnect("host=localhost port=5432 dbname=al300000 user=al300000 password=clave"); if (!$conn) { echo "Error. "; exit; } $result = pg_query($conn, "SELECT id, descripcion FROM especialidad"); if (!$result) { echo "Error. "; exit; } while ($row = pg_fetch_row($result)) { echo "Id: $row[0] Nombrel: $row[1]"; echo "<br /> "; } ?> - Coloquelo en un directorio denominado public_html de tu cuenta en el servidor por medio de un cliente FTP o con el WebFTP: http://pablotorres.ens.uabc.mx/admin/webftp/ - Diseñe un diagrama entidad relación para este problema: La Empresa ABC construye edificios comerciales de los que necesita manejar información. Cada uno de los proyectos de construcción tiene un identificador único además de otra información. Los proyectos, tienen un responsable de proyecto además de otra serie de empleados, cada uno con su identificador y demás información. Los responsables de proyecto pueden encargarse al mismo tiempo de varios proyectos. Cada proyecto se asocia, generalmente a varios subcontratistas para los que se guarda un identificador y el resto de la información. Estos subcontratistas se especializan en una única línea de trabajo (calefacción, electricidad, carpintería, etc. ). Estas especializaciones tienen un código único. Un subcontratista puede participar en varios proyectos, pero en algunos proyectos pueden participar varios subcontratistas en una misma especialización. - Reutilice este ejemplo de mantenimiento a una tabla Mysql, de tal manera que los subcontratistas pueden automáticamente registrarse, modificar sus datos, consultar su información, y darse de baja del catálogo, - Incorpore el soporte de la base de datos PostgreSQL e implementelo en al menos la consulta de información. - Probar los programas con soporte MySQL, PostgreSQL y depurar los programas si es necesario: Los enlaces WEB son de esta forma pablotorres.ens.uabc.mx/~al300000/practica.php - Coloque la dirección WEB de esta práctica en este foro.