Resumen Bases de Datos

12 06 2008

Bueno aqui dejo la ultima version que hare. He incluido algunas cosas que me ha pasado Dani y creo que es un resumen general que viene bien.

Link para verlo

Por ultimo lo que hace el de BD, me parece una injusticia para gente como nosotros ya que nos obliga a tener dos BD en la cabeza, esperaremos noticias de grupos que presentaron hoy.

Un saludo a todos.





Consultas a la Base de Datos MetroBilbao

1 06 2008

He estado practicando un poco de SQL con nuestra base de datos, y voy a poneros aquí las consultas que he hecho para compartirlas con vosotros y, ya de paso, si a alguien se le ocurriesen más posibles consultas, que las postee.
Aviso que en algunas de ellas puede ser que me halla complicado la vida, pero bueno, yo lo veía así y así lo he hecho.

BDMetroBilbao: Consultas estadísticas

(versión no completa)

A continuación, algunos ejemplos:

Leer el resto de esta entrada »





Trigger en MySQL

1 06 2008

Bueno aquí paso a explicar, paso por paso, nuestro trigger de MySQL:

delimiter //
create trigger triggerAcceso after delete on Acceso
for each row
begin
set @fecha=(select count(fecha) from historicaAcceso where old.fecha=fecha);
if (@fecha=1) then
if (old.idBillete>0) then
update historicaAcceso
set numBillete=numBillete+1;
update historicaAcceso
set numAcceso=numAcceso+1;
else
update historicaAcceso
set numHabitual=numHabitual+1;
update historicaAcceso
set numAcceso=numAcceso+1;
end if;
else
insert into historicaAcceso values (old.fecha,0,0,0);
if (old.idBillete>0) then
update historicaAcceso
set numBillete=numBillete+1;
update historicaAcceso
set numAcceso=numAcceso+1;
else
update historicaAcceso
set numHabitual=numHabitual+1;
update historicaAcceso
set numAcceso=numAcceso+1;
end if;
end if;
end;//
delimiter ;
Leer el resto de esta entrada »





¿Que son los triggers en mysql?

22 05 2008

Siendo un mínimo del proyecto que tenemos que tener en cuenta, he buscado algo de información para poder acoplarlo al proyecto. Deciros que nos va ser útil a la hora que se genere cualquier actualización en la base de datos, o a la hora de genera cualquier nueva entrada en la BD.

¿Que son los triggers en mysql?

Los triggers son objetos relacionados a tablas que son ejecutados o mostrados cuando sucede algún evento en contra de sus tablas asociadas. Estos eventos son aquellas sentencias (INSERT, DELETE, UPDATE) que modifican los datos dentro de la tabla a la que está asociado el trigger y pueden ser disparados antes (BEFORE) y/o después (AFTER) de que la fila es modificada.

Los triggers son muy parecidos a los procedimientos almacenados, de tal forma que si deseamos ejecutar múltiples acciones cuando un trigger es disparado, podemos encapsular estas acciones dentro de una construcción BEGIN, END. Los triggers tienen un par de palabras clave extra – OLD y NEW – las cuales se refieren respectivamente a los valores de las columnas antes y después de que la sentencia fue procesada. Las sentencias INSERT únicamente permiten NEW, las sentencias UPDATE permiten ambos, NEW y OLD, y las sentencias DELETE permiten sólo OLD. La razón para esto debe ser obvia.

CREATE TRIGGER nombre_disp momento_disp evento_disp
    ON nombre_tabla FOR EACH ROW sentencia_disp

Bueno esto sera la explicación teórica de trigger, ahora os voy a dejar un link con tres paginas donde se puede ver una explicacion mejor y con diferentes ejemplos.

información de triggers

Ejemplo triggers paso por paso

Mas sobre triggers

Bueno esto es todo por ahora, habrá que investigar mas cuando se pueda.

Agur.





Gestion de usuarios de mysql

12 05 2008

haber explico lo que he conseguido hasta ahora, que es saber como se crea un superusuario que tiene acceso a todo:

mysql> GRANT ALL PRIVILEGES ON *.* TO GOD IDENTIFIED BY ‘462493′ WITH GRANT OPTI
ON
-> ;
Query OK, 0 rows affected (0.38 sec)

Bien para hacer un usuario restringido, hay que decir que acciones quieres que pueda hacer (alter,update,create.. etc) y que tablas puede ver, eso se explica aqui abajo:

Para añadir más usuarios usaremos el comando GRANT:

GRANT priv_type [(column list)] [, priv_tipe[(column_lis)] …]
ON {table_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password']
[, user_name [IDENTIFIED BY 'password'] …]
[WITH GRANT OPTION]

Leer el resto de esta entrada »





Cosas para preguntar

28 04 2008

He descubierto una pequeña cagada en el codigo de terminal, que es la siguiente:

en el metodo crearUEsporadico de la clase modificaciones,
no se puede consultar la ultima id que as creado
y por lo tanto no se puede devolver esa id creada

Propongo que escribamos en esta entrada todas las cagadas que encontremos

PD: Dani y yo creemos que las ids al recogerlas y pasarlas a String van a ser identificadas con una letra por delante, para saber si son esporadico o habituales.

Otra cagada:

Al crear un acceso, en esta tabla tenemos dos atributos:idEsporadico e idHabitual. El acceso o es de un tipo o del otro, y si la dejamos como esta, habra muchos campos a NULL y por tanto problemas.

En recarga pasa lo mismo, la recarga tiene idEsporadico e idHabitual, y esto generaría nulls, porque o la hace un esporadico o la hace un habitual. Además, la recarga sólo las hacen los habituales, y los billetes los esporádicos. No le veo el sentido.

Creo que o solucionamos el tema de los usuarios, con una ISA (de esta forma tendríamos idUsuario y punto) o mal vamos. Y también creo que habría que hacer una nueva tabla: billete. Así separaríamos la recarga tal y como está ahora (billetes+recargas) en billete y recargas.

Así es como veo yo la BD, después de haberme puesto a programar la parte de JDBC:

Free Image Hosting at www.ImageShack.us

Yo iría mañana a preguntar con los dos modelos haber si conseguimos ver cómo arreglar los problemas.