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

[Diagrama] Entidad - Relación

Estas en el tema de [Diagrama] Entidad - Relación en el foro de Bases de Datos General en Foros del Web. Hola a todos, Estoy en el proceso de diseño de un diagrama de entidad relación para crear una BD. Aparentemente me parece bastante facil, pero ...
  #1 (permalink)  
Antiguo 17/07/2011, 09:33
 
Fecha de Ingreso: abril-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 0
[Diagrama] Entidad - Relación

Hola a todos,

Estoy en el proceso de diseño de un diagrama de entidad relación para crear una BD.

Aparentemente me parece bastante facil, pero no puede serlo tanto. Decir que hace bastante tiempo que no toco las creaciones de BD y diseños de entidad-relación y bueno ahora me ha tocado hacerlo.

Problema en cuestión:

El problema a tratar versa sobre una linea de autobuses y su estructura.

Tenemos:

1.- Lineas (Lineas de autobuses... seria una entidad - tabla)
2.- Trayectos (Cada linea posee una serie de trayectos que la conforman.)
3.- ParadasTrayectos (Cada Trayecto a su vez esta formado por una serie de paradas de bus que conforman un trayecto definido.)
4.- Paradas (Unidad minima digamos. que conforman las paradas trayectos)


Viendolo asi... aparemente esta todo muy definido y la solucion que se me ha ocurrido es la siguiente...




A ver que os parece, se que tiene una pinta bastante facilona.... pero no se si estaria bien del todo y no necesitaria esa agregacion ...etc.



Saludos.
  #2 (permalink)  
Antiguo 17/07/2011, 10:08
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: [Diagrama] Entidad - Relación

Holas,

Una consulta, me imagino que ParadasTrayectos es un relacion de TRAYECTOS y Paradas, y si haces una agregacion de LINEAS y TRAYECTOS que tendria que ver todo eso con ParadasTrayectos?, porque creo que solo tendria cabida a la tabla TRAYECTOS mas no a LINEAS porque LINEAS solo es para TRAYECTOS o no?.

Saludos
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 17/07/2011, 10:40
 
Fecha de Ingreso: abril-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 0
Respuesta: [Diagrama] Entidad - Relación

Cita:
Iniciado por gildus Ver Mensaje
Holas,

Una consulta, me imagino que ParadasTrayectos es un relacion de TRAYECTOS y Paradas, y si haces una agregacion de LINEAS y TRAYECTOS que tendria que ver todo eso con ParadasTrayectos?, porque creo que solo tendria cabida a la tabla TRAYECTOS mas no a LINEAS porque LINEAS solo es para TRAYECTOS o no?.

Saludos

Ok ... creo haber dado con la solución a esa parte.

Es decir, La relacion "contiene" entre lineas y Trayectos.... viene a ser la tabla "paradastrayectos".

Te pego aqui el codigo de la BD real...

Cita:
LINEA

idLinea: 1 Tipo: NORMAL Descripcion: CERILLERO - HOSPITAL DE CABUEÑES

TRAYECTOS

idTrayecto: 1 idLinea: 1 Descripcion: L-1. CERILLERO - HOSPITAL DE CABUEÑES
idTrayecto: 2 idLinea: 1 Descripcion: L-1. HOSPITAL DE CABUEÑES - CERILLERO
idTrayecto: 6 idLinea: 1 Descripcion: L-1. HOSPITAL DE CABUEÑES - CERILLERO

PARADASTRAYECTOS

pondre solo las "paradastrayectos de idtrayecto 1 - idlinea 1" ya que son muchas.

