martes, 16 de junio de 2015

Base de Datos || Unidad I || Tema 2

1.2. Tema 2: ARQUITECTURA DE UN SBD
 1.2.1. Arquitectura de un sistema de bases de datos

Presentaremos a continuación la arquitectura de un SBD, aunque no podemos asegurar que cualquier SBD se corresponda exactamente con ella. Sin embargo, esta arquitectura se corresponde suficientemente bien con un gran número de sistemas. Además, está de acuerdo con la arquitectura propuesta por el grupo ANSI/SPARC.

La arquitectura se divide en tres niveles generales: interno, lógico global y externo.

El nivel interno es el más cercano al almacenamiento físico, o sea, es el relacionado con la forma en que los datos están realmente almacenados.
El nivel externo es el más cercano a los usuarios, o sea, es el relacionado con la forma en que los datos son vistos por cada usuario individualmente.

El nivel lógico global es un nivel intermedio entre los dos anteriores.
Existirán varias "vistas externas" diferentes. Cada vista es una representación más o menos abstracta de alguna porción de la base de datos total y existirá únicamente una "vista general", consistente en una representación también abstracta de la base de datos en su totalidad. Igualmente, existirá una única "vista interna" que representa a la base de datos completa, tal y como está realmente almacenada.
A continuación, estudiaremos con mayor detalle cada uno de los niveles de la arquitectura vista anteriormente y la forma en que ellos interactúan.
1.2.1.1. El nivel externo
Es el nivel del usuario individual, donde un usuario puede ser un programador de aplicación o un usuario final con cualquier grado de sofisticación. Cada usuario tiene un lenguaje a su disposición:
Para el programador, ese lenguaje puede ser un lenguaje de programación convencional, tal como Pascal, o un lenguaje de programación específico de un sistema, tal como el FoxPro.

Para el usuario final, el lenguaje puede ser un lenguaje de consulta (interrogaciones, query) o un lenguaje de propósito especial, quizás basado en sistemas de menúes y ventanas, y construido para satisfacer los requerimientos de un usuario, y se encuentra soportado por algún programa de aplicación en línea.

Es importante señalar que todo lenguaje debe incluir un sublenguaje de datos, o sea, un subconjunto del lenguaje que trata específicamente con los objetos de la base de datos y sus operaciones. Se dice que el sublenguaje de datos (DSL) está embebido dentro del correspondiente lenguaje huésped. Este lenguaje huésped es el encargado de asegurar otras facilidades ajenas a la base de datos, tales como variables locales, operaciones de cálculo, lógica if-then-else, etc. Un sistema dado, puede soportar múltiples lenguajes huésped y múltiples sublenguajes de datos.
En principio, cualquier sublenguaje de datos es realmente una combinación de, al menos, dos lenguajes subordinados: un lenguaje de definición de datos (DDL), el cual garantiza la definición o descripción de los objetos de la base de datos, y un lenguaje de manipulación de datos (DML), el que garantiza la manipulación o procesamiento de esos objetos.
Ya se ha indicado que un usuario individual estará, generalmente, interesado sólo en cierta porción de la base de datos completa. Aún más, la vista de esa porción será generalmente abstracta cuando se compara con la forma en que los datos están físicamente almacenados. El término definido por el comité ANSI/SPARC para una vista de un usuario es vista externa, la cual es el contenido de la base de datos tal y como es vista por un usuario en particular. O sea, para ese usuario, la vista externa es la base de datos.
En general, una vista externa consiste en múltiples ocurrencias de múltiples tipos de artículos externos. Un artículo externo no es necesariamente igual a un artículo almacenado.
El sublenguaje de datos del usuario se define en términos de artículos externos; por ejemplo, una operación del DML que permite recuperar artículos, generará una ocurrencia de artículos externos y no una ocurrencia de artículos almacenados.
Cada vista externa se define mediante un esquema externo consistente, básicamente, en definiciones de cada uno de los diferentes tipos de artículos externos en esa vista. El esquema externo se escribe usando la porción del DDL del sublenguaje de datos del usuario; además, tiene que existir una definición de la correspondencia entre el esquema externo y el esquema lógico global.
1.2.1.2. El nivel lógico global
La vista lógica es una representación del contenido informativo total de la base de datos. En comparación con la forma en que los datos están almacenados físicamente, es una forma abstracta. Esta vista puede ser muy diferente de la forma en la que los datos son vistos por un usuario en particular. Pretende ser una vista de los datos tal como son en lugar de cómo los usuarios están forzados a verlos por las restricciones, digamos, de un lenguaje particular o de un determinado hardware que utilicen.
Consiste en múltiples ocurrencias de múltiples tipos de artículos lógicos. Por ejemplo, puede ser una colección de ocurrencias de artículos de departamentos, más una colección de ocurrencia de artículos de empleados, etc. Un artículo lógico no es necesariamente igual a un artículo externo ni a un artículo almacenado.
La vista lógica se define mediante el esquema lógico que incluye las definiciones de cada uno de los diferentes tipos de artículos lógicos. El esquema lógico se describe usando otro lenguaje de definición de datos: el DDL lógico. Si se desea lograr la independencia de los datos, entonces las definiciones del DDL lógico no deben comprender ninguna consideración sobre la estructura de almacenamiento ni la estrategia de acceso. Ellas tienen que ser definiciones sólo referentes al contenido informativo.
Si el esquema lógico logra verdaderamente la independencia de los datos, entonces los esquemas externos que se definen sobre el esquema lógico lograrán también, necesariamente, la independencia de los datos.
Entonces, es una vista del contenido total de la base de datos y el esquema lógico es una definición de esa vista. Sin embargo, el esquema lógico no es, simplemente, un conjunto de definiciones como las que se encuentran, por ejemplo, en un programa Pascal. Las definiciones en el esquema lógico deben incluir una gran cantidad de aspectos adicionales, tales como los chequeos de protección y los chequeos de integridad.
En la mayoría de los sistemas actuales, el esquema lógico es realmente sólo un poco más que la simple unión de todos los esquemas externos individuales; posiblemente con la adición de algunos chequeos simples de protección e integridad. Sin embargo, está claro que los sistemas del futuro soportarán un nivel lógico mucho más sofisticado, que permita también describir la forma en que se usan los datos, cómo fluyen de un punto a otro, para qué se usan en cada punto, a qué controles son sometidos, etc.
1.2.1.3. El nivel interno
La vista interna es una representación de bajo nivel de la base de datos completa, que consiste en múltiples ocurrencias de múltiples tipos de artículos internos.
"Artículo interno" es el término definido por ANSI/SPARC para la construcción que hasta ahora hemos llamado artículo almacenado. La vista interna está entonces aún a un paso del nivel físico, ya que ella no opera en términos de artículos físicos (también llamados páginas o bloques) ni con consideraciones específicas de los equipos, tales como tamaños de sectores o pistas.
Básicamente, la vista interna asume un espacio de dirección lineal infinita. Los detalles de cómo se hace corresponder ese espacio con el almacenamiento físico son muy específicos de un sistema y deliberadamente se omitieron de la arquitectura.
La vista interna se describe mediante el esquema interno, el cual no sólo define los diferentes tipos de artículos almacenados, sino que también especifica los índices que existen, la representación de los campos almacenados, la secuencia física en que están los artículos almacenados, etc. El esquema interno se describe usando otro lenguaje de definición de datos: el DDL interno.
1.2.1.4. Correspondencias entre los niveles de la arquitectura
En el esquema presentado de la arquitectura de un SBD, se observan los niveles de correspondencias, uno entre los niveles externo y lógico global y otro entre los niveles lógico global e interno.
La correspondencia lógica/interna especifica la forma en que los artículos y campos lógicos se representan en el nivel interno. Además, si se cambia la estructura de la vista interna, o sea, si se hace un cambio en el esquema interno, entonces, la correspondencia lógica/interna tiene también que cambiar en consecuencia, de modo que el esquema lógico permanezca invariable. En otras palabras, los efectos de estos cambios deben ser aislados por debajo del nivel lógico para que se mantenga la independencia de los datos.
Existe también una correspondencia externo/lógica entre cada vista externa particular y la vista lógica. Las diferencias que pueden existir entre estos dos niveles son similares a las que pueden existir entre las vistas lógica e interna. Por ejemplo, los campos pueden tener diferente tipos de datos, se pueden cambiar los nombres de artículos y campos, múltiples campos lógicos pueden ser combinados en un único campo externo, etc. Puede existir al mismo tiempo cualquier cantidad de vistas externas; cualquier cantidad de usuarios puede compartir una vista externa dada; las diferentes vistas externas se pueden solapar. Algunos sistemas permiten la definición de una vista externa a partir de otra (mediante una correspondencia externa/externa); esta característica es útil cuando varias vistas externas están estrechamente relacionadas entre sí.
1.2.1.5. El administrador de la base de datos (DBA)
Por último, en el esquema aparece el administrador de la base de datos, quien es la persona o grupo de personas responsable del control total de todo el sistema. Entre las tareas del administrador de la base de datos está:
- Decidir el contenido informativo de la base de datos
- Decidir la estructura de almacenamiento y la estrategia de acceso
- Garantizar el enlace con los usuarios
- Definir los chequeos de autorización y procedimientos de validación
- Definir la estrategia de reorganización de la base de datos para aumentar la eficiencia del sistema

El SGBD interactúa con cada uno de los niveles y las correspondencias entre ellos.

1.2.2. Organizaciones de archivos y el nivel interno de la arquitectura
Físicamente, se puede decir que las bases de datos se almacenan siguiendo diferentes organizaciones de archivos. Cada una de éstas tiene distintas características de desempeño; ninguna se puede decir que sea óptima para todas las aplicaciones, sino que se decide emplear una u otra en dependencia de la aplicación.
A continuación, presentaremos, a grandes rasgos, las principales características de las más usadas organizaciones de archivos, de modo que puedan tener ideas de cómo se pueden organizar los datos en estos archivos para lograr determinados objetivos. Pero, antes de ello, abordaremos algunas definiciones y características relativas a los archivos.
Empezaremos diciendo que la utilización de los archivos se debe a dos causas fundamentales:
Manejo de mucha información
Almacenamiento de información permanente

Ya que el trabajo en memoria interna es muy rápido, pero es un recurso relativamente escaso y caro, y la memoria periférica es más barata, aunque más lenta. Además, influye en esto el hecho de que el contenido de la memoria central se pierde al cesar el fluido eléctrico, lo que hace aconsejable almacenar en soportes externos los grandes volúmenes de información.
1.2.2.1. Operaciones fundamentales sobre archivos
Las operaciones fundamentales que se realizan sobre archivos pueden colocarse en dos grandes grupos:
1.2.2.1.1 Acceso
Se entiende el acceso a un archivo como la forma por la cual es posible tener conocimiento de la información contenida en los respectivos registros, o sea, el modo como se pueden leer los registros del archivo, las ocurrencias de estos registros almacenadas en él.
Las diferentes formas de accesar un archivo pueden agruparse en dos tipos:
En secuencia o secuencial.- Se caracteriza por el hecho de que, en la lectura del archivo, es obligatorio que, a continuación del tratamiento del registro de orden n, se traten los de orden n+1, n+2, ... hasta un límite determinado. Puede realizarse desde el inicio del archivo o a partir de un registro n.

Aleatorio o directo.- Se caracteriza porque se lee, y consecuentemente trata cualquier registro en cualquier orden (a través de la llave o una transformación de ésta). No puede realizarse en periféricos de acceso secuencial.

1.2.2.1.2 Actualización
La mayoría de los archivos deben ser actualizados con el decurso del tiempo para que se ajusten a la realidad. La actualización de un archivo se realiza mediante tres operaciones fundamentales:
Alta.- Se crea un nuevo registro en el archivo.
Baja- Se elimina un registro. Puede ser lógica o física.
Modificación.- Se cambia alguna información en el registro.

