You are on page 1of 26

INSTITUTO TECNÓLOGICO SUPERIOR DE LA MONTAÑA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

ASIGNATURA: “FUNDAMENTOS DE INVESTIGACIÓN”
DOCENTE: ING. FREDDY RAMÍREZ VILLALOBOS

TEMA: “SISTEMAS MANEJADORES DE BASE DE DATOS”

ACTIVIDAD: INVESTIGACION DOCUMENTAL

PRESENTA: Jesús Monje Labra

INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS

TLAPA DE COMONFORT, GRO., 14 de Diciembre.

2

etc. Apache Derby. por lo consiguiente.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS INTRODUCCIÓN Los sistemas manejadores de base de datos (SGBD). Consistencia 4. Por último se mencionaran los sitios web que ofrecen versiones gratuitas como es el dreamspark. 3 . esta puede ser: de código libre o abierto son aquellos que se les puede modificar su código. Existen en el mercado y se clasificaran de acuerdo a la licencia que posean. sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización. en inglés: DataBase Management System (DBMS). cada uno posee ciertas ventajas sobre los demás. es un tipo de software que sirven de interfaz entre la base de datos. el usuario y las aplicaciones que lo utilizan. DB2. Independencia 3. WindowBase. existen casos especiales que los hacen diferentes y. Manejo de Transacciones 6. el tipo de aplicaciones que se pueden desarrollar y el tipo de software que se utilizara. Actualmente en el mercado existe una gran variedad SMBD que comparten un mismo propósito general: manejar de manera clara. etc. Maneja la base de datos de acuerdo a la petición 9. se adecuan a las necesidades del usuario y cuentan con licencia. Tiempo de respuesta 7. Seguridad 5. Interactúa con el manejador de base de datos Aunque todos los SMBD tienen el mismo propósito. Establece y mantiene las trayectorias de acceso 8. por ejemplo MySQL. Al contrario de aquellos SMBD propietarios o de manejo mediante web no libre y gratuito como FileMaker. Abstracción de la información 2. Registra todo el movimiento de las bases de datos 10. Entre las principales funciones de los SMBD se encuentran: 1. Microsoft SQL Server Compact.

debido a que la ciencia fue creciendo de tal manera que se necesitaba alguna manera organizar los datos de distintos objetos. Es un conjunto de elementos relacionados entre si que reflejan o modelan la información de una organización.2 Revisión del modelo relacional. esta compuesto por unos componentes integrados que les permitirán a los usuarios manipular la información según sus necesidades. el día de hoy podemos gozar de los beneficios de tener grandes bases de datos organizadas y fáciles de manipular e introducir datos. fue así como nació las bases de datos. que a través del paso de los días fueron siendo cada vez mas complejas y organizadas fue así como distintos software aparecieron y ofrecieron una mejor organización en base de datos cuando estos eran de gran inmensidad. 4 .3 Revisión de SQL. Gracias a la evolución de la base de datos. I. hoy podemos obtener los resultados eficaces. I. Quiere decir que el contenido de cualquier BD refleja una realidad significativa para alguien. desde el punto de vista de sistemas. las bases de datos pasaron a formar punto clave y primordial en nuestras vidas. ya ahora se obtienen los datos necesarios en segundos. I.1 Panorama general de un SMBD.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS Sistemas Manejadores de Bases de Datos I Introducción Durante un buen tiempo. Ofrecieron mejores avances grandes y significativos resultados en las organizaciones.

3 Los niveles RAID.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS II Almacenamiento y estructura de archivos • Es una colección de objetos que guardan relaciones lógicas entre sí. Estos que guardan son las diversas tablas e índices almacenados físicamente. • El nivel 1 de RAID hace referencia a disposiciones de discos con distribución de bloques. los bloques 5 . pero no mejora la fiabilidad. como se presenta a continuación: • El nivel 0 de RAID hace referencia a disposiciones de discos con distribución en el nivel de bloques. Estos ultimo también se puede emplear con disposiciones de discos para dar la apariencia de un disco grande y fiable: si cada disco tiene M bloques. La distribución proporciona velocidades de transferencia de base de datos elevados.2 Los discos duros. Varios esquemas alternativos pretenden proporcionar redundancia a un coste menor combinado la distribución de los discos combinada con los bits de “paridad”. Obsérvese que algunos fabricantes emplean el término nivel 1+0 de RAID o nivel 10 de RAID para referirse a imágenes del disco con distribución. RAID (Redundant Array of Independent Disk) la creación de imagines proporciona gran fiabilidad pero resulta costosa. Estos esquemas tienen diferentes compromisos entre el coste y el rendimiento y se clasifican en los denominados niveles de RAID. y utiliza el término nivel 1 de RAID para las imágenes del disco sin distribución. pero sin redundancia (como la creación de imágenes o los bits de paridad). II. II.1 Organización de la memoria. objetos II.

el segundo en los disco dos. y se crea una imagen de cada disco. Por tanto. por lo que se utilizar un solo bit de paridad para la corrección y para la detección de los errores. los bits para la corrección de errores se guardan en discos adicionales. puedan detectar si los sectores se han leído correctamente. mejora respecto al nivel 2 al aprovechar que los controladores de disco. el sistema de memoria detecta los errores que afecta a un número impar de bits de un mismo byte. Cada byte del sistema de memoria puede tener asociado un bit de paridad que registra si el número de bits del byte que vale uno es par (paridad = 0) o impar (paridad = 1).INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS lógicos 1 a M se almacenan en el disco 1. etc. el primer bit de cada byte pueden guardarse en el disco uno. La idea de los códigos para la corrección de errores se puede utilizar directamente en las disposiciones de discos mediante la distribución de los byte entre los diferentes discos. Analógicamente. y así sucesivamente. por lo tanto. Si la paridad de los bits restantes es igual 6 . • El nivel 2 de RAID. Hace tiempo que los sistemas de memoria utilizan los bits de paridad para la detección y corrección de errores. hasta que se guarde el octavo bit en el disco ocho.. para cuando uno de sus bits. La idea es la siguiente : si uno de los sectores se deteriora. M + 1 a 2 M en el segundo. si el bit de paridad guardado se deteriora no coincide con la paridad calculada. también conocido como organización de códigos de corrección de errores tipo memoria (memory-style-error-correcting-code organitation. ECC) emplea bits de paridad. a diferencia de los sistemas de memoria. • El nivel 3 de RAID organiza de paridad con bits entrelazados. se sabe exactamente el sector que es y . se puede determinar si es uno o un cero calculando la paridad de los bits correspondientes de los sectores de los demás discos. no coincide con la paridad guardada. Si alguno de los bits del byte se deteriora (un uno se trasforma en cero y viceversa) la paridad del bute se modifica y. Por ejemplo. Los esquemas de corrección de errores guardan dos o más bits adicionales y pueden reconstruir los datos si se deteriora un solo bit.

lo que produce una mayor velocidad global de E/S. el nivel 3 de RAID permite un menor número de operaciones de E/S por segundo. por lo que el nivel 2 no se utiliza en la práctica. Las velocidades de transferencia para los procesos de lectura de gran tamaño son elevadas. además.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS que la paridad guardada. Por tanto. emplea la distribución del nivel de bloques. Por lo que se reduce la necesidad de almacenamiento adicional. Dado que los procesos de lectura y de escritura de cada bute se distribuyen por varios discos. mientras que en el nivel 1 necesita un disco de imagen por cada disco. La operación de escritura de un bloque tiene que acceder al disco en el que se guarda ese bloque. Los procesos de escritura independientes de un pequeño tamaño. la velocidad de transferencia para la lectura o la escritura de un solo bloque multiplica por N la de organización de RAID de nivel 1 que emplee la distribución entre N discos. en caso contrario. y. pero resulta menos costoso en cuanto al número de discos adicionales (solo tiene un disco adicional). La lectura de un bloque solo accede a un disco. Solo necesita un disco de paridad para varios discos normales. Pero se pueden ejecutar en paralelo varios accesos de lectura. no pueden realizarse en paralelo. ya que todos los discos tienen que participar en cada solicitud de E/S. dado que se pueden leer todos los discos en paralelo. • El nivel 4 de RAID organiza de paridad con bloques entrelazados. hay que leer 7 . con la distribución de los datos en N fracciones. lo que permite que los demás discos procesen otras solicitudes. guarda un bloque de paridad en un disco independiente para los bloques correspondientes de los otros N discos. por otro lado. ya que hay que actualizar el bloque de paridad. El nivel 3 de RAID es tan bueno como el nivel 2. dado que los datos y la paridad pueden escribirse en paralelo. como RAID 0. así como al disco de paridad. el bit perdido es un cero. El nivel 3 de RAID tiene dos ventajas respecto al nivel 1. se puede utilizar el bloque de paridad con los bloques correspondientes de los demás discos para restaurar los bloques del disco averiado. es uno. la velocidad de transferencia de datos de cada acceso es menor. Además. los procesos de escritura de gran tamaño también tienen velocidades de transferencia elevadas. Por otro lado. Si falla uno de los discos.

Una 8 . en el que el disco de paridad no puede participar. en vez de guardar los datos en N discos y la paridad en uno solo. mejora respecto al nivel 4 al dividir los datos y paridad entre todos los N + 1 discos. Por tanto. pero guarda información redundante adicional para la protección contra los fallos de disco múltiples. las tuplas de las diferentes relaciones suelen ser de tamaño diferente un enfoque de las correspondencia entre base de datos y archivos es utilizar varios archivos y guardar los registros de la misma longitud en un mismo archivo. el nivel 6 utiliza códigos para la corrección de errores como los Reed-Solomon. En lugar de utilizar la paridad. En las bases de datos relacionales. II. Una alternativa es estructurar los archivos y guardar los registros de la misma longitud en un mismo archivo. el tamaño de los registros varía. En cada conjunto de N bloques lógicos. por lo que el nivel 5 aumenta el número total de solicitudes que pueden atenderse en una cantidad de tiempo dada. En el nivel 5 todos los discos pueden atender las solicitudes de lectura a diferencia del nivel 4 de RAID. un solo proceso de escritura necesita cuatro accesos a disco: dos para leer los dos bloques antiguos y otros dos para escribir los dos nuevos. también denominado esquema de redundancia P+Q. guarda la • El nivel 6 de RAID. es muy parecido al nivel 5. Aunque los bloques son de un tamaño fijo determinado por las propiedades físicas del disco y por el sistema operativo.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS tanto el valor anterior del bloque de paridad como el del bloque que se escribe para calcular la nueva paridad.4 Organización de archivos. Los archivos constituyen un elemento fundamental de los sistemas operativos. uno de los discos paridad y los otros otros N guardan los bloques. Los archivos se organizan lógicamente como secuencias de registros. Esos registros se corresponden con los bloques del disco. por lo que se supone la existencia de un sistema de archivos subyacente. Hay que tomar en consideración diversas maneras de representar los modelos lógicos de datos en términos de los archivos. • El nivel 5 de RAID paridad distribuida con bloques entrelazados.

los archivos con registros de longitud fija don más sencillos de implementar que los que tienen registros de longitud variable. se comienza por tomar en consideración los archivos con registros de longitud fija. Un enfoque sencillo es utilizar los primeros cuarenta bytes siguientes para el segundo.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS alternativa es utilizar varios archivos y guardar los registros de la misma longitud en un mismo archivo. saldo numeric(12. y así sucesivamente. Cada registro de este archivo se define (en seudocódigo) de la manera siguiente: type deposito = record numero_cuenta char(10). hay dos problemas con este sencillo enfoque: 9 . end Si se supone que cada carácter ocupa un byte y que los valores de un tipo numeric(12. Una alternativa es estructurar los archivos de modo que puedan aceptar registros de longitudes diferentes. no obstantes. el registro de cuenta tiene cuarenta bytes de longitud. • Registros de longitud fija Consideramos que unos archivos con registros de cuentas de la base de datos bancaria. Por tanto.2). Muchas de las técnicas empleadas para los primeros pueden aplicarse a los de longitud variable. Sin embargo.2) ocupan ocho bytes. nombre_sucursal char (10).

De manera 10 . ya que resulta difícil hallar el espacio disponible mientras se realiza una inserción. Es decir. Al comienzo del archivo se asigna cierto número de bytes como cabecera del archivo. ya que para hacerlos se necesitan accesos adicionales a los bloques. se guardara en un bloque y parte de otro. Hay que rellenar el espacio ocupado por el registro que van a borrar con algún otro registro del archivo. Se utiliza este primer registro para guardar la dirección del segundo registro disponible. algún registro se saltara los límites de los bloques. por tanto.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS 1. No resulta deseable desplazar los registros para que ocupen el espacio liberado por los registros borrados. Harán falta. Cuando se borra un registro. A menos que el tamaño de los bloques sea múltiplo de cuarenta (lo que resulta improbable). Dado que las operaciones de inserción tienden a ser más frecuentes que las de borrado. Por tanto. Resulta difícil borrar registros de esta estructura. Puede que fuera más sencillo desplazar simplemente el último registro del archivo al espacio ocupado por el registro borrado. y asi sucesivamente. dos accesos a bloques para leer o escribir esos registros. parte del registro santo. hay que introducir una estructura adicional. resulta aceptable dejar libre el espacio ocupado por los registros borrados y esperar a una intercesión posterior ante de volver a utilizar ese espacio. La cabecera contiene gran variedad de información sobre el archivo. 2. se puede desplazar el situado a continuación al espacio ocupado que ocupaba el registro borrado y hacer lo mismo con los demás. Por ahora. o tener alguna manera de marcar los registros borrados para poder pasarlos por alto. Este tipo de enfoque necesita desplazar gran número de registros. hasta que todos los registros situados a continuación del borrado se hayan desplazado hacia delante. todo lo que hace falta guardar es la dirección del primer registro cuyo contenido se haya borrado. No basta con una simple marca en el registro borrado.

hay una cabecera al principio de cada bloque. Si se permiten en un archivo registros de longitud variable. • Registros de longitud variable Los registros variables surgen de varias maneras en los sistemas de base de datos:  Tipos de registro que permiten longitudes variables para uno varios de los campos. El final del espacio vacío del bloque. se añade el nuevo registro al final del archivo. Los registro borrados. dado que indican la posición de un registro.  Tipos de registros que permiten campos repetitivos. 2. La estructura de páginas con ranuras se utiliza habitualmente para organizar los registros en bloques. por tanto forman una lista enlazada a la que se suele denominar lista libre. que contiene la información siguiente: 1.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS intuitiva se pueden considerar estas direcciones guardadas como punteros. como los arrays o los multiconjuntos. dado que el espacio que deja libre cada registro borrado es exactamente el mismo que se necesita para insertar otro registro. La inserción y borrado de archivo con registros de longitud fija son sencillas implementar. esta coincidencia no se mantiene. El número de elementos del registro de la cabecera. 11 . Puede que el registro insertado no quepa en el espacio liberado por el registro borrado o que solo llene una parte. Existen diferentes técnicas para implementar los registros de longitud variable. Al insertar un registro nuevo se utiliza el registro al que apunta la cabecera. Se modifica el puntero de la cabecera para que señale a los siguientes registros disponibles. Si no hay espacio disponible.

Generalmente se usa un archivo separado para almacenar los registros de cada relación. se le asigna espacio al final del espacio libre y se añade a la cabecera una entrada que contienen su tamaño y su ubicación. Los registros se guardan en orden secuencial. Los registros reales se ubican en el bloque de manera contigua. No obstante. Si se insertan un registro. Los registros no se ordenan.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS 3. según el valor de la “clave de búsqueda” de cada uno.  Organización secuencial de los archivos. Un array cuyas entradas contienen la ubicación y el tamaño de cada registro. los registros relacionados de las diferentes relaciones se 12 . Generalmente solo hay un archivo para cada relación. en cada organización de archivos en agrupaciones de varias tablas se pueden guardar en el mismo archivo registros de relaciones diferentes. empiezan por el final. Se calcula una función de asociación (hash) para algún atributo de cada registro. entre la última entrada del array de la cabecera y el primer registro. además. El resultado de la función de asociación especifica el bloque del archivo en que se debe colocar cada registro. • Organización de los registros en archivos Es la forma de organizar los registros en archivos:  Organización de los archivos en montículos.  Organización asociativa (hash) de los archivos. El espacio libre dentro del bloque es contiguo. Se puede colocar cualquier registro en cualquier parte del archivo en que haya espacio suficiente.

Localizar el registro del archivo que precede al registro que se van insertar según el orden de la clave de búsqueda. El puntero de cada registro según el orden de la clave de búsqueda. Si existe algún registro vacío (es decir. el 13 . los registros se guardan físicamente en el orden indicado por la clave de búsqueda. Se puede gestionar el borrado mediante cadenas de punteros. Para la inserción se aplica las reglas siguientes: 1. el registro nuevo se insertara ahí. El puntero de cada registro señala al siguiente registro según el orden indicado por la clave de búsqueda. Además. para minimizar el número de accesos a los bloques en el procesamiento de los archivos secuenciales. los registros de dos relaciones se pueden considerar relacionados si casan en una reunión de dos relaciones. estos se vinculan mediante punteros. La organización secuencial de archivos permite que los registros se lean en forma ordenada. estos se vinculan mediante punteros. Los archivos secuenciales están diseñados para el procesamiento eficiente de los registros de acuerdo con un orden basado en alguna clave de búsqueda. ni siquiera una superclave. lo que puede resultar útil para la visualización asi como para ciertos algoritmos de procesamiento de consultas. como ya se ha visto. dado que se resulta costoso desplazar muchos registros como consecuencia de una sola operación de inserción o de borrado. • Organización de archivos secuenciales.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS guardan en el mismo bloque. Sim embargo resulta difícil mantener el orden físico secuencial a medida que se insertan y se borran registros. un espacio que haya quedado libre después de una operación de borrado) dentro del mismo bloque que eses registro. 2. por lo que cada operación de E/S afecta a registros relacionados de todas esas relaciones. La clave de búsqueda es cualquier atributo o conjunto de atributos. Por ejemplo. En caso contrario. no tiene por qué ser la clave primaria. Permitir la recuperación rápida de los registros según el orden de la clave de búsqueda. o lo más cercano posible.

es fundamental que el tamaño total del código objeto del sistema de bases de datos sea pequeño. por lo que se obtiene poco provecho de una estructura de archivos avanzada. de modo que se puedan aprovechar completamente el sistema de archivos proporcionado por el sistema operativo. Una estructura de archivos sencilla reduce la cantidad de código necesario para implementar el sistema. los sistemas empotrados o los dispositivos portátiles. Esta implementación sencilla de los sistemas de base de datos relacionales resulta adecuada para las implementaciones de bajo coste de las bases de datos como. Por tanto. por ejemplo. En cualquier caso. resulta evidente que una estructura de archivos más compleja puede resultar beneficiosa. En ese archivo. que también lo administra. En esos sistemas el tamaño de la base de datos es pequeño. 14 .INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS nuevo registro se insertara en un bloque de desbordamiento. Muchos sistemas de base de datos relacionales guardan cada relación en un archivo diferente. se asigna al sistema de base de datos un archivo de gran tamaño del sistema operativo. Por el contrario. Sin embargo. en esos entornos. Muchos de los sistemas de base de datos de gran tamaño no utilizan directamente el sistema operativo subyacente para la gestión de los archivos. se puede hacer que las relaciones se correspondan con una estructura de archivos sencilla. el sistema de base de datos. hay que ajustar los punteros para vincular los registros según el orden de la clave de búsqueda. Además. aunque se mantenga la estrategia de guarda cada relación en un archivo diferente. Por tanto. Este enfoque sencillo de la implementación de las base de datos relacionales resulta menos satisfactorio a medida que aumenta el tamaño de la base de datos ya que ha visto que se puede obtener mejoras en el rendimiento mediante la asignación esmerada de los registros a los bloques y la cuidadosa organización de los propios bloques. • Organización de archivos en agrupaciones de varias tablas. guarda todas las relaciones. Generalmente las tuplas de cada relación se pueden representar como registros de longitud fija.

Si la clave de búsqueda de un índice no es una clave candidata. con una entrada en el índice por cada valor de la clave de búsqueda. ya que los otros registros podrían ser alcanzados por una búsqueda secuencial del archivo. III. ya que siempre es posible encontrar registros con valores de la clave de búsqueda intermedios mediante un acceso secuencial a parte del archivo.1 Índices sobre archivos secuenciales.2 Índices secundarios. los registros con los valores de la de búsqueda intermedios pueden estar cualquier lugar del archivo y. Si su índice secundario almacena solo algunos de los valores de la clave de búsqueda. no pueden encontrar sin explorar el archivo completo. excepto en que los registros apuntados por los sucesivos valores del índice no están almacenados secuencialmente. almacenado solo algunos de los valores de la clave de búsqueda. Este tipo de índices debe ser denso. Es suficiente si el valor de cada entrada en el índice apunta al primer registro con ese valor en la clave de búsqueda. no sería suficiente apuntar solo al primer registro de cada valor de 15 . Si la clave de búsqueda de una índice con agrupación no es una clave candidata.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS III Métodos de indexamiento III. y un puntero a cada registro del archivo. En cambio. en general. Generalmente los índices secundarios están estructurados de manera diferente a como lo están los índices con agrupación. Un índice secundario sobre una clave candidata es como un índice denso con agrupación. Un índice con agrupación puede ser disperso.

