El programa más antiguo todavía en uso
Ejercicio ong
DROP TABLE IF EXISTS `poblacion`; CREATE TABLE `poblacion` ( `idpoblacion` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(45) DEFAULT NULL, `habitantes` int(11) DEFAULT NULL, `pais` varchar(45) DEFAULT NULL, PRIMARY KEY (`idpoblacion`), KEY `ix_nombre` (`nombre`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; DROP TABLE IF EXISTS `sede`; CREATE TABLE `sede` ( `idsede` int(11) NOT NULL AUTO_INCREMENT, `ciudad` varchar(45) CHARACTER SET utf8 DEFAULT NULL, `pais` varchar(45) DEFAULT NULL, `direccion` varchar(45) DEFAULT NULL, `telefono` varchar(45) DEFAULT NULL, `director` varchar(45) DEFAULT NULL, PRIMARY KEY (`idsede`), KEY `ix_ciudad` (`ciudad`), KEY `ix_pais` (`pais`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; DROP TABLE IF EXISTS `proyecto`; CREATE TABLE `proyecto` ( `idproyecto` int(11) NOT NULL AUTO_INCREMENT, `idsede` int(11) DEFAULT NULL, `titulo` varchar(45) DEFAULT NULL, `fini` date DEFAULT NULL, `ffin` date DEFAULT NULL, `presupuesto` decimal(10,2) DEFAULT NULL, `responsable` varchar(45) DEFAULT NULL, PRIMARY KEY (`idproyecto`), KEY `fk_sede_idx` (`idsede`), KEY `ix_titulo` (`titulo`), CONSTRAINT `fk_sede` FOREIGN KEY (`idsede`) REFERENCES `sede` (`idsede`) ON DELETE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; DROP TABLE IF EXISTS `actuacion`; CREATE TABLE `actuacion` ( `idactuacion` int(11) NOT NULL AUTO_INCREMENT, `idproyecto` int(11) NOT NULL, `idpoblacion` int(11) DEFAULT NULL, `inversion` decimal(10,2) DEFAULT NULL, `descripcion` text, PRIMARY KEY (`idactuacion`), KEY `fk_proyecto` (`idproyecto`), KEY `fk_poblacion_idx` (`idpoblacion`), CONSTRAINT `fk_poblacion` FOREIGN KEY (`idpoblacion`) REFERENCES `poblacion` (`idpoblacion`), CONSTRAINT `fk_proyecto` FOREIGN KEY (`idproyecto`) REFERENCES `proyecto` (`idproyecto`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
MyIsam o InnoDb
Índices
Definición wikipedia: índice
Algunos enlaces de utilidad (¡en castellano!)
http://www.programania.net/diseno-de-software/indices-en-bases-de-datos-primeros-pasos/
https://www.adictosaltrabajo.com/tutoriales/introduccion-a-indices-en-mysql/
Claves candidatas o subrogadas
http://stackoverflow.com/questions/63090/surrogate-vs-natural-business-keys
Blackjack
Para el juego del blackjack primero necesitamos conocer las reglas del juego:
Hay un jugador y una banca. Se reparten dos cartas a cada uno. El objetivo es sumar 21 o lo más cercano pero sin pasarse. Las figuras valen 10 y los ases 1 u 11, dependiendo de lo que nos interese. El resto de cartas su valor. Una vez repartidas las dos cartas el jugador puede plantarse o pedir carta. Si pide carta y se pasa, ha perdido. Si no, otra vez puede pedir carta o pararse. Cuando se para es el turno de la banca.
Para gestionar las decisiones de la banca puede parecer que necesitamos una inteligencia artificial, pero por suerte no es así. Si la puntuación es menor de 16 tiene que pedir carta, si es 17 o superior tiene que plantarse.
¿Cómo lo haremos?
En primer lugar crearemos un array con las 52 cartas de la baraja. Este array lo desordenaremos y ya estaremos listos para empezar a repartir.
Se reparten dos cartas a la banca y dos al jugador. Las podemos guardar en un array. Las de la banca se oculta la primera y se muestra la segunda. Las del jugador se muestran todas.
A partir de aquí tenemos dos botones:
- Pedir carta. Le damos otra carta al jugador. Tenemos que contar la puntuación; si se ha pasado pierde. En caso contrario no hacemos nada.
- Plantarse. Pasamos al turno de la banca
Cuando es el turno de la banca esta tiene que hacer:
- Si su puntuación es menor que 17, pedir carta. Si se pasa pierde.
- Si es mayor plantarse.
Si no se ha pasado ninguno de los dos el jugador que tiene el mayor número es el que gana. Y vuelta a empezar.
Ejemplos BD
En un centro de salud un médico atiende a varios pacientes y cada paciente está asignado a un solo médico. Cada médico pasa consulta en una o varias salas en horario distinto. En cada sala pasan consulta varios médicos.
a. Del médico interesan conocer sus datos personales y el año en que se colegio.
b. De la sala interesa conocer su ubicación, además se identifica por un nº de sala
c. Del paciente, además de sus datos personales, se desea conocer su historial médico.
d. Se desea saber en qué sala pasa consulta cada médico en cada momento.
Se desea diseñar una BD para una Universidad que contenga información sobre carreras y asignaturas que se pueden estudiar. Además se incluirá la información de los alumnos matriculados en las correspondientes asignaturas y las calificaciones que obtienen en las asignaturas en las que están matriculados. Nota: suponer que una asignatura solo puede pertenecer a una carrera.
En una autoescuela hay varios profesores y varios coches de prácticas. Se quiere guardar información respecto a los alumnos que se matriculan, el profesor que se les asigna y el coche que conducirán. Cada alumno da clase con un profesor en un coche, el alumno siempre va a conducir el mismo coche y con el mismo profesor.
Se desea diseñar una base de datos para almacenar y gestionar la información empleada por una empresa dedicada a la venta de automóviles, teniendo en cuenta los siguientes aspectos La empresa dispone de una serie
de coches para su venta. Se necesita conocer la matricula, marca y modelo, el color y el precio de venta de cada coche.Los datos que interesa conocer de cada cliente son el NIF, nombre, dirección, ciudad y numero de teléfono: ademas, los clientes se diferencian por un código interno de la empresa. Un cliente puede comprar tantos coches como desee a la empresa. Un coche determinado solo puede ser comprado por un único cliente.
En la biblioteca del centro se manejan fichas de autores y libros. En la ficha de cada autor se tiene el código de autor y el nombre. De cada libro se guarda el código. titulo, ISBN, editorial y numero de pagina. Un autor puede escribir varios libros, y un libro puede ser escrito por varios autores. Un libro esta formado por ejemplares.
Cada ejemplar tiene un código y una localización Un libro tiene muchos ejemplares y un ejemplar pertenece solo a un libro. Los usuarios de la biblioteca del centro también disponen de ficha en la biblioteca y sacan ejemplares
de ella. De cada usuario se guarda el código, nombre. dirección y teléfono. Los ejemplares son prestados a los usuarios. Un usuario puede tomar prestados varios ejemplares, y un ejemplar puede ser prestado a varios usuarios. De cada prestamos interesa guardar la fecha de préstamo y la fecha de devolución.
Examen jQuery recuperación
Algoritmo ruleta
Botón reset-> Actualizar la página
Arrastrar fichas: en el drop guardar valores:
var apuesta_ruleta = ['rojo', 'negro', 'par', 'impar', 'passe', 'manque']; var apuestas = []; $(".ficha").draggable(); $(".apuesta").droppable({ drop: function (event, ui) { var apuesta = $(this).attr("title"); var cantidad = $(ui.draggable).attr("title"); $(ui.draggable).draggable('disable'); apuestas[apuesta] = cantidad; $('#info').append("Apuesta " + cantidad + " al " + apuesta_ruleta[apuesta] + "<br/>"); } });
En el botón de jugar tenemos que hacer:
– Descontar del saldo el total de las apuestas:
var total=0; for (var i in apuestas){ total+=parseInt(apuestas[i]); } saldo-=total;
– Obtener un número entre 0 y 36
– Si el número es cero avisar de que ha perdido.
– Si el número es rojo y ha apostado a rojo darle de premio la apuesta
– Idem negro
– Idem par
– Idem impar
– Idem passe
– Idem manque
– Informar de número, premios, saldo, etcétera.