martes, 18 de diciembre de 2007

Practica 6 de DSI

Paquetes, Excepciones y Referencias a Cursor
Objetivo:
  • Crear y usar paquetes
  • Manejar excepciones
  • Utilizar referencias a cursor.
Actividad:

Ahora solamente falta guardar la información referente a las asignaturas que imparten los
profesores. Para ello se necesitan crear las siguientes tablas:
  • Tabla PROFESOR con las siguientes especificaciones:
  • Campos:
    • codigo de tipo cadena de longitud fija e igual a 10.
    • nombre de tipo cadena de longitud variable y máximo 50.
  • Restricciones:
    • El atributo codigo es clave primaria

  • Tabla DOCENCIA con las siguientes especificaciones:
  • Campos:
  • codigoProfesor de tipo codigo de la tabla PROFESOR.
  • nombreAsignatura de tipo nombre de la tabla ASIGNATURAS
  • Restricciones:
  • El par es clave primaria
  • codigoProfesor será clave ajena a codigo de la tabla PROFESOR
  • nombreAsignatura será clave ajena a nombre de la tabla ASIGNATURAS
1. Implementa el siguiente código acerca de la creación de subtipos.
SET SERVEROUTPUT ON FORMAT WRAP;
DECLARE
--Definición de un tipo entero propio. No se puede definir tamaño
subtype entero is number;
--El tamaño se asigna después, al crear variables de dicho subtipo
coco number(2);
--Puedo dotar de tamaño a un subtipo con un truco: declarar una variable tipo ...
nameType VARCHAR2(50);
-- y usar el atributo %TYPE !!!
SUBTYPE name IS nameType%TYPE;
codeType CHAR(10);
SUBTYPE code IS codeType%TYPE;
codigo code;
nombre name;
BEGIN
codigo:=1;
nombre:='Elena';
dbms_output.put_line(codigo || ' ' || nombre);
END;

2. Crear un paquete llamado unpaquete con los tipos code y name. Crear también un procedimiento que utilizando dicho paquete reproduzca las declaraciones del punto 1.

3. Crear las tablas PROFESOR y DOCENCIA. Intentar utilizar para ellos los tipos definidos en el
punto 2. ¿Qué ocurre? ¿Por qué?
Insertar las siguientes tuplas en las tablas PROFESOR y DOCENCIA:
insert into profesor values (‘666’, ‘Cuco Valoy’);
insert into profesor values ( ‘42’, ‘Alfa’);
insert into profesor values ( ‘323’, ‘Romeo’);
insert into profesor values ( ‘435’, ‘Julieta’);
insert into docencia values ( ‘323’,’MP1’);
insert into docencia values ( ‘42’,’L’);
insert into docencia values ( ‘435’, ‘SO’);

4. La Universidad ha decidido que en lo sucesivo no quiere ningún Romeo dando más clases de las que hasta ahora imparte. Crear un procedimiento que asigne docencia de una asignatura a un profesor, y que si se llama Romeo entonces genere una excepción. En dicho caso se debe asignar la docencia al profesor Cuco Valoy.
(
codAsig in docencia.nombreasignatura%type, nomProf in profesor.nombre%type
)
as
excepcionRomeo EXCEPTION;
codProf docencia.codigoProfesor%TYPE;
codigoCuco docencia.codigoProfesor%TYPE;
begin
SELECT codigo into codigoCuco
FROM Profesor
WHERE nombre='Cuco Valoy';
SELECT codigo into codProf
FROM Profesor
WHERE nombre=nomProf;
if nomProf='Romeo' then
RAISE excepcionRomeo;
end if;
insert into docencia values (codProf,codAsig);
EXCEPTION
when excepcionRomeo then
insert into docencia values (codigoCuco,codAsig);
end;
5. Añadir el procedimiento y la excepción anteriores al paquete creado con anterioridad.
AS
PROCEDURE noRomeo (
codAsig in docencia.nombreasignatura%type, nomProf in profesor.nombre%type
)
as
excepcionRomeo EXCEPTION;
codProf docencia.codigoProfesor%TYPE;
codigoCuco docencia.codigoProfesor%TYPE;
begin
SELECT codigo into codigoCuco
FROM Profesor
WHERE nombre='Cuco Valoy';
SELECT codigo into codProf
FROM Profesor
WHERE nombre=nomProf;
if nomProf='Romeo' then
RAISE excepcionRomeo;
end if;
insert into docencia values (codProf,codAsig);
EXCEPTION
when excepcionRomeo then
insert into docencia values (codigoCuco,codAsig);
end noRomeo;
end unpaquete;

6. Añadir al mismo paquete una función que devuelva en un cursor todos los registros de la tabla profesor que no se llamen Romeo.

