Francisco Abad

Manejador de BD - Conceptos

Home | Mi Prima consentida | Manejador de BD - Conceptos | Proyecto | Entidad-Relacion | Normalizacion | Tablas | Ciclo de Vida

Manejador de Bases de Datos

    El sistema  manejador   de bases de datos es la porción más importante del software de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea específica.

Las funciones principales de un DBMS son:

·            Crear y organizar la Base de datos.

·            Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que  los datos puedan ser accesados rápidamente.

·            Manejar los datos de acuerdo a las peticiones de los usuarios.

·            Registrar el uso de las bases de datos.

·            Interacción con el manejador de archivos. Esto a través de las sentencias en DML al comando de el sistema de archivos. Así el Manejador de base de datos es el responsable del verdadero almacenamiento de los datos.

·            Respaldo y recuperación. Consiste en contar con mecanismos implantados que permitan la recuperación fácilmente de los datos en caso de ocurrir fallas en el sistema de base de datos.

·            Control de concurrencia. Consiste en controlar la interacción entre los usuarios concurrentes para no afectar la inconsistencia de los datos.

·            Seguridad e integridad. Consiste en contar con mecanismos que permitan el control de la consistencia de los datos evitando que estos se vean perjudicados por cambios no autorizados o previstos.

   El DBMS es conocido también como Gestor de Base de datos. 

    En sí, un sistema manejador de base de datos es el corazón de la base de datos ya que se encarga del control total de los posibles aspectos que la puedan afectar.

    La capacidad para modificar una definición de esquema en un nivel sin afectar la definición del esquema se denomina dependencia de los datos. Existen dos niveles de ésta: independencia física e independencia lógica de los datos. Un esquema de base de datos se especifica por medio de una serie de definiciones que se expresa en un lenguaje de definición de datos(DDL). El resultado de la Compilación de las proposiciones en DDL es un conjunto de tablas que se almacenan en un archivo especial llamado diccionario de datos que contiene metadatos, es decir, "datos acerca de los datos".

   Un lenguaje de manejo de datos (DML) permite a los usuarios tener acceso a los datos o manejarlos. Existen básicamente dos tipos de DML: de procedimientos, que requieren que el usuario especifique cuáles datos necesita y cómo se van a obtener, y sin procedimientos, que requieren que el usuario especifique cuáles son los datos que necesita sin especificar la forma de obtención.

   Un manejador de base de datos es un módulo de programa que constituye la interfaz entre los datos de bajo nivel almacenados en la base de datos y los programas de aplicaciones y las consultas que se hacen al sistema. El manejador de base de datos se encarga de interactuar con el manejador de archivos, de conservar la integridad, de garantizar la seguridad, del respaldo y recuperación y del control de concurrencia.

   Los datos son un vital recurso organizacional. Es por esto que las organizaciones y sus gerentes necesitan practicar el manejo de recursos de datos, una actividad gerencial que aplica la tecnología de sistemas de información y herramientas de manejo para la tarea de administrar los recursos de datos de una organización.

 

Los DBMS's normalmente controlan directamente el almacenamiento en el disco.

Está constituido por dos componentes:

 

El manejador de archivos: que se encarga de leer y escribir bloques de los discos a solicitud del manejador de buffers.

 

El manejador de buffers: que manipula la memoria principal. Obtiene bloques del disco a partir del manejador de archivos y escoje páginas de memoria para almacenar dicho bloque y decide cuando retornar dicho bloque al disco.

 

Manejador de Consultas: Convierte una consulta o manipulación que puede estar expreada a un nivel muy alto (e.g. SQL) en una secuencia de solicitudes de datos almacenados como tuplas de una relación o partes de un índice de una relación.

 

Usualmente, la parte más complicada es la optimización de consultas, esto es, la selección de un buen plan de consulta, que es la secuencia de solicitudes al sistema de almacenamiento que resolverán la consulta.

 

Manejador de Transacciones : Los DBMS's permiten al usuario ejecutar transacciones, las cuales son grupos de operaciones que deben dar la apariencia de ser ejecutadas secuencialmente como una unidad (e.g. Transferir dinero de una cuenta bancaria a otra).

El manejador de transacciones tiene la responsabilidad de que permitir la ejecución correcta de múltiples transacciones simultáneas.

