Análise e deseño detallado de aplicacións de informática e de xestión/O modelo entidade-relación

En Galilibros, o Wikibooks en galego.


O modelo entidade-relación propúxoo Peter Chen a mediados dos anos 70 para a representación conceptual dos problemas e coma un medio para representar a visión dun sistema de forma global.

Este modelo está soportado na representación dos datos utilizando gráficos. Mediante un conxunto de símbolos, e facendo uso dun conxunto reducido de regras, represéntanse os elementos que forman parte do sistema e as relacións existentes entre eles.

Conceptos[editar]

Entidade[editar]

No modelo entidade relación considérase que unha entidade é un obxecto real ou abstracto que forma parte do sistema ou do problema a estudar, e que cumpre as seguintes propiedades:

  • Ten existencia propia.
  • Pódese distinguir do resto de entidades (obxectos) que interveñen no sistema.
  • As entidades dun mesmo tipo están definidas en base a un mesmo conxunto de atributos, cada un deles definido nun mesmo dominio.

Unha entidade pode ser un obxecto con existencia física ou un obxecto con existencia conceptual. Unha base de datos contén grupos de entidades similares.

Chamarase tipo de entidade á estrutura xenérica que comparten un conxunto de entidades e ocorrencia de entidade a cada unha das realizacións concretas dese tipo de entidade.

Conxunto de entidades: grupo de entidades do mesmo tipo.

A representación gráfica dun tipo de entidade é un rectángulo etiquetado co nome do tipo de entidade.

Relación[editar]

Un tipo de relación defínese coma unha relación matemática entre n tipos de entidade. Así, o tipo de relación R pode definirse coma:

R = {(e1 , e2 , . ., en) | e1 ∈ E1, e2 ∈ E2, .. en ∈ En}

Onde E1, E2, etc. son tipos de entidade que interveñen no tipo de relación.

As relacións represéntanse cun rombo etiquetado co nome da relación.

Denomínanse ocorrencias da relación aos datos que relacionan a ocorrencia dunha entidade con outra de cada unha das entidades restantes que participan na relación.

Nun diagrama entidade-relación é necesario representar, para cada tipo de relación, as cardinalidades coas que intervén cada tipo de entidade no tipo de relación.

Nestes diagramas as cardinalidades represéntanse mediante unha parella de datos (en minúsculas) seguindo a sintaxe:

(cardinalidade mínima, cardinalidade máxima)

Esta parella de datos vai asociada a cada un dos tipos de entidade que interveñen nun tipo de relación dado.

As parellas de cardinalidades mínima e máxima coa que un tipo de entidade pode intervir nun tipo de relación son: (0, 1), (1, 1), (0, n), (1, n) ou (m, n), que representan os diferentes tipos de correspondencias que se poden presentar entre os elementos dos diferentes conxuntos relacionados.

Cómpre asemade acompañar a representación dos tipos de relación dun diagrama entidade-relación das cardinalidades máximas (en maiúsculas) cos que interveñen nos tipos de entidade relacionados co tipo de relación.

Atributo[editar]

No modelo entidade-relación, as relacións e entidades caracterízanse en base a un conxunto de propiedades, denominadas atributos. Un atributo é o valor que ten a entidade ou relación dentro dun conxunto de posibles valores ou “dominio”.

Por exemplo, o atributo “talle de calzado” estaría no dominio das talles de calzado. Un exemplar de entidade ou relación con dito atributo tería un certo valor de talle de calzado, outro exemplar do mesmo tipo de entidade ou relación tería outro valor, etc. O valor do atributo “talle de calzado” para uns exemplares e outros poderá ser distinto ou igual, pero sempre será unha talle de calzado, nada máis ─nin momentos do día, nin euros de pensión compensatoria, nin estados dun semáforo─.

No modelo entidade-relación, os dominios represéntanse mediante elipses ou círculos etiquetados. Relaciónase cada tipo de entidade ou relación cun determinado dominio a través dun atributo, e esta relación represéntase mediante un arco, etiquetado co nome do atributo, que liga o tipo de entidade co dominio.

