Diferencia entre revisiones de «Usuario:ManuelRomero/NewPHP/B2T8/BasesDatos/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
Línea 2: Línea 2:
 
<br />
 
<br />
  
{{Nota|
 
'''''Para todos los ejercicios'''''
 
*Al menos debe de haber 3 atributos por cada entidad
 
*Se debe de especificar un atributo (o conjunto de atributos) que constituyan la clave para cada entidad
 
}}
 
 
 
===Base de datos de Empleados===
 
<br />
 
{{MRM_Actividad|Title=Especificación|
 
*Se quiere guardar datos de empleados.
 
*Hay equipos de empleados con determinadas funciones.
 
*Cada empleado tiene un supervisor que es otro empleado más.
 
*Un empleado puede tener varios supervisores.
 
*Cada equipo tiene un jefe
 
*Un jefe lo es solo de un equipo.
 
*A parte de ello cada equipo tiene un jefe que es un empleado que pertenece al equipo
 
[[Archivo:modelo_empleado.png]]<br />
 
[[Archivo:modelo_empleado2.png]]<br />
 
}}
 
{{MRM_Actividad|Title=Biblioteca|
 
 
*Hay alumnos (datos personales, dni, edad y dirección e idiomas que habla).
 
*Tenemos libros (autores, editorial, isbn, título, tema)
 
*Ûn alumno puede tomar prestados varios libros
 
*Cada libro en un momento dado, solo lo puede tener físicamente una alumna.
 
*Queremos mantener información de todos los libros que haya podido tener un determinado alumno
 
*Cuando un alumno toma prestado un libro anotaremos la fecha del préstamo. La fecha prevista de devolución será 15 días naturales la fecha del préstamo.
 
*Anotaremos la fecha real de devolución.
 
*Las personas pueden tener penalizaciones que será o de un importe o de un tiempo sin poder tomar prestados libros cuando la fecha real de devolución sea posterior a la fecha prevista.
 
}}
 
{{MRM_Actividad|Title=Universidad|
 
*El departamento de relaciones públicas de la Universidad pretende construir una aplicación informática capaz de proporcionar información acerca de su organización docente, mediante consultas realizadas a una base de datos que contenga toda la información necesaria. Un primer contacto con responsables de la instrucción permite concluir que:
 
# La Universidad se encuentra estructurada en Departamentos, cada uno de los cuales integra una o más Áreas de Conocimiento. Evidentemente, no puede haber Áreas de Conocimiento que pertenecen a Departamentos diferentes.
 
# Todo profesor está adscrito a una única Área de Conocimiento, pudiendo darse el caso de que, transitoriamente, un Área no tenga profesores.
 
# Cada una de las diferentes titulaciones ofertadas por la Universidad consta de una serie de asignaturas, dándose algunos casos de asignaturas comunes a varias titulaciones. La impartición de cada una de ellas es encargada a una de las Áreas de Conocimiento existentes.
 
# El Departamento establece las asignaturas que debe impartir cada profesor, siendo frecuente que en la impartición de una asignatura participen dos profesores. No obstante, hay algunos casos extraordinarios en los que intervienen 3 o más profesores.
 
# Tanto los Departamentos como las áreas, titulaciones, asignaturas y profesores tienen asignados códigos identificativos específicos, elaborados por el MEC.: codDpto, codArea, codTitulo, codAsign y codProf. No obstante, para evitar el efecto negativo de los cambios de código por parte del Ministerio y la ausencia de códigos en determinadas asignaturas nuevas, etc., se opta por utilizar un código numérico interno propio.
 
*De momento, sólo se pretende representar la información esencial. Esto significa que, además de los códigos y los nombres de los elementos representados, sólo es preciso reflejar las horas de teoría y prácticas de cada asignatura y las horas de teoría y prácticas impartidas por cada profesor en cada una de las asignaturas en que participa.
 
}}
 
[[imagen:universidad_er.png]]
 
<br />
 
{{Actividad|Title= Concesionario.|
 
;Realiza este ejercicio sin poner atributos, solo relaciones
 
*Sea un concesionario de venta y alquiler de automóviles cuyo funcionamiento se rige básicamente por los siguientes aspectos:
 
#La intención del Concesionario es  atender a una serie de clientes a los que diferencia en dos grupos, Clientes compradores y Clientes que alquilan
 
#Los Clientes compradores, realizan el Pedido de un vehículo nuevo del que se les hará entrega acompañado de la correspondiente Factura, que el cliente cerrará a través de un Pago formalizado(Dicho pago puede ser diferido a través de una financiación).
 
#Los Clientes que alquilan, solicitan un Vehículo de alquiler mediante un documento de solicitud  o una señal. A la devolución del Vehículo, el Cliente realiza aun Abono directo para satisfacer la Factura que le es presentada
 
#El concesionario adquiere los Vehículos nuevos de las diferentes Fábricas del país a través de un Albarán de pedido.Los pedidos son satisfechos en Entregas de las Fábricas.
 
#Los Vehículos de alquiler, se Adquieren mediante la compra de los mismos a Concesionarios de Vehículos de ocasión.
 
#Tanto en compra como en alquiler, es posible que una misma operación el correspondientes Cliente solicite varios Vehículos.
 
#Así mismo, más de un Vehículo puede incluirse en una sola Compra a un Concesionario de Ocasión.
 
<!--[[Archivo:Concesionario.png]]-->
 
<br />
 
}}
 
