I.- El
modelo de base de datos de red.
1. Detalle las estructuras de una
base de datos de red
La base de datos se organiza en dos marcadas secciones; el esquema y los
datos (o instancia).
El esquema es la definición de la estructura de la base de datos y principalmente
almacena los siguientes datos:
- El nombre de cada tabla
- El nombre de cada columna
- El tipo de dato de cada columna
- La tabla a la que pertenece cada columna
Las bases de datos relacionales pasan por un proceso al que se le conoce
como normalización, el
resultado de dicho proceso es un esquema que permite que la base de datos sea
usada de manera óptima.
Los datos o instancia es el contenido de la base de datos en un momento
dado. Es en sí, el contenido de todos los registros.
2. Explique las restricciones en el
modelo de base de datos de red
Una restricción es una
condición que obliga el cumplimiento de ciertas condiciones en la base de
datos. Algunas no son determinadas por los usuarios, sino que son
inherentemente definidas por el simple hecho de que la base de datos sea
relacional. Algunas otras restricciones las puede definir el usuario, por
ejemplo, usar un campo con valores enteros entre 1 y 10.
Las restricciones proveen un
método de implementar reglas en la base de datos. Las restricciones restringen
los datos que pueden ser almacenados en las tablas. Usualmente se definen
usando expresiones que dan como resultado un valor booleano, indicando si los
datos satisfacen la restricción o no.
Las restricciones no son parte
formal del modelo relacional, pero son incluidas porque juegan el rol de
organizar mejor los datos. Las restricciones son muy discutidas junto con los
conceptos relacionales.
3. Explique el uso de la
transformación ER-Red para el diseño de bases de datos de red
Una base de datos de
red se compone por una colección de registros que se conectan entre sí por
medio de ligas.
Un registro equivale a una entidad y un campo a un atributo del modelo entidad relación. Los campos contienen exclusivamente valores atómicos. Una liga es una relación que se establece solamente entre dos registros; es decir; debe utilizarse una liga para cada relación entre una pareja de registros.
Un registro equivale a una entidad y un campo a un atributo del modelo entidad relación. Los campos contienen exclusivamente valores atómicos. Una liga es una relación que se establece solamente entre dos registros; es decir; debe utilizarse una liga para cada relación entre una pareja de registros.
El caso anterior muestra la transformación del modelo entidad relación al modelo de red para una relación simple donde no existen atributos descriptivos en la relación.
4. Explique la programación de una
base de datos de red adicione un ejemplo
El lenguaje de manipulación de
datos de Codasyl es de tipo navegacional (opera de registro a registro),
procedimental ( requiere el conocimiento de la estructura física de la base de
datos del programador) y tiene que estar embebido en un lenguaje de programación
anfitrión, como característica importante cabe resaltar que en él se distingue
la localización o selección de la acción( recuperación o actualización).
La navegación por la base de
datos se lleva a cabo apoyándose en los indicadores de registro activo,
concepto fundamental en la componente dinámica del modelo Codasyl.
Un ejemplo de programación de
registros de una base de datos de red (Alumnos-Materia) en Pascal:
type
materia = record
clave: string[7]
nombreM: string[25]
cred: string[2];
end;
clave: string[7]
nombreM: string[25]
cred: string[2];
end;
type alumno = record
nombre: string[30];
control: string[8];
materia: Materia; {Enlace a materia}
end;
nombre: string[30];
control: string[8];
materia: Materia; {Enlace a materia}
end;
II.- El
modelo de datos Jerárquico
1. Detalle las estructuras de una
base de datos de jerárquico
El modelo
de datos jerárquico contiene segmentos. 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.
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.
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.
La raíz en el ejemplo sería: "empresa".
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 pre orden; es decir, raíz, subárbol izquierdo y subárbol derecho.
Entre las restricciones propias de este modelo se pueden resaltar:
A) Cada árbol debe tener un único segmento raíz.
B) No puede definirse más de una relación entre dos segmentos dentro de un árbol.
C) No se permiten las relaciones reflexivas de un segmento consigo mismo.
D) No se permiten las relaciones N:M.
E) No se permite que exista un hijo con más de un padre.
F) 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.
G) El árbol debe recorrer siempre de acuerdo a un orden prefijado: el camino jerárquico.
H) La estructura del árbol, una vez creada, no se puede modificar.
2. Explique los vínculos virtuales
padre - hijo
Los datos
se almacenan en la forma de registros, el equivalente a las filas del modelo
relacional. Cada registro consta de un conjunto de campos, el equivalente a las
columnas del modelo relacional. Un conjunto de registros con los mismos campos
se denomina fichero (record type, en inglés), el equivalente a las tablas del
modelo relacional.
El modelo jerárquico facilita relaciones padre-hijo, es decir, relaciones 1:N (de uno a varios) del modelo relacional. Pero a diferencia de éste último, las relaciones son unidireccionales. En justicia, dichas relaciones son hijo-padre, pero no padre-hijo. Por ejemplo, el registro de un empleado (nodo hijo) puede relacionarse con el registro de su departamento (nodo padre), pero no al contrario. Esto implica que solamente se puede consultar la base de datos desde los nodos hoja hacia el nodo raíz. La consulta en el sentido contrario requiere una búsqueda secuencial por todos los registros de la base de datos (por ejemplo, para consultar todos los empleados de un departamento). En las bases de datos jerárquicas no existen índices que faciliten esta tarea.
Obsérvese que, a priori, no existen relaciones N:M (de muchos a muchos) en el modelo jerárquico. Salvo que se simulen mediante varias relaciones 1:N. No obstante, esto puede provocar problemas de inconsistencia, ya que el gestor de base de datos no controla estas relaciones.
El modelo jerárquico facilita relaciones padre-hijo, es decir, relaciones 1:N (de uno a varios) del modelo relacional. Pero a diferencia de éste último, las relaciones son unidireccionales. En justicia, dichas relaciones son hijo-padre, pero no padre-hijo. Por ejemplo, el registro de un empleado (nodo hijo) puede relacionarse con el registro de su departamento (nodo padre), pero no al contrario. Esto implica que solamente se puede consultar la base de datos desde los nodos hoja hacia el nodo raíz. La consulta en el sentido contrario requiere una búsqueda secuencial por todos los registros de la base de datos (por ejemplo, para consultar todos los empleados de un departamento). En las bases de datos jerárquicas no existen índices que faciliten esta tarea.
Obsérvese que, a priori, no existen relaciones N:M (de muchos a muchos) en el modelo jerárquico. Salvo que se simulen mediante varias relaciones 1:N. No obstante, esto puede provocar problemas de inconsistencia, ya que el gestor de base de datos no controla estas relaciones.
3. Explique las restricciones de
integridad en el modelo jerárquico
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
Ejemplo:
Proveedor (Nro_proveedor, calle, ciudad, cod_postal, descripción) La relación Proveedor esta desnormalizada, ya que para normalizarla deberíamos crear una tabla con ciudad y código postal
Proveedor (Nro_proveedor, calle, ciudad, cod_postal, descripción) La relación Proveedor esta desnormalizada, ya que para normalizarla deberíamos crear una tabla con ciudad y código postal
4. Explique el uso de la
transformación ER- jerárquico para el diseño de bases de datos jerárquicas
Ya se han señalado los
inconvenientes que presenta el modelado del mundo real según esquemas
jerárquicos, y también hemos indicado una técnica de diseño jerárquico que
consiste en introducir redundancias. Se podría evitar la pérdida de simetrías
introduciendo mucha mayor redundancia, como se muestra en la, donde se presenta
la transformación de un esquema E/R con dos entidades y una interrelación N:M
es un esquema jerárquico en el que existen dos árboles, de modo que se
conservan las simetrías naturales, ya que los algoritmos para dos preguntas
simétricas, como son recuperar los alumnos de un profesor y recuperar los
10profesores de un alumno, serían también simétricos.
No hay comentarios:
Publicar un comentario