La definición de 'correcta' en una transacción se refiere al cumplimiento de las propiedades ACID:

Atomicidad: la transacción debe ejecutarse en su totalidad o o no debe ejecutarse en absoluto.

Consistencia: al terminar una transacción la base de datos debe pasar de un estado consistente a otro.

 

Manejador de Transacciones Aislamiento (isolation): Cuando dos transacciones se ejecutan concurrentemente, sus efectos deben ser aislados. Esto es, no debe haber efectos que no ocurrirían si ambas transacciones se hubiesen ejecutado secuencialmente.

Durabilidad: Una vez que la transacción ha terminado, su efecto no puede perderse en caso de fallas del sistema; ni siquiera si la falla ocurre inmediatamente después de terminada la transacción.

Algunas técnicas que permiten implementar las características ACID son el uso de bloqueo (locking) y logging.

 

Otras características Orientación a objetos.

Restricciones: funciones booleanas cuyo valor se requiere que sea verdadero. Cualquier modificación a la base de datos que haga que estas funciones devuelvan falso es rechazada.

Triggers: es un procedimiento que espera la ocurrencia de un evento para ejecutarse. Ejemplos de eventos son la inserción o eliminación de datos en una relación.

Datos multimedia: uso de vídeo, audio, imágenes, documentos y otros tipos de datos.

Almacenes de datos: son bases de datos centrales que se alimentan de información proveniente de otras bases de datos.

 

 

 

Lenguaje de definición de datos (DDL)

     El lenguaje de definición de datos, denominado por sus siglas como: DDL(Data definition Language).

    Permite definir un esquema de base de datos por medio de una serie de definiciones que se expresan en un lenguaje especial, el resultado de estas definiciones se almacena en un archivo especial llamado diccionario de datos.

 

 

Lenguaje de manipulación de datos (DML)

    La manipulación de datos se refiere a las operaciones de insertar, recuperar, eliminar o modificar datos; dichas operaciones son realizadas a través del lenguaje de manipulación de datos (DML, Data Manipulation Language), que es quién permite el acceso de los usuarios a los datos.

Existen básicamente 2 tipos de lenguajes de manipulación de datos:

·         Procedimentales:
    Los LMD requieren que el usuario especifique que datos se necesitan y cómo obtenerlos.

·         No procedimentales:
    Los LMD requieren que el usuario especifique que datos se necesitan y sin especificar cómo obtenerlos.

 

 

Lenguaje de consulta estructurado (SQL)

   El SQL (Structured Query Language) es un estándar aceptado en productos de bases de datos, que fue utilizado comercialmente por primera vez por la empresa Oracle en 1979. A pesar de que no se trata de un lenguaje de programación como puedan serlo C o Pascal, puede utilizarse en el diseño de consultas interactivas y puede incluirse en una aplicación como un conjunto de instrucciones de manejo de datos (sentencias). Por ejemplo, basándose en soportes externos al propio lenguaje y aun al propio programa ya compilado (como es un servidor o un motor SQL que haga de puente entre la aplicación, el sistema operativo y las bases de datos), lenguajes como Visual Basic o C/C++ pueden incluir sentencias SQL en su código.

Aunque en el mercado se pueden encontrar diversas variantes (dialectos) del lenguaje SQL, todos tienen un mínimo común basado en el estándar ANSI SQL de 1986, con extensiones propietarias. Desde 1991 se fueron realizando progresos para disponer de un estándar cada vez más completo, conocido como SAG SQL, propiciado por el denominado SQL Access Group.

El SQL estándar cuenta con elementos destinados a la definición, modificación, control, protección de los datos y acceso a bases de datos distribuidas en una red, haciendo factible que varios usuarios puedan consultar la misma base de datos de forma simultánea. Debido a su simplicidad, que proviene de ser sintáctica y gramaticalmente cercano al lenguaje natural, pueden utilizarlo tanto los usuarios técnicos como los que no lo son; esto, unido a su potencia, lo ha hecho muy popular.

 

 

 

 Puntero

   Intuitivamente, un puntero es una flecha que apunta a alguna parte. ¿A qué parte? Obviamente, si estamos hablando de ordenadores, apuntará a una cierta dirección de memoria. Es decir, un puntero es una representación simbólica de una dirección de memoria.

   Es un dato que indica la posición de memoria ocupada por otro dato. Puede concebirse como una flecha, que "apunta" al dato en cuestión.

   Estos proporcionan los enlaces de unión entre los elementos, permitiendo que durante la ejecución del programa, las structuras dinámicas puedan cambiar sus tamaños. En las estructuras dinámicas estos elementos, llamados nodos son normalmente registros, de al menos dos campos de donde uno de ellos es puntero, es decir contiene información que permite localizar el siguiente- siguiente- nodo d ela estructura.

 