{{Actividad|Title= Vuelta ciclista|
 
*Se desea diseñar una base de datos que recoja información sobre las distintas vueltas ciclistas que ha habido. Se tiene los siguientes supuestos:
 
#Nos interesa guardar el año en que se produce cada edición, ya que todos los años se celebra la vuelta ciclista.
 
#Todas las ediciones tienes las mismas etapas con idénticas características.
 
#Todos los equipos tienes un patrocinador, que es siempre es el mismo con independencia de la edición de que se trate.
 
#Queremos guardar los equipos que han participado en cada edición con el puesto que han conseguido en cada una. #Además dos equipos no pueden conseguir el mismo puesto en la misma edición.
 
#Los corredores pueden cambiar de equipo de una edición a otra, pero nunca dentro de la misma.
 
#En cada etapa de una edición un corredor consigue un único puesto y un puesto es conseguido por un único corredor.
 
*Ademas se producen los siguientes supuestos semánticos:
 
a.- Nos interesa guardar el año en que se produce cada edición, ya que no todos los años se celebra la vuelta ciclista
 
b.- Todas las ediciones tienen las mismas etapas con idénticas características. En cada edición se realizna el mismo número de etapas_tipo.
 
En un Edición se realizan de 1 a N etapas_tipo.
 
Una Etapa_tipo se realiza en 1 o N ediciones.
 
Supongo que como mínimo se ha realizado una edición
 
y que como mínimo una edición tiene una Etapa_tipo-.
 
c.- todos los equipos tienes un patrocinador, que es siempre el mismo con independencia de la edición de que se trate.
 
Un equipo patrocinado pro un único patrocinador
 
Un patrocinador patrocina a 1 o N equipos
 
Supongo que un patrocinador tiene que patrocinar
 
como mínimo a un equipo en alguna de las ediciones
 
d.- Queremos guardar los equipos que han participado en cada edición.  con el puesto que han conseguido en cada una. Además dos equipos no pueden conseguir el mismo puesto en la misma edición.
 
Un Equipo participa en 1 o N Ediciones.
 
En una edición participan de 1 a N equipos
 
Cada vez que un Equipo participa en una Edición
 
consigue un único puesto que lo identifica
 
e.- Los corredores puede cambiar de equipo de una edición a otra, peri nunca dentro de la misma.
 
Un corredor en una edición pertenece a un único equipo
 
Un equipo en una edición le pertenece de 1 a N corredores.
 
Un corredor de un equipo puede pertenecer (es decir, puede participar) de 1 a n ediciones.
 
f.-  En cada etapa de una edición un corredero consgue un único puesto y un puesto es conseguido pro un único corredor,. Además cada puesto conseguido implica un tiempo determinado. Es decir, cada corredor en cada etapa de cada edición, consigue un tiempo.
 
Un corredor en una edición corre de 1 a N etapas_tipo.
 
Un corredor corre en una Etapa_tipo de 1 a N ediciones.
 
En una Etapa_tipo de una Edición corren de 1 a N corredores.
 
Un corredor corre en una etapa de una Edición, consiguiendo un tiempo y un puesto.
 
}}
 
<!--[[Archivo:Ciclista.png]]-->
 
<br />
 
