Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

generalizacion

Estas en el tema de generalizacion en el foro de Bases de Datos General en Foros del Web. Hola.....bueno en los mensajes anteriores se habla de generalizacion.......ahora mi duda es la siguiente: supongamos que tenemos: la TABLA PERSONA y una persona puede ser ...
  #1 (permalink)  
Antiguo 01/06/2010, 13:31
Avatar de lilith_sr  
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 113
Antigüedad: 17 años, 3 meses
Puntos: 2
generalizacion

Hola.....bueno en los mensajes anteriores se habla de generalizacion.......ahora mi duda es la siguiente:

supongamos que tenemos:
la TABLA PERSONA y una persona puede ser un :
* ESTUDIANTE
* TRABAJADOR
* INVITADO

entonces........

supongamos que utilizamos generalizacion para representar esto, es decir, que tenemos la tabla PERSONA como una superclase.

y las tablas de ESTUDIANTE, TRABAJADOR e INVITADO tienen la llave primaria de la superclase PERSONA.

ahora mi duda es la siguiente:

que hago si por ejemplo quiero obtener toda la informacion de una persona sin importar si es estudiante, trabajador o invitado. como seria la logica de la consulta sql???
alguna idea de como se hace???.......
  #2 (permalink)  
Antiguo 01/06/2010, 15:01
Avatar de andresqui  
Fecha de Ingreso: septiembre-2009
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: generalizacion

se supone que toda persona tiene un rut, haciendole una consulta en base al rut se puede describir las caracteristicas individuales de la PERSONA, debieras olvidarte de la tabla PERSONAS para hacer una consulta, ya que esa tabla sirve para que se hereden atributos en comunes de ESTUDIANTE, TRABAJADOR e INVITADO(atributos comunes como el mismo rut,nombre,edad,etc que toda persona tiene), pero existen atributos que no son heredables sino que son exclusivos de ESTUDIANTE(ejemplo el que nivel de estudia esta),TRABAJADOR(ejemplo cuanto es su sueldo al mes) Y INVITADO(mmm no entiendo muy bien el porque el nombre de esta tabla), me gustaria saber porque le quieres hacer una consulta a la persona, si la persona en si son los ESTUDIANTE,TRABAJADOR E INVITADO,si le haces una consulta a la PERSONA no tendra los datos exclusivos que te podran entregar las 3 tablas hijas,mmm espero haberte dado entender mi posicion al respecto....
  #3 (permalink)  
Antiguo 01/06/2010, 15:10
Avatar de lilith_sr  
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 113
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: generalizacion

Hola!.... bueno

primero, los nombres de las tablas los puse solo para ejemplificar lo que quiero hacer.

y bueno efectivamente la tabla persona tiene atributos como nombre, id, edad, etc.

y en las otras tablas tengo otros atributos que no son comunes.

entonces lo que quiero hacer es:

por ejemplo:

kiero obtener TODA la informacion de una persona sin importar si es estudiante, trabajador o invitado.

me explico???

Gracias por la ayuda
  #4 (permalink)  
Antiguo 01/06/2010, 15:18
Avatar de andresqui  
Fecha de Ingreso: septiembre-2009
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: generalizacion

en ese caso "SELECT * from PERSONA"
si es lo que quieres, como dices sin importar si es estudiante o trabajador o invitado

mmm pero creo que tu duda va por otro lado
  #5 (permalink)  
Antiguo 01/06/2010, 18:54
Avatar de lilith_sr  
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 113
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: generalizacion

si mira:

supongamos lo siguiente:


PERSONA tiene atributos : idpersona, nombre y edad

ESTUDIANTE : idpersona (llave foranea de PERSONA), numero_Materias y calificacion

TRABAJADOR: idpersona(llave foranea de PERSONA), sueldo y puesto

INVITADO: idpersona(llave foranea de PERSONA), fecha_visita y motivo


ahora como le hago si por ejemplo quiero obtener toda la informacion de una persona con el idpersona A002 y esta persona es un invitado quiero que la consulta me muestre los atributos: idpersona,nombre, edad, fecha_vistia y motivo

pero si quiero buscar la persona B003 y es un estudiante quiero que la misma consulta me muestre idpersona, nombre,edad numero_Materias y calificacion.....

como seria????

selec <atributos de la persona> from tablas where idpersona=XXXXX

Etiquetas: bases-de-datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:17.