Aunque esta degradación se puede remediar reorganizando el archivo. Además.…. Considérese primero la estructura de nodos hoja.2. El inconveniente principal de la organización de un archivo secuencial indexado reside en que el rendimiento. ya que se evita el coste de reorganizar el archivo. se degrada según frecuentemente. n – 1. III. Para i = 1. Un índice de árbol B+ toma la forma de un árbol equilibra donde los caminos de la raíz a cada hoja del árbol son de la misma longitud. El resto de registros con el mismo valor de la clave de búsqueda podría estar en cualquier otro sitio del archivo. Este gasto de espacio adicional también es aceptable dados los beneficios en el rendimiento aportados por las estructuras de árbol B+. tanto para buscar en el índice como para buscar secuencialmente a través de los datos. un índice secundario deber contener punteros a todos los registros. Este tiempo adicional es aceptable incluso en archivos con altas frecuencias de la modificación. donde n es fijo para cada árbol concreto.3 Árboles B+. tanto crece el archivo. en vez de la clave de búsqueda del índice secundario. el puntero P apunta. puesto que los nodos podrían estar a lo sumo medio lleno (si tienen el mínimo número de hijos) se desperdicia algo de espacio. Por lo tanto. ya que los registros están ordenados según la clave de búsqueda del índice con agrupación.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS la clave. además de un espacio extra. no es deseable hacerlo • Estructura de árbol B+ Un índice de árbol B+ es un índice multinivel pero con una estructura que difiere del índice multinivel de un archivo secuencial. Se verá que la estructura de árbol B+ implica una degradación del rendimiento al insertar y al borrar. o bien a un registro del 16 . Cada nodo que no sea hoja tiene entre [n/2] y n hijos. La estructura de índice de árbol B+ es la más extendida de las estructuras de índices que mantienen su eficiencia a pesar de la inserción y borrado de datos.

excepto que todos los punteros son punteros a nodos del árbol. En este ejemplo hay un mapa de bit para el valor m y otro para f. El resto de los bits del mapa de bits se define como (). un índice de mapas de bit sobre el atributo A de la relación r consiste en un mapa de bits para cada valor que pueda tomar A. el resto de bits del mapa de bits para m se define como (). 3. el mapa de 17 . o bien a un cajón de punteros. …. III. la estructura cajón se usa solamente si la clave de búsqueda no es una clave candidata y si el archivo no está ordenado según la clave de búsqueda. el i –esimo bit del mapa de bits para m se define como 1 si el valor sexo del registro con numero i es m. Analógicamente.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS archivo con valor de la clave de búsqueda K. La estructura de los nodos internos es la misma que la de los nodos hoja.5 Índices de múltiples dimensiones y mapas de bits. En su forma mas sencilla. el puntero P apunta al subárbol que contienen los valores de la clave de búsqueda menores que K y mayor o igual que K -1. Un mapa de bits es simplemente un array de bits. Para i = 2. o bien a un cajón de punteros. Un modo interno podría guardar hasta n punteros y debe guardar al menos [n/2] punteros.. El puntero P apunta a la parte del subárbol que contiene los valores de las claves mayores o iguales que K y el puntero P apunta a la parte del subárbol que contiene los valores menores que K. Considérese un nodo que contienen m punteros. III.4 Tablas de dispersión. cada uno de los cuales apunta a un registro del archivo con valor de la clave de búsqueda K. m – 1. Los nodos internos del árbol B+ forman un índice multinivel (disperso) sobre los nodos hoja. cada mapa de bits para el valor uj se define como 1 si el registro con un numero i tiene el valor uj para el atributo A. El numero de punteros de un nodo se llama grado de salía del nodo.

1 Álgebra y cálculo relacional. Es una colección de operaciones que sirven para manipular relaciones enteras. el espacio ocupado por cada mapa de bits seria la octava parte del uno por ciento del espacio ocupado por la relación. mientras que un solo bit representa a un registro en el mapa de bits. el espacio ocupado por cada mapa de bits suele ser menos del uno por ciento del espacio ocupado por la relación. el índice de mapas de bits de ese atributo consiste en ocho mapas de bits que. además del índice de mapas de bits para sexo. que ya se ha descritos antes.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS bits de f tienen el valor 1 para los bits correspondientes a los registros con el valor m (o f) seria simplemente leer todos los registros de la relación y seleccionar los de valor m (o f. si el tamaño del registro de una relación dada es de 100 bytes. Los registros suelen tener entre decenas y centenares de bytes de longitud. El índice de mapa de bits no ayuda realmente a acelerar esa selección. Los índices de mapas de bits son generalmente bastante pequeños en comparación con el tamaño real de la relación. solo ocupan el uno por ciento del tamaño de la relación. De hecho. 18 . juntos. Estas operaciones sirven. por ejemplo para seleccionar tuplas de relaciones individuales y para combinar tuplas relacionadas a partir de varias relaciones con el fin de especificar una consulta—una solicitud de obtención—de la base de datos. Por ejemplo. Por tanto. Si el tributo A de la relación solo puede tomar uno valor de entre ocho. IV Procesamiento y optimización de consultas IV. Supónganse que se crea un índice de mapas de bits sobre el atributo nivel_ingresos. El resultado de cada operación es una nueva relación. que podremos manipular en una ocasión futura. los índices de mapas de bits resultan útiles para las selecciones sobre todo cuando hay selecciones bajo varias claves. respectivamente).

es posible aplicarlas por que las relaciones se definen como un conjunto de tuplas. Por ultimo. Operación seleccionar La operación seleccionar sirve para seleccionar un subconjunto de las tuplas de una relación que satisface una condición de selección. la diferencia y el producto cartesiano.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS Las operaciones del algebra relacional suelen clasificarse en dos grupos. Uno contiene las operaciones corrientes de la teoría matemática de conjuntos. incluyen Seleccionar. entre otras. para seleccionar el subconjunto de tuplas de EMPLEADO que trabajan en el departamento 4 o cuyo salario rebasa los $30 000. 1. Entre las operaciones de conjuntos están la unión. El otro grupo consiste en operaciones creadas específicamente para bases de datos relacionales. La expresión booleana específica en la <condición de la selección> se compone de una o de más clausulas de la forma: <nombre de atributo><operador de comparación><valor constante> . Primero veremos operaciones seleccionar y proyectar porque son las más sencillas y luego estudiaremos las operaciones de conjuntos. o <nombre de atributo><operador de comparación><nombre de atributo> 19 . denotamos la operación SELECCIONAR con (<nombre de la relación>) <condición de selección> La relación que resulta de la operación SELECCIONAR tiene los mismos atributos que la relación especificada en <nombre de la relación>. trataremos la reunión y otras operaciones complejas. podemos especificar individualmente cada una de estas dos condiciones con la operación SELECCIONAR. la intersección. Proyectar y Reunión (a esta ultima también le llaman Junta). Por ejemplo. como sigue: (EMPLEADO) (EMPLEADO) Nd=4 SALARIO>30000 En general.