{{MRM_Actividad|Title=Club naútico|
 
*Un club náutico desea tener informatizados los datos correspondientes a sus instalaciones, empleados, socios y embarcaciones que se encuentran en dicho club. El club esta organizado de la siguiente forma:
 
#Los socios pertenecientes al club vienen definidos por su nombre, dirección, DNI, teléfono y fecha de ingreso en el club.
 
#Las embarcaciones vienen definidas por: matricula, nombre, tipo y dimensiones.
 
#Los amarres tienen como datos de interés el número de amarre, la lectura del contador de agua y luz, y si tienen o no servicios de mantenimiento contratados.
 
#Por otro lado, hay que tener en cuenta que una embarcación pertenece a un socio aunque un socio puede tener varias embarcaciones. Una embarcación ocupará un amarre y un amarre está ocupado por una sola embarcación. Es posible que existan amarres no ocupados. Es importante la fecha en la que una embarcación es asignada a un amarre.
 
#Los socios pueden ser propietarios de amarres, siendo importante la fecha de compra del amarre. Hay que tener en cuenta que un amarre pertenece a un solo socio y que NO HAY ninguna relación directa entre la fecha en la que se compra un amarre y en la que una embarcación se asigna a un amarre.
 
#El club náutico está dividido en varias zonas definidas por una letra, el tipo de barcos que tiene, el numero de barcos que contiene, la profundidad y el ancho de los amarres. Una zona tendrá varios amarres y un amarre pertenece a una sola zona.
 
#En cuanto a los empleados, estos vienen definidos por su código, nombre, dirección, teléfono y especialidad. Un empleado está asignado a varias zonas y en una zona puede haber más de un empleado, siendo de interés el número de barcos de los que se encarga en cada zona.
 
[[Archivo:ClubNautico.png]]
 
}}
 
 
 
 
 
 
 
 
<!--
 
 
{{Actividad|Title= Crear tiendas|
 
{{Actividad|Title= Crear tiendas|
 
*Realiza una pequeña app web que añada tiendas a nuestra base de datos '''''dwes'''''
 
*Realiza una pequeña app web que añada tiendas a nuestra base de datos '''''dwes'''''
Línea 516: Línea 405:
  
 
}}
 
}}
-->
 

Revisión de 21:08 28 abr 2018





Icon activity.jpg

Crear tiendas

  • Realiza una pequeña app web que añada tiendas a nuestra base de datos dwes
  • En un formulario daremos los valores de tienda y teléfono
  • En un botón submit iniciaremos el proceso y si todo es ok se agragará la tienda en la tabla correspondiente
  • Posteriormente se mostrará el mensaje informando
Se ha agregado la tienda con código XXX nombre: YYY teléfono: ZZZ
  • Se quedará el mismo formulario para poder volver a añadir más tiendas
  • Además visualizaremos debajo del formulario todas las tiendas mejor en una tabla je je .. (Gracias Deyvid).






}}


Icon activity.jpg

Actividad

  • Realiza una aplicación que permita registrar usuarios o bien visualizarlos
  • La password ha de estar cifrada (md5)
 $pass = $_POST['....'];
 $pass = md5($pass); //Aquí la pass queda cifrada usando la función md5
  • Crea un formulario con un campo de texto para nombre y password
  • En ella el usuario podrá
  1. Registrarse
  2. Visualizar todos los usuarios registrados
  3. Borrar la tabla

LoginRegistrarVisualizar.png

  • Ten en cuenta que se debe de permitir insertar el nombre por ejemplo Peters' Son
para que el usuario se puede registrar
  • Si no aporto nombre o password me informará de ello

NoDatosRegistrarVisualizar.png

  • Si borramos me informará del número de registros borrados

BorradosRegistrarVisualizar.png

  • Al ver usuarios mostrará todos los usuarios que estén en la base de datos

ListadoRegistrarVisualizar.png

Aqui puedes ver un ejemplo de la aplicación http://manuel.infenlaces.com/dwes/RegistrarUsuarios/

Icon present.gif
Tip: Si pide indentificarse accede con alumno/fuina








Icon activity.jpg

Gestión productos

PRACTICA DE BASES DE DATOS USANDO PDO
  • Partiendo de la base de datos dwes usada en la explicación de este tema ,se pide que realicéis una aplicación que permita gestionar los registros de la tabla productos.
  • La aplicación se dividirá entres páginas web:
1 listado.php.
  • Mostrara un cuadro desplegable que permita seleccionar un registro de la tabla familias, junto a un botón "Mostrar". *Al pulsar el botón, se mostrará un listado de los productos de la familia seleccionada.
  • Para cada producto, se mostrará su nombre corto y su PVP, junto a un botón con el texto Editar (se puede usar como opción crear un formulario distinto por cada producto).
  • Cuando se pulse ese botón, se enviará el formulario a la página editar.php.
2 Editar.php
  • Debe mostrar los datos del producto seleccionado en la página anterior (nombre corto, nombre, descripción y PVP) dentro de un formulario que permita cambiarlos, y dos botones: Actualizar y Cancelar. El formulario se enviará a la página actualizar.php.
3 actulizar.php
  • Esta página simplemente redirige a la página listado.php, pero si en el formulario anterior se ha pulsado Actualizar (y no Cancelar),
  • antes de redirigir debe ejecutar una consulta para cambiar los datos del producto.
  • Para redirigir se puede utilizar un formulario con un botón "Continuar" o bien dentro del encabezado la etiqueta
 <meta http-equiv='refresh' content='1'; url=>

Para acceder a la base de datos se debe usar mysql, realizando todas las consultas parametrizadas.