idLinea: 1 idTrayecto: 1 Orden: 0 Descripcion: CAMINO DE RUBÍN
idParada: 181 idLinea: 1 idTrayecto: 1 Orden: 1 Descripcion: INEM
idParada: 141 idLinea: 1 idTrayecto: 1 Orden: 2 Descripcion: GRAN CAPITÁN
idParada: 136 idLinea: 1 idTrayecto: 1 Orden: 3 Descripcion: PRAO DEL CUBANO
idParada: 137 idLinea: 1 idTrayecto: 1 Orden: 4 Descripcion: URUGUAY
idParada: 8 idLinea: 1 idTrayecto: 1 Orden: 5 Descripcion: CASA DEL MAR
idParada: 9 idLinea: 1 idTrayecto: 1 Orden: 6 Descripcion: CUATRO CAMINOS
idParada: 10 idLinea: 1 idTrayecto: 1 Orden: 7 Descripcion: SANTA OLAYA
idParada: 138 idLinea: 1 idTrayecto: 1 Orden: 8 Descripcion: DOS DE MAYO
idParada: 214 idLinea: 1 idTrayecto: 1 Orden: 9 Descripcion: PLAZA DE LA HABANA
idParada: 13 idLinea: 1 idTrayecto: 1 Orden: 10 Descripcion: ESTACIÓN DEL NORTE
idParada: 14 idLinea: 1 idTrayecto: 1 Orden: 11 Descripcion: MUSEO DEL FERROCARRIL
idParada: 15 idLinea: 1 idTrayecto: 1 Orden: 12 Descripcion: PEDRO DURO
idParada: 16 idLinea: 1 idTrayecto: 1 Orden: 13 Descripcion: F.E.V.E.
idParada: 17 idLinea: 1 idTrayecto: 1 Orden: 14 Descripcion: GOTA DE LECHE (LADO MAGNUS BLIKSTAD)
idParada: 18 idLinea: 1 idTrayecto: 1 Orden: 15 Descripcion: BEGOÑA
idParada: 19 idLinea: 1 idTrayecto: 1 Orden: 16 Descripcion: CABRALES
idParada: 20 idLinea: 1 idTrayecto: 1 Orden: 17 Descripcion: RECONQUISTA
idParada: 21 idLinea: 1 idTrayecto: 1 Orden: 18 Descripcion: RAMÓN Y CAJAL
idParada: 22 idLinea: 1 idTrayecto: 1 Orden: 19 Descripcion: CODEMA
idParada: 83 idLinea: 1 idTrayecto: 1 Orden: 20 Descripcion: PLAZA DE TOROS
idParada: 84 idLinea: 1 idTrayecto: 1 Orden: 21 Descripcion: LA ASUNCIÓN
....
...
..

Quedaría una relación Ternaria tal que....


PARADAS

|
LINEAS - esta formada por - TRAYECTOS


Creo no lo se.


Pero si ahora quiero una tabla de "autobuses". Decir que por atributos tiene las claves primarias de paradas, lineas y trayectos.

Autobus:
idAutobus, idLinea, idTrayecto, idParada , Localizacion, Minutos, Distancia, idSiguienteParada.





Pues nada un saludo!.
  #4 (permalink)  
Antiguo 17/07/2011, 10:48
 
Fecha de Ingreso: abril-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 0
Respuesta: [Diagrama] Entidad - Relación



Haber que os parece este nuevo modelo.
  #5 (permalink)  
Antiguo 17/07/2011, 11:07
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: [Diagrama] Entidad - Relación

Creo que podria ser asi:



Luego en tus tablas mas o menos asi:

Cita:
Lineas:
IdLinea (PK)
Descripcion



Trayectos:
IdTrayecto (PK)
IdLinea (FK)
Descripcion


Paradas:
IdParada (PK)
...


ParadasTrayectos:
IdParadaTrayecto (PK)
IdParada (FK)
IdTrayecto (FK)
Orden
Descripcion
...



Autobus:
IdAutoBus (PK)
IdLinea (FK)
...


Recorrido:
IdRecorrido (PK)
IdAutoBus (FK)
Localizacion
Minutos
Distancia
IdSiguienteParada
....

Saludos
__________________
.: Gildus :.
  #6 (permalink)  
Antiguo 17/07/2011, 11:16
 
Fecha de Ingreso: abril-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 0
Respuesta: [Diagrama] Entidad - Relación

Cita:
Iniciado por gildus Ver Mensaje
Creo que podria ser asi:



Luego en tus tablas mas o menos asi:




Saludos

Hola de nuevo, y gracias por molestarte en constestar amigo.

en paradasTrayectos... tengo:

idParada, idLinea, idTrayecto || por lo que creo que la tripleta que puse antes es patente... Creo!.

respecto a los buses... pues creo que estaria bien ese "transita" lineas.

sin más!, puesto que el transitar una linea es sinonimo de transitar trayectos ya que son contenidos por esta.

Que opinas?,


  #7 (permalink)  
Antiguo 17/07/2011, 11:25
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: [Diagrama] Entidad - Relación

En tu tabla paradasTrayectos, no creo que sea necesario redundar el campo idLinea, ya que con IdTrayecto suficiente podrias saber a que IdLinea pertenece, por eso te lo puse como un FK; igual es en Autobuses No creo que deberias de colocar campos que son redundantes, y en si ya no tendria cabida las relaciones o FK.