No modelo entidade-relación manéxanse varios tipos distintos de atributos. Podemos falar de atributos:

  • obrigatorios ─cando un atributo debe tomar un valor─ ou opcionais ─non é preciso que tome un valor─;
  • univaluados ─que toman un único valor─ ou multivaluados ─que toman varios valores─;
  • elementais ou derivados ─se o seu valor se obtén a partires doutros elementos do esquema entidade-relación─;
  • compostos ─se é un agregado doutros atributos─ ou simples.

Para simplificar a representación dun modelo facendo uso destes diagramas, adoita asignárselle aos atributos o mesmo nome que ao dominio no que están definidos. Deste xeito, pódese eliminar a etiqueta do arco que une o dominio co tipo de entidade ou relación, presupoñendo un nome do atributo igual ao do dominio representado polo círculo.

Clave[editar]

Denomínase identificador dun tipo de entidade ao atributo ou conxunto de atributos que non toma o mesmo valor para dúas entidades diferentes do mesmo tipo. No caso dos conxuntos de atributos deben cumprir a condición de ser mínimos, é dicir, o conxunto de atributos identificadores será tal que se se eliminase algún atributo deste conxunto deixaría de cumprir a propiedade de identificador.

Para un tipo de entidade pode haber máis dun conxunto de atributos que satisfagan esta condición, sendo candidatos para desempeñar este papel de identificación. Nestes casos, a un destes grupos asignaráselle o papel de identificador principal, e ao resto o de identificador alternativo. No diagrama entidade-relación represéntanse estes tipos de atributos cun círculo negro e un círculo coa metade cheo e a metade baleiro respectivamente.

Se entre o conxunto de atributos que forman parte do tipo de entidade non existe ningún conxunto de atributos que satisfagan a propiedade de identificación e non se trata dun tipo de entidade débil, é preciso introducir un novo atributo, alleo á estrutura do tipo de entidade, que satisfaga esta propiedade, posto que senón non sería posible a identificación de diferentes entidades do mesmo tipo.

Grao[editar]

O grao é o número de tipos de entidades que participan nun tipo de relación.

Unha relación é binaria ou de grao 2 cando establece correspondencia entre dúas entidades.

Denomínase relación recursiva ou reflexiva aquela relación que liga ocorrencias dun mesmo tipo de entidade.

Se nunha relación participan máis de dúas entidades denomínase n-aria.

Cardinalidade[editar]

É o número de ocorrencias dun tipo de entidade que poden intervir por cada ocorrencia do outro tipo de entidade ligado.

Adoita falarse de cardinalidade entre dúas entidades de dúas formas:

  1. Simplificada, na que se di que o grao de cardinalidade é 1:1; 1:N; N:1; M:N. Dados dous tipos de entidades, A e B, que teñen unha relación, R, ligada, dise que R é unha:
    • Relación binaria un a un (1:1) se a cada ocorrencia de A lle corresponde como máximo unha ocorrencia de B, e viceversa.
    • Relación binaria un a moitos (1:N) se a cada ocorrencia de A lle poden corresponder varias de B, pero a cada ocorrencia de B lle corresponde como máximo unha de A.
    • Relación binaria moitos a moitos (N:M) se a cada ocorrencia de A lle poden corresponder varias ocorrencias de B e viceversa.
  1. Detallada, na que se especifica a cardinalidade mínima e a máxima nos dous sentidos da relación entre as entidades.

Nas relacións 1:N, no modelo entidade-relación, a relación terá unha punta de frecha apuntando ao elemento da relación ao que lle corresponde “N”. No resto de casos (1:1 e N:M) a relación terá cabezas de frecha sinalando aos dous elementos que forman parte dela.

Participación[editar]

O concepto de participación está ligado á cardinalidade detallada e pode ser participación parcial ou total.

Trátase de participación parcial ou opcional cando a cardinalidade mínima pode tomar un valor 0 ou de participación total ou obrigatoria sen o seu valor ten que ser maior que 0.

Unha entidade ten un tipo de participación obrigatoria ou total nunha relación con outra entidade se a cada ocorrencia da primeira entidade lle corresponde como mínimo unha ocorrencia da segunda.

