Requisito previo: modelo ER
Una relación entre dos entidades de un tipo de entidad similar se denomina relación recursiva . Aquí el mismo tipo de entidad participa más de una vez en un tipo de relación con un rol diferente para cada instancia. En otras palabras, una relación siempre ha sido entre ocurrencias en dos entidades diferentes. Sin embargo, la misma entidad puede participar en la relación. Esto se denomina una relación recursiva .
Ejemplo:
supongamos que tenemos una tabla de empleados. Un gerente supervisa a un subordinado. Cada empleado puede tener un supervisor excepto el CEO y puede haber como máximo un jefe para cada empleado. Un empleado puede ser el jefe de más de un empleado. Supongamos que REPORTS_TO es una relación recursiva en el tipo de entidad Empleado donde cada Empleado desempeña dos roles.
- Supervisor
- Subordinar
Los supervisores y subordinados se denominan «Nombres de roles» . Aquí el grado de la relación REPORTS_TO es 1, es decir, una relación unaria.
- La cardinalidad mínima de la entidad Supervisora es CERO ya que el empleado de nivel más bajo no puede ser gerente de nadie.
- La cardinalidad máxima de la entidad Supervisora es N ya que un empleado puede gestionar muchos empleados.
- De manera similar, la entidad Subordinada tiene una cardinalidad mínima de CERO para dar cuenta del caso en que el CEO nunca puede ser un subordinado.
- Su cardinalidad máxima es UNO ya que un empleado subordinado puede tener como máximo un supervisor.
Nota – Aquí ninguno de los participantes tiene participación total ya que ambas cardinalidades mínimas son Cero. Por lo tanto, las relaciones están conectadas por una sola línea en lugar de una línea doble en el diagrama ER.
Para implementar una relación recursiva, se mantendría una clave externa del número de gerente del empleado en cada registro de empleado. Una tabla de muestra se vería así:
Emp_entity( Emp_no,Emp_Fname, Emp_Lname, Emp_DOB, Emp_NI_Number, Manager_no); Manager no - (this is the employee no of the employee's manager)
Este artículo es una contribución de Siddhant Bajaj 2 . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA