Mostrando entradas con la etiqueta Restricciones. Mostrar todas las entradas
Mostrando entradas con la etiqueta Restricciones. Mostrar todas las entradas

viernes, 16 de septiembre de 2011

Modelo de Datos Jerárquico: Restricciones de Integridad


Estas restricciones 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

Fuente: http://es.wikipedia.org/wiki/Base_de_datos_jer%C3%A1rquica

Modelo de Datos Jerárquico: Estructura


Los segmentos, en función de su situación en el árbol y de sus características, pueden denominarse como: 

1) SEGMENTO PADRE: Es aquél que tiene descendientes, todos ellos localizados en el mismo nivel.



2) SEGMENTO HIJO: Es aquél que depende de un segmento de nivel superior. Todos los hijos de un 
mismo padre están en el mismo nivel del árbol. 



3) SEGMENTO RAÍZ: El segmento raíz de una base de datos jerárquica es Αel padre que no tiene padre. 
La raíz siempre es única y ocupa el nivel superior del árbol. 



Una Ocurrencia de un segmento de una base de datos jerárquica es el conjunto de valores particulares que toman todos los campos que lo componen en un momento determinado. 

Un Registro de la base de datos es el conjunto formado por una ocurrencia del segmento raíz y todas las ocurrencias del resto de los segmentos de la base de datos que dependen jerárquicamente de dicha ocurrencia raíz. 

La relación Padre/Hijo en la que se apoyan las bases de datos jerárquicas, determina que el camino de acceso a los datos sea único; este camino, denominado Camino Secuencia Jerárquica, comienza siempre en una ocurrencia del segmento raíz y recorre la base de datos de arriba a abajo, de izquierda a derecha y por último de adelante a atrás. 

El esquema es una estructura arborescente compuesta de nodos, que representan las entidades, enlazados por arcos, que representan las asociaciones o interrelaciones entre dichas entidades. 

La estructura del modelo de datos jerárquico es un caso particular de la del modelo en red, con fuertes restricciones adicionales derivadas de que las asociaciones del modelo jerárquico deben formar un árbol ordenado, es decir, un árbol en el que el orden de los nodos es importante. 

Una estructura jerárquica, tiene las siguientes características: 

  • El árbol se organiza en un conjunto de niveles. 
  • El nodo raíz, el más alto de la jerarquía, se corresponde con el nivel 0. 
  • Los arcos representan las asociaciones jerárquicas entre dos entidades y no tienen nombre, ya que no es necesario porque entre dos conjuntos de datos sólo puede haber una interrelación.
  • Mientras que un nodo de nivel superior (padre) puede tener un número ilimitado de nodos de nivel inferior (hijos), al nodo de nivel inferior sólo le puede corresponder un único nodo de nivel superior. en otras palabras, un progenitor o padre puede tener varios descendientes o hijos, pero un hijo sólo tiene un padre. 
  • Todo nodo, a excepción del nodo raíz, ha de tener obligatoriamente un padre. 
  • Se llaman hojas los nodos que no tienen descendientes. 
  • Se llama altura al número de niveles de la estructura jerárquica. 
  • Se denomina momento al número de nodos. 
  • El número de hojas del árbol se llama peso. 
  • Sólo están permitidas las interrelaciones 1:1 ó 1:N 
  • Cada nodo no terminal y sus descendientes forman un subárbol, de forma que un árbol es una estructura recursiva. 
  • El árbol se suele recorrer en preorden; es decir, raíz, subárbol izquierdo y subárbol derecho. 


Entre las restricciones propias de este modelo se pueden resaltar:

  • Cada árbol debe tener un único segmento raíz. 
  • No puede definirse más de una relación entre dos segmentos dentro de un árbol. 
  • No se permiten las relaciones reflexivas de un segmento consigo mismo. 
  • No se permiten las relaciones N:M. 
  • No se permite que exista un hijo con más de un padre. 
  • Para cualquier acceso a la información almacenada, es obligatorio el acceso por la raíz del árbol, excepto en el caso de utilizar un índice secundario. 
  • El árbol debe recorrer siempre de acuerdo a un orden prefijado: el camino jerárquico. 
  • La estructura del árbol, una vez creada, no se puede modificar. 


Las estructuras jerárquicas se clasifican también como: 

Lineales: Es un caso particular y simple en el que cada tipo de registro padre sólo puede tener un tipo de registro hijo.

Arborescente: Un tipo de registro padre puede tener varios tipos de registro descendiente.


lunes, 12 de septiembre de 2011

Modelo de Base de Datos de Red: Restricciones


Cuando hablábamos del modelo en red general, decíamos que era un modelo muy flexible a coste de no tener restricciones inherentes. Esta ausencia de restricciones hace que sea muy difícil de implementar, y a la larga suele reportar escaso rendimiento, por lo que como también decíamos no pasa de ser un modelo teórico.
El modelo Codasyl está basado en el modelo en red general, pero a diferencia de este, es un modelo utilizado. Esto es debido a que Codasyl ha incluido restricciones inherentes que hacen que sea posible su implementación y que se obtenga un alto rendimiento del sistema.
Las restricciones son las siguientes:
  • Solo se admiten tipos de interrelaciones jerárquicas de dos niveles (propietario y miembro). Si se admite la combinación de varios SET para generar jerarquías multinivel.
  • En el nivel propietario solo se permite un tipo de registro.
  • En el mismo SET no se permite que a un registro ser a la vez propietario y miembro, no está admitida la reflexividad. Aunque esta restricción se eliminó con el tiempo, los productos basados en Codasyl la siguen utilizando.
  • Una misma ocurrencia de miembro no puede pertenecer en un mismo tipo de SET a más de un propietario. Esto hace que se simplifique la implementación física de los SET, ya que sus ocurrencias se pueden organizar como una cadena.




Modelo de Base de Datos de Red: Su estructura

El modelo de datos en red general representa las entidades en en forma de nodos de un grafo,  y las interrelaciones entre estas mediante arcos que unen dichos nodos. En principio esta representación no impone restricción alguna acerca del tipo y el número de arcos que puede haber, con lo que se pueden modelar estructuras de datos tan complejas como sea necesario.




CODASYL (Conference on Data Systems Languages): Es un modelo de datos de tipo red que introduce restricciones inherentes. este modelo constituye una simplificación del modelo en red general, en la que se admiten solo determinados tipos de interrelaciones y se incluyen algunas restricciones adicionales, que, sin embargo, no limitan excesivamente la flexibilidad que proporciona el modelo en red, pero si que facilita una instrumentación eficiente.

Los elementos básicos de la estructura de datos propia del modelo CODASYL son:
  • Elemento de datos (Data item): Es la unidad de datos más pequeña a la que se puede hacer referencia en el modelo CODASYL. Un elemento de datos ha de tener un nombre, y una ocurrencia del mismo contiene un valor que puede ser de distintos tipos (booleano, numérico, tira de caracteres,...) además, un elemento de datos puede definirse como dependiente de los valores de otros elementos (datos derivados).
  • Agregado de datos (data aggregate): Puede ser un vector, con un numero fijo de elementos, o un grupo repetitivo. El elemento y le agregado de datos se corresponden con los campos de los ficheros clásicos o con los atributos de otros modelos, aunque a diferencia de algunos modelos, como el relacional, aquí si que se admiten estructuras no planas como son los agregados.
  • Registro (record): Colección nominada de elementos de datos. Es la unidad básica de acceso y manipulación de la base de datos y se corresponde con el concepto de registro (en los ficheros) y de entidad (en otros modelos como el E/R).
  • Conjunto (SET o COSET): Es una colección nominada de dos o mas tipos de registros que establece una vinculación entre ellos. Constituye el elemento clave y distintivo de este modelo de datos, siendo el origen de muchas de sus restricciones, tanto inherentes como opcionales. Las interrelaciones 1:N de otros modelos se representan en CODASYL como SET.
  • Área (area o realm): Es una subdivisión nominada del espacio de almacenamiento direccionable de la base de datos que contiene ocurrencias de registros. En un área puede haber ocurrencias de mas de un tipo de registro y las ocurrencias de un mismo tipo de registro pueden estar contenidas en distintas áreas, aunque una ocurrencia determinada se almacena solo en una área. En 1981 paso a formar parte del esquema de almacenamiento.
  • Clave de base de datos (Database Key): Es un identificador interno único para cada ocurrencia del registro, que proporciona su dirección en la base de datos. en principio, esta clave era permanente y se podía utilizar par acceder rápidamente a un registro de forma directa o para indicar donde almacenarlo, pero suponía un grave obstáculo para conseguir la independencia lógica / física por lo que las últimas versiones del modelo restringen mucho su uso, aunque se conservó. 




    Bibliografía: 


    http://alarcos.inf-cr.uclm.es/doc/bda/doc/trab/T0001_IGarcia.pdf
    http://html.rincondelvago.com/bases-de-datos-en-red.html
    http://es.wikipedia.org/wiki/CODASYL