Pola outra banda, unha entidade ten participación opcional ou parcial se poden existir ocorrencias dela que non teñan correspondencia nunha segunda entidade.

Segundo isto, as relacións binarias tamén se clasificarán en:

  1. obrigatoria-obrigatoria se todas as ocorrencias de cada entidade teñen correspondencia con como mínimo unha ocorrencia da outra;
  2. obrigatoria-opcional se cada ocorrencia da primeira entidade ten ligada polo menos unha ocorrencia da segunda, pero pode haber ocorrencias da segunda que non teñan ligada ningunha ocorrencia da primeira entidade;
  3. opcional-opcional se algunha ocorrencia de ambas as dúas entidades pode non ter correspondencia con ningunha ocorrencia da outra entidade.

Entidades fortes e débiles[editar]

No modelo entidade-relación considéranse dous tipos de entidade:

  • Fortes, cuxa existencia non depende da existencia de ningún outro tipo de entidade na consideración do problema.
  • Débiles, cuxa existencia depende da existencia dun tipo de entidade forte.
    Á súa vez os tipos de entidade débiles poden ser de dous tipos:
  • Debilidade por identificación. Unha entidade débil non pode ser identificada a non ser que se identifique unha entidade forte por cuxa existencia existe a debilidade.
  • Debilidade por existencia. Unha entidade débil pode identificarse sen necesidade de identificar a entidade forte pola que existe.

Un tipo de entidade depende por existencia doutro se para que o primeiro exista é necesario que primeiro exista o segundo.

Se se borra unha entidade que depende por existencia doutra, a segunda segue existindo. Pero se se elimina a segunda, a primeira queda eliminada de maneira automática.

Se hai unha dependencia por existencia hai unha entidade dominante e unha débil.

  • A entidade subordinada é aquela cuxa existencia depende da existencia doutra entidade.
  • A entidade dominante é aquela da que depende a subordinada.

A dependencia por identificación prodúcese cando unha entidade non pode identificarse só polos seus atributos senón tamén polas súas relacións con outra entidade.

Unha debilidade de identificación implica unha debilidade de existencia, pero non ao contrario. Un tipo de entidade débil por existencia non necesariamente require para a súa identificación o tipo de entidade forte pola cal ten existencia.

Do mesmo xeito que os tipos de entidade poden ser fortes ou débiles, os tipos de relación poden ser fortes ou débiles. Un tipo de relación forte representa a relación entre dous tipos de entidades fortes, e ao revés, un tipo de relación débil representa a relación entre un tipo de entidade forte e unha débil, ou tamén dous tipos de entidades débiles.

Os tipos de entidade represéntanse mediante un rectángulo etiquetado, e os tipos de relacións mediante un rombo tamén etiquetado. Os tipos de entidade débiles represéntanse cun dobre rectángulo etiquetado, e os tipos de relacións débiles mediante un rombo no que se indica o tipo de debilidade existente (existencia ou identificación).

Graficamente, as relacións entre os tipos de entidade represéntanse por arcos cuxa punta de frecha sinala ás entidades que interveñen no tipo de relación. Cada arco etiquétase co significado, semántica ou acción que as entidades realizan para a relación que se representa.

Os tipos de entidades débiles teñen unha clave parcial, que é o conxunto de atributos que poden identificar de maneira única as entidades débiles relacionadas coa mesma entidade propietaria.

A clave primaria dun tipo de entidade débil fórmase mediante a clave primaria do tipo de entidade propietario identificador máis a clave parcial do tipo de entidades débiles.

Atributos das relacións[editar]

As relacións poden ter atributos do mesmo xeito que as entidades. Aportan información á relación entre os tipos de entidades.

Do mesmo xeito que as instancias dos tipos de entidade deben poder identificarse sen ambigüidade as instancias dos tipos de relación tamén. Unha relación identifícase xeralmente pola concatenación ou a suma dos atributos que identifican as entidades relacionadas. Do mesmo xeito, os tipos de relación poden ter ligados atributos do mesmo xeito que os tipos de entidade.

Tipos de relacións no modelo entidade-relación[editar]

Relacións reflexivas[editar]

As relacións reflexivas son relacións unitarias, e por tanto consideran que no tipo de relación se ve involucrado un único tipo de entidade.

