Análise e deseño detallado de aplicacións de informática e de xestión/Tradución de esquemas entidade-relación a relacionais

En Galilibros, o Wikibooks en galego.


O proceso de tradución de esquemas conceptuais a lóxicos consiste na aplicación, por pasos, dunha serie de regras que, aplicadas aos esquemas conceptuais realizados mediante o modelo entidade-relación, transforman os obxectos destes esquemas en obxectos pertencentes aos esquemas lóxicos.

A aplicación das regras vai dar lugar á transformación dos tipos de entidade e mailos tipos de relación que forman parte dos esquemas conceptuais, en táboas ou relacións, os únicos obxectos que interveñen nos esquemas lóxicos relacionais.

Para poder realizar esta transformación precísase previamente realizar determinadas conversións que eliminen do modelo entidade-relación o que non se poida representar no modelo relacional.

Preparación dos esquemas conceptuais[editar]

Antes da aplicación das regras de transformación de esquemas conceptuais e esquemas relacionais, cómpre preparar os esquemas conceptuais mediante a aplicación dunhas regras preparatorias que faciliten e garantan a facilidade do proceso de transformación.

Eliminación dos atributos multivaluados[editar]

O proceso de eliminación dos atributos multivaluados é un proceso moi simple e consiste na aplicación da seguinte regra:

Todos os atributos multivaluados, é dicir, os atributos que poden tomar máis dun valor no dominio no que están definidos, transformaranse nun tipo de entidade débil por existencia.

Este tipo de entidade débil, creado pola aplicación desta regra, terá como propiedades o atributo múltiple polo que se aplicou a regra. Ademais, deberase ter en conta que se o atributo do tipo de entidade débil creado non puidese identificar sen ambigüidade ás entidades deste tipo, entón procederase dalgunha da seguintes formas:

  1. O tipo de entidade débil creado considerarase como débil por identificación con respecto ao tipo de entidade co que mantén a relación, herdando, por tanto, os seus atributos identificadores.
  2. Engadirase un novo atributo (externo ou non ao dominio do problema) que permitirá identificar sen ambigüidade ás entidades deste tipo de entidade débil.

Eliminación dos compostos[editar]

Consiste na descomposición de todos os atributos compostos en atributos simples, por aplicación da seguinte regra:

Todos os atributos compostos asociados cos tipos de entidade e os tipos de relación deben descomporse nos atributos simples que formen parte ou interveñan nos atributos compostos correspondentes. Neste proceso de descomposición, eliminarase o atributo composto, quedando os atributos simples definidos no mesmo dominio, e intervindo da mesma forma no tipo de entidade ou relación.

Eliminación de xerarquías de xeneralización[editar]

O modelo relacional non dispón de mecanismos fáciles de usar que permitan a representación de relacións xerárquicas e, por tanto, cómpre a eliminación das relacións xerárquicas como paso previo ao proceso de transformación dos esquemas conceptuais a relacionais.

No proceso de eliminación das relacións xerárquicas deberase aplicar algunhas das regras que se describirán a continuación e cuxa elección vai depender:

  • Da magnitude da especialización que os subtipos de entidade teñen con respecto ao supertipo ou tipo de entidade máis xeral. A especialización supón que os subtipos de entidade teñen ligados diferentes atributos que diferencian a un subtipo de entidade do resto dos atributos que manteñen un tipo de relación xerárquica con un mesmo supertipo de entidade.
  • Do tipo de especialización que representa o tipo de relación xerárquica, que pode ser algunha das seguintes: total exclusiva, parcial exclusiva, total inclusiva e parcial inclusiva.
  • Doutros tipos de relacións que manteñan tanto os subtipos coma o supertipo de entidade.
  • De criterios de procesamento e, sobre todo, da forma en que se vai acceder á información que representan tanto o supertipo e subtipos de entidade coma os tipos de relación que manteñen.

Tendo en conta todos os puntos sinalados, no proceso de eliminación dos tipos de relación xerárquicas aplicarase algunha das seguintes regras:

Eliminación do supertipo de entidade[editar]

