La notacion de chen - SanchezFelipe01/modewiki GitHub Wiki

La notación de Chen

Esta notación fue propuesta por Peter Chen y es una de las más populares en el mundo para ilustrar el diseño lógico de las bases de datos relacionales.

Para mostrar los elementos de esta notación usaremos como ejemplo el servicio de reproducción de música online Spotify, el cual requiere guardar información sobre sus usuarios, artistas, canciones, etc. (El ejemplo se desarrollará a fondo más adelante).

  1. Entidades

    En el Modelo conceptual vimos que las entidades tienen la función de guardar información relevante sobre los entes participantes de la situación modelada. En este caso se ilustra la entidad Cuenta.

    Las entidades en esta notación se representan mediante rectángulos con su nombre dentro de ellos.

    Entidad

    Las entidades débiles se presentan con dos rectángulos encerrando el nombre de la entidad. Canción es una entidad débil ya que su nombre no basta para identificarse de manera única (pueden existir dos canciones distintas con el mismo nombre).

    Entidad débil

    Recuerda...
    
    que los nombres de las entidades empiezan con letra mayúscula y siempre deben estar en singular.
    
  2. Atributos

    Los atributos guardan la información relevante de las entidades, se pitan como elipses que contienen en su interior el nombre y están unidos a su entidad mediante una línea.

    El atributo contraseña es uno de los atributos de la entidad Cuenta el cual se requiere conocer pues es necesario para que los usuarios puedan acceder a la plataforma.

    Entidad-atributo

    Cuenta es una entidad fuerte y por lo tanto debe tener una Llave primaria única para identificarla entre todas las demás cuentas. El atributo usuario es este identificador pues Spotify no permite que existan dos usuarios iguales.

    Las llaves o claves primarias son atributos que tienen su nombre subrayado.

    Entidad-llave

    Recuerda...
    
    que los atributos se escriben en minúscula y deben ser concisos y claros.
    
  3. Relaciones

    Las relaciones se representan con rombos que unen a las entidades que participan en la relación. Una entidad se puede relacionar con otra en una relación binaria , con varias en una relación n-aria y con ella misma en un tipo de relación llamada relación recursiva.

    • Relación binaria: En nuestro ejemplo, existen PlayList asociadas a una cuenta. La relación Cuenta-Tiene-PlayList se muestra a continuación.

      Relación binaria

    • Relación n-aria(ternaria): En Spotify las personas pueden crear cuentas para escuchar su música. Estas cuentas trabajan sobre un dispositivo electronico (smartphone, smartTV, computador, etc.). Esta situación se puede modelar con una relación ternaria entre las entidades Persona, Cuenta y Dispositivo.

      Relación n-aria

    • Relación recursiva: Las relaciones recursivas ocurren cuando dos objetos del mismo tipo interactúan. En el caso de la plataforma, las personas pueden seguirse entre sí.

      Relación recursiva

  4. Cardinalidades

    La cardinalidad se representa con un numero (o letra) a cada extremo de la relación.

    La notación de Peter Chen nos permite construir relaciones De 1 a 1, De 1 a muchos y De muchos a muchos.

    • Relación de 1 a 1: En Spotify una Persona solo puede tener una cuenta. Esto se debe a que en el momento de registrarse cada individuo debe proporcionar un correo electrónico (que actúa como su clave primaria ), la plataforma al momento de enviar la solicitud de registro busca en su base de datos si el email proporcionado existe desde antes, si es así el registro se invalida.

      1 to 1

    • Relación de 1 a muchos: Una vez tengas tu cuenta, puedes agrupar canciones de la forma que quieras mediante las Listas de Reproducción o PlayList. Puedes crear tantas listas como quieras... o no crear ninguna.

      Relación 1 a muchos

    • Relación de muchos a muchos: Puedes agregar una canción a la cantidad de playlists que desees. Esto es reciproco, tus playlists pueden tener las canciones que quieras.

      n to n

  5. Participación

    Para ilustrar la idea de participación se usará la anterior relación de 1 a muchos. Las entidades que son opcionales presentan un circulo blanco en la linea que las une al rombo que representa la relación.

    participación

    En este ejemplo, la Cuenta es la entidad mandatoria debido a que esta debe existir para poder crear las playlists.

  6. Roles

    El rol de una entidad en una relación se muestra al poner este sobre la linea que une la entidad con la relación. Por ejemplo, en una relación recursiva:

    rol-relacion_recursiva

    La persona con el rol de seguidor sigue a la persona con el rol seguido.

    Recomendación:
    A la hora de crear una base de datos no es buena idea tener relaciones en donde ambas entidades sean mandatorias 
    debido a que esto imposibilitaría la creación de instancias de ambas entidades.