Relacións exclusivas[editar]

Nun problema do mundo real, un tipo de entidade pode manter relacións cos outros tipos de entidade, pero non sempre estas relacións son independentes.

Para indicar a exclusividade entre dous tipos de relacións que mantén un mesmo tipo de entidade procédese a representar un segmento que corta aos dous arcos que representan a relación do tipo de entidade cos tipos de relacións exclusivas.

Relacións redundantes[editar]

Dise que unha relación é redundante cando a súa eliminación non implica unha perda de semántica porque existe a posibilidade de realizar a mesma asociación de exemplares por medio doutras relacións.

As condicións que ten que cumprir unha relación para que poida eliminarse por redundante son as seguintes:

  • Que exista un ciclo.
  • Que se poidan asociar os exemplares das dúas entidades que estaban relacionadas, aínda que fosen previamente eliminadas da relación.
  • Que a relación ou ben non teña atributos ou ben estes podan transferirse a outra a fin de non perder a súa semántica.

Relacións de grao superior a 2[editar]

Cando se presenta un tipo de relación de grao n (n > 2), precísase analizar se é propiamente de tal grao, xa que ás veces é posible a súa descomposición noutras de menor grao. Outras veces non se pode facer tal descomposición, posto que a semántica recollida nunha e noutra non é a mesma.

Outras restricións sobre relacións[editar]

Ademais das que xa se viron, existen outras restricións que afectan aos tipos de relación e aos seus exemplares, como son: restrición de exclusividade, restrición de exclusión, restrición de inclusividade, e restrición de inclusión. Trátase de extensións do modelo entidade-relación que non é habitual recoller en conxunto, nin tampouco o é diferenciar entre exclusión e exclusividade ou entre inclusión ou inclusividade.

Restrición de exclusividade[editar]

Dise que dous ou máis tipos de relación teñen unha restrición de exclusividade con respecto a un tipo de entidade que participa en ambas as dúas relacións cando cada exemplar de dito tipo de entidade que só pode pertencer a un dos tipos da relación, pero no momento en que pertenza a un xa non poderá formar parte doutro.

Non é obrigatorio que as relacións exclusivas o sexan respecto do mesmo tipo de entidade, senón que poderían selo respecto de distintos tipos.

Restrición de exclusión[editar]

Esta restrición é similar á restrición de exclusividade, pero en lugar de que cada exemplar do tipo de relación só poida pertencer a un dos tipos da relación e non ao outro, cada exemplar só pode pertencer a un dos tipos de relación para cada ocorrencia desa relación.

Restrición de inclusividade[editar]

Esta restrición aplícase cando todo exemplar dunha entidade que participa nun tipo de relación ten necesariamente que participar noutra.

Restrición de inclusión[editar]

Esta restrición aplícase cando todo exemplar dunha entidade que participa nun tipo de relación con outra entidade ten necesariamente que participar con esta segunda entidade mediante un segundo tipo de relación.

Distinción entre relacións repetidas e relacións entre máis de dúas entidades[editar]

En principio, nunha relación só hai dous extremos, o activo (o que realiza a acción) e o pasivo (o que a padece). Ás veces pode darse o caso de que unha mesma relación existe para varias entidades. Por exemplo, un elemento “animal” podería ter unha relación “aliméntase de” que podería afectar a dúas táboas, a “animal” (relación reflexiva) e a “vexetal”. Neste caso, repetiríase a relación, unha vez para o caso da relación entre “animal” e “animal”, e outra vez para a relación entre “animal” e “vexetal”.

É posible que unha relación teña máis de dous extremos. Por exemplo, a alguén se lle podería ocorrer escribir unha soa relación de “aliméntase de“ que afecte ao mesmo tempo a “animal” e “vexetal”. Pero neste caso o que estaríamos representando sería unha relación en que os suxeitos pasivos, “animal” e “vexetal” estarían relacionados entre si. É dicir, os animais ─como suxeito activo─ non estarían comendo "animais" e "vexetais", senón combinacións de “animais” e “vexetais”, é dicir, coma distintos pratos combinados en que sempre hai un “vexetal” e un “animal”.