martes, diciembre 16, 2008

Composición a Nivel de Datos


Hablando de la composición, Martin Fowler en su libro UML gota a gota, expone lo siguiente: "... el objeto parte puede pertenecer a un todo único; es más, se espera, por lo general, que las partes vivan y mueran con el todo. Cualquier borrado del todo se extiende en cascada a las partes". Pero en la práctica, ¿Cómo logramos este borrado en cascada?. Si estuviéramos hablando de información almacenada en una base de datos, ¿Borramos los registros en la Tabla Hijo y luego en Padre? ¿Existe alguna otra manera que se acerque más a lo expresado por Fowler?.

Vamos a tomar un ejemplo simple.

- Primero creamos la tabla Padre.

En Oracle:


create table Padre (
id_padre number primary key,
name_padre varchar2(10)
)


En PostgreSQL:


create table Padre (
id_padre numeric primary key,
nombre_padre VARCHAR(10)
);



Luego creamos la tabla Hijo:

En Oracle:


create table Hijo (
id number primary key,
name varchar(10),
id_padre number references Padre (id_padre) on delete cascade
)


En PostgreSQL:


create table Hijo (
id_hijo numeric primary key,
nombre_hijo varchar(10),
id_padre numeric references Padre(id_padre) on delete cascade
)


Ya estamos listos. Si insertamos datos en ambas tablas y luego borramos un registro de Padre, por ejemplo,

delete from Padre
where id_padre = 1;

automáticamente se borrarán todos los registros Hijo asociados a ese Padre.

Espero que les sea útil.

Etiquetas: , ,

sábado, octubre 11, 2008

Procedimientos Almacenados en PostgreSQL

Impacto de las TIC's en la Educación

Video realizado por la red enlaces.

Etiquetas:

jueves, noviembre 22, 2007

Función Obtiene Dígito Verificador en PL/pgSQL (PostgreSQL)

En los últimos años he comenzado un estudio de PostgreSQL como Gestor de Base de Datos y la verdad me he llevado una buena impresión. Un gestor robusto, con un buen manejo de las transacciones y con la maravilla que me tiene como niño con juguete nuevo, PL/pgSQL. Aquí les dejo una función que calcula el dígito verificador de un rut (Chile) en PL/pgSQL.



CREATE FUNCTION OBTIENE_DRUT (NUMERIC)
RETURNS CHAR AS
$$

DECLARE
SUMA INT := 0;
FACTOR INT := 2;
RUT_AUX INT := $1;
DIG INT;
DV INT;

BEGIN
WHILE
(RUT_AUX > 0) LOOP
DIG := RUT_AUX % 10;
IF(FACTOR = 8) THEN
FACTOR := 2;
END IF;

SUMA := SUMA + (DIG * FACTOR);
RUT_AUX := RUT_AUX / 10;
FACTOR := FACTOR + 1;
END LOOP;

DV := 11 - (SUMA % 11);

IF(DV = 10) THEN
RETURN 'K';
ELSIF(DV = 11) THEN
RETURN 0;
ELSE
RETURN DV;
END IF;

END;
$$
LANGUAGE plpgsql;


Etiquetas: , ,

miércoles, octubre 31, 2007

Compartiendo carpetas Windows en Ubuntu virtualizado

Debido a que estuve buscando por cada foro, blog y fotolog existente en la red de redes sobre la manera de compartir carpetas windows en Ubuntu corriendo en VirtualBox y no habiendo encontrado una solución, comparto con uds la solución que encontré en el help de VirtualBox (Porque nunca usamos el famosillo F1???)

  1. Debemos instalar los Guest Aditions, en nuestra máquina virtual, para eso con la máquina encendida, vamos a Dispositivos>Install Guest aditions y se instalarán como si fuera una aplicación de linux y reiniciaremos la máquina. Las Guest adittions nos permiten tener un mayor control, como por ejemplo, no tener que desbloquear el puntero, compartir carpetas, etc.
  2. Creamos una carpeta en el directorio que queramos, esta será la carpeta que compartiremos entre los dos sistemas, por ejemplo: D:\prueba, por lo tanto, “prueba” será el nombre de la carpeta a compartir.
  3. Agregamos esta carpeta en los Directorios compartidos de VirtualBox. Para ellos vamos al menú Dispositivos>Directorios Compartidos...
  4. Estando en Ubuntu, abrimos el terminal y escribimos lo siguiente (siguiendo nuestro ejemplo):
sudo mount -t vboxsf prueba /mnt/share/

OJO: Deben tener creado el directorio share en mnt

5. Escribes tu password y voila!!! Tienes montada la carpeta compartida.

Nada de complicado cierto? Si tienen dudas, sólo presionen F1 en VirtualBox.

Etiquetas:

viernes, agosto 31, 2007

BlogDay 2007

Blog Day 2007

Ya que hoy es el blogday, aquí están mis 5 recomendados:

  1. Bootlog: Si hay un blog que leo periódicamente es el de Tomás Pollak. Principalmente porque su orientación está dirigida a ayudar a otros en el maravilloso mundo de Linux y el software libre mediante su propia experiencia. Sus tutoriales son magistrales.
  2. Sentido Web: Actualidad, productividad y desarrollo web.
  3. Gizmología: Buen blog sobre gadgets y tecnología de consumo.
  4. jci's blog: Blog de Juan C. Inostroza orientado principalmente a GNU/Linux.
  5. Juque: Blog de Juan P. Aqueveque sobre Diseño y Desarrollo Web.
Dejé fuera mis blog's de lectura diaria como FayerWayer y El Francotirador, ya que el propósito de este día es conocer a nuevos blogueros.

Etiquetas:

martes, junio 05, 2007

Mi geniecito

Para que les voy a andar con cuentos de que "es para que la familia lo vea", "tan lindo su nieto", o "es un aporte más en mi blog", "es que es tan lindo esto de agregar videos a los blogs"... mentira!!! Subí este video para presumir, porque lejos este chato es más inteligente que la mayoría de los niños que conozco de su edad. Está es una pequeña muestra de su genialidad (que esperamos encausar correctamente):



ULTIMO MINUTO: Mi esposa le compró 2 rompecabezas más y en sólo 1 día ya lo armaba solo.

Etiquetas: ,

miércoles, mayo 16, 2007

Primer Día en el Jardín

Mis queridos amigos quiero contarles que a partir de hoy el Pipe está yendo al jardín. Si, fue todo un evento para nosotros como familia. De verdad sentíamos que le hacía falta el poder compartir con niños de su edad, para jugar, aprender y socializarse. Fue todo tan rápido que ayer tuvimos que salir a comprar sus útiles, ropa , etc.. (bendita eres santa devolución de impuestos), si llegó hasta la abu desde Iquique para acompañarlo. Incluso el pobre Thomas tuvo que mamarse la levantada temprano, pero ese chato es todo terreno, tiene un genio hermoso. Aunque el pobre no salió en las fotos.

Saliendo del departamento
Con la mamá

Imitando al papá

Caminando hacia el jardín

En la entrada del jardín con la abu y la mamá

Con la mamá y el papá

En su sala (puntual el cabro, fue el primero)

Etiquetas: