Bases de Datos - Consulta de un DER (ayuda me estanque)

 
Vista:
sin imagen de perfil

Consulta de un DER (ayuda me estanque)

Publicado por daniel (5 intervenciones) el 26/07/2023 16:37:57
hospitalizacionesPNG

La maestra en cuestion me dio observaciones:

-Si un medico tiene varias especialidades en un ingreso, como se sabe cual es la especialidad por la que ingresa el paciente?

-si una habitacion tiene varias camas, como se sabe que cama se le asigna a un paciente cuando ingresa?

-en la relacion medicamento-tratamiento puso que los tratamientos son por medicamento pero al poner la cardinalidad 1:1 me comento que estaba incorrecto
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Consulta de un DER (ayuda me estanque)

Publicado por Duro (1 intervención) el 27/07/2023 18:34:15
Si efectivamente las observaciones que te hacen son correctas, se requieren varias tablas intermedias que normalicen porque en todos los casos se trata de relaciones M:M

Para poder saber si un galeno posee varias especialidades, hay que tener una tabla intermedia que sea capaz de reflejar las especialidades que posee, aunque es algo extraño que un médico sea capaz de especializarse en varias áreas (Tendría que tener mucho tiempo libre como para ser capaz de especializarse en pediatría y ortopedia por ejemplo), para el ejemplo es válido pero en el mundo real es muy difícil que se de algo así.

Respecto a lo de las camas, es obvio, hay que sacar otra estructura que refleje número de cama con número de paciente, porque en una misma habitación seguramente habrá más de un paciente compartiendo la habitación pero cada uno en cama diferente.

Y finalmente lo de medicamentos y tratamientos, es claro que un tratamiento puede requerir más de un medicamento, luego no es una relación 1:1, e incluso esa relación es mucho más compleja porque eventualmente un paciente puede tener varias enfermedades con múltiples sintomas y sea necesario someterle a varios tratamientos, y cada tratamiento a su vez puede requerir múltiples medicamentos, lo que te da para varias relaciones de tipo M:M

Y eso desde luego se tiene que normalizar para poder que quede adecuadamente normalizado en 3NF, y para evitar este problema, puede dividir la relación de muchos a muchos en dos relaciones de uno a muchos mediante el uso de una tercera tabla denominada tabla de unión. Cada registro de una tabla de unión incluye un campo de coincidencia que contiene el valor de las claves principales de las dos tablas que se unen. (En la tabla de unión, estos campos de coincidencia son claves externas). Estos campos de clave externa se rellenan con datos, ya que los registros de la tabla de unión se crean desde cualquiera de las tablas que se unen.

Así las cosas te debe quedar una tabla con especialidades y otra con medicos y en medio de ellas una que relacione medico con cada una de las especialidades que pueda tener.

Las habitaciones por su parte se identifican en una tabla con un id único y se saca otra tabla aparte donde se lleva ese id con otro que identifica cada cama, luego esa tupla se lleva a otra estructura donde se relaciona con el id paciente (No de paciente), recomiendo crear un id autonumérico la tabla donde se relaciona habitación con cama , a fin de llevar un solo dato a la que se relaciona con el paciente, para no manejar claves múltiples que complican el asunto.

La de tratamiento con medicamento, es crear una estructura donde se identifique cada medicamento y se lleva a una intermedia con el id que identifique el tratamiento y el paciente implicado (Ojo pues que un paciente puede estar siendo sometido a varios tratamientos a la vez)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de un DER (ayuda me estanque)

Publicado por anonymous (1 intervención) el 27/07/2023 23:36:23
Daniel, es correcta la apreciación tanto de tu docente como del usuario que te escribió antes.

Me atreví a crear un tentativo MER en MaríaDB.

Sin embargo, me quedó una duda con respecto al atributo duración que tienes en la entidad medicamento, si se refiere a la fecha de vencimiento del medicamento como tal, y/o se refiere a la duración del tiempo que deberá consumirlo el paciente, y de ser así ese atributo debería estar pegado a la entidad tratamiento más bien.

Por último, veo que tienes relacionadas las entidades ingreso y tratamiento, y en el rombo o interrelación le colocaste “se receta”

No se receta un tratamiento, se receta es un medicamento que queda asociado a un tratamiento en un momento dado, considero que esa relación sin estar del todo mala, la entidad tratamiento debería estar relacionada es con la entidad paciente, pues es este último quien se somete a un tratamiento.

Y no necesariamente un tratamiento está asociado a un ingreso, el ingreso se refiere a que hay un ingreso valga la redundancia a un centro hospitalario, pero no necesariamente implica que deba haber una hospitalización, yo como paciente puedo seguir un tratamiento ordenado por un médico y lo puedo hacer desde casa, sin que tenga que quedarme en el centro hospitalario, porque así como lo tienes estás obligando a que todo tratamiento requiere hospitalización y ocupación de cama y habitación, si es que el ejemplo exige que así sea bien está, pero en la vida real no es así.

En el paso de DER a MER se debe tener en cuenta lo siguiente:

1. Las entidades pasan a ser tablas (=Relaciones), donde los atributos pasan a ser las columnas y el ID termina siendo un Primary Key.

2. Las interrelaciones o rombos se convierten en FK, teniendo en cuenta que relaciones de tipo 1:1 y 1:N pasan a ser una de las tablas, o bien dependiendo de la cardinalidad dan origen a una nueva tabla para normalizar las relaciones (M:M)

Observar video:
https://www.youtube.com/watch?v=joYCYDK_Ndg&list=PLfKXnJPGTzkw2ax5KarYmhUYSWXh4TF8O&ab_channel=Nettorius

Y finalmente este es un tentativo MER (No necesariamente tiene que quedar así)
64c2e30828278-esperanza_db
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de un DER (ayuda me estanque)

Publicado por daniel (5 intervenciones) el 28/07/2023 00:38:22
Muchas gracias por tomarse el tiempo, contestando su duda, el atributo duracion en la entidad medicamento si lo terminamos quitando y dejandolo solo en la entidad tratamiento.
Me parecio una gran observacion lo de relacionar la entidad paciente con tratamientos, no lo habiamos pensado sin embargo, creo que para el proyecto nos facilita que se conserve asi.

Esto es para un proyecto mas grande y ya tenemos MR, DD y estamos haciendo un catalogo de datos sin embargo; el tiempo que nos asignaron es demasiado corto. Sabemos que es importante tener el DER correctamente para proceder con todo lo demas.
Donde mas nos cuesta entender es como asignar camas, no entendemos mucho la entidad "disponibilidad"
ni que atributos ponerle, seria mucho de ayuda tener su asesoramiento, no buscamos que nos resuelvan todo pero al final del dia queremos entender lo que hacemos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta de un DER (ayuda me estanque)

Publicado por hola (2 intervenciones) el 28/07/2023 00:47:54
La disponibilidad no es una entidad a mi modo de ver..

Disponibilidad es un atributo de la habitación que determina si esa habitación cuenta con camas disponibles y desocupadas para asignarle a un paciente.

En otras palabras no es más que un atributo de tipo yes/no que por default estará en un estado y cuando se ocupan todas las camas pertenecientes a esa habitación cambia de estado, un sistema informático bien construido estará corriendo un hilo que vigile si hay camas disponibles en una habitación, mientras las haya debe iluminar algún botón en verde, para indicarle al usuario que si llega un paciente le puede asignar esa habitación, una vez que todas esas camas estén ocupadas, deberá cambiar a una luz roja para indicar que está toda ocupada, algo así como funciona un semáforo, por eso si usted mira la estructura tbl_habitacion_cama tiene un atributo llamado disponibilidad

Y lo de la relación entre tratamiento y paciente es claro que está mal, lo deben corregir, porque sino la docente se los cobra.

Yo se lo monté en MariaDB. En la tabla que llamé tbl_Sintoma faltó una columna para describir ese sintoma, eso hay que hacerlo así porque sintoma es un atributo multivaluado y una enfermedad está asociada a múltiples sintomas, algo así como un cuadro gripal puede presentar fiebre, dolor muscular, tos, fatiga, congestión nasal entre otros (todos ellos son un sintoma diferente) y por eso se debe llevar aparte a otra estructura.

Cualquier duda no es sino que pregunte y lo montamos en el motor que requiera (Oracle, MySQL, Postgress)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de un DER (ayuda me estanque)

Publicado por daniel (5 intervenciones) el 28/07/2023 01:07:45
lo que pasa es que la maestra nos dio esa entidad disponibilidad, nosotros lo pensamos de igual manera de hecho la teniamos como atributo que funciona como ha comentado siendo un booleano sin embargo la maestra desecho esa opcion diciendo que para el der no era posible. nos dijo que la clave estaba en el atributo clave pero nos quedamos sin poder resolverlo.
lo estamos haciendo en mysql usando xampp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta de un DER (ayuda me estanque)

Publicado por hola (2 intervenciones) el 28/07/2023 01:24:30
Daniel, dejar esa entidad llamada disponibilidad en el DER es hasta cierto punto "válido" pero solo en el DER

Ya en el MER esa entidad termina siendo la que se llamó: tbl_habitacion_cama y esa disponibilidad pasa a ser un atributo.

Que se puede obviar, si, lo que pasa es que es más fácil y rápido para un sistema mediante un query preguntar por un campo disponibilidad que si por ejemplo está en false quiere decir que esa habitación no cuenta con camas disponibles, si ese campo no existe como columna en esa tabla que habría que hacer para evaluar la disponibilidad

Ir a contar una por una las camas de cada habitación y evaluar si tienen paciente en ella, que también se puede, más lento, pero es cuestión de diseño, y en esto cada quien tendrá su punto de vista.

Para cortar este hilo, le enviaré por el correo interno de lwdp mi whatsapp y ya le puedo asesorar mejor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de un DER (ayuda me estanque)

Publicado por daniel (5 intervenciones) el 28/07/2023 23:01:26
no me llego el correo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de un DER (ayuda me estanque)

Publicado por anonymous (1 intervención) el 28/07/2023 23:09:54
Revisalo ya
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar