Siempre que especificamos un esquema jerárquico, habrá varias restricciones inherentes al modelo jerárquico. Entre ellas se cuentan:
- Ninguna ocurrencia de registro, con excepción de los registros raíz, puede existir si no esta relacionada con una ocurrencia de registro padre. Esto tiene las siguientes implicaciones
- Ningún registro hijo puede insertarse si no esta enlazado a un registro padre
- Un registro hijo se puede eliminar independientemente de su padre; pero la eliminación de un padre causa automáticamente la eliminación de todos sus registros hijos y descendientes
- Las reglas anteriores no se aplican a los registros hijo y padre virtuales. Las regla en este caso es que un apuntador en un registro hijo virtual debe apuntar a una ocurrencia real de un registro padre virtual.
- No debe permitirse la eliminación de un registro en tanto existan apuntadores a el en registros hijo virtuales, lo que lo convierte en un registro virtuales, lo que lo convierte en un registro padre virtual.
- Si un registro hijo tiene dos o mas registros padre del mismo tipo de registros, el registro hijo debe duplicarse una vez bajo cada registro padre.
- Un registro hijo que tengo dos o mas registros padre de diferentes tipos de registros solo puede tener un padre real; todos los demás deben representarse como padres virtuales
A continuación se
mencionan los problemas típicos de las bases de datos jerárquicas y que no
existen en las bases de datos relacionales. Todos estos problemas derivan del
hecho de que el sistema gestor de base de datos no implementa ningún control
sobre los propios datos, sino que queda en manos de las aplicaciones garantizar
que se cumplen las condiciones invariantes que se requieran (por ejemplo,
evitar la duplicidad de registros). Dado que todas las aplicaciones están sujetas
a errores y fallos, esto es imposible en la práctica. Además dichas condiciones
suelen romperse ex profeso por motivos operativos (generalmente, ajustes
debidos a cambios en el negocio) sin evaluarse sus consecuencias.
Duplicidad de registros
No se garantiza la
inexistencia de registros duplicados. Esto también es cierto para los campos "clave".
Es decir, no se garantiza que dos registros cualesquiera tengan diferentes
valores en un subconjunto concreto de campos.
Integridad referencial
No existe garantía de
que un registro hijo esté relacionado con un registro padre válido.
Por ejemplo, es posible borrar un nodo padre sin eliminar antes los
nodos hijo, de manera que éstos últimos están relacionados con un registro
inválido o inexistente..
Desnormalización
Este no es tanto un
problema del modelo jerárquico como del uso que se hace de él. Sin embargo, a
diferencia del modelo relacional, las bases de datos jerárquicas no tienen
controles que impidan la desnormalización de una base de datos. Por ejemplo, no
existe el concepto de campos clave o campos únicos.
La desnormalización
permite ingresar redundancia de una forma controlada, seguir a una serie de
pasos conlleva a:
§
Combinar las
relaciones
§
Duplicar los
atributos no claves
§
Introducción
de grupos repetitivos
§
Crear tablas
de extracción
Cuando se debe
desnormalizar:
§
Se debe
desnormalizar para optimizar el esquema relacional
§
Para hacer
referencia a la combinación de 2 relaciones que forman una sola relación
Bibliografía:
Bibliografía:
No hay comentarios:
Publicar un comentario