Transformación do Modelo Conceptual MERE ao Modelo Lóxico Relacional
Transformación de xerarquías de tipos e subtipos (xeneralización ou especialización)
A definición de supertipos e subtipos emprega o mesmo concepto herdanza que a metodoloxía orientada a obxectos, polo que, aínda que temos mecanismos para representalos no modelo relacional, a súa semántica é máis precisa nos motores de datos obxecto-relacionais. As estratexias de transformación ao modelo relacional nun esquema conceptual formado por unha entidade supertipo e varias subtipos, directamente dependentes da primeira, están suxeitas a consideracións como as perdas semánticas, os tipos de xerarquías e cuestións de rendemento. Destacamos as seguintes estratexias a seguir.
Englobar todos os atributos da entidade supertipo e os seus subtipos nunha soa relación
Esta solución é recomendable unicamente cando se dan as seguintes condicións:
- Os subtipos diferéncianse entre si en moi poucos atributos.
- As interrelacións que asocian os distintos subtipos co resto das entidades se poden unificar para todos os subtipos.
- A xerarquía é non solapada (exclusiva), é dicir, unha ocorrencia de supertipo non está nunca acompañada pola ocorrencia de máis dun subtipo.
- A xerarquía é total ou case total: é dicir, unha ocorrencia de supertipo está acompañada na maioría dos casos de ao menos unha ocorrencia de subtipo.
No caso de seleccionar esta transformación terase en conta o seguinte:
- Cando se trate dunha xerarquía parcial: o atributo discriminante da xerarquía (o que indica cal é o subtipo dunha ocorrencia dada) deberá admitir NULOS xa que ter este atributo a nulo indica que a ocorrencia non pertence a ningunha das subclases. Así mesmo, o valor concreto do atributo discriminante identificará a que subclase ou subclase pertence unha ocorrencia dada.
- Cando se trate dunha xerarquía total: o atributo discriminante da xerarquía (o que indica cal é o subtipo dunha ocorrencia dada) NON poderá admitir NULOS, xa que o seu valor identificará ao subtipo concreto ao que pertence a ocorrencia.
- Os atributos pertencentes ás subclases deben permitir a súa posta a nulos.
Se existen restricións adicionais, como condicións entre os valores dos diferentes atributos, etc. implantaranse utilizando as sentenzas e cláusula de SQL que permiten a instrumentación de restricións (verificacións ou check, disparadores ou triggers, asertos, etc.)
No que se refire á eficiencia, esta opción é a que ofrece máis velocidade no acceso aos datos dun obxecto, xa que non é preciso efectuar unións de táboas para a recuperación da información.
Tamén se contempla a posibilidade de non incluír o atributo discriminante na relación, e deducir ó subtipo ou subtipos o que unha a ocorrencia pertence a partir da existencia ou non dos valores dos atributos pertencentes a ditas entidades subtipo. Aínda que esta é unha solución pouco aconsellada xa que reduce o número de atributos da relación, aumenta as operacións necesarias para obter a que subtipo ou subtipos pertence unha ocorrencia.
Crear unha relación para o supertipo e unha para cada subtipo
É a solución máis adecuada en xeral, e a máis flexible, a que permite recoller máis semántica sendo tamén a máis respetuosa co modelo conceptual orixinal. É preciso crear as restricións oportunas para que se reflicta o máis fidedignamente a semántica orixinal do modelo conceptual de datos.
No que se refire á implementación, esta opción ofrece menos velocidade que a primeira no acceso aos datos dunha relación, posto que para a recuperación da información é preciso unir varias relacións. Así mesmo, é a que máis espazo ocupa, xa que ter atributos nunha única relación sempre ocupa menos que telos repartidos entre n táboas diferentes. Sen embargo, como xa se viu, nos casos de xerarquías solapadas funciona mellor que a opción de só dúas relacións.
Crear tantas relacións como subtipos e non considerar o supertipo
Nesta opción crearase unha relación por cada subtipo existente que conterá, ademais dos atributos propios, os atributos comúns do supertipo. Optarase por esta estratexia cando se cumpren as seguintes condicións:
- Os subtipos dispoñen dun elevado número de atributos, e/ou interrelacións propias
- Os accesos realizados aos datos dos subtipos afectan maioritariamente aos atributos comúns.
- Para unha xerarquía exclusiva disxunta, xa que de ser solapada os atributos comúns estarían a ser repetidos tendo que controlar esta redundancia para evitar inconsistencias.
- Para unha xerarquía con participación total, xa que de ser parcial xeraranse unha gran cantidade de NULOS (os atributos comúns)
Esta solución é a que produce unha maior perda de semántica, a pesar que aumenta a eficiencia nas consultas que afectan a todos os atributos (tanto comúns como propios dun subtipo) diminuíndose noutras.
Tarefa 12: Transformar especializacións