La operación PROYECTAR. el calculo y el algebra relacionales son idénticos. Se ha demostrado que cualquier obtención de datos que se pueda especificar en el algebra relacional puede especificar en el algebra relacional puede especificarse también en el calculo relacional. La operación Proyectar Si visualizamos una relación como una tabla. si queremos listar el apellido. <. ≠}. algunos lenguajes son más parecidos al cálculo relacional que otros. el poder de expresión de dos lenguajes es idéntico. Por ejemplo. En un sentido importante. >. podemos usar la siguiente operación PROYECTAR: (EMPLEADO) APELLIDO. O (OR) Y NO (NOT) para formar una condición de selección general. NOMBREP. SALARIO • Calculo relacional Es el lenguaje formal para las bases de datos relacionales. en otras palabras. Si solo nos interesan ciertos atributos de una relación. 2. la operación SELECCIONAR selecciona algunas filas de la tabla y desecha otras. en cambio. nombre de pila y el salario de todos los empleados. Se dice que un lenguaje de consulta relacional es relacionalmente completo si es posible expresar en L cualquier consulta que se pueda expresar en el cálculo relacional. Esto ha dado lugar a la definición del concepto de lenguaje relacionalmente completo. “proyectaremos” la relación sobre esos atributos con la operación PROYECTAR. y viceversa. por ejemplo los lenguajes QUEL y QBE. ≥. en el mercado hay muchos lenguajes de base de datos relacionados que apoyan en algunos aspectos de este cálculo. Las clausulas pueden conectarse arbitrariamente con los operadores boléanos y (AND). selecciona ciertas columnas de la tabla y desecha las demás. sin embargo.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS Donde <nombre de atributo> es el nombre de un atributo de <nombre de la relación>. ≤. y <valor constante> es un valor constaste del dominio del atributo. <operador de comparación> es normalmente uno de los operadores {=. 20 . entre ellos el lenguaje SQL.

permite obtener un resultado (en un tiempo acotado). En términos sencillos. siguiendo la notación usada anteriormente. Por eso se emplean tuplas. correcta. o sea. es decir es un lenguaje de consultas no procedimental. se usa t[A] para denotar el valor de la tupla t en el atributo A y t € r para denotar que la tupla t está en la relación r. un conjunto de pases que. lo que implica algún juicio o interpretación.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS Calculo relacional proporciona una serie de procedimientos que genera la respuesta a la consulta.2 Algoritmos de una pasada El algoritmo de una sola pasada es un “conjunto ordenado y finito de operaciones que permite hallar la solución de un problema”. es el conjunto de todas las tuplas t tales que el predicado P es cierto par t.3 Algoritmos de dos pasadas basados en ordenamientos y en dispersión. El algoritmo que se lee de una sola pasada es aquel que solo recibe datos de entrada y realiza las operaciones una sola vez. 21 . Un ejemplo claro de las consultas aplicando el cálculo relacional seria: { t | t € préstamo ^ t [importante] > 1200} IV. un algoritmo es una “receta”. son operaciones sencillas. Un algoritmo es univoco. Las consultas se expresan en el cálculo relacional de tuplas como { t | P (t) | Es decir. Describe la información deseada sin dar un procedimiento concreto para obtenerla. IV. ejecutados de la manera.

aquellos elementos x del conjuntos tales que h(x) = i. problemas.6 El compilador de consultas.5 Algoritmos basados en índices. 1. Los elementos de la i-esima lista son los miembros del conjunto que se está representando y que pertenece a la clase i. a las <<clases>> se les da el nombre de cubetas y se dice que x pertenece a la cubeta h(x). indizado por los números de cubeta 0. se tienen los encabezamientos de B listas. 22 . En un arreglo llamado tabla de cubetas. Si se desea tener B clases. Lógicamente. en promedio.3 Implementación de ACID.…. IV.4 Seriabilidad. numeradas de 0 a B-1. IV. Entonces si hay N elementos en los conjuntos. Se espera que las cubetas tengan casi el mismo tamaño.B-1. V Procesamiento de transacciones V.4 Algoritmos de más de dos pasadas. V. La idea fundamental es que el conjunto (posiblemente infinito) de miembros potenciales se divide en un número finito de clases. de modo que la lista para cada cubeta sea corta. IV. esto es. cada cubeta tendrá N/B miembros. V. el valor de h (x) es la clase a al cual x pertenece. A menudo se da a x el nombre de la clave y a h(x) el de valor de dispersión de x.2 Propiedades ACID de una transacción. V.1 Concepto.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS Se puede ver la estructura de datos básica para la dispersión abierta.

VI.6 Protección contra fallas en los medios.2 Seriabilidad.4 Tipos de almacenamiento.7 Paginación sombra.5 Recuperación basada en registro histórico. VI. 23 . VII. VII. VI.1 Seriabilidad y sus problemas.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS VI Control de concurrencia VI. VII. VII Sistema de recuperación VII.3 Deadlock: definición.2 Bloqueos y sus tipos.3 Recuperación.4 Planeación. VI. VII.1 Tipos de fallas. manejo y prevención. VII.5 Métodos de control de concurrencia. VII.

24 .8 Recuperación en transacciones concurrentes.INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS VII.

INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS CONCLUSIONES 25 .

Addison Wesley. Lopez Gustavo. MEXICO. FUNDAMENTOS DE BASES DE DATOS. DF. DF. SISTEMAS DE BASE DE DATOS.: Person Educacion. 26 . Korth Henry F. MEXICO.: Mc Graw Hill. INTRODUCCION A LOS SISTEMAS DE BASE DE DATOS. DF.: Alfaomega.: Addison Wesley Iberoamericana. DF. PASCAL Y ESTRUCTURAS DE DATOS. (2006). LILLY. DF. (1992).: Mc Graw Hill. SUSAN C. ANALISIS Y DISEÑO DE ALGORITMOS. MEXICO. (1998). (2009).INVESTIGACIÓN DOCUMENTAL SISTEMAS MANEJADORES DE BASE DE DATOS BIBLIOGRAFÍA ELMASRI RAMEZ (1997). México. MEXICO.