Para realizar las actualizaciones es importante validar los datos que se van a actualizar.
1.2.2.2. Organización de los archivos
Es necesario indicar que la bibliografía existente al respecto asume diferentes posiciones respecto a la terminología a emplear. En muchos casos las definiciones son ambiguas y hay poco acuerdo entre los textos que tratan este tema.
A pesar de esto, en la actualidad, las organizaciones generalmente aceptadas son:
2.2.1 Organización Secuencial
Es la forma más sencilla para almacenar los registros de un archivo, uno después de otro, a continuación del otro. Todos los registros se almacenan por su posición: uno es el primero, el siguiente es el segundo y así sucesivamente. Es la más vieja forma de organizar un archivo y fue empleada para las cintas magnéticas desde los inicios de la computación.
Ejemplo:
Archivo PROFESOR, en el que están las ocurrencias de profesores una a continuación de la otra:
2.2.2 Organización Indizada
Los accesos a los registros almacenados se realizan a través de un índice. La forma básica de un índice incluye una llave de registro y la dirección de almacenamiento para éste. Para encontrar un registro específico, se rastrea primero el índice y, al encontrar la dirección, se accede directamente el registro.
Entonces, un índice es un archivo auxiliar que se utiliza para accesar los registros de otro archivo, que llamaremos archivo principal o de datos, por el valor de un dato o conjunto de datos, que es la llave o clave de indización.
A los registros del índice se les llama entradas. Cada entrada corresponde a un valor o intervalo de valores de la llave y es el padre cuyos hijos son los registros del archivo principal, en los cuales la llave toma el valor, o un valor del intervalo de valores que corresponde a la entrada en cuestión.
En la siguiente figura se muestra un archivo índice muy simple en el que se tiene la llave y un puntero al dato en el archivo principal.
Archivo Índice                                             Archivo de Datos

Para un mismo archivo principal puede haber varios índices, correspondientes a diferentes claves de indización.
Si la llave de indización para un archivo índice es una llave primaria, entonces, al índice se le llama primario. Si la llave de indización es algún atributo que no identifica unívocamente cada ocurrencia, se dice que el índice es secundario. En este caso, para un valor de la llave existen, en general, varios registros que tienen ese valor en el atributo correspondiente. Por ejemplo, en un archivo de PRODUCTOS el índice por número de producto (NUMPROD) sería primario y un índice por tipo de producto (TIPOPROD) sería secundario.
En muchos sistemas informativos los índices secundarios son numerosos.
Se dice que un índice es denso si tiene una entrada para cada valor de la clave que aparece, por lo menos, en algún registro del archivo principal, lo que no quiere decir que tenga una entrada para cada uno de estos registros. El índice primario es, generalmente, un índice denso, es decir, contiene todos los valores de la clave primaria.
Por ejemplo, en la figura anterior, el índice es denso, porque existe una entrada en el índice para cada valor diferente de la llave de indización. Para el caso del archivo de datos de la figura anterior, el siguiente índice que considera como llave el cargo del trabajador también es denso pues, de igual forma, existe una entrada en el índice para cada valor diferente de la llave de indización.

Archivo índice
Un índice no denso necesita que la clave sea campo de ordenamiento del archivo de datos, pues así es posible accesar los registros, cuyo valor de la llave no aparece en ninguna entrada, para lo cual se accesa el registro apuntado por la entrada con un valor de la clave más próximo por defecto (por ejemplo) al del registro buscado y, luego, se va recorriendo secuencialmente el archivo principal en orden creciente de los valores de la llave, desde aquel registro, hasta encontrar el registro buscado, si existe, o hasta encontrar uno con valor más alto de la clave, en cuyo caso no existe. Este es el caso de la organización secuencial indizada.

Si desea saber más acerca de estos temas, puede consultar las siguientes páginas.

En esta página web hallará algunos conceptos complementarios a los mostrados en el manual sobre la arquitectura de una base de datos.
En esta página web encontrará definiciones complementarias al almacenamiento secuencial indexado.
En esta página web hallará algunos conceptos complementarios a los mostrados en el manual sobre la introducción a la base de datos.
Es esta página web encontrará definiciones complementarias sobre los objetivos de las base de datos.
Es esta página web encontrará ejercicios sobre la representación de la información.














Related Posts:

0 comentarios:

Publicar un comentario

DÉJANOS TUS COMENTARIOS