AS
PROCEDURE noRomeo (
codAsig in docencia.nombreasignatura%type, nomProf in profesor.nombre%type
)
as
excepcionRomeo EXCEPTION;
codProf docencia.codigoProfesor%TYPE;
codigoCuco docencia.codigoProfesor%TYPE;
begin
SELECT codigo into codigoCuco
FROM Profesor
WHERE nombre='Cuco Valoy';
SELECT codigo into codProf
FROM Profesor
WHERE nombre=nomProf;
if nomProf='Romeo' then
RAISE excepcionRomeo;
end if;
insert into docencia values (codProf,codAsig);
EXCEPTION
when excepcionRomeo then
insert into docencia values (codigoCuco,codAsig);
end noRomeo;
function referenciaCursor return referenciaCursorProfesores
IS
retorno referenciaCursorProfesores;
begin

OPEN retorno FOR
SELECT *
FROM profesor
WHERE nombre <> 'Romeo';

return retorno;
end referenciaCursor;
end unpaquete;
7. Añadir al mismo paquete un procedimiento que haga que todos los profesores que no se llamen Romeo devueltos por la función creada en el punto 6 impartan la asignatura de ‘MP1’. Atención!!!

Puede ocurrir que un profesor que no se llame Romeo ya imparta esta asignatura.

Practica 5 de Neuronales salidas

aquí dejo unas cuantas salidas, al ser con pesos iniciales aleatorios, obviamente cada vez que se ejecuta da valores distintos:
Tambien tener en cuenta que aproximadamente 1 de cada 20 no itera en 10000 iteraciones:

miércoles, 12 de diciembre de 2007

Nuevas velocidades de internet de Telecable

Las nuevas velocidades de Internet de Telecable pasan a ser las siguientes:

Los de 1 mega pasan a 4 megas con un upload de 300.
Los de 3 megas pasan a 10 megas con un upload de 500.
Los de 6 megas pasan a 20 megas con un upload de 800.

quedando de la siguiente forma:

ACCESO BÁSICO: 4Mb/300kbps
ACCESO AVANZADO: 10Mb/500kbps
ACCESO SUPERIOR: 20Mb/800kbps

Las nuevas velocidades empezarán a aplicarse a partir del día 17 de diciembre.

sábado, 8 de diciembre de 2007

Vodka en una grapadora

¿Tus jefes no te dejan beber en el trabajo? Aquí tienes la solución...




Las rubias no somos tontas

bueno... a lo mejor hay de todo... ;)

A veces es mejor hacerse el muerto

Mirar sino a esta pobre gacela...

Blas de Lezo

Blas de Lezo, un tío con dos pelotas!!! El video es lento pero merece la pena ;)





Oleguer for president

La casa de apuestas Paddy Power ha puesto una sección de apuestas sobre Oleguer Presas, el defensa del Barça, las apuestas las anuncian con el siguiente texto... ;)

¿Bicho u Oveja Negra?
Aunque Oleguer diga que no es un “bicho raro” por su implicación en temas políticos y sociales, hay que reconocer que sí es un poco ‘especialito’ el chaval. La farándula del mundo del fútbol no se caracteriza precisamente por mojarse en temas escabrosos, pese a que sean “normales en cualquier familia” como él dice. El defensa catalán rompe con los estereotipos cada vez que se pone delante de un micrófono o, incluso, cuando le dan una ‘pluma’ para reflejar sus opiniones sobre temas tabú en nuestro país. Sin entrar ni salir en lo conveniente de sus declaraciones, ¿será Oleguer una de las "ovejas negras" a las que se refiere Edmilson?

Las apuestas en las que se pueden apostar son:
  1. Marcará un gol contra el Madrid (3 a 1)
  2. Será presidente del Barça (10 a 1)
  3. Irá a la prisión por quemar una foto del Rey (14 a 1)
  4. Será President de la Generalitat (20 a 1)
  5. Jugará con España un Mundial o una Eurocopa (28 a 1)
  6. Jugará con Catalunya un Mundial o una Eurocopa (100 a 1)
  7. Será premiado con el Nobel de Literatura (200 a 1)
  8. Será Presidente del Gobierno (250 a 1)
  9. Se hará miembro del Partido Popular (350 a 1)

sábado, 1 de diciembre de 2007

Trabajo Basura

Una recopilación de vídeos de gente en el trabajo... No tiene desperdicio...

El Informatico Karateka

Imaginaos que sale de fiesta un informático freak por primera vez. Hasta ahí todo normal (todos hemos tenido una primera vez)... el tipo se toma unas copillas de mas... y se pone a hacer 'katas' mientras suena Self Esteem de The Offspring

ADVERTENCIA: Este vídeo puede causar vergüenza ajena...



Solo le faltaba gritar algo como "Dame tu poder, Stallman, juntos derrotaremos al software propietario!!"