Luego lo de transitar es perfecto, en si transitar podria ser un vista en tus tablas pero eso ya tendrias que normalizarlo aun mas, pero desde alli estaria super!!!.

Saludos
__________________
.: Gildus :.
  #8 (permalink)  
Antiguo 17/07/2011, 11:28
 
Fecha de Ingreso: abril-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 0
Respuesta: [Diagrama] Entidad - Relación

De todas formas....

voy a dejar la información completa de las tablas que tengo.


Cita:
Lineas:
idLinea : Integer
Descripcion : String
Tipo : String


Trayectos:
idTrayecto : Integer
idLinea : Integer
Descripcion : String
idCabecera : Integer
Direccion : Integer
Destino : String


ParadasTrayectos:

idParada : Integer
idLinea : Integer
idTrayecto : Integer
Orden : Integer
Descripcion : String


Paradas:

idParada : Integer
Descripcion : String
utmX : Integer
utmY : Integer



Autobus:

idAutobus : String
Matricula : String
Modelo : String
idLinea : Integer
idTrayecto : Integer
idParada : Integer
OrdenParada : Integer
utmX : Integer
utmY : Integer
HoraActualizacion : String
FechaActualizacion : DateTime
idSiguienteParada : Integer
Minutos : Integer
Distancia : Double





  #9 (permalink)  
Antiguo 17/07/2011, 11:30
 
Fecha de Ingreso: abril-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 0
Respuesta: [Diagrama] Entidad - Relación

Cita:
Iniciado por gildus Ver Mensaje
En tu tabla paradasTrayectos, no creo que sea necesario redundar el campo idLinea, ya que con IdTrayecto suficiente podrias saber a que IdLinea pertenece, por eso te lo puse como un FK; igual es en Autobuses No creo que deberias de colocar campos que son redundantes, y en si ya no tendria cabida las relaciones o FK.

Luego lo de transitar es perfecto, en si transitar podria ser un vista en tus tablas pero eso ya tendrias que normalizarlo aun mas, pero desde alli estaria super!!!.

Saludos
Aver te comento.

El caso es que la estructura que te acabo de poner más arriba. El modelo relacional... pues es de una BD real. Y claro... ando buscando la forma de ponerlo en forma de entidad-relacion.
  #10 (permalink)  
Antiguo 17/07/2011, 11:57
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: [Diagrama] Entidad - Relación

Si analisas la tabla:

Autobus:
--------------------------
idAutobus : String
Matricula : String
Modelo : String
idLinea : Integer
idTrayecto : Integer
idParada : Integer
OrdenParada : Integer
utmX : Integer
utmY : Integer
HoraActualizacion : String
FechaActualizacion : DateTime
idSiguienteParada : Integer
Minutos : Integer
Distancia : Double


Un autobus pertenece a un trayecto? o a una linea? o a una parada?, tienes que definir en si como se relacionan, segun a simple vista y lo mas adecuado para que normalices seria: Un autobus pertenece a una sola linea y que en esa linea tenga uno o varios trayectos y que cada trayecto tiene 1 o varias paradas, por lo que bastaria tener solo el campo IdLinea en la tabla Autobus.

Luego tambien analiza los campos:

utmX : Integer
utmY : Integer
HoraActualizacion : String
FechaActualizacion : DateTime
idSiguienteParada : Integer
Minutos : Integer
Distancia : Double


Esos campos varian a cada momento?, si es asi deberias de separarlos en otra tabla (asi optimizas tiempo y cargas a tu base de datos), en un grafico anterior te puse una tabla de recorrido, que seria una tabla que cambiaria sus datos cada rato, y en la tabla autobuses solo quedaria en si el dato del autobus,

Ahora en tu tabla:

Paradas:
------------------------
idParada : Integer
Descripcion : String
utmX : Integer
utmY : Integer


Son datos fijos? o cambian a cada instante?, si son fijos, entonces solo bastaria con usar el campo idParada de esa tabla en la tabla ParadasTrayectos.

Solo como comentario, en cada tabla trata de siempre usar el id primario o PK, como unico en tu base de datos, por ejemplo:

Lineas:
idLinea : Integer

Trayectos:
idTrayecto : Integer

ParadasTrayectos:
idParaTrayecto: Integer

Paradas:
idParada : Integer


Autobus:
idAutobus : Integer


Espero que pueda ayudarte con eso, y puedas analizarlo con tu logica en general de tu sistema, que es muy interesante sobre el transporte.

Saludos
__________________
.: Gildus :.

Etiquetas: bd, entidad, tabla, 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 18:02.