Duda álgebra relacional

Buenas tardes a todos y feliz navidad. Tengo una duda a ver si alguien me podría ayudar.
Estoy en un grado superior ASIR, hice ya el medio, todo me resulta fácil (de momento), menos lenguaje de marcas y especialmente bases de datos, aunque, las 2 las he aprobado con nota.

Resulta que hemos empezado con álgebra relacional, y no entiendo nada de nada, salvo qué resultado genera cada operación (unión, intersección, etc). Por ejemplo, no sé cuándo tengo que aplicar la unión o la unión natural, me resulta todo extremadamente liante y no entiendo nada. Mi profesor ha dicho que es imprescindible saberse esto porque sino no sabré hacer consultas. Es esto verdad, o se puede hacer consultas y demás sin saberse el álgebra relacional?

Me estoy desanimando en cuanto a esto así que por eso preguntaba, porque después de volver de vacaciones, estaremos unos días más dándolo y... ya (?)
Lo que vimos de esto fue 2 semanas, y eso, no me aclaro, no tengo ni idea de por qué por ejemplo se tiene que usar el producto cartesiano en una tabla, división en otra, etc. Y de la división ya ni os hablo.

Bueno, a ver si alguien puede ayudarme, si me hace falta el álgebra relacional para seguir adelante o si se pueden hacer consultas sin tener claro eso, y si tenéis algún pdf o algo que me pueda ayudar os lo agradecería, en internet hay pero tampoco me aclaro con ellos.
"No necesitas saber algebra relacional".
Las consultas yo directamente le metia mano a sql.
Aqui tienes un tutorial con ejemplos
http://bd.eui.upm.es/BD/docbd/tema/algebra.pdf
Segun parece la union es cuando tienes 2 tablas ejemplo: empleados y clientes, con dni, nombre, direccion y quieres saber todos los empleados + clientes sin repetir (puede ser que existan empleados que son clientes). Es decir juntar las 2 tablas en 1 pero quitando los repetidos.

La join o union natural se produce por ejemplo cuando quieres saber por ejemplo una tabla tiene los datos de los clientes y en otra los numeros de telefono (un cliente puede tener infinitos telefonos en este caso)
Tabla cliente
-----------------------
dni ! Nombre
45594789u ! Karaculo
565656565t!pepito


Tabla telefono
-----------------------
dni ! telefono
45594789u ! 34565656
45666669u ! 34533333


Bueno, pues la union natural quedaria asi
Union
------------------------------

dni ! Nombre
45594789u ! Karaculo! 34565656
565656565t!pepito!

Date cuenta que pepito no tiene telefono y aparece en la union natural pero el telefono que su dni no corresponde con ningun cliente no aparece.



Espero haberte ayudado.


En internet tienes cientos de tutoriales.
Hola, gracias por la respuesta. Estuve muy desanimado porque si tengo que saber eso para seguir, pues ya me daba por suspendido.

En fin, a ver cómo va la cosa, y si alguien quiere puede darme más opiniones.


PD: gracias por los tutoriales.
Gracias por el tutorial, a mi tambien me ha servido jeje
Karaculo escribió:"No necesitas saber algebra relacional".
Las consultas yo directamente le metia mano a sql.
Aqui tienes un tutorial con ejemplos
http://bd.eui.upm.es/BD/docbd/tema/algebra.pdf
Segun parece la union es cuando tienes 2 tablas ejemplo: empleados y clientes, con dni, nombre, direccion y quieres saber todos los empleados + clientes sin repetir (puede ser que existan empleados que son clientes). Es decir juntar las 2 tablas en 1 pero quitando los repetidos.

La join o union natural se produce por ejemplo cuando quieres saber por ejemplo una tabla tiene los datos de los clientes y en otra los numeros de telefono (un cliente puede tener infinitos telefonos en este caso)
Tabla cliente
-----------------------
dni ! Nombre
45594789u ! Karaculo
565656565t!pepito


Tabla telefono
-----------------------
dni ! telefono
45594789u ! 34565656
45666669u ! 34533333


Bueno, pues la union natural quedaria asi
Union
------------------------------

dni ! Nombre
45594789u ! Karaculo! 34565656
565656565t!pepito!

Date cuenta que pepito no tiene telefono y aparece en la union natural pero el telefono que su dni no corresponde con ningun cliente no aparece.



Espero haberte ayudado.


En internet tienes cientos de tutoriales.



Es muy fácil, sabes algo de SQL?

En este caso seria algo asi:

Select C.DNI, C.Nombre, T.Telefono from Clientes C, Telefono T where c.DNI=t.DNI


Como puedes observar el único dato que coincide en las dos tablas es el DNI y es ahi donde tienes que hacer la relacion.
Si, mas o menos lo entiendo (todavía no hemos empezado con SQL) pero la pregunta es si es necesario saber álgebra relacional para poder hacer consultas, o se puede hacer sin saber eso.
Es necesario el Algebra Relacional, vamos no necesario, impresicindible. Ten en cuenta que nunca vas a hacer una consulta fácil con una sola tabla.
"Select * form Empleados"
Siempre va a ser combinaciones de 2-3 tablas como minimo.

Haz ejercicios y Ejercicios y mas Ejercicios y lo pillaras. Ahora que tienes vacaciones, dedicate a ello.
Para mi no es necesario, al final lo que vas a utilizar es el modelo entidad relacion, el algebra relacional seria la forma de expresar las relaciones entre entidades en lenguaje matematico. Es mas, se sql (trabaje durante algunos años en un sistema datawareHouse)pero no me acuerdo de una mierda del algebra relacional.
Karaculo escribió:Para mi no es necesario, al final lo que vas a utilizar es el modelo entidad relacion, el algebra relacional seria la forma de expresar las relaciones entre entidades en lenguaje matematico. Es mas, se sql (trabaje durante algunos años en un sistema datawareHouse)pero no me acuerdo de una mierda del algebra relacional.



Es cierto que apartir del modelo E-R creas las tablas y eso, y que hay que saber muy bien que PK pones para poder relacionar las tablas, pero aun asi yo lo veo necesario.
8 respuestas