sábado, 5 de marzo de 2016

Actividades finales

Realizar las siguientes actividades y hacer capturas de pantalla en un documento:
  1. Crear un usuario con permisos para dar mantenimiento a una base de datos
  2. Hacer el respaldo de la base de datos de tu proyecto
  3. OPCIONAL: Crear un trigger que después de insertar un registro en alguna tabla, actualice el valor de un campo de otra tabla
  4. Hacer la actualización del algún campo de una tabla que maneje el uso de transacciones

viernes, 4 de marzo de 2016

Transacciones

Desde MySQL Workbench:
https://www.youtube.com/watch?v=fRagI3qiMDk

Ejemplos: https://drive.google.com/drive/folders/0BzWLIzGSJ9SMNjFxV0RaVWJiOGs

Triggers

http://es.slideshare.net/galvis/ejemplo-de-triggers-en-mysql
http://www.hermosaprogramacion.com/2014/06/mysql-trigger/
http://www.mysqltutorial.org/create-the-first-trigger-in-mysql.aspx
Ejemplo:

Respaldo y restauración de BD

Desde MySQL Workbench: https://www.youtube.com/watch?v=i3j9PHNhbVk

Desde línea de comandos
La recuperabilidad significa que, si se da algún error en los datos, hay un bug de programa ó de hardware, el DBA (Administrador de base de datos) puede traer de vuelta la base de datos al tiempo y estado en que se encontraba en estado consistente antes de que el daño se causara. Las actividades de recuperación incluyen el hacer respaldos de la base de datos y almacenar esos respaldos de manera que se minimice el riesgo de daño o pérdida de los mismos, tales como hacer diversas copias en medios de almacenamiento removibles y almacenarlos fuera del área en antelación a un desastre anticipado. La recuperación es una de las tareas más importantes de los DBA’s.

Para hacer una copia de respaldo de una base de datos se recomienda crear un dump.
  • Para hacer un dump de todas las bases de datos es necesario ejecutar el comando:
mysqldump --user=****** --password=****** -A > /Ruta/Hacia/archivo_dump.SQL
  • Para hacer un dump de sólo algunas bases de datos es necesario ejecutar el comando:
mysqldump --user=****** --password=******  db_1 db_2 db_n> /Ruta/Hacia/archivo_dump.SQL
  • Para hacer un dump de todas las tablas de una base de datos es necesario ejecutar el comando:
mysqldump --user=****** --password=****** db > /Ruta/Hacia/archivo_dump.SQL
  • Para hacer un dump de sólo ciertas tablas de una base de datos es necesario ejecutar el comando:
mysqldump --user=****** --password=****** db --tablas tab1 tab2 > /Ruta/Hacia/archivo_dump.SQL
Para cada uno de estos comando es necesario indicar un usuario (user) y la contraseña (password) con derechos de administrador en la base de datos. 
Restauración
Para restaurar un dump tan sólo hay que ejecutar el comando: 
mysql --user=****** --password=****** db_nom < /Ruta/Hacia/archivo_dump.SQL

1.     <?php
2.     // Realiza el Backup de las bases de datos
3.     $bdd = “–all-databases”;
4.     $opt = “”;
5.      
6.     $backupFile = date(“Y-m-d-H-i-s”) . ‘.gz’;
7.     $command = “mysqldump –opt $opt $bdd | gzip > $backupFile”;
8.      
9.     exec($command, $salida);
10.    
11.   // Mantiene los ultimos 3 backups
12.   $days=3;
13.   $archivos = scandir(“./”);
14.   foreach ($archivos as $key => $val)
15.   {
16.   if(substr($val,-2) != “gz”)
17.   unset($archivos[$key]);
18.   }
19.    
20.   $i=count($archivos);
21.   foreach ($archivos as $key => $val)
22.   {
23.   if($i<=$days)
24.   break;
25.   unlink($val);
26.   $i–;
27.   }
28.   ?>
Es decir, para sacar un respaldo a tu base de datos usas el mysqldump:
Código PHP:
//
shell> mysqldump -u usuario [-p] nombreBase > respaldoBase.sql
// 
shell> mysqldump -u usuario [-p] nombreBase > /directorio/donde/guardas/respaldoBase.sql

Administración de usuarios y privilegios

Desde consola:

Desde MySQL Workbench

viernes, 19 de febrero de 2016

Procedimientos y funciones almacenadas


Procedimientos Cómo crearlos
Funciones Cómo crearlas
Ejemplos de procedimientos y funciones almacenadas

Ejercicio clase:
1. Actualizar el salario de un empleado por medio de su id dependiendo del puesto (trabajo). Si es jefe o presidente que actualice el salario en un 3%, de lo contrario en un 2%.

Tarea:

a) Realizar los siguientes PROCEDIMIENTOS:
2. Insertar nuevos empleados validando que el número de empleado no exista en la base de datos. En caso contrario asignar un número de empleado de forma autoincremental considerando el código Máximo más uno.
3. Asignar una comisión de $100 a los secretarios
4. Calcular la antigüedad de los empleados de acuerdo a la fecha en que fueron contratados

b) Realizar las siguientes FUNCIONES sobre la misma BD:
Ejercicios 51, 57, 61, 64.

Vistas

Guía de vistas:  http://rua.ua.es/dspace/bitstream/10045/28357/12/T12_Vistas_y_tablas_temporales.pdf
Ejercicios: realizar las vistas para la Base de Datos de la Empresa de los ejercicios 36, 41.

Tarea realizar la siguientes VISTAS: ejercicios 42 y 45.


viernes, 5 de febrero de 2016

Tarea 1

Parte 1.
Seleccionar 2 de los siguientes problemas y realizar la Base de Datos en MySQL:

Parte 2.
  • Realiza la Base de Datos del diagrama Entidad-Relación indicado en el documento: clic para verlo.
  • Inserta los datos que se indican en el mismo.
  • Realiza las consultas desde el número 19 hasta el 35.

Actividad 2. Realiza la siguiente BD y sus consultas

Torneo de Tenis Grand Slam
El Grand Slam se compone de cuatro torneos anuales que se celebran en Gran Bretaña, Estados Unidos, Francia y Australia. Estos cuatro torneos se disputan anualmente al mejor de 5 sets cada partido en categoría masculina, con un cuadro de 128 jugadores y a la mejor de 3 sets en categoría femenina. Al triunfar un jugador en alguno de estos 4 torneos se dice que ha logrado un título de Grand Slam. En cada país se pueden desarrollar en distintos lugares (p. ej., en EE. UU. puede desarrollarse en Forest Hill o en Flashing Meadows). Cada partido tiene asociado un premio de consolación para el perdedor que dependerá de la fase en que se encuentre el torneo (p. ej., el perdedor de octavos de final puede ganar 5.000 dólares). El ganador final recibirá el  premio correspondiente al torneo. Cada torneo tiene cinco modalidades: Individual masculino, individual femenino, dobles masculino, dobles femenino y dobles mixtos. También hay que tener en cuenta la nacionalidad de un jugador.

Considerando que se han insertado los registros correspondientes en cada tabla, realiza las siguientes consultas:
  
El sistema debe dar respuesta a las siguientes preguntas:
1 . Dado un año y un torneo, composición y resultado de los partidos.
2. Lista de árbitros que participaron en el torneo.
3. Ganancias percibidas en premios por un jugador a lo largo del torneo.
4. Lista de entrenadores que han entrenado a un jugador a lo largo del torneo y fechas en las que lo hizo.
Ejemplos de acceso a la base de datos.
1 . Connors gano Gerulaitis en Roland Garros en 1 979 en cuartos de final en individuales masculinos por 6-3 4-6/7-5 6-0.
2. El señor Wilkinson arbitro ese partido.
3. Alemania ha ganado dos veces las individuales masculinas de Wimbledon. Borg ha ganado 2.000.000 de dólares a lo largo de su participación en el Grand Slam.
4. El ganador de Roland Garros de 1987 ganó 20,000 dólares.
5. Noah ha jugado cuatro veces en dobles mixtos con Mandlikova.

Comandos SQL

Resumen comandos: https://drive.google.com/open?id=0BzWLIzGSJ9SMd1ZxNlNOczNXSFE

Actividad 1. Realizar la siguiente base de datos

Un parque zoológico quiere construir una BD para organizar las especies que posee y los distintos itinerarios para visitar el parque. La información se estructura de la siguiente forma. De las especies, se desea conocer su nombre común y su nombre científico, así como una descripción general y una fotografía. Cada especie puede vivir en distintos hábitats naturales, definidos por su nombre, clima y vegetación predominante. Cada especie tiene asociado un índice de vulnerabilidad dentro de cada hábitat, que mide el riesgo de extinción de la especie en el dicho hábitat. Para organizar las visitas, y en función de los hábitats que desee recorrer un visitante, el parque le ofrece una serie de recorridos por los hábitats, que se identifican por su código y se caracterizan por su duración estimada, longitud y número máximo de visitantes permitidos. Un hábitat sólo puede formar parte de un itinerario.