Ficheros y bases de datos - ALIPSO.COM: Monografías, resúmenes, biografias y tesis gratis.
Aprende sobre marketing online, desarrollo de sitios web gratis en Youtube
Suscribite para recibir notificaciones de nuevos videos:
Sábado 09 de Noviembre de 2024 |
 

Ficheros y bases de datos

Imprimir Recomendar a un amigo Recordarme el recurso

Jerarquía de memoria. Procesador de Entrada/Salida. Buffers. Dispositivos de almacenamiento. Estructura de un fichero. Técnicas de dispersión.

Agregado: 30 de AGOSTO de 2003 (Por Michel Mosse) | Palabras: 12519 | Votar | Sin Votos | Sin comentarios | Agregar Comentario
Categoría: Apuntes y Monografías > Computación > Varios >
Material educativo de Alipso relacionado con Ficheros bases datos
  • Datos, informacion y comunicacion: El proceso de tomas de decisiones, subsistema de planeacion, subsistema de comercializacion, subsistema de contabilidad y finanzas, sistemas, etc.
  • Algoritmos y Estructuras de Datos I: Algoritmos y Estructuras de Datos I Facultad de Ciencias Exactas y Naturales. Universidad de Buenos Aires Primer Cuatrimestre de 2000. Resolución del Parcial 17. Programación.
  • Algoritmos y Estructuras de Datos I: Algoritmos y Estructuras de Datos I Solución del Tercer Parcial – Segundo cuatrimestre de 1998.

  • Enlaces externos relacionados con Ficheros bases datos

    FICHEROS Y BASES DE DATOS

    TEMA 1 ASPECTOS BÁSICOS DE LOS FICHEROS

    1.1 Jerarquía de memoria

    Memoria Primaria

    - La primera idea es almacenar la información en el medio más rápido posible, para asegurar

    una rápida gestión.

    - El coste de acceso a memoria primaria, o memoria RAM, es fijo y reducido.

    - Pero la utilización de este tipo de memoria presenta diferentes problemas:

    - Suele ser un medio bastante caro, por lo que se suele limitar su capacidad.

    - La información se pierde al producirse un fallo de corriente eléctrica.

    Memoria Secundaria

    - Estas limitaciones aconsejan, la utilización de la memoria secundaria.

    - Sus propiedades son las siguientes:

    - Presenta un coste por byte mucho menor que la memoria RAM.

    - Preserva su contenido al producirse un fallo de corriente eléctrica.

    - Es bastante más lenta que la RAM y además el coste de acceso no es fijo.

    Definición de Ficheros

    - La información en memoria secundaria se almacena en ficheros, que se define como una

    Colección de Información Relacionada.

    - Debido al alto coste temporal del acceso a la memoria secundaria, se desea:

    - Maximizar la información recuperada.

    - Minimizar el número de accesos.

    Manejo de Buffers

    - Un buffer se define como un conjunto de bytes, que son leídos o escritos desde un

    dispositivo de almacenamiento, en la memoria primaria.

    - La utilización de esta técnica permite reducir el número de accesos a memoria secundaria.

    1.2 Ficheros lógicos y ficheros físicos

    - Desde un punto de vista físico, un fichero se define como un conjunto de bytes que se

    almacenan en memoria secundaria.

    - Desde el punto de vista de una aplicación, un fichero es su conexión con el mundo exterior,

    posibilitándole el envío y la recepción de información.

    -De este modo se definen el Fichero Físico y el Fichero Lógico.

    - La conexión entre ambos es realizada por el sistema operativo.

    1.3 Acceso a los datos situados en ficheros

    Administrador de Ficheros

    - El administrador de ficheros es la parte del sistema operativo que se encarga de la gestión de

    los ficheros.

    - Su primera tarea es comprobar que existe una conexión entre el fichero lógico y un fichero

    físico determinado.

    - Seguidamente se define en que parte del fichero se desea realizar la operación, y si esta se

    encuentra en un buffer de memoria.

    Procesador de Entrada/Salida

    - El procesador de entrada/salida se encarga de controlar el tráfico de información desde y

    hacia la memoria primaria.

    Número de Buffers y Velocidad de Acceso

    - El manejo de buffers por parte del administrador de ficheros permite reducir el número de

    accesos a memoria secundaria.

    - Pero una cuestión fundamental es el número de buffers a utilizar.

    - En realidad se utilizan varios buffers que se manejan de modo indistinto para lecturas y

    escrituras.

    - Si todos los buffers están ocupados, se debe vaciar uno de ellos para posibilitar una lectura.

    - Normalmente se utiliza el algoritmo LRU, es decir, se vacía el buffer menos recientemente

    utilizado.

    1.4 Coste de acceso a dispositivos de almacenamiento

    Tipos de Dispositivos

    - Según el modo en el que se accede a un dato dentro del medio de almacenamiento:

    - Los Dispositivos de Acceso en Serie, como las cintas magnéticas.

    - Los Dispositivos de Acceso Directo, como los discos magnéticos.

    - Los primeros se utilizan para almacenar información que deba ser leída o escrita de modo

    global.

    - Mientras que los segundos se utilizan en el manejo de ficheros cuyo criterio de acceso es

    más aleatorio.

    1.4.1 Coste de acceso a discos

    Organización de un Disco

    - Un disco se presenta como un conjunto de Platos, cada uno de los cuales presenta al menos

    una Superficie Magnética sobre la que se almacena información.

    - Cada superficie se divide en Pistas, y éstas a su vez en Sectores.

    - Las operaciones sobre la superficie se realiza a través del Cabezal de Lectura/Escritura.

    - El movimiento del cabezal para alcanzar una pista concreta se denomina Desplazamiento.

    - Cuando un disco presenta varios platos se denomina Paquete de Discos.

    - La capacidad de los sectores suele ser constante en todo el disco, por lo que las pistas

    interiores presentan mayor densidad de grabación.

    - El acceso a un dato en disco, lee o escribe la información de un sector sobre un buffer.

    Organización por Sectores

    - Un usuario asume que los ficheros aparecen en sectores continuos dentro del disco.

    - Pero no es así, ya que no es posible leer sectores contiguos, porque se requiere un cierto

    tiempo para procesar la información inicialmente leída.

    - Por tanto, si se almacenaran de este modo, sólo se podría leer un sector en cada giro.

    - Para evitar este problema, se suelen intercalar los sectores lógicamente contiguos entre otros

    sectores.

    - Otra alternativa es el acceso consecutivo de un conjunto de sectores, denominado Cúmulo.

    - La secuencia lógica de los cúmulos en el fichero aparece en la FAT.

    - Para reducir el coste de acceso, es necesario minimizar el coste de los desplazamientos.

    - Un registro puede aparecer en un único sector, lo que puede producir Fragmentación interna.

    Organización por Bloques

    - Las pistas de los discos también pueden estar organizados por bloques.

    - Su tamaño puede ser definido por el usuario, y su valor puede ser fijo o variable.

    - Un bloque puede descomponerse en una serie de subbloques:

    - Subbloque Contador, que incluye el número de bytes del bloque asociado.

    - Subbloque Clave, que incluye la clave del último registro del bloque.

    - Subbloque de Datos, en el que aparece la información.

    Overhead de las Organizaciones

    - Tanto los sectores como los bloques produce cierto overhead de almacenamiento, que

    reduce la capacidad del disco.

    - Parte de este overhead se produce cuando se formatea el disco.

    - En las organizaciones por sectores, debe de incluir en cada sector la siguiente información:

    - Dirección del Sector y de la Pista.

    - Estado del Sector, útil o dañado.

    - Espacios y Marcas de Sincronización.

    - El usuario no tiene la posibilidad de manejar esta información. En las organizaciones por

    bloques, parte de esta información sí puede ser definida por el programador.

    Cálculo del Coste de Acceso a un Disco

    - El coste del acceso a un disco se calcula a partir de la suma de tres valores:

    - Tiempo de Desplazamiento, para situar el cabezal sobre el cilindro adecuado.

    Se obtiene como suma del Tiempo Inicial de Arranque del Cabezal, s, y el producto

    del coste de atravesar un cilindro, m, y el número de cilindros a atravesar, n.

    f(n) = s + m*n

    - Retraso por Rotación, que incluye el tiempo necesario para situar el cabezal en la

    pista. Depende de la velocidad de giro del disco y de la posición del cabezal.

    - Tiempo de Transferencia, en el que se realiza de modo efectivo la operación.

    Depende del número de bytes a transmitir y de la velocidad de giro.

    Tiempo Transferencia = (n bytes a transmitir / n bytes en la pista) * Tiempo Rotación

    1.4.2 Coste de Acceso a Cintas

    Organización de las Cintas

    - Una cinta suele estar compuesta por una serie de pistas paralelas.

    - Los datos se agrupan en bloques cuyo tamaño es variable.

    - Una cinta se caracteriza por los parámetros:

    - Densidad de la Cinta, medido en número de bits por pulgada.

    - Velocidad de la Cinta, medido en pulgadas por segundo.

    - Tamaño del Hueco entre Bloques.

    Cálculo del Tamaño de una Cinta

    - Para calcular el tamaño necesario de la cinta para almacenar una información se considera:

    - La longitud Física de un Bloque de Datos.

    b = (Tamaño del Bloque) / (Densidad de la Cinta)

    - La longitud de un hueco entre bloques, g.

    - El número de Bloque, n.

    s = n * (b+g)

    Cálculo del Acceso a una Cinta

    - El Coste Nominal de Transmisión de Datos se define como:

    Densidad de Cinta (bpi) * Velocidad de Cinta (ips)

    - Pero no se tiene en cuenta el espacio ocupado por los huecos entre bloques, para ello es

    necesario definir la densidad de grabado efectivo,

    Número de Bytes por Bloque / Número pulgadas necesarias para almacenar bloque

    TEMA 2 ESTRUCTURA DE UN FICHERO

    2.1 Introducción

    - Los bytes que constituyen el fichero aparecen agrupados para formar unidades de inform.

    - En un fichero aparecen un conjunto de entidades caracterizadas por una serie de atributos.

    - Las entidades se asocian a Registros, y los atributos a Campos.

    - La cuestión se centra en como se puede localizar un determinado atributo de una entidad

    dentro del fichero.

    - Una alternativa es conocer de antemano la posición de inicio de cada una de las informac.

    - Otra posibilidad es marcar de algún modo el principio y el fin de cada información.

    2.2 Organización: Campos y Registros

    Definición y Tipos de Campos

    - Campo: menor unidad de información con significado lógico en un fichero.

    - Alternativas para localizar los campos en un fichero:

    1) Campos de Tamaño Fijo.

    - Cada campo ocupa en disco el mismo número de bytes. Para datos con longitud muy

    variable, puede producir un derroche, bastante importante, de la capacidad del disco.

    2) Comenzar un Campo con un indicador de longitud.

    Este indicador incluye el número de bytes del dato incluido en el campo.

    3) Colocar un delimitador al final del campo.

    Se elige un carácter especial que se escribe a continuación de los bytes del campo.

    Definición y Tipos de Registros

    - Registro: conjunto de campos que permanecen juntos cuando se observa el fichero con un

    mayor nivel de abstracción.

    - Para poder agrupar los campos de un registro, resulta necesario determinar los límites de un

    registro, apareciendo diferentes opciones:

    1) Registros de tamaño fijo, a nivel de bytes.

    Los campos de longitud fija se suelen reunir para formar registros de tamaño fijo.

    2) Registros de tamaño fijo, a nivel de campos.

    3) Comenzar cada registro con un indicador de longitud.

    4) Definir un fichero índice.

    Se utiliza un fichero índice cuyos registros indican el byte de inicio de los registros del

    fichero original.

    5) Colocar un delimitador al final de los registros.

    Elección de la Estructura

    - Existen diferentes aspectos que influyen en la elección de la estructura de un fichero: el

    lenguaje de programación, el tipo de operaciones que se implemente sobre el fichero.

    2.3 Acceso a la Información

    Modos de Acceso

    - La recuperación de la información puede ser de dos tipos:

    - Global, que recupera toda la información.

    - Selectiva, en donde se desea recuperar una parte de la información del fichero.

    - Mediante la utilización de la primera opción, el coste de los dos tipos de recuperación es

    equivalente, O(n).

    - La segunda opción debe conocer la posición de un registro en el fichero.

    - La recuperación selectiva con esta opción requiere el manejo de registros de tamaño fijo,

    obteniendo un coste O(1).

    Definición de Agrupamientos

    - El agrupamiento pretende almacenar lo más próximamente posible los registros que, de

    modo habitual, se acceden conjuntamente.

    - El agrupamiento se puede realizar dentro de un fichero o entre ficheros

    2.4 Actualización de la Información

    - Cuando se realizan diferentes operaciones de eliminación e inserción de información, puede

    aparecer espacio no utilizado en el fichero.

    Compactado de la Información

    - Esta opción es la más sencilla, siendo útil tanto para registros de tamaño fijo como variable.

    - Puede no ser una solución eficiente para fichero con un alto grado de actualización.

    Lista de Registros Disponibles

    - El borrado de registros debe de asegurar que el registro quede perfectamente marcado

    (elegir un carácter que se escriba al principio del registro) y que se puedan reutilizar estos

    registros, lo que se puede realizar de diferentes formas:

    - Acceso Secuencial al fichero (coste alto, no se suele utilizar).

    - Enlazar los registros borrados mediante una Lista.

    Lista en Registros de Longitud Fija

    - El carácter que marca el registro como borrado, aparece al principio del registro.

    - En este tipo de registros, la lista se forma a partir del número relativo de registro, grabado a

    continuación del carácter de borrado.

    Lista en Registros de Longitud Variable

    - La lista debe de contener el tamaño de cada uno de los registros que la componen.

    - El carácter de borrado aparece como primer carácter del primer campo del registro, es decir,

    a continuación del tamaño del registro.

    - El enlace entre los registros de la lista se realiza mediante la utilización de la posición física

    de los registros.

    - Dicha información aparece a continuación del carácter de borrado.

    Fragmentación Interna y Externa

    - La Fragmentación se define como el espacio asignado a un fichero en memoria secundaria

    que no puede ser utilizado para almacenar información.

    - La fragmentación puede ser de dos tipos:

    Interna, si el espacio aparece asignado a un registro.

    Externa, si el espacio aparece entre el asignado a dos registros.

    - El primer tipo aparece cuando se utilizan registros de longitud fija para almacenar datos de

    tamaño variable.

    Reducción de la Fragmentación Externa

    - La solución más sencilla es la Compactación de los ficheros, aunque es una solución muy

    costosa.

    - La solución más interesante es la utilización de Estrategias de Colocación que seleccionen el

    Hueco más adecuado en la lista.

    Estrategias de Colocación

    - La estrategia más sencilla es la del Primer Ajuste, que toma el primer espacio en el que

    quepa el nuevo registro, aunque no resuelve la problemática de la fragmentación externa.

    - Una solución es ordenar los espacios en orden de tamaño ascendente, de modo que en la

    búsqueda se obtenga el espacio de tamaño más similar.

    - Esta estrategia del Mejor Ajuste, puede tener un coste de inserción y borrado de la lista muy

    alto, y además los espacios libres pueden ser demasiado pequeños para su reutilización.

    - La ordenación descendiente reduce el coste del borrado, y además el tamaño del espacio

    libre resultante puede ser reutilizado.

    - Esta opción da lugar a la estrategia del Peor Ajuste.

    Conclusiones

    - Si la frecuencia de las operaciones de actualización es baja, la estrategia del primer ajuste es

    suficiente.

    - Cuando el problema se relaciona con la fragmentación interna, no debe ser utilizada la

    estrategia del peor ajuste.

    - Si aparece un problema de fragmentación externa, no debe utilizarse la estrategia del mejor

    ajuste.

    TEMA 3 ESTRUCTURAS DE ALMACENAMIENTO BÁSICAS

    3.1 Búsqueda de Información

    Definición de Clave

    - Normalmente se desea acceder a los registros que contienen cierta información en un campo

    - Este método de búsqueda de información se denomina Acceso por Clave.

    - Los valores en este campo deben de cumplir una serie de normas de almacenamiento que

    aseguren su localización, tales como:

    - Las cadenas de caracteres deben estar en mayúsculas, y sólo debe aparecer un

    espacio en blanco entre palabras.

    - No deben aparecer espacios en blanco ni en los campos numéricos ni en los de fecha.

    - En estos casos se dice que la clave aparece en Forma Canónica.

    Búsqueda Secuencial y Búsqueda Binaria

    - El método de acceso más sencillo es la búsqueda secuencial, pero su coste es O(n).

    - Un método alternativo es la Búsqueda Binaria, cuyo coste es O(log n).

    - Este método requiere que los registros sean de tamaño fijo y que estén ordenados por el

    valor del campo clave asociado al proceso de búsqueda.

    Ordenación de un Fichero

    - La idea principal va a ser leer completa, o parcialmente, todos los registros, y

    posteriormente realizar la ordenación en memoria RAM.

    Ordenación en Memoria

    - La primera idea es leer todos los registros en un vector de cadena de caracteres que se puede

    ordenar en memoria.

    - Pero el orden de este vector de cadenas puede ser diferente al definido por la clave.

    - Para evitar este problema, se crea un segundo vector de caracteres, el índice, en el que

    aparece la clave de los registros y un puntero a la posición del registro en el anterior vector.

    - Es posible reducir el coste si se define un tercer vector que contiene únicamente los

    punteros antes mencionados.

    Conclusiones

    - La ordenación en memoria sólo es útil cuando el fichero es lo suficientemente pequeño

    como para poder almacenarse en memoria.

    - Todos estos hechos aconsejan definir una técnica que:

    - Reduzca el coste de acceso, a uno o dos accesos a disco, para cualquier clave.

    - La búsqueda de información no requiera ordenar los registros del fichero.

    - Las operaciones de actualización se realicen de modo eficiente.

    3.2 Definición y Manejo de índices

    Concepto de Fichero índice

    - Los Ficheros índices se definen como un fichero cuyos registros son de tamaño fijo, en el

    que se almacena la clave del registro y un puntero a este registro.

    - Su utilización presenta una serie de ventajas:

    - Permite el uso de la búsqueda binaria tanto para ficheros de registros de tamaño fijo

    como para los de tamaño variable.

    - El proceso de ordenación se restringe al fichero índice.

    - Es posible definir diferentes ficheros índice, cada uno de los cuales se asocia a una

    clave de búsqueda.

    - Pero también presenta inconvenientes:

    - Las operaciones de actualización requieren la actualización de más de un fichero.

    - El orden establecido en los ficheros índices debe de mantenerse.

    - Si el fichero índice es demasiado grande para almacenarse en memoria, estas

    operaciones pueden ser muy costosas.

    Tipos de índices

    - Una primera clasificación es la siguiente:

    - índice Denso, si contiene una referencia a todos los registros del fichero.

    - índice no Denso, si sólo contiene referencia a un subconjunto de registros.

    - Otra posible clasificación es la siguiente:

    - índice Primario, si contiene la clave primaria del fichero.

    - índice Secundario, si contiene otra clave.

    Control contra Fallos del Sistema

    - Si no se produjera la actualización del índice por una fallo del sistema, este no reflejaría el

    estado real del fichero y por tanto debería de reestablecerse.

    - Para detectar esta posibilidad, en el registro de cabecera del fichero índice se introduce una

    bandera que indique esta situación:

    - La lectura del fichero, debería marcar el fichero como leído y no escrito.

    - Por su parte, la escritura debería modificar el valor de esta bandera.

    - La lectura debería controlar el estado de esta bandera, reconstruyendo el fichero índice si

    ésta indicara que ha sido leído y no reescrito.

    3.3 índices Multinivel. Arboles B y B+

    índices Multinivel

    - Cuando un fichero índice es demasiado grande para almacenarse en memoria RAM, su

    gestión puede resultar muy costosa.

    - Estos problemas también surgen si no es posible almacenar en memoria todos los ficheros

    índice de un fichero.

    - La solución a estos problemas es la definición de un índice no denso sobre el fichero índice

    en cuestión.

    - De este modo se define un índice multinivel, compuesto por un conjunto de índices no

    densos que actúan sobre un índice que puede ser denso o no denso.

    Propiedades de los Arboles B

    - Se define el orden de un árbol B como el número máximo de hijos de una página.

    - Por su parte la hoja de un árbol B como el nivel más bajo de la estructura.

    - Así un árbol B de orden m cumple que:

    - Una página puede referenciar m páginas hijo como máximo.

    - Toda página, excepto la raíz y las hojas tienen al menos m/2 hijos.

    - La raíz tiene por lo menos dos páginas hijo.

    - Todas las hojas aparecen en el mismo nivel.

    - Una página, que no es una hoja y que tiene k hijos, contiene k-1 claves.

    - Una página hoja contiene al menos (m/2)-1 claves y no más de m-1 claves.

    Operaciones sobre Arboles B

    - Inserción: siempre se intenta insertar en una página hoja.

    - Si esta se encuentra completa, se elige una clave que divida el nuevo conjunto de claves en dos subconjuntos equilibrados.

    - Los dos subconjuntos se almacenan en dos páginas, mientras que la clave elegida se inserta en el nivel superior, en donde se puede repetir el proceso.

    - Borrado:

    - Siempre se deben eliminar claves situadas en una página hoja.

    - Si se desea eliminar una clave que no esté en una página hoja, se intercambia con la

    clave siguiente, que está en una hoja y luego se elimina.

    - Cuando una página hoja queda con un número de claves menor que el mínimo, hay que examinar sus páginas hermanas. Si una página hermana tiene más del número mínimo de claves, se deben redistribuir sus claves con la página actual.

    En caso contrario, se concatena la página actual, una página hermana y la clave que las separa, repitiéndose el proceso.

    Tipos de Arboles B

    - Un árbol B* intenta mejorar el llenado de las páginas del árbol.

    - La redistribución se incluye en la inserción, tal que si es posible se distribuyen las claves entre páginas hermanas y si no se divide.

    - Así, la división involucra dos páginas llenas dando lugar a tres nuevas páginas. Una página tiene al menos (2m-1)/3 hijos. Una página hoja tiene al menos [(2m-1)/3]

    claves.

    - Por su parte el árbol B+ pretende el manejo de los datos de modo secuencial y directo. Los

    datos aparecen en bloques enlazados, denominados Conjunto Secuencia.

    Arbol B desperdicio máximo por página = m/2

    Arbol B* desperdicio máximo por página = m/3

    TEMA 4 TÉCNICAS DE DISPERSIóN

    4.1 Introducción

    Concepto de Dispersión

    - La Dispersión permite definir la posición que ocupará un registro en el fichero, mediante la

    aplicación de una función de dispersión sobre la clave de acceso.

    - Esta posición se utiliza en las operaciones de inserción y borrado, por lo que el número de

    accesos se reduce a uno.

    - Un registro puede almacenarse en cualquier posición dentro del fichero, según la función de

    dispersión que se utilice. Por esta razón, esta opción sólo se puede utilizar en ficheros con

    registros de tamaño fijo.

    Colisiones

    - El problema se presenta cuando más de un registro se asocia a la misma posición.

    - Las claves que se asocian a la misma posición se les denomina Sinónimos.

    - La aparición de colisiones puede aumentar el número de accesos requerido para acceder a

    un registro determinado.

    - Para reducir el problema se puede:

    - Utilizar una función de dispersión perfecta, que reduzca al máximo su número.

    - Definir variantes que reduzcan el número de colisiones que pueden aparecer.

    - La primera opción es demasiado costosa, por lo tanto utilizaremos diferentes variantes de

    esta técnica, las más comunes son:

    - Definir una función de dispersión que realice una distribución adecuada de los regs.

    - Aumentar el tamaño del fichero para reducir la posibilidad de aparición de colisiones

    - Almacenar más de un registro en la misma posición, que referenciará a una página.

    4.2 Funciones de Dispersión

    Clasificación y Análisis

    - Las funciones de dispersión se pueden clasificar a partir de la probabilidad de asignación de

    un registro en una dirección como,

    - Uniforme, en la que los registros aparecen uniformemente distribuidos en el fichero.

    - Aleatoria, si un determinado registro puede ser asignado a cualquier dirección.

    - La primera clase no suele ser viable, mientras que no existe ningún tipo de control sobre la

    segunda. Es por esto, que se estudian alternativas para mejorar su comportamiento:

    - Buscar un patrón en la clave.

    - Particionar la clave que luego se suman.

    - Dividir la clave por un número.

    4.3 Saturación Progresiva

    Definición

    - Una de las opciones más simples para resolver la aparición de una colisión en una dirección,

    es elegir el primer hueco no ocupado que se encuentre a continuación de aquel.

    - Si se alcanza el final del fichero en este proceso, se debe continuar con la primera dirección

    del fichero. Esta técnica se denomina Verificación Lineal o Saturación Progresiva.

    Búsqueda de información

    - Se inicia en la dirección asociada a la clave, si el registro buscado aparece en el fichero, está

    operación finaliza cuando se encuentra el registro con la clave seleccionada. En caso

    contrario, el proceso finaliza cuando se produce una de las siguientes situaciones:

    - Aparece un hueco no ocupado.

    - Se alcanza la dirección inicial.

    Eliminación de Registros

    - En la eliminación de un registro de la estructura se debe de considerar que,

    - El registro pueda ser reutilizado.

    - El borrado no impida la localización de un registro.

    - La primera condición se consigue marcando el hueco asociado como vacío.

    - Para la segunda condición se debe de marcar de marcar de un modo especial. Esta marca

    indicará al proceso de búsqueda de un registro que el hueco correspondiente estuvo

    ocupado.

    4.4 Empaquetado de Registros

    Frecuencia de Colisiones

    - La Densidad de Registros en un fichero se define como el cociente entre el número de

    registros almacenados y el número de registros que caven en un fichero.

    - La probabilidad de aparición de x registros asociados a una dirección en un fichero con una

    capacidad de N huecos y con r registros, se define por la función de Poisson,

    - Siendo n la capacidad en registros del fichero, el número de colisiones se calcula como:

    num_colis =

    - Siendo b el número de registros en un hueco, la relación entre el número de huecos y el

    número de registros almacenados se define: n = bN

    - Para un mismo valor de densidad, el número de colisiones disminuye cuando crece b,

    4.5 Otras Técnicas de Dispersión de Colisiones

    - En la Doble Dispersión , si aparece una colisión se aplica una segunda función de

    dispersión. En este sistema los sinónimos pueden estar muy separados, aumentando su coste

    de acceso.

    - La Saturación Progresiva Enlazada forma una lista con los sinónimos, reduciendo el coste de

    acceso a éstos, pero con inconvenientes:

    - Cada registro debe de poseer un campo en el que se almacene una dirección.

    - Toda dirección debe contener un registro con esa dirección.

    - Para resolver los problemas se puede enlazar con un Área de Saturación Separada.

    - Por su parte las Tablas de Dispersión se aplican sobre índices, lo que permite manejar

    registros de tamaño variable.

    4.6 Dispersión Extensible

    Planteamiento

    - Cuando no se conoce el tamaño del fichero y se desea eliminar la influencia de las

    colisiones es necesario modificar estas técnicas.

    - Como en el caso de los índices, la solución se basa en la utilización de un árbol binario.

    - Las hojas del árbol aparecen en un vector, el Directorio, y referencian a una página.

    - El directorio se puede almacenar en memoria, reduciendo a uno el número de accesos.

    TEMA 5 SISTEMAS DE BASES DE DATOS FRENTE A SISTEMAS DE

    FICHEROS

    5.2 Problemas de los Sistemas de Ficheros

    - La información redundante ocupa espacio en disco, que podría eliminarse centralizando la

    información.

    - Pueden aparecer problemas de integridad de los Datos:

    A nivel físico. Valor en diferentes ficheros son diferentes.

    A nivel lógico. No existe algún dato que se referencia desde otro fichero.

    - La Consistencia de los Datos, es decir que los datos se almacenan siempre en el mismo

    formato, puede no estar asegurada.

    - Debido al procesamiento por lotes, los datos consultados pueden no ser reales.

    - El procesamiento por bloques también puede requerir la reorganización física de los

    ficheros.

    5.3 Sistemas de Bases de Datos

    Características básicas de los SBD

    - Surgen para resolver los problemas de los SF.

    - Desde el punto de vista lógico (programas y usuarios), los datos y la definición de sus

    relaciones se almacenan en un único lugar, que es común.

    - Físicamente, los datos se almacenan en uno o varios ficheros.

    - El acceso de los datos se realiza, a través del sistema de gestión de bases de datos (SGBD),

    mediante sentencias específicas que pueden incluirse dentro de lenguajes de alto nivel.

    Visiones de la Base de Datos

    - Física. Muestra el modo real en el que los datos se almacenan en ficheros. útil para

    programadores de sistemas y creadores del SGBD.

    - Subesquema o Vista. Visión lógica de los datos relacionados con una aplicación. útil para

    programadores de aplicaciones y usuarios finales.

    - Esquema. Indica la visión lógica global de la BD. útil para el diseñado del sistema y el

    administrador del sistema.

    Funciones del SGBD

    - Aceptar definiciones de esquemas y vistas.

    - Manipular los datos siguiendo las órdenes de los usuarios.

    - Cuidar que se respete la seguridad e integridad de los datos.

    - Controlar la concurrencia y las operaciones asociadas a la recuperación de los fallos.

    - Proporcionar un diccionario de datos que contenga los esquemas. Información de los

    usuarios, ...

    5.4 Ventajas de los Sistemas de Bases de Datos

    Datos Compartidos

    - Aparecen menos datos redundantes:

    . Se ocupa menos espacio en disco.

    . La integridad física de los datos se reduce.

    5.5 Inconvenientes de los Sistemas de Bases de Datos

    Comparación con SF

    - Son más caros a nivel de hardware y software.

    - Su diseño requiere una fase de planificación, realizada por especialistas, que resulta muy

    costosa.

    - La vulnerabilidad de los SBD es mayor, ya que el fallo en cualquier fichero produce el fallo

    en todo el sistema.

    TEMA 6 EL DISEÑO DE LAS BASES DE DATOS

    6.1 Fases del Diseño de Bases de Datos

    Elementos del Ciclo de Vida

    - Estudio de la Viabilidad.

    Determina la rentabilidad de las diferentes alternativas y las prioridades de los elementos

    del sistema.

    - Recogida y Análisis de Requerimientos

    Permite comprender la misión del sistema, mediante la interacción con los usuarios, dando

    lugar a los Requerimientos del Sistema.

    - Diseño

    Se especifica la estructura del sistema, diferenciando el Diseño de la Base de Datos y el

    Diseño de las Aplicaciones.

    - Creación de Prototipos

    Mediante la utilización de herramientas, se define una Realización Simplificada del Sistema.

    Permite verificar si el diseño se ha realizado correctamente, así como la opinión del usuario

    sobre éste.

    - Implantación

    Se implementa la versión final del sistema, analizando la mejor alternativa que asegure un

    rendimiento óptimo.

    - Validación y Prueba

    Garantiza que las fases del desarrollo se han realizado correctamente, verificando que la

    aplicación cumple los requerimientos.

    - Operación

    Se inicia con la carga inicial de los datos y acaba cuando el sistema se convierte en obsoleto.

    6.2 Diseño Conceptual

    Objetivos

    - Describir el Contenido de la Información de la Base de Datos.

    - Esta descripción debe ser independiente del modo en el que se almacene la información.

    Características

    - A partir de los Requerimientos obtiene el denominado Esquema Conceptual (EC).

    - El EC es una descripción de alto nivel de la estructura de la Base de Datos.

    - El Modelo Conceptual (MC) es un lenguaje utilizado en la descripción de los EC.

    6.3 Diseño Lógico

    Objetivos

    - Describir el Contenido de la Información de la Base de Datos.

    - Esta descripción puede ser procesada por el software del tipo de SGBD a utilizar.

    Características

    - A partir del Esquema Conceptual obtiene el denominado Esquema Lógico (EL).

    - El Modelo Lógico (ML) es un lenguaje utilizado para especificar Esquemas Lógicos.

    6.4 Diseño Físico

    Objetivos

    - Describir el Contenido de la Información de la Base de Datos.

    - Esta descripción sólo puede ser procesada por un SGBD específico.

    Características

    - A partir del Esquema Lógico obtiene el denominado Esquema Físico (EF).

    - El EF describe las estructuras a utilizar para almacenar los datos y los métodos usados para

    acceder a ellos.

    - Las decisiones tomadas es esta fase, que permiten mejorar el rendimiento de la BD, puede

    modificar el esquema lógico.

    - Es decir, existe una retroalimentación entre el diseño lógico y el diseño físico.

    Análisis Funcional

    - Genera el Esquema Funcional mediante el llamado Modelo de Funciones.

    - Descripción de alto nivel de las tareas a realizar , así como del flujo de información

    asociado.

    6.5 Interacción entre el Diseño de Bases de Datos y el Análisis Funcional

    Características

    - Una metodología conjunta debe de considerar que:

    - Los datos necesarios para las funciones aparezcan en el esquema conceptual.

    - Las funciones requeridas por los datos se definan en el esquema funcional.

    TEMA 7 MODELOS DE BASES DE DATOS

    7.1 Introducción

    Modelos de Datos y Esquemas

    - Los Modelos de Datos (MD) son herramientas que permiten describir la realidad.

    - Los programadores los utilizan para construir Esquemas, que son representaciones de la

    realidad.

    Clases de Modelos de Datos

    - Existen dos tipos de MD:

    - Modelo Conceptual que representa la realidad en un alto nivel de abstracción.

    - Modelo Lógico, o Modelo de Base de Datos, que describen las relaciones lógicas

    entre los datos y la base de datos.

    - El primero genera el Esquema Conceptual y el segundo el Esquema Lógico.

    Sistemas Prerrelacionales

    - Modelo Jerárquico.

    Los datos se relacionan de modo jerárquico, y se representa mediante una estructura en

    árbol.

    - Modelo de Red.

    Se entiende como una generalización del modelo jerárquico, en donde los nodos hijo pueden

    tener varios nodos padre.

    Sistemas Relacionales

    - Modelo Relacional.

    Se utilizan conceptos matemáticos, como las relaciones, para representar los datos y las

    operaciones sobre estos.

    Sistemas Postrrelacionales

    - Modelo Orientado a Objetos.

    Los datos se representan mediante objetos, que contienen variables y métodos, y su

    manipulación se realiza mediante mensajes.

    - Modelo Semántico.

    Tienen como objetivo describir de un modo más preciso la información contenida en la base

    de datos.

    - Modelo Deductivo.

    Son capaces de deducir hechos a partir de las relaciones base y una serie de axiomas

    deductivas o reglas de inferencia.

    7.2 Modelo Jerárquico

    Estructura Jerárquica

    - Una Base de Datos Jerárquica se compone de un Conjunto Ordenado de Árboles.

    - El orden global de la base de datos se obtiene mediante el recorrido en Preorden del bosque.

    Diagramas de Ocurrencias (DO)

    - Cada uno de los rectángulos representa la instancia de un tipo de registro.

    - Los arcos definen la relación existente entre las instancias de dos niveles contiguos del

    árbol.

    - No se suelen especificar los campos de los registros.

    - Cuando la información almacenada en la base de datos es muy grande, se convierte en

    inmanejable.

    Diagrama de Bachman (DA)

    - Describe gráficamente el esquema lógico de una base de datos jerárquica.

    - Los rectángulos representan los tipos de registro.

    - Los arcos representan la relación existente entre los tipos de registro.

    - Los arcos se etiquetan porque puede existir más de una relación entre dos tipos de registro

    (no en el modelo jerárquico).

    - La flecha simple-doble indica que existe un único padre para cada hijo, pero pueden existir

    cero o más hijos de un padre.

    Problemas de las BD Jerárquicas

    - únicamente pueden representar relaciones de 1-a-Muchos.

    - Las relaciones Muchos-a-Muchos requieren la redundancia de información.

    - Si un registro tipo aparece como "hijo" en más de dos relaciones, se debe de replicar.

    - Esto puede producir problemas de Integridad y Consistencia de los Datos.

    - Los lenguajes de manipulación asociados son fuertemente navegacionales.

    - Hace falta un Lenguaje de Programación Anfitrión en el que se inserten los operadores.

    7.3 Modelo de Red

    Estructura de Red

    - El Modelo de Red se puede entender como una extensión del modelo jerárquico.

    - También se presenta mediante un árbol, pero en este caso, cada hijo puede tener varios

    padres.

    - De este modo se reducen, o eliminan, las redundancias.

    - Pero desaparece la herencia de los campos.

    Tipos de Redes

    - Se dice que la Red es Simple si los padres de un hijo son instancias de registros tipo

    diferentes.

    - Se dice que la Red es Compleja si los padres pueden ser instancias del mismo registros tipo.

    Conversión Compleja-Simple

    - Permite reducir el problema de la pérdida de información asociado a las redes complejas.

    - La idea es convertir una relación muchos-a-muchos en dos relaciones uno-a-muchos,

    mediante la inserción de un nuevo tipo de registro.

    - Este registro se denomina Registro Intersección si contiene algún tipo de información, que

    se denomina Datos de la Intersección.

    - En otro caso, se denomina Registro de Enlace.

    Ciclos y Lazos

    - Existen dos tipos de relaciones específicas, los Ciclos y los Lazos.

    - En un ciclo, diferentes tipos de registros se relacionan de modo circular.

    - Los lazos representan la relación de un tipo de registro consigo mismo.

    - Los lazos sólo pueden manejarse en redes complejas.

    Problemas Asociados

    - Los lenguajes de manipulación asociados son fuertemente navegacionales.

    - Hace falta un lenguaje de programación Anfitrión en el que se inserten los operadores.

    - Especialmente complicada en redes complejas.

    7.4 Modelo Relacional

    Estructura Relacional

    - La estructura de datos básicos es la Relación, denominada normalmente como Tabla.

    - Una base de datos relacional se compone de una colección de relaciones.

    - Cuando una tabla contiene datos se dice que es una instancia de la relación.

    - Cada relación se asocia a una entidad, y se compone de una serie de atributos.

    - Las filas de la tabla definen las instancias de la entidad, y son las Tuplas de la Relación.

    - No se permiten tuplas duplicadas en una tabla, aunque los SGBD no suelen controlarlo.

    - Las columnas de la tabla son las ocurrencias de los atributos de la entidad.

    - Con cada atributo se asocia un Dominio que define el posible rango de valores.

    7.5 Otros Modelos

    Modelos Clásicos

    - Los modelos clásicos presentan una serie de características comunes:

    - Uniformidad. Un gran cantidad de datos se estructuran de modo similar.

    - Orientación en Registros. Los datos básicos se almacenan en registros de longitud fija.

    - Datos Pequeños. Los registros son cortos, normalmente de pocos cientos de bytes.

    - Campos Atómicos. Los campos de los registros son cortos, de longitud fija y no poseen

    ningún tipo de estructura interna.

    - Transacciones Cortas. En las transacciones no tienen interacción con el usuario y además su

    duración es de alguna fracción de segundo.

    - Esquema Casi Estático. No suelen realizarse cambios en los esquemas, y si aparecen son de

    poca importancia.

    TEMA 8 ESTRUCTURA DE DATOS RELACIONAL

    8.1 Ejemplo Introductorio

    Definiciones

    - Relación (Tabla). Elemento básico del modelo relacional, que se asocia a una entidad.

    - Tupla (Fila o Registro). Cada una de las instancias de una entidad.

    - Cardinalidad (Número de Filas). Número de instancias de una entidad en una relación.

    - Atributo (Campo o Columna). Cada una de las propiedades que caracterizan una entidad.

    - Grado (Número de Columnas). Número de atributos asociados a una entidad.

    - Clave Primaria (Identificador único). Conjunto de uno o más atributos que identifican de

    modo completo una instancia de una entidad.

    - Dominio (Conjunto de Valores Legales). Define la colección de valores de donde uno o más

    atributos obtienen sus valores reales.

    8.2 Dominios

    Definiciones

    - Un escalar es la menor unidad semántica de información, es decir, es un dato atómico.

    - Se define un Dominio, o Dominio Simple, como un conjunto de escalares.

    Terminología

    - Es aconsejable que el nombre de los dominios y de los atributos coincidan, siempre y

    cuando no exista ambigüedad.

    Dominios Compuestos

    - Un dominio compuesto es una combinación de dominios simples.

    Interpretación de los Dominios

    - Desde un punto de vista intuitivo, un dominio es equivalente a un tipo de datos.

    - De este modo, se define atributos (variables) que pertenezcan a un dominio (tipo de datos).

    8.3 Relaciones

    Definiciones

    - Una Relación sobre un conjunto de dominios se compone de dos partes, la Cabecera y el

    Cuerpo.

    - La Cabecera, o Esquema de la Relación, se compone de un conjunto fijo de pares atributo

    dominio.

    - El Cuerpo, o Extensión de la Relación, está formado por un conjunto Tuplas.

    Interpretación de las Tablas

    - Existe un dominio subyacente asociado a cada columna de la tabla.

    - Las dos partes de la tabla corresponden a las dos partes de la relación.

    - Las filas se forman de pares atributo-valor.

    Propiedades

    - No existen tuplas repetidas.

    En una relación aparece un conjunto de tuplas, y por lo anterior, no pueden haber dos tuplas

    iguales.

    En una tabla si pueden haber filas repetidas.

    - Las tuplas no están ordenadas.

    - Los atributos no están ordenados.

    - Los valores de los atributos son atómicos.

    Una relación que cumple esta cuarta propiedad se dice que está normalizada.

    TEMA 9 REGLAS DE INTEGRIDAD

    9.2 Claves Primarias

    Definición

    - Una Superclave es un conjunto de atributos que identifican de modo único las tuplas de una

    relación.

    - Una Clave Candidata es el menor subconjunto de atributos de una superclave que sigue

    siendo un identificador único.

    - En una relación pueden existir diferentes claves candidatas que se compongan de un número

    diferente de atributos.

    - De todas las claves candidatas se elige una que será la Clave Primaria.

    - El resto de claves candidatas se definen como Claves Alternativas.

    Propiedades

    - Por lo anterior, existen dos propiedades básicas asociadas a una clave candidata:

    - Unicidad: no existen dos tuplas que posean el mismo valor de la clave candidata.

    - Minimalidad: no se puede eliminar ningún atributo de la clave candidata sin destruir la

    unicidad de la clave candidata.

    9.3 Regla de Integridad de Entidades

    Definición

    - Ningún Componente de la Clave Primaria de una Relación Base puede aceptar Nulos.

    - En el modelo relacional Nulo se refiere a ausencia de valor.

    - En SQL dicha definición varía ligeramente.

    Justificación

    - Las entidades se identifican de modo único en la realidad, y también deben de poderse

    identificar en el modelo relacional.

    - Dicha identificación es realizada por las claves primarias.

    - Si una clave primaria contiene un nulo quiere decir que no se puede aplicar la definición de

    clave primaria sobre la entidad asociada.

    - Por lo tanto, esta entidad no se puede identificar, lo que entre en contradicción con la

    definición de entidad.

    - Así pues, la regla también se puede formular:

    - En una base de datos relacional, no se puede almacenar información sobre algo que no se

    pueda identificar.

    - Las claves primarias compuestas debe de ser no nulas en su totalidad, es decir, ninguno de

    sus atributos puede ser nulo.

    9.4 Claves ajenas

    Definición

    - Una Clave Ajena es un conjunto de atributos de una relación R2 cuyos valores o son

    completamente nulos o coinciden que los de la clave primaria de una relación R1.

    - De un modo gráfico se representa mediante una flecha entre las dos relaciones que se

    etiqueta por el conjunto de atributos que la definen,

    R2 R1

    - La relación donde se encuentra la clave ajena se denomina Relación Referencial.

    - La Relación Referida u Objetivo indica la relación donde se encuentra la clave primaria.

    Comentarios

    - Una relación referida puede ser también una relación referencial respecto de otro conjunto

    de atributos.

    - De este modo se puede definir una Ruta Referencial entre diferentes relaciones de la base de

    datos.

    - Si alguna de las relaciones aparece más de una vez en la ruta referencial se dice que

    aparecen Ciclos Referenciales.

    - La Relación Autorreferencial es un caso particular del anterior, donde coinciden la relación

    referida y la relación referencial.

    - Las claves ajenas pueden admitir nulos, a diferencia de las claves primarias.

    9.5 Regla de Integridad Referencial

    - La Base de Datos no debe contener valores de clave ajena sin concordancia.

    - Es decir, para cualquier valor no nulo de la clave ajena existe un valor asociado en la clave

    primaria de la relación objetivo.

    9.6 Reglas para las Claves Ajenas

    Borrado de Claves Primarias

    - La decisión depende de los requerimientos, existiendo tres posibilidades:

    - Restringida (Restricted). No se puede borrar un tupla si está referenciada.

    - Se Propaga (Cascades). Se borra la tupla junto con las tuplas que la referencian.

    - Anula (Nillifies). Se borra la tupla y se pone a nulo la clave ajena de las tuplas que la

    referencian, siempre y cuando los acepte.

    Modificación de Claves Primarias

    - La decisión depende de los requerimientos, existiendo tres posibilidades:

    - Restringida (Restricted). Una tupla no se puede modificar si está referenciada.

    - Se Propaga (Cascades). Se modifica la tupla junto con las tuplas que la referencian.

    - Anula (Nullifies). Se modifica la tupla y se pone a nulo la clave ajena de las tuplas que la

    referencian, siempre y cuando los acepte.

    TEMA 10 ÁLGEBRA RELACIONAL

    10.1 Introducción

    - Mediante el Álgebra Relacional se suministran los operadores que permiten construir una

    relación que contiene la información buscada.

    - El Cálculo Relacional define la notación que permite describir las propiedades que deben

    cumplir las tuplas de la relación resultante.

    10.2 Una Sintaxis para el Álgebra Relacional

    Cabecera de las Relaciones Resultado

    - Si el operador trabaja sobre una relación, la cabecera de la relación resultado es un

    subconjunto de los atributos de la relación operando.

    - Si el operador trabaja sobre dos relaciones, la cabecera de la relación resultado es un

    subconjunto de la unión de los atributos de las relaciones operando.

    - Renombrar (Rename), operador unario que permite modificar el nombre de los atributos de

    una relación.

    Herencia de Claves Primarias

    - La relación resultado está compuesta de una cabecera y un cuerpo, pero también debe de

    elegirse una clave primaria.

    - Por lo tanto, se deben de definir unas Reglas de Herencia de Clave Primaria, que permitan

    definir la clave primaria de la relación resultado de cualquier operador.

    10.4 Operaciones Tradicionales sobre Conjuntos

    - Todas las tuplas que aparecen en la relación resultado deben ser Homogéneas, para lo cual

    las relaciones operando deben de ser Compatibles:

    - El grado de la relaciones operando tiene que coincidir.

    - El dominio de sus atributos con el mismo nombre también debe de coincidir.

    Producto Cartesiano Ampliado

    - El Producto es el Conjunto de todos los Pares Ordenados de Tuplas, de modo que la primera

    Tupla pertenece a la Primera Relación y la Segunda pertenece a la Segunda. (TIMES)

    Propiedades

    - La unión, la intersección y el producto son Conmutativas, aunque no la diferencia.

    - Lo mismo ocurre con la Asociatividad.

    10.5 Operaciones Relacionales Especiales

    Restricción

    - La Restricción da como resultado una relación que contiene un subconjunto de las tuplas de

    la relación operando.

    - Siendo A una relación, X e Y un literal o un atributo de la relación A, y theta un operador de

    comparación escalar simple, la expresión

    A WHERE X theta Y theta {<, <=, =, <>, >=, >}

    da como resultado una relación que contiene las tuplas de A que cumplen que la condición

    (X theta Y) es verdadera.

    A WHERE c1 AND c2

    (A WHERE c1) INTERSECT (A WHERE c2)

    A WHERE c1 OR c2

    (A WHERE c1) UNION (A WHERE c2)

    A WHERE NOT c

    A MINUS (A WHERE c)

    Proyección

    - La Proyección genera una relación en la que aparece un subconjunto de los atributos de la

    relación operando.

    - Siendo A una relación y X, Y, ..., Z atributos de A, la expresión,

    A [X, Y, ... , Z]

    genera una relación donde, la cabecera son los atributos X, Y, ..., Z.

    - Se define la Proyección Identidad como la proyección en la que no se especifica la lista de

    atributos.

    - Cuando se especifica la lista de atributos pero no se especifica ningún atributo en ella, se

    obtiene la Proyección Nula.

    Reunión Natural

    - La Reunión Natural permite unir tuplas de dos relaciones, que cumplen que parte de sus

    atributos coinciden.

    - Siendo A y B dos relaciones donde,

    - La cabecera de A es (X1, ..., Xm, Y1, ..., Yn).

    - La cabecera de B es (Y1, ..., Yn, Z1, ..., Zp).

    entonces se cumple que la expresión, A JOIN B

    genera una relación cuya cabecera es, (X1, ..., Xm, Y1, ..., Yn, Z1, ..., Zp) (X, Y, Z)

    (((A RENAME Y AS YA) TIME B) WHERE YA = Y) [X, Y, Z]

    - El análisis de la anterior expresión demuestra que la reunión natural cumple las propiedades

    de conmutatividad y asociatividad.

    - Además, si el conjunto de atributos Y es vacío, la reunión natural es equivalente al producto.

    Reunión Theta

    - La Reunión Theta es una versión generalizada de la reunión natural, en donde las tuplas de

    las relaciones deben cumplir cierta condición para que su unión aparezca en el resultado.

    - Siendo A y B dos relaciones, X un atributo de A, y un atributo de B, y theta un operador de

    comparación escalar simple, la expresión

    (A TIMES B) WHERE X theta Y, theta {<, <=, =, <>, >=, >}

    genera una relación cuya cabecera coincide con la del producto de A y B, y el cuerpo es el

    subconjunto de tuplas de este producto que cumplen la condición (X theta Y).

    - Cuando el comparador es el signo igual se obtiene una Equirreunión.

    - Una reunión natural se puede observar como una equirreunión de la que se ha proyectado un

    subconjunto determinado de atributos.

    División

    - La División permite seleccionar un subconjunto de los valores de las tuplas que cumplen

    que los atributos asociados se relacionan en la relación con un subconjunto de valores del

    resto de los atributos.

    - Siendo A y B dos relaciones donde,

    - La cabecera de A es (X1, ..., Xm, Y1, ..., Yn).

    - La cabecera de B es (Y1, ..., Yn).

    entonces se cumple que la expresión, A DIVIDEBY B

    genera una relación donde, la cabecera es (X1, ..., Xm).

    - Como el resultado es una relación, se eliminan las tuplas duplicadas que pudieran aparecer.

    - Este operador suele ser útil para consultas que incluyan en su enunciado la palabra "todos".

    - Se puede definir mediante una combinación de operadores como sigue,

    A [X] MINUS ((A [X] TIMES B) MINUS A) [X]

    10.6 ¿Para qué sirve el Álgebra?

    - La intersección mediante la utilización de la diferencia.

    A INTERSECT B A MINUS (A MINUS B)

    - Así, un lenguaje es Relacionalmente Completo si puede expresar cualquier relación definida

    mediante una expresión del álgebra.

    10.7 Operaciones Adicionales

    Ampliación

    - Ampliación (Extent). Operador unario que genera una relación con un atributo más que la

    relación operando en la que se incluye el resultado de una operación entre escalares y/o los

    valores de los atributos de cada tupla.

    - La sintaxis de este operador es la siguiente,

    EXTENT término ADD cálculo AS atributo

    donde cálculo es cualquier operación entre escalares y/o valores de atributos de término, y

    atributo no coincide con ningún atributo de término.

    - Un ejemplo podría ser el siguiente,

    EXTENT P ADD (PESO * 454) AS PESOGRS.

    - Para evitar el anidamiento de operadores, cuando se desea realizar varias ampliaciones sobre

    la misma relación, se podría modificar la sintaxis anterior como sigue,

    EXTENT termino ADD calc1 AS atrib1, calc2 AS atrib2

    Resumen

    - Resumen (Summarize). Operador unario que genera una relación en la que aparecen los

    atributos por los que se agrupa y un atributo adicional en el que aparece el resultado de

    aplicar la operación seleccionada sobre los valores de un atributo en cada grupo.

    - La sintaxis de este operador es la siguiente,

    SUMMARIZE término GROUPBY (lista_con_comas_de_atributos)

    ADD cálculo_de_agregados AS atributo

    donde cálculo_de_agregados es una función definida sobre un conjunto de valores, y que se

    aplica a uno de los atributos de término.

    - La lista_con_comas_de_atributos puede ser una lista vacía en cuyo caso la función se aplica

    sobre todas las tuplas de término.

    - El operador SUMMARIZE aplicado sobre una relación vacía genera una relación vacía.

    - Para poder aplicar diversas funciones sobre un mismo agrupamiento se debe modificar la

    sintaxis como sigue.

    SUMMARIZE término GROUPBY (lista_con_comas_de_atributos)

    ADD cálculo_de_agreg1 AS atrib1,

    ADD cálculo_de_agreg2 AS atrib2.

    División Generalizada

    - La División Generalizada (Generalized Divide) es una extensión del operador división

    clásico que se puede aplicar sobre cualquier pareja de relaciones.

    - Siendo A y B dos relaciones donde,

    - La cabecera de A es (X1, ..., Xm, Y1, ..., Yn).

    - La cabecera de B es (Y1, ..., Yn, Z1, ..., Zp).

    entonces se cumple que la expresión, A DIVIDEBY B

    genera una relación donde,

    - La cabecera de es (X1, ..., Xm, Z1, ..., Zp).

    - En función de la cardinalidad de los conjuntos de atributos de X, Y y Z se obtiene,

    - Si Z es vacío se obtiene la división clásica entre A y B.

    - Si X es vacío se obtiene la división clásica entre B y A.

    - Si Y es vacío se obtiene el producto de A y B.

    Reunión Externa

    - La Reunión Externa es una generalización de la reunión clásica, que genera al menos una

    tupla en la relación resultado para toda tupla de las relaciones operando.

    TEMA 11 CALCULO RELACIONAL

    11.1 Introducción

    El Álgebra Relacional y el Cálculo Relacional

    - Se puede decir que el cálculo es descriptivo y que el álgebra es prescriptivo.

    - También se puede decir que el cálculo plantea el problema y el álgebra lo resuelve.

    Panorama General del Cálculo

    - El cálculo relacional se fundamenta en una rama de la lógica matemática denominada

    Cálculo de Predicados.

    - Una característica fundamental del cálculo relacional es la denominada Variable de Tuplas

    o Variable de Recorrido.

    - Una variable de Tuplas se asocia a una relación y sus únicos valores permitidos son las

    tuplas de dicha relación.

    7.2 Cálculo Relacional Orientado a Tuplas

    Variables de Tuplas

    - Una Variable de Tupla se define mediante una proposición de la forma siguiente,

    RANGE O T IS X1, X2, ..., Xn

    donde

    - T es la variable de tuplas definida.

    - X1, X2, ..., Xn son nombres de relación, o bien una expresión del cálculo de tuplas entre

    paréntesis.

    - Normalmente, una variable de tupla se asocia a un única relación, aunque la definición sea

    más general.

    Concepto de Variables Libres y Acotadas

    - Cada Ocurrencia o Aparición de una Variable de Tupla en un fórmula bien formada puede

    ser Libre o Acotada.

    - Será Acotada si la variable se asocia a un cuantificador y la fórmula donde se encuentra la

    ocurrencia forma parte de la fórmula bien formada del cuantificador.

    EXISTS x (x > 3)

    - Será Libre si no es Acotada.

    (x > 3)

    - En una expresión, una misma variable de tupla puede aparecer como libre y como acotada

    en diferentes fórmulas bien formadas.

    EXISTS x (x > 3) AND (x > 0)

    Sintaxis de Variables Libres y Acotadas

    - El cuantificador EXISTS se lee como "existe", mientras que el cuantificador FORALL se

    lee como "para todos".

    - El FORALL se puede expresar mediante EXISTS,

    FORALL x(g) NOT EXISTS x (NOT g)

    - También existe la expresión IF - THEN que no es primitiva, y cuya funcionalidad es la

    siguiente,

    IF f THEN g (NOT f) OR g

    Listas Objetivo

    - Una Lista Objetivo es una lista de Elementos Objetivo separados mediante comas, en la que

    cada elemento es una variable de tupla, o bien una expresión como la siguiente,

    [X =] T.A.

    donde

    - T es una variable de tupla y A es uno de sus atributos asociados.

    - X es un nombre de atributo para el atributo correspondiente en el resultado de evaluar la

    lista objetivo.

    - Algunos ejemplos de listas objetivo aparecen a continuación,

    SX.S#

    SNUM = S.S#

    SX

    SX.S#, SX.CIUDAD, SPX.P#

    7.3 Cálculo Relacional y Álgebra Relacional: Algoritmo de Reducción de Codd

    Equivalencia del Cálculo y del Álgebra

    - El álgebra relacional y el cálculo de tuplas son dos formalismos equivalentes.

    - Codd demostró esta equivalencia con su Algoritmo de Reducción, que genera una expresión

    del álgebra semánticamente equivalente a la expresión del cálculo de la que se parte.

    TEMA 12 DISEÑO CONCEPTUAL

    12.2 Abstracciones en el Diseño Conceptual

    Presentación

    - La abstracción es un proceso mental que se aplica al seleccionar algunas características y

    propiedades de un conjunto de objetos y excluir otras no pertinentes.

    - En el diseño conceptual de bases de datos se realizan tres tipos de abstracciones:

    - Abstracción de Clasificación.

    - Abstracción de Agregación.

    - Abstracción de Generalización.

    - Estas abstracciones ayudan al programador en la tarea de entender, clasificar y modelar la

    realidad.

    Abstracción de Clasificación

    - Su objetivo es clasificar los objetos de la realidad caracterizados por propiedades comunes.

    MES: Enero, Febrero, ..., Diciembre

    - Estas abstracciones se representan mediante un árbol, cuya raíz es la clase y las hojas son los

    miembros de la clase.

    Abstracción de Agregación

    - Se definen nuevas clases a partir del conjunto de clases asociadas a las partes que la

    componen. SE_IMPARTE


    CURSO DIA AULA

    - Las clases hoja son parte de la clase-raíz.

    - Se puede decir que mediante la clasificación se identifican tipos de atributos y con la

    agregación se identifican tipos de entidades.

    Abstracción de Generalización

    - Permite definir una relación de subconjunto entre dos o más clases.

    PERSONA


    HOMBRE MUJER

    - En una generalización, todas las abstracciones definidas por la clase raíz son heredadas por

    las clases subconjunto.

    Propiedades de la Agregación Binaria

    - El número de clases-hoja que se asocian a una clase-raíz permite diferenciar dos tipos de

    agregaciones binarias y n-arias.

    La Cardinalidad en una Agregación Binaria

    - Dada una agregación A y una de sus clases asociadas Ci, se pueden definir dos tipos de

    cardinalidades:

    - Cardinalidad Mínima. Menor número de correspondencias en las que los elementos

    de Ci pueden tomar parte. Los valores habituales son 0 y 1.

    - Si card-min (Ci,A) = 0 la participación de los elementos de Ci en A es opcional.

    - Si card-min (Ci,A) > 0 la participación de los elementos de Ci en A es obligatoria.

    - Cardinalidad Máxima. Mayor número de correspondencias en las que los elementos

    de Ci pueden tomar parte. Los valores habituales son 1 y n.

    - Si card-max (Ci,A) = n, la participación de un elemento de Ci en A es ilimitado.

    - En otro caso, el valor de card-max (Ci,A) marca el límite de la participación de un

    elemento de Ci en A.

    Propiedades de la Generalización

    - Las clases-hoja pueden definir de un modo completo o incompleto la clase genérica.

    - Total. Los valores de la clase genérica pertenecen a alguna de las clases-hoja.

    - Parcial. Algún valor de la clase genérica no pertenece a ninguna clase-hoja.

    - Las clases-hoja pueden compartir aspectos de la definición de la clase genérica.

    - Exclusiva. Los valores de la clase genérica pertenecen a una sola clase-hoja.

    - Superpuesta. Los valores de la clase genérica pertenecen a varias clases-hoja.

    12.3 Modelo Entidad/Relación

    - Fue introducido por Peter Chen en 1976, en 1988 el ANSI lo seleccionó como modelo

    estándar para los sistemas de diccionarios de recursos de información.

    - Inicialmente se constituía de los siguientes conceptos: entidades, interrelaciones y atributos.

    - Posteriormente se incluyeron otros conceptos en el modelo: jerarquías de generalización,

    subconjunto, atributos compuestos e identificadores.

    Entidades

    - Una entidad representa un clase de objetos de la realidad.

    - Se representa mediante un rectángulo que incluye el nombre de la clase.

    Interrelaciones

    - Una interrelación define una agregación entre las clases del modelo.

    - Se representa mediante un rombo que incluye el nombre de la agregación, y al cual se

    conectan las entidades asociadas a las clases que forman la agregación.

    - El Anillo es un tipo de interrelación que conecta una entidad consigo misma.

    - Las conexiones se etiquetan con la cardinalidad asociada a cada entidad.

    (1,1) (0,n)

    PERSONA vive_en CIUDAD

    Atributos

    - Los atributos permiten caracterizar tanto las entidades como las interrelaciones.

    - El concepto de cardinalidad también se asocia a los atributos.

    - Por lo que respecta a la cardinalidad mínima,

    - Si fuera igual a cero, el atributo en cuestión admite nulos.

    - En caso contrario, se debería especificar un número mínimo de valores del atributo

    para todos los casos.

    - La cardinalidad máxima,

    - Si es igual a uno se dice que el atributo es Monovalente, es decir, en un caso el

    atributo solo puede tener un valor asociado.

    - Cuando es mayor que 1, es atributo es Polivalente, y por tanto pueden aparecer casos

    que tengan varios valores del atributo.

    - Cada atributo se asocia a un dominio que define el conjunto de valores válidos del atributo.

    Jerarquía de Generalización

    - Se representa mediante flechas que parten de las entidades Ei y llegan a la entidad E.

    - Las generalizaciones se caracterizan por las propiedades anteriormente comentadas,

    - Pueden ser Totales o Parciales.

    - Pueden ser Exclusivas o Superpuestas.

    - Las propiedades de la entidad genérica son heredadas por las entidades subconjunto.

    Subconjuntos

    - Es un caso particular de generalización donde sólo aparece una entidad subconjunto.

    - Por su definición, un subconjunto se asocia a una generalización parcial y exclusiva.

    Atributos Compuestos

    - Están definidos por grupos de atributos afines.

    - Se representan mediante un óvalo conectado a la entidad o interrelación asociada, y al que

    se conectan los atributos que lo componen.

    Identificadores

    - Un identificador es un conjunto de atributos y entidades que permiten determinar de modo

    único los casos de una entidad. (Clave o Clave candidata).

    - El identificador siempre existe por lo que la cardinalidad mínima de sus componentes es 1.

    - Un identificador debe cumplir que,

    - No puede aparecer dos casos en E que tengan el mismo valor del identificador.

    - Si se omite algún atributo o entidad, la condición anterior no se cumple.

    - Los identificadores se pueden clasificar a partir de diferentes criterios,

    - Simple: si la suma de n y m es igual a 1; si es mayor que 1 se denomina Compuesto.

    - Cuando m=0 el identificador es Interno, mientras que si n=0 se denomina Externo.

    n = número de atributos de la entidad; m = número de entidades vinculadas.

    - Si n y m son mayores que cero, entonces se dice que el identificador es Mixto.

    TEMA 13 DISEÑO LóGICO

    El objetivo del diseño lógico es convertir un esquema conceptual en un esquema lógico que se ajuste al sistema de gestión de base de datos a utilizar.

    Se pretende que el esquema lógico cumpla ciertas características:

    - Las relaciones deben de estar en tercera forma normal.

    - Se deben definir las claves primarias y ajenas de todas las relaciones.

    - Es necesario incluir en el esquema las reglas de integridad necesarias.

    13.2 Diseño Lógico en el Modelo Relacional

    - El modelo relacional no puede representar jerarquías de generalización. Existen tres

    posibles alternativas:

    Integración de las Entidades Subconjunto

    - Los atributos de las entidades subconjunto se añaden a los de la entidad genérica con

    cardinalidad mínima cero.

    - Se añade un atributo discriminativo en la entidad genérica, que indica el caso al que

    pertenece la entidad considerada, con

    - Cardinalidad Mínima cero si la jerarquía es parcial, o uno si fuera total.

    - Cardinalidad Máxima uno si la jerarquía es exclusiva, o n si fuera superpuesta.

    - Puede generar la aparición de muchos nulos.

    Eliminación de la Entidad Genérica

    - Los atributos de la entidad genérica son heredados por todas las entidades subconjunto.

    - Sólo es útil para jerarquías totales y exclusivas.

    - Las operaciones sobre la entidad genérica deben aplicarse sobre todas las entidades subconj.

    No Eliminar Ninguna de las Entidades

    - La inclusión de las entidades subconjunto sobre la entidad genérica se modeliza mediante la

    interrelación ES_UN.

    - La cardinalidad de la entidad genérica sobre la relación es (0,1), mientras que en las

    entidades subconjunto es (1,1).

    Transformación de Identificadores Externos

    - En el modelo relacional no se pueden utilizar identificadores externos, por lo que hay que

    transformarlos en internos.

    - Una posibilidad es importar a la entidad los atributos asociados al identificador de las

    entidades que forman parte del identificador externo.

    - Las interrelaciones asociadas al identificador externo pueden eliminarse.

    Transformación de Atributos Compuestos

    - El modelo relacional no permite representar atributos compuestos, por lo que se busca una

    alternativa. Transformar los atributos compuestos, como:

    - Considerar el atributo compuesto como un atributo simple.

    - Eliminar el atributo compuesto y considerar cada uno de sus atributos como atributo

    simple de la entidad.

    Transformación de Atributos Polivalentes

    - Cada atributo polivalente de una entidad requiere la inclusión de una nueva entidad donde

    se cumple que,

    - El atributo polivalente se convierte en un atributo monovalente.

    - La entidad hereda los atributos asociados al identificador de la entidad original.

    - El identificador de esta nueva entidad está compuesto por todos sus atributos.

    - Si el atributo polivalente se asocia a una interrelación, también es necesario crear una nueva

    entidad.

    Transformación de Entidades

    - Las entidades del esquema conceptual se transforman en relaciones base dentro del esquema

    lógico.

    - Los atributos de las entidades se convierten en atributos de la relación base asociada.

    EMPLEADO (NSS, empleado, apellido, salario)

    Transformación de Interrelaciones Uno a Uno

    - Cuando la cardinalidad mínima de ambas entidades es igual a uno, las dos entidades se

    pueden integrar en una relación.

    - La relación resultante presenta los atributos que no son clave primaria de la relaciones

    asociadas a las entidades.

    - Por lo que respecta a la clave primaria:

    - Si coincide en ambas relaciones se incluye una única vez.

    - En caso contrario, se incluyen las dos claves primarias y se elige una como clave

    primaria.

    - Si alguna de las entidades tiene cardinalidad mínima igual a cero, la interrelación se

    transforma en una relación.

    - Hereda como atributos las claves primarias de las relaciones anteriores, y una de

    ellas será la clave primaria.

    - Aparecen como atributos, los atributos de la interrelación.

    Transformación de Interrelaciones Uno a Muchos

    - Estas interrelaciones se pueden transformar de dos modos diferentes:

    - Añadiendo la clave primaria de la relación asociada a la entidad de la parte uno y los

    atributos de la interrelación en la relación asociada a la entidad de la parte muchos.

    - Generando una nueva relación que incluye los atributos de la interrelación y las

    claves primarias de las dos entidades. Clave primaria de la parte muchos.

    - Cuando la cardinalidad mínima de la entidad uno es igual a uno, se suele utilizar la primera

    opción. En cambio si la cardinalidad mínima fuera cero, se suele utilizar la segunda opción.

    Transformación de Interrelaciones Muchos a Muchos

    - Se genera una nueva relación que incluye los atributos de la interrelación y las claves primarias de las dos entidades, que forman la clave primaria de la nueva relación.

    13.3 Normalización de Relaciones

    Comentarios Iniciales

    - La teoría de la normalización, desarrollada por Codd en 1972 permite mejorar el diseño

    lógico de un sistema de información.

    - Se fundamenta en la Formas Normales, que son un conjunto de restricciones que deben de

    cumplir la relaciones,

    - Una relación está en primera forma normal, si satisface que sus dominios simples sólo tienen valores atómicos.

    - Ventajas de la normalización:

    - Evita dependencia de datos en inserciones, borrados y modificaciones.

    - Mejora la independencia de los datos.

    - No establece restricciones artificiales en la estructura de los datos.

    Dependencia Funcional

    - Dada una relación R, el atributo Y de R depende funcionalmente del atributo X de R,

    R.X - - - - -> R.Y

    si y sólo si un valor Y en R está asociado a cada valor X en R

    - Si el atributo X es una clave candidata de R, entonces todos los atributos Y de la relación

    dependen funcionalmente de X.

    - Si el atributo Y es por completo dependiente funcionalmente de X, entonces no depende

    funcionalmente de ningún subconjunto propio de X.

    Tercer Forma Normal

    - El objetivo del diseño lógico es obtener relaciones en tercera forma normal.

    - Una relación está en tercera forma normal si y sólo si sus atributos no clave son,

    - Mutuamente independientes, no existe un atributo que dependa funcionalmente de

    alguna combinación del resto de atributos.

    - Por completo dependientes funcionalmente de la clave primaria.

    Primera y Segunda Forma Normal

    - Una relación se encuentra en primera forma normal si todos sus atributos son atómicos.

    - Una relación se encuentra en segunda forma normal si está en primera forma normal y todos

    los atributos no clave dependen de la clave primaria.

    Segunda y Tercera Forma Normal

    - Una relación está en tercera forma normal, si está en segunda forma normal y además cada

    atributo no clave no depende de modo transitivo de la clave primaria.

    Buenas y Malas Descomposiciones

    - Un buena descomposición es aquella que genera relaciones independientes.

    - Dos proyecciones R1 y R2 de la relación R son independientes si y sólo si cumplen que,

    - Toda dependencia funcional en R se puede deducir de las dependencias funcionales

    definidas en R1 y R2.

    - Los atributos comunes de R1 y R2 son una clave candidata de al menos una de las

    dos proyecciones.


    Votar

    Ingresar una calificación para del 1 al 10, siendo 10 el máximo puntaje.

    Para que la votación no tenga fraude, solo se podrá votar una vez este recurso.

    Comentarios de los usuarios


    Agregar un comentario:


    Nombre y apellido:

    E-Mail:

    Asunto:

    Opinión:



    Aún no hay comentarios para este recurso.
     
    Sobre ALIPSO.COM

    Monografias, Exámenes, Universidades, Terciarios, Carreras, Cursos, Donde Estudiar, Que Estudiar y más: Desde 1999 brindamos a los estudiantes y docentes un lugar para publicar contenido educativo y nutrirse del conocimiento.

    Contacto »
    Contacto

    Teléfono: +54 (011) 3535-7242
    Email:

    Formulario de Contacto Online »