Anillo

   Esta estructura también conocida como lista circular es una subclase de una lista lineal consistente en enlazar el último elemento de la lista (con el puntero) con el primero, este tipo de lista es cerrada. Puede recorrerse circularmente, en el sentido indicado por los punteros y presentan el inconveniente de los bucles o lasos infinitos que se presentan cuando no se tiene especial mente cuidado en detectar el final de la lista.

 

Cadenas

   La cadena es quizás la estructua más simple y se define como una secuencia de caracteres que se interpretan como un dato único. su longitud puede ser fijo o variable, por lo que además de ser constituidas por caracteres alfanumericos, hemos de conocer su longitud. En una variable tipo cadena se puede almacenar una palabra, una frase, una matricula de coche, una temperatura, etc. La longitud de una cadena se puede determinar bien indicando al principio de la misma el número dde caracteres que contiene, bien situando una carácter especial denominado fin-de-cadena.

 

Tablas Hash

   Las tablas de dispersión, más conocidas como tablas hash , son unas de las estructuras de datos más frecuentemente usadas. Para tener una idea inicial, las tablas de dispersión posibilitan tener una estructura que relaciona una clave con un valor, como un diccionario. Internamente, las tablas de dispersión son un array. Cada una de las posiciones del array puede contener ninguna, una o varias entradas del diccionario. Normalmente contendrá una como máximo, lo que permite un acceso rápido a los elementos, evitando realizar una búsqueda en la mayoría de los casos. Para saber en qué posición del array se debe buscar o insertar una clave, se utiliza una función de dispersión. Una función de dispersión relaciona a cada clave con un valor entero. Dos claves iguales deben tener el mismo valor de dispersión, también llamado hash value , pero dos claves distintas pueden tener el mismo valor de dispersión, lo cual provocaría una colisión.

   El valor de dispersión es un entero sin signo entre 0 y el máximo entero de la plataforma, por lo que la tabla de dispersión usa el resto de dividir el valor de dispersión entre el tamaño del array para encontrar la posición. Cuando dos claves tienen que ser almacenadas en la misma posición de la tabla se produce una colisión. Esto puede ser debido a que la función de dispersión no distribuye las claves lo suficiente, o a que hay más claves en la tabla hash que el tamaño del array. En el segundo caso, GLib ™ se encargará de redimensionar el array de forma automática.

 

Árboles

   Es una estructura reflejada por el organigrama de una compañía común. Aquí el presidente se representa en la cima, a los que siguen los gerentes regionales, y así sucesivamente. A esta definición intuitiva de estructura de árbol imponemos una restricción adicional, a saber (en términos de un organigrama), que ningún individuo de la compañía dependa de dos personas distintas; esto es, dos ramas de la organización no pueden fusionarse en algún nivel inferior.

 

Pilas

   Es una lista en la que todas las inserciones y eliminaciones se realizan en el mismo extremo de la estructura, el cual se llama cima (top) de la pila. El otro extremo recibe abecés el nombre de base de la pila y solo el último elemento resulta accesible.

 

Colas

    Una cola es otra forma de lista de acceso restringido. A diferencia de las pilas, en las que tanto las inserciones como las eliminaciones tienen lugar en el mismo extremo, las colas restringen todas las inserciones a un extremo y todas las eliminaciones al extremo opuesto. En realidad el concepto de cola es inseparable de cualquier sistema en el que se proporcionen objetos en el mismo orden en el que llegaron.

 

Grafos

   Los grafos son graficas en las cuales se muestra la relación que existe entre diferentes vértices, el camino en una grafica es una  sucesión de vértices siguiendo la dirección de las aristas, y los lasos son las uniones de dos vértices por dos aristas que salen de un vértice al otro.