Nun tipo de relación xerárquica desestimarase o supertipo de entidade, transferindo todos os atributos do supertipo a cada un dos subtipos e cada un dos tipos de relación que mantivese o supertipo de entidade considerarase para cada un dos subtipos, manténdose, por suposto, os tipos de relación nos que interveñan cada un dos subtipos de entidade.

Esta regra só pode aplicarse a tipos de relacións xerárquicas totais, posto que implica a eliminación do supertipo de entidade, e por tanto do conxunto de entidades non especializadas nos diferentes subtipos. Ademais, se o tipo de relación xerárquica é inclusiva ─en principio─ non é doado de representar esta inclusividade nos novos tipos de relación que se xeran cos subtipos pola transferencia dos tipos de relación mantidos polo supertipo de entidade. Polo tanto, esta regra só cumpre aplicala cando as relacións xerárquicas son totais e exclusivas.

Unha transformación facendo uso desta regra introduce algúns inconvenientes ao novo esquema conceptual xerado:

  1. Como os atributos do supertipo de entidade se trasladan a cada un dos subtipos introduce unha redundancia de información.
  2. Ao desaparecer o supertipo de entidade desaparece a relación semántica existente entre os subtipos, que representaba que todos eles eran tipos de entidade dun mesmo supertipo.
  3. O número de tipos de relación aumenta en canto se deben representar os tipos de relación que mantiña o supertipo de entidade con cada un dos subtipos.
  4. Naturalmente, as operacións xerais de acceso a esta información (á información transferida dende o supertipo de entidade) requiren agora o manexo de varios tipos de entidade en lugar de só un.

Esta regra só deberá aplicarse cando se minimicen estes inconvenientes, é dicir, cando o número de atributos transferidos sexa pequeno e non existan moitos tipos de relación non que participe o supertipo de entidade.

Eliminación dos subtipos de entidade[editar]

Nun tipo de relación xerárquica desestimaranse os subtipos de entidade, transferíndose todos os atributos dos subtipos ao supertipo e cada un dos tipos de relación que mantivesen os subtipos de entidade consideraranse para o supertipo, manténdose por suposto os tipos de relación nos que interveña o supertipo de entidade.

O uso desta regra vai dar lugar a un esquema moito máis simple pero no que se van presentar moitos posibles valores nulos par aqueles atributos transferidos dende os subtipos ao supertipo de entidade. Así, se o número de instancias ou entidades do supertipo vai ser elevado (todas as instancias ou entidades de cada un dos subtipos) o número de valores nulos será excesivo. Ademais, nos procesos de acceso á información vaise transferir, en moitos casos, información non necesaria polo interrogante, debido a que no supertipo de entidade estase mantendo información particular de cada subtipo e en moitos interrogantes só será precisa información xeral ou ben referente a algún dos subtipos.

En principio esta regra pode aplicarse a calquera dos catro tipos de relación xerárquica, aínda que non en todos os casos, como xa se comentou, as vantaxes da simplicidade compensan os inconvenientes que presenta o seu uso.

Eliminación da xerarquía[editar]

O tipo de relación xerárquica transformarase en tantos tipos de relación un a un como subtipos de entidade estean presentes, manténdose os tipos de relación nos que interveñen tanto os subtipos, coma o supertipo de entidade.

Nestes tipos de relación o supertipo participa con cardinalidades mínima e máxima igual a un, podendo considerarse que os subtipos de entidade actúan coma tipos de entidade débiles por existencia con respecto ao supertipo de entidade se se traspasa aos subtipos o identificador do supertipo, e débiles por identificación en caso contrario.

Esta regra é a máis xeral de aplicación para a transformación das relacións xerárquicas, pois ten a vantaxe de que o esquema resultante reserva a representación das relacións existentes entre o supertipo e os subtipos de entidade a través dos novos tipos de relación débiles creados, podendo aplicarse para calquera tipo de relación xerárquica dos catro tipos posibles.

O seu principal inconveniente ñe que o novo esquema conceptual xerado é bastante máis complexo que o orixinal e introduce redundancia lóxica (non por iso física) na información presentada.

Transformación dos esquemas conceptuais[editar]

Vanse presentar unha serie de regras para a transformación dos obxectos presentes nos esquemas conceptuais a obxectos válidos nos esquemas lóxicos relacionais. Estas regras permiten a transformación dos esquemas de un a outro tipo sen perda de información e, por tanto, conservando o nivel de representación do problema.

Transformación de tipos de entidade[editar]

Todos os tipos de entidade presentes no esquema conceptual transformaranse en táboas ou relacións no esquema relacional mantendo o número e tipo de atributos, así como a característica de identificador destes atributos.

Como norma xeral, os atributos clave das táboas representaranse subliñados, as claves alternativas con dobre subliñado e as claves alleas con letra grosa.

Transformación dos tipos de relación un a un[editar]

O proceso de transformación dos tipos de relación binarias nos que os tipos de entidade participan con cardinalidade máxima un vai depender do valor da cardinalidade mínima coa que participa cada tipo de entidade no tipo de relación. En base a este valos poden presentarse os seguintes casos:

  1. Os dous tipos de entidade participan de forma completa no tipo de n relación. É dicir, os dous tipos de entidade participan con cardinalidade mínima un.
  2. Un dos dous tipos de entidade participa de forma parcial no tipo de relación, é dicir, con cardinalidade mínima cero.
  3. Os dous tipos de entidade participan de forma parcial no tipo de relación.

Por tanto, dependendo da forma en que participa cada tipo de entidade no tipo de relación será preciso aplicas unha regra diferente.

Primeira regra de transformación dos tipos de relación un a un[editar]

Se nun tipo de relación binaria os dous tipos de entidade participan de forma completa, é dicir, ambos os dous tipos de entidade participan coas cardinalidades mínima e máxima igual a un, entón:

  • Se os dous tipos de entidade teñen o mesmo identificador:
    1. Os dous tipos de entidade transfórmanse nunha única táboa formada pola agregación dos atributos dos tipos de entidade.
    2. A clave da táboa é o identificador dos tipos de entidade.
  • Se os tipos de entidade teñen diferente identificador, cada tipo de entidade transfórmase nunha táboa e:
    1. Cada táboa terá como clave principal o identificador de cada un dos tipos de entidade dos que se deriva.
    2. Cada táboa terá como clave allea o identificador do outro tipo de entidade co que está ligado.

Segunda regra de transformación dos tipos de relación un a un[editar]

Se nun tipo de relación binaria algún dos tipos de entidade participa de forma parcial, entón cada tipo de entidade transformarase nunha táboa por aplicación da regra de transformación de tipos de entidade e procédese dalgunha das seguintes formas:

  • O identificador do tipo de entidade que participa de forma total pasa como atributo da táboa correspondente á transformación do outro tipo de entidade. Neste caso este atributo non poderá tomar valores nulos para diferentes tuplas desta táboa, non xerándose ningunha táboa para o tipo de relación.
  • Constrúese unha nova táboa correspondente ao tipo de relación formado polos atributos identificadores dos tipos de entidade. Considerarase como clave desta táboa ao identificador do tipo de entidade que participa de forma parcial no tipo de relación. Os atributos desta táboa manterán referencias coas claves das táboas correspondentes á transformación dos tipos de entidade.

Terceira regra de transformación dos tipos de relación un a un[editar]

Se nun tipo de relación binaria ambos os dous tipos de entidade participan de forma parcial, entón, por aplicación da regra de transformación de tipos de entidade cada im deñes transformarase nunha táboa e procédese de algunhas das dúas seguinte formas:

  • Os identificadores de cada un dos tipos de entidade pasan a formar parte como atributos das táboas correspondentes ao outro tipo de entidade. Estes atributos actuarán coma claves alleas nesta táboas.
  • Constrúese unha nova táboa correspondente ao tipo de relación e cuxos atributos serán os identificadores dos tipos de entidade e, necesariamente, definirase coma clave alternativa ao identificador do outro tipo de entidade.

Ao igual que coa segunda regra de transformación dos tipos de relación un a un, o primeiro criterio de transformación é o máis axeitado, pero neste caso só cando o tipo de relación non teña atributos que o cualifiquen. En caso contrario, cando o tipo de relación teña atributos asociados, o segundo criterio é o máis axeitado, pois aporta unha maior claridade á representación lóxica do problema.

Transformación de tipos de relacións un a moitos[editar]

A transformación de esquemas conceptuais nos que estean presentes tipos de relacións binarias nos que un tipo de entidade participa con cardinalidade máxima un e o outro tipo de entidade participa con cardinalidade máxima moitos, é moi semellante á transformación descrita anteriormente. E, ao igual que nese caso, aplicaranse regras diferentes en función das cardinalidades mínimas coas que participa cada tipo de entidade no tipo de relación.

Primeira regra de transformación de tipos de relacións un a moitos[editar]

Se nun tipo de relación binaria 1:N ambos os dous tipos de entidade participan de forma total, ou o tipo de entidade que intervén con cardinalidade máxima moitos participa de forma parcial, entón, cada tipo de entidade transfórmase nunha táboa por aplicación da regra de transformación de tipos de entidade, e o identificador do tipo de entidade que participa con cardinalidade máxima un pasa a formar parte da táboa correspondente ao tipo de entidade que participa coa cardinalidade máxima moitos. Este atributo definirase coma clave allea desta táboa mantendo unha referencia coa táboa correspondente ao tipo de entidade que participa con cardinalidade máxima un. Se o tipo de relación tivese atributos ligados, estes atributos pasan a formar parte da táboa correspondente ao tipo de entidade que participa con cardinalidade máxima moitos.

Segunda regra de transformación de tipos de relacións un a moitos[editar]

Se nun tipo de relación binaria 1:N ambos os dous tipos de entidade participan de forma parcial, ou o tipo de entidade que intervén con cardinalidade máxima un participa de forma parcial, entón cada tipo de entidade transfórmase nunha táboa por aplicación da regra de transformación de tipos de entidade e xérase unha nova táboa correspondente ao tipo de relación.

Esta táboa está formada polos identificadores dos tipos de entidade que interveñen no tipo de relación e por todos os atributos ligados ao tipo de relación.

A clave principal desta táboa será o atributo identificador correspondente ao tipo de entidade que intervén con cardinalidade máxima moitos, e será preciso definir como claves alleas os atributos identificadores correspondentes aos dous tipos de entidade.

Transformación de tipos de relación moitos a moitos[editar]

Nesta clase de relacións o proceso de transformación non depende da cardinalidade mínima coa que intervén cada tipo de entidade no tipo de relación, senón que sempre se aplicará a seguinte regra:

Nun tipo de relación binaria N:M cada tipo de entidade transfórmase nunha táboa por aplicación da regra de transformación de tipos de entidade e xérase unha nova táboa para representar ao tipo de relación.

Esta táboa estará formada polos identificadores dos tipos de entidade que interveñen no tipo de relación e por todos os atributos ligados ao tipo de relación.

A clave principal desta táboa será a agregación dos atributos identificadores correspondentes aos tipos de entidade que interveñen no tipo de relación.

Transformación de tipos de relacións n-arias[editar]

No proceso de transformación das relacións nas que interveñen máis de dous tipos de entidade débese aplicar a regra de transformación de tipos de relación moitos a moitos. É dicir, cada tipo de entidade transfórmase nunha táboa e o tipo de relación transfórmase nunha táboa cuxos atributos son os atributos identificadores dos tipos de entidade participantes no tipo de relación e os atributos ligados ao tipo de relación. A clave desta táboa será a agregación dos atributos identificadores dos tipos de entidade.

Cómpre ter en conta que a regra de transformación de tipos de relación moitos a moitos debe aplicarse cando todos os tipos de entidade participan no tipo de relación con cardinalidade máxima moitos. En caso contrario, é dicir, cando algún tipo de entidade participa no tipo de relación con cardinalidade máxima un, entón, como é lóxico, o identificador deste tipo de entidade non para a formar parte da clave da táboa que se deriva do tipo de relación.

Obsérvese que o feito de que un tipo de entidade participe con cardinalidade máxima un, é igual que considerar que o tipo de relación está cualificado polo atributo que identifica a este tipo de entidade e, por tanto, é coma un atributo máis, como hai que considerar a participación deste tipo de entidade no tipo de relación.