UT+01.+Sistemas+de+Almac.

= = UT 1. Sistemas de almacenamiento de la información:

1. Ficheros (planos, indexados y acceso directo, entre otros).
El archivo secuencial indexado es uno de los varios métodos de acceso existentes, mediante este método el usuario obtiene acceso secuenciales a los registros clasificados por llaves y también acceso indexado a los mismos registros. La manera de extraer registros ingresados en secuencia de entrada y no clasificados por llave es mediante un índice es un recurso para encontrar información. Los archivos secuenciales indexados consta de tres partes: *area de datos *area de indice *area de desbordamiento

ARCHIVOS SECUENCIALES INDEXADOS: Una manera efectiva de organizar una colección de registros, cuando existe la necesidad tanto de accesar los registros secuencialmente, por algún valor de llave, como de accesarlos individualmente, con es la misma llave, es la organización de archivos secuenciales indexados.

El **índice** de una [|base de datos] es una [|estructura de datos] que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los [|registros] de una [|tabla] en una base de datos sencilla. Para buscar un elemento que esté indexado, sólo hay que buscar en el índice dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice. Los índices son construidos sobre [|árboles B], [|B+], [|B*] El espacio en disco requerido para almacenar el índice es típicamente menor que el espacio de almacenamiento de la tabla (puesto que los índices generalmente contienen solamente los campos clave de acuerdo con los que la tabla será ordenada. Algunas bases de datos amplían la potencia del indexado al permitir que los índices sean creados de [|funciones] o [|expresiones]. Nombre que se le da al [|proceso] de [|recolectar] y [|almacenar] [|páginas web] por [|parte] de un [|buscador] de [|internet].

> El mínimo número de claves por registro es la mitad del máximo número de claves. Por ejemplo, si el orden de un árbol-B+ es n, cada nodo (exceptuando la raíz) debe tener entre n/2 y n claves. > El número de claves que pueden ser indexadas usando un árbol-B+ está en función del orden del árbol y su altura.
 * ** ÁRBOLES B --> ** son estructuras de datos de árbol que se encuentran comúnmente en las implementaciones de base de datos y sistemas de archivos. Los árboles B mantienen los datos ordenados y las inserciones y eliminaciones eficientes de elementos.
 * ** ÁRBOLES B+ --> **es una variacion de un árbol B, toda la informacion se guarda en las hojas. Los nodos internos sólo contienen claves y punteros. Los nodos hoja se encuentran unidos entre sí como una lista enlazada para permitir búsqueda secuencial. El número máximo de claves en un registro es llamado el orden del árbol-B+.

La idea tras los árboles-B es que los nodos internos deben tener un número variable de nodos hijo dentro de un rango predefinido. Cuando se inserta o se elimina un dato de la estructura, la cantidad de nodos hijo varía dentro de un nodo. Para que siga manteniéndose el número de nodos dentro del rango predefinido, los nodos internos se juntan o se parten. Ya que se permite un rango variable de nodos hijo, los árboles B pueden desperdiciar memoria, porque los nodos no permanecen totalmente ocupados. Los límites superior e inferior en el número de nodos hijo son definidos para cada implementación en particular. Por ejemplo, en un **árbol-B 2-3** cada nodo sólo puede tener 2 ó 3 nodos hijo.
 * [[image:ARBOL_B+.png width="628" height="344"]]

Los archivos de texto plano son aquellos que están compuestos únicamente por texto sin formato, sólo caracteres. Estos caracteres se pueden codificar de distintos modos dependiendo de la lengua usada. Algunos de los sistemas de codificación más usados son: ASCII, ISO 8859-1, Unicode, etc.. Se les conoce también por carecer de información destinada a generar formatos como son las negritas, el subrayado, las cursivas, el tamaño, etc. y los tipos de letra como por ejemplo Arial, Times, Courier, etc.

Existen dos formas básicas de //**organización**// de ficheros: secuencial y relativa:
 * En la organización secuencial los registros se van grabando unos a continuación de los otros, en el orden que se van dando de alta
 * En la organización relativa los registros se graban en las posiciones que les corresponda según el valor que guarden en el campo clave.

El //**modo de acceso**// se refiere al procedimiento que se tiene que seguir para poder situarse en un registro determinado para poder hacer una operación de lectura o grabación del mismo. El modo de acceso puede ser secuencial o directo:
 * En el modo de acceso secuencial para llegar a un registro es necesario pasar por todos los anteriores
 * En el modo de acceso directo se puede llegar directamente a un registro conociendo únicamente el valor del campo clave.

1. ¿Que es una Base de Datos?
Lugar en el que los datos son recogidos y almacenados, al menos lógicamente, una sola vez, con independencia de los tratamientos. Una colección de datos que en sí misma representa la información acerca de un universo de trabajo.


 * Ventajas**:


 * **Independencia** datos/tratamientos.
 * **Coherencia** de resultados (actualizaciones).
 * Mejor **disponibilidad**.
 * Mayor **valor informativo**(relaciones).
 * **Documentación** (integrada).
 * Mayor **eficacia** en recogida, validación y entrada de datos.


 * Desventajas**: Instalación, personal, sin rentabilidad a corto plazo, etc.


 * //Al final: Una colección de datos integrados, con redundancia controlada y con una estructura que refleje las interrelaciones y restricciones existentes en el mundo real. Los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independiente de éstas, y su definición y descripción, han de estar almacenadas junto con los mismos. Los procedimientos de actualización y recuperación, comunes y bien determinados, habrán de ser capaces de conservar la seguridad (integridad, confidencialidad y disponibilidad).//**

3. Sistemas gestores de base de datos: funciones, componentes y tipos.
//Conjunto coordinado de programas, procedimientos, lenguajes, etc., que suministra los medios necesarios para describir, recuperar y manipular los datos almacenados en la base de datos, manteniendo su seguridad.//

Imprescindible flexibilidad para atender exigencias de usuarios.


 * Funciones principales:**
 * **Descripción de los datos**. Permite especificar los elementos de datos que la integran, su estructura y las relaciones que existen entre ellos, las reglas de integridad semántica, etc. Utiliza un DDL (Lenguaje de Descripción de Datos).
 * **Manipulación de los datos**. Permite añadir, suprimir o modificar datos. Utiliza un DML (Lenguaje de Manipulación de Datos).
 * **Utilización de datos**. Reúne interfaces para los diferentes usuarios y proporciona procedimientos para el administrador de la base de datos (DBA). Incluye el DCL (Lenguaje de Control de Datos). Cambiar capacidades de ficheros, estadísticas, copias de seguridad, etc. También protección frente a accesos no autorizados.

Tienen una serie de [|ventajas e inconvenientes].

Es una BDD que contiene información sobra la propia BDD (metadatos). Suministra información única y actualizada, sobre tipos de datos y cómo usarlos.
 * Se encarga de almacenar el diccionario de la BD**:

Independencia de datos = separación lógica y física de la base de datos. Arquitectura a tres niveles: asocia un esquema a cada nivel.
 * [|Arquitectura]:**
 * **Esquema externo**. Vistas individuales de los usuarios
 * **Esquema conceptual**. Vista lógica general de todos los datos. Lenguaje de descripción de datos (DDL).
 * **Esquema interno**. Próximo al almacenamiento físico, registros.

En un plano más práctico, podemos ver la estructura de un sistema de gestión de base de datos como un conjunto de componentes, de los cuales podemos incluir generalmente los siguientes:
 * **Gestor de ficheros**: Se encarga de las estructuras de datos que se emplean para representar la información almacenada en disco. Además es el encargado de asignar espacio en disco.
 * **Gestor de BD**: Es el interface entre los datos de bajo nivel almacenados en la BD y los programas de aplicaciones y consultas de datos.
 * **Procesador de consultas**: traduce las proposiciones del lenguaje de consultas a instrucciones de bajo nivel para que las entienda el gestor de BD. Además el procesador de consultas trata de traducir una petición del usuario a otra equivalente pero más eficiente.
 * **Compilador DDL**: Convierte las proposiciones DDL en un conjunto de tablas que contienen metadatos.
 * **Ficheros de datos**: Almacenan la información (los datos).
 * **Diccionario de datos**: Almacena información referida a la estructura de la BD. Se usa continuamente. Se debe poner un gran énfasis en un buen diseño y una implementación adecuada del diccionario de datos.



Tipos de SGBD:
En función del modelo de datos que soportan: en red, jerarquico, relacional, objeto-relacional, objetual. En función de cómo almacenan los datos: centralizados, distribuidos.