Anda di halaman 1dari 76

Introduccion

PPT1:
Bases de datos:
• Definicion de base de datos
• Es una coleccion de datos relacionados
• Es una coleccion de archivos diseñados para servir a múltiples
aplicaciones
• Es un dato que representa hechos conocidos que pueden
registrarse y que tienen un resultado implícito.
• Propiedades implicitas de una BD
• Una BD representa aspectos del mundo real a veces denominado
universo de discurso
• Es una coleccion coherente de datos con significados inherentes.
Un conjunto aleatorio de datos no puede considerarse una BD. Osea,
los datos deben tener cierta lógica.
• Una BD se diseña, construye y completa de datos para un
proposito especifico. Esta destinada a un grupo de usuarios concretos
y tiene algunas aplicaciones preconcebidas en las cuales estan
interesados los usuarios.

Data Base Management system (sistema gerenciador de bases de datos)


• DBMS es una coleccion de programas que permitena los usuarios crear y
mantener la BD
• DBMS Es un sistema de software de proposito general que facilita los
procesos de definicion, construcción y manipulacion de la BD
• Los objetivos de un DBMS son:
• Evitar redundancia e inconsistencia de datos.
• Permitir acceso a los datos en todo momento.
• Evitar anomalias en el acceso concurrente.
• Restricción a accesos no autorizados (seguridad)
• Suministro de almacenamiento persistente de datos (aun ante
fallos) - Seguridad desde otra perspectiva.
• Integridad de los datos.
• Backups
• Un DBMS esta formado por
• DDL: Data definition Language, especifica el esquema de BD.
Resultado: diccionario de datos.
• DML: Data Manipulation language, Recuperacion, agregado,
quitado y modificacion de informacion.
 Procedimentales: SQL requiere que el usuario especifique
que datos se muestran y como obtenerlos.
 No procedimentales: QBE, Requieren que el usuario
especifique que datos mostrar sin especificar como obtenerlos.

Conclusion
• La definicion de una BD consiste en especificar los tipos de datos, las
estructuras y restricciones de los mismos.
• La construccion de la BD es el proceso de almacenar datos concretos en
algun dispositivo de almacenamiento bajo la gestion del DBMS.
• La manipulacion de bd incluye funciones tales como consultar la BD para
recuperar datos especificos, actualizar los datos existentes, reflejar
cambios producidos, etc.

Conceptos basicos
• Abstracciones:
• Vision: ve solo los datos de interes (muchas vistas para la misma
BD) a traves de programas de aplicacion.
• Conceptual: Que datos se almacenan en la BD y que relaciones
existen entre ellas.
• Fisico: describe como se almacenan realmente los datos (archivos
y hard)
• Modelos de datos: Coleccion de herramientas conceptuales para
describir datos, relaciones entre ellos, sem;antica asociada a los datos y
restricciones de consistencia.
• Modelos:
• Basado en objetos (vision, conceptual) estructura flexible,
especifican restricciones explicitamente.
 Modelo de entidad-relacion.
 Modelo orientado a objetos
• Basado en registros (conceptual, fisico) la BD se estructura en
registros de formato fijo. Se dispone de lenguaje asociado para
expresar consultas (relacional, jerarquico, red)
• Fisico de datos (fisico) Describen los datos en el nivel mas bajo.
• Independencia de datos : Capacidad de modificar esquemas sin alterar
otro nivel.
• Fisico, modificar el esquema fisico sin provocar que los
programas de aplicacion tengan que reescribirsa. Generalmente,
para mejorar el funcionamiento
• Logico, Modificar el esquema conceptual.
• Categorias de soft de procesamiento de datos:
• Sin independencia de datos (S.O., transferenncia a un sector
particular)
• Independencia fisica (leer un registro de un archivo, SO)
• Independencia logica parcial (leer siguiente registro de un
archivo)
• Independencia logica y fisica (leer siguiente registro de un tipo
particular, DBMS)
• Independencia geografica (BDs distribuidas)

• Actores involucrados con una BD:


• DBA: administra el recurso, autoriza accesos, coordina y vigila la
utilizacion de recursos de hardware, responsible ante problemas de
violacion de seguridad o respuesta lenta del sistema.
• Diseñador de BD: define la estructura de la BD de acuerdo al
problema del mundo real que se este representado.
• Analista de sistemas: Determinan los requerimientos de los
usuarios finales generando la informacion necesaria para el
diseñador
• Programadores: implementan las especificaciones de los analistas
utilizando la BD generada por el diseñador.
• Usuarios: de distintos tipos.
Archivos
• Nivel fisico:
• Archivos. Definiciones.
 Coleccion de registros guardados en almacenamiento
secundario.
 Coleccion de datos almacenados en dispositivos
secundarios de memoria
 Coleccion de registros que abarcan entidades con un
aspecto comun y originadas para algun proposito particular
• Hardware
 Almacenamiento primario
 Almacenamiento secundario (DR)
• Platos
• Superficies
• Pistas
• Sectores
• Cilindros
• A dos niveles:
• Fisico: Almacenamiento secundario.
• Logico: dentro del programa
 Operaciones
• Crear
• Abrir
• Read/Write
• EoF
• Seek
• Organizacion:
• Secuencia de bytes (archivos de texto): no se puede determinar
facilmente el inicio y el fin de un dato.
• Campos: Unidad mas pequeña logicamente significativa de un
archivo.
• Registros: Conjunto de campos agrupados que definen un archivo.
• Acceso a los archivos
• Secuencial: Acceso a los registros uno tras otro y en el orden fisico
en el que estan guardados.
• Secuencial indizado: Acceso a los registros de acuerdo al orden
establecido por otra estructura (x ej una guia telefonica, un indice de
un libro)
• Directo: Se accede a un registro determinado sin necesitad de
haber accedido a los predecesores.
• Buffers
• Memoria intermedia entre un archivo y un programa donde los
datos residen provisoriamente hasta ser almacenados
definitivamente en memoria secundaria o donde los datos residen
una vez recuperados de dicha memoria secundaria.
Ocupan lugar en la memoria RAM, Son administrados por el S.O.
(PPT2)
• Operaciones:
• En la creacion: se debe establecer la correspondencia entre el
nombre logico y el nombre fisico. El nombre logico es una variable de
tipo archivo sobre la que se realizan las operaciones.
• Cierre de archivos: indica que no se va a trabajar mas con el
archivo, es decir, pone una marca de EOF al final del mismo.
• Lectura/Escritura: Leen y/o escriben sobre los buffers relacionados
a los archivos. No se realiza directamente sobre el disco rigido. En
ambos casos, la variable debe ser del mismo tipo que los elementos
que se declarraron como parte del archivo.
• Funciones
• Fin de archivo
• Tamaño del archivo
• Posicion actual dentro del archivo.
• Procesos:
• Ir a una posicion en el archivo (entre 0 y cantregs-1)
• Algoritmica clasica:
• Operaciones usuales a resolver usando archivos:
 Modificar el contenido actual del archivo
• Involucra un archivo de datos previamente generado
y consiste en cambiar sus datos.
• El archivo debe ser recorrido desde su primer
elemento y hasta el ultimo siguiendo un procesamiento
secuencial.
 Agregar nuevos elementos:
• Se procesa un solo archivo
• Ya tiene informacion
• Se le incorporan nuevos datos
 Actualizar un archivo maestro con uno o varios detalles
• Este problema involucra utilizar mas de un archivo de
datos al mismo tiempo
• Se denomina maestro al archivo que resume
un determinado conjunto de datos
• Se denomina detalle al que agrupa
informacion que se utilizara para modificar el
contenido del archivo maestro.
• Por lo general, un archivo maestro y n archivos
detalles.
 Corte de control
• El problema consiste en la generacion de reportes:
Es un problema clasico en el manejo de BD. Los DBMS lo
manejan diferente.
 Merge de varios archivos
• Involucra archivos con contenido similar, el cual debe
resumirse en un unico archivo.

PPT3
La memoria primaria (RAM) es rapida y de simple acceso, pero su uso tiene
algunas desventajas respecto al almacenamiento secundario:
• Capacidad limitada
• Mayor Costo
• Es volatil
• Almacenamiento secundario: Necesita mas tiempo para tener acceso a
los datos que en RAM.
• Su acceso es tan lento que es imprescindible enviar y recuperar
datos con inteligencia
• Al buscar un dato, se espera encontrarlo en el primer intento (o en
pocos)
• Si se buscan varios datos, se pretendera traer todos juntos de una
sola vez.
• La informacion esta organizada en archivos.
• HW de almacenamiento secundario
 Discos: Almacenamiento:
• Un solo registro por sector: tiene como ventaja que
cualquier registro se recupera con solo recuperar un sector,
pero tiene la desventaja que puede quedar espacio del
sector sin usar.
• El principio de un registro en un sector y el final en
otro: Tiene como ventaja que no quedara espacio
desperdiciado, pero por otro lado es necesario mas de un
acceso a sectores en lugar de solo uno.
 Cintas: es el medio mas economico, estable en diferentes
condiciones ambientales y faciles de transportar.
• Viaje de un byte.
• Administrador de archivos: conjunto de programas del S.O. que
tratan aspectos relacionados con archivos y dispositivos de E/S
 En las capas superiores, establece si las caracteristicas del
archivo son compatibles con la operacion deseada.
 En capas inferiores determina donde se guarda el dato
(clindro, sector, etc). Si el sector esta ubicado en RAM, se utiliza,
sino debera traerse previamente.
• Buffers de E/S: Agilizan la E/S de datos. Manejar buffers implica
trabajar con grandes grupos de datos en RAM, para reducir el acceso
a almacenamiento secundario.
• Procesador de E/S: dispositivo utilizado para la transmision desde
o hacia el almacenamiento externo, independiente de la CPU
• Controlador de disco: es el encargado de controlar las operaciones
del disco como colocarse en la pista, sector y transferir los datos.
• Que sucede al escribir un byte en el disco desde un programa:
 El programa pide al S.O. escribir el contenido de una
variable en un archivo
 El S.O. transfiere el trabajo al administrador de archivos.
 El Administrador busca el archivo en su tabla de archivos y
verifica las caracteristicas
 El Adm de archivos obtiene de la FAT la ubicacion fisica del
sector del archivo donde se guardara el byte.
 El adm se asegura que el sector del archivo esta en un
buffer y graba el dato donde va dentro del sector del buffer.
 El adm da instrucciones al procesador de E/S (donde esta el
byte en RAM y en que parte del disco se debera almacenar)
 El procesador de E/S encuentra el momento para transmitir
el dato a disco, la cpu se libera.
 El procesador de E/S envia el dato al controlador del disco
(con la direccion de escritura)
 El controlador prepara la escritura y transfiere bit por bit en
la superficie del disco.
• Archivos - Tres aspectos:
• Tecnicas de acceso. Veremos su evolucion, necesidades y
características.
• Independencia: fisica y logica
• Redundancia de datos: conceptos de normalizacion,.
• Caracteristicas de estructura de archivos:
• Secuencia de bytes
 No puede determinar facilmente comienzo y fin de cada
dato
• Campos
 Unidad logicamente significativa mas pequeña de un
archivo. Permite separar la información.
 Identidad de campos: variantes, pro y contras.
• Longitud predecible (longitud fija, desperdicio de
espacio, si el tamaño es pequeño, al agrandarlo se podria
desperdicar mas espacio)
• Indicador de longitud. Al principio de cada campo
• Delimitador al final de cada campo (caracter especial
no usado como dato)
• Registros
 Conjunto de campos agrupados que definen un elemento
del archivo.
 Organizacion:
• Longitud predecible (cant de bytes o cantidad de
campos)
• Indicador de longitud (al comienzo, indica la cantidad
de bytes que contiene)
• Segundo archivo (mantiene la info de la direccion del
byte de inicio de cada registro)
• Delimitador (caracter especial no usado como dato)
• Llave o clave: Se concibe al registro como la cantidad de informacion
que se lee o escribe.
• Objetivo: extraer solo un registro especifico en vez del archivo
completo
• Es conveniente identificar un registro con una clave que se base
en el contenido del mismo.
• Permite la identificacion del registro:
 Univoca / primaria
 Secundaria (generalmente no identifican un unico registro)
• Forma canonica: Forma estandar para una llave puede derivarse a
partir de reglas bien definidas.
 Representacion unica para la llave, ajustada a la regla.
 Ej. Llave solo con letras mayusculas y sin espacios al final
 Al introducir un registro nuevo, se forma una llave canonica
para ese registro y despues se la busca en el archivo. Si ya
existe, se debe modificar los campos de la llave para que sea
unica.

Performance
• Estudio de performance
• Punto de partida para futuras evaluaciones
• Costo: Acceso a disco, Num de comparaciones.
• Caso promedio
• En el caso secuencial
• Mejor caso: leer 1 registro, el peor caso leer n registros
• Promedio n/2 comparaciones
• Supongamos que hay 1000 registros, buscar uno en particular en
el peor caso seria 1000, el mejor cero (podria estar cargado en
memoria)
• Es O(n) porque depende de la cantidad de registros.
• Lectura de bloques de registros. Mejora el acceso a disco peron no
varian las comparaciones. Sigue siendo O(n), pero ahorra tiempo ya
que disminuye el Num de desplazamiento del brazo del disco.
• Acceso directo: Modo de acceso que permite saltar a un registro preciso,
requiere una sola lectura para traer el dato O(1). Debe necesariamente
conocerse el lugar donde comienza el registro requerido.
• Numero relativo al registro (NRR) Indica la posicion relativa con
respecto al principio del archivo.
 Con registros de longitud variable (la lectura sigue siendo
secuencial , O(n) )
 Con registros de longitud fija, posibilita el acceso directo, se
traduce el NRR calculando la distancia en bytes para acceder el
registro buscado.
• Registro encabezado: Mantiene informacion general de un archivo
(cantidad de registros, tamaño de registros, tipo de delimitador, etc)
El acceso directo es preferible solo cuando se necesitan pocos registros
especificos, pero este metodo no siempre es el mas apropiado para la
extraccion de informacion, por ejemplo en un proceso de pago de cheques
para todos los empleados, obligatoriamente se procesaran todos los
registros, es mas practico recorrerlo secuencial.
• Archivos Serie: archivo donde cada registro es accesible solo luego de
procesar su antecesor, simples de acceder
• Archivo Secuencial: Archivo donde los registros son accesibles en orden
de alguna clave.
Tipos de archivos
• Estaticos: Pocos cambios
• Pueden actualizarse en procesamiento por lotes
• No necesita de estructuras adicionales para agilizar los cambios.
• Volatiles: Sometido a operaciones frecuentes:
• Agregar / Borrar / Actualizar
• Su organizacion debe facilitar cambios rápidos
• Necesita estructuras adicionales para mejorar los tiempos de
acceso.
Eliminacion:
• Cualquier estrategia de eliminacion de registros debe proveer una forma
de reconocerlos una vez eliminados (ej, colocar una marca de "Eliminado")
• Con este criterio se puede deshacer la eliminacion facilmente
• Como reutilizar el espacio de los eliminadoS?
• Los programas que usan archivos deben incluir cierta logica para ignorar
los registros eliminados.
• Compactacion:
• Con espacio suficiente, la forma mas simple es copiar todo a
excepcion de los registros eliminados -> baja fisica
• Frecuencia: tiempo o dependiendo de la necesidad de espacio.
• Hay situaciones en que se necesita reutilizar espacion de los
registros eliminados lo antes posible
• Veremos el analisis de recuperacion dinamica del
almacenamiento.
• Aprovechamiento de espacio:
• Registros de longitud fija -> Es necesario garantizar:
 Marcas especiales en los registros borrados (ej un asterisco
al principio del registro borrado -> Baja logica)
 Recuperacion del espacio para su reutilizacion cuando se
agreguen registros
• Busqueda secuencial -> usa las marcas de borrado.
• Para agregar, se busca el primer registro
eliminado. Si no existe se llega al final del archivo y se
agrega ahi.
• Es muy lento para operaciones frecuentes.
• Es necesario
• Una forma de saber de inmediato si hay
lugares vacios en el archivo
• Una forma de saltar directamente a unos de
esos lugares en caso de existir.
 Recuperacion de espacio con lista o pilas (header)
• Lista encadenada de registros disponibles
• Al insertar un registro nuevo en un archivo de
registros con longitud fija, cualquier registro disponible es
bueno.
• La lista no necesita tener un orden particular, ya que
todos los registros son de longitud fija y todos los espacios
libres son iguales.
• Se utiliza el NRR como direccion de enlace entre
nodos
• Para la lista de elementos (en realidad una pila) se
utiliza -1 indicando que no hay mas lugares libres para la
utilizacion.
• Considerar la lista como una pila implica una minima
reorganizacion al agregar o quitar elementos
• El NRR que indica el primer registro de la pila de
disponibles, esta en un registro encabezado del archivo (si
hubiera un -1 indicaria que la lista o pila esta vacia)
• EJ: alfa beta delta *6 gamma *-1 epsilon
El encabezado tiene como proximo a insertar en pos 4.
borro beta
alfa *4 delta *6 Gamma *-1 Epsilon
Ahora el encabezado tiene como proximo a insertar en pos
2. si inserto un dato, vuelve a quedar como en el primer
estado, con el encabezado con proximoa insertar en pos 4.
• Recuperacion de espacio con registros de longitud variable:
 Marca de borrado al igual que en registro de longitud fija
 El problema de estos registros es que no se puede colocar
en cualquier lugar, para poder ponerlo, debe caber
obligatoriamente.
 Lista, no se puede usar NRR como enlace, se usa un campo
binario que explicitamente indica en enlace (conviene que
tambien indique el tamaño).
 Cada registro indica en su inicio la cantidad de bytes.
 Reutilizacion: Buscar el registro borrado de tamaño
adecuado (Lo suficientemente grande)
 Como se necesita buscar, no se puede organizar la lista de
disponibles como una pila.
 El tamaño adecuado del primer registro borrado a utilizar ->
Origina fragmentacion,
• Fragmentacion Interna: Ocurre cuando se desperdicia
espacio de un registro, se le asigna el lugar peron no lo
ocupa totalmente. Se define un long y no se utiliza
totalmente.
• Ocurre con registros de longitud fija, salco que los
datos reales sean de longitud fija.
• No existe en registros de longitud variable, cuando
se escribe el archivo por primera vez, si existe si se
elimina un registro y se reemplaza por uno mas corto.
• Solucion: El "Residuo" una vez ocupado el espacio
libre, pasa a ser un nuevo registro libre. Si este es muy
chico no se podra ocupar -> Fragmentacion externa.
• Fragmentacion Externa: Ocurrre cuando el espacio que no
se usa es demasiado pequeño para ocuparse.
• Soluciones:
• Unir espacios libres pequeños adyacentes para
generar un espacio disponible mayor.
• Minimizar la fragmentacion eligiendo el
espacio mas adecuado en cada caso.
• Estrategias de colocacion:
 Primer ajuste: Se selecciona la primer entrada de la lista de
disponibles que pueda almacenar al registro y se le asigna el
mismo.
• Minimiza la busqueda.
• No se preocupa por la exactitud del ajuste.
• Mas rapido
 Mejor ajuste: Elige la entrada que mas se aproxime al
tamaño del registro y se le asigna completa.
• Exige busqueda.
• Genera fragmentacion interna
 Peor ajuste: Selecciona la entrada mas grande para el
registro y se le asigna solo el espacio necesario.El resto queda
libre para otro registro.
• Genera fragmentacion externa.
Busqueda:
• El costo de la busqueda de informacion se puede medir en:
• Numero de comparaciones. Operaciones en memoria, se puede
mejorar con algoritmos mas eficientes.
• Numero de accesos. Operaciones en disco.
• Busqueda de un registro
• Es mas rapido si conocemos el NRR porque podemos acceder
directamente
• Secuencial, debe buscarse desde el principio
• Trataremos de incorporar el uso de claves.
• Busqueda binaria.
• Supongamos un archivo ordenado por clave y Registros de
longitud fija
• La busqueda consiste en partir el archivo a la mitad y comparar la
clave (puedo acceder al medio por tener longitud fija)
• Si N es el numero de registros, la performance sera del orden de
Log2N
• Se mejora la performance de la busqueda secuencial
• Acota el espacio para encontrar informacion tiene un costo por
mantener el archivo ordenado.
• Primera solucion:
 Llevar el archivo a RAM (vector) y ordenar.
 Por que ordenar en RAM y no en disco directamente.
• El numero de corrimientos implica accesos a disco
(muy costoso)
• Primer paso, llevar las llaves a forma canonica.
• Algoritmos de ordenacion se pueden encontrar en
bibliografia, aparece una variante interesante
• Segunda solucion
 No llevar todo el archivo a RAM, solo llevar la clave.
• Esto permite clasificar archivos mas grandes
• Tercera solucion
 Cuando el archivo de datos no entra en RAM, ni tampoco
solo las claves.
 Se parte el archivo, se ordena cada parte y se juntan las
partes ordenadas.
 Ventajas:
• Permite clasificar archivos grandes
• Lectura de cada particion es siempre secuencial
• Lectura de cada particion en orden, escritura en un
nuevo archivo (ambas secuencialeS)
 El tamaño lo define el tamaño de la RAM
Indices:
• Definiciones
• Herramienta: para encontrar registros en un archivo. Consiste en
un campo clave (busqueda) y uno de referencia que indica donde
encontrar el registro dentro del archivo de datos.
• Tabla: que opera con un procedimiento que acepta informacion
acerca de ciertos valores de atributos como la entrada (clave) y
provee como salida informacion que permite la rapida localizacion del
registro con esos atributos.
• Estructura de datos (clave,direccion) usada para decrementar el
tiempo de acceso a un archivo.
• Equivale a un indice de un libro, la forma mas sencilla de implementarlo
es con un arbol, y su caracteristica fundamental es que permite que se
ordene sin que realmente el archivo se reacomode.
• Operaciones basicas en un archivo indizado:
• Indice en memoria: Busqueda binaria + rapida, comparada con
archivos clasificados.
• Crear los archivos: el indice y el archivo de datos se crean vacios,
solo con registro cabecera.
• Cargar el indice en memoria: Se supone que cabe, ya que es lo
suficientemente pequeño. Se almacena en un arreglo.
• Agregar nuevos registros: implica al agregar al archivo de datos y
al archivo de indicess. En el archivo de datos,lo copia al final, se debe
saber el NRR (en fija) o la distancia en bytes (en variable) para el
indice. El Indice se ordena con cada nuevo elemento en forma
canónica (en memoria), setea el flag anterior.
• Eliminar un registro: En el archivo de datos, se utiliza cualquiera
de las tecnicas vistas para reutilizar el espacio. En el archivo de
indices, o se borra la entrada o se marca como borrado.
• Reescritura del archivo de indice: Uno de los cambios posibles
puede ser cambiar un flag en el registro cabecera cuando la copia del
indice esta en memoria principal, todos los programas deberian
revisar el flag antes de utilizarlo. Si el flag esta activo, el programa
sabra que el indice no esta actualizado. Si un programa detecta el
indice desactualizado, se debe acceder a un procedimiento para su
reconstruccion.
• Actualizacion de registros: si esta operacion se realizara sin
modificar la clave, si el registro no cambia de longitud, se almacena
en la misma posicion fisica y el indice no se toca. Si en cambio el
registro cambia de longitud (y se agranda), se reubica en el archivo
de datos y por lo tamnto se debe guardar en el indice la nueva
posicion. En cambio si la accion se realizara para modificar la clave,
significaria que hubo un cambio en el archivo de datos e implicaria
reorganizar el archivo de indices (el nuevo valor quiza haya dejado la
estructura desordenada).
• Las ventajas de usar indices son que se almacenan en memoria
principal, permite la busqueda binaria y el mantenimiento es menos
costoso.
• Indices grandes para entrar en memoria:
• Acceso y mantenimiento del indice: Almacen secundario
 Ventajas:
• Posibilita la busqueda binaria en un archivo con
registros de longitud variable.
• La reorganizacion y el mantenimiento es menos
costoso que hacer estas tareas sobre el archivo de datos
directamente (sigue siendo mas pequeños que el archivo
de datos)
 Desventajas:
• El numero de desplazamietos (para busqueda binaria
en disco)
• Reacomodo del indice debido a la adicion o borrado
de registros.
• Soluciones:
 Organizacion por dispersion (hashing), prioriza la velocidad
de acceso
 Uso de arboles
 Niveles de indices: Indices de indices: permiten almacenar
indices mas grandes.
Indices secundarios:
• No seria natural solicitar un dato por clave
• En su lugar se usa un campo mas facil de recordar (ej buscar una cacion
por titulo o por compositor)
• Este campo es un campo que pertenece a una clave secundaria con la
llave primaia
• Las claves secundarias se pueden repetir.
• Acceso primero por la clave secundaria (se obtiene la clave primaria) y
luego por la llave primaria (en el indice primario)
• Operaciones:
• Eliminacion de registros: Asi el indice primario sirve como una
especie de buffer de proteccion que aisla los indices secundarios de
los cambios del archivo de datos.
 Beneficio: No hay reacomodo por cada borrado.
 Costo: se sigue ocupando espacio. Esto no implica
problema si el archivo es poco volatil, porque en cambio, si lo es
muy volatil, se podrian programar borrados fisicos de los indices
secundarios.
Si el indice secundario referencia directamente al archivo de datos,
un reacomodamiento fisico implicaria reacomodar el indice primario y
en este caso secundarios tambien (pueden ser varios)
• Actualizacion: Si lo que cambia es la llave secundaria, Se debe
reacomodar el indice secundario y puede ser relativamente costoso.
En cambio, si lo que cambia es la llave primaria, Implica que se
cambie la referencia en el registro de indice secundario, y en el caso
que existan registros repetidos, se debera reclasificar localmente en
el indice secundario.
• Consulta: mejora en gran medida el tiempo de respuestas.
• El problema que implica la repeticion de informacion. El archivo de
indices se debe reacomodar con cada adicion, aunque se ingrese una
clave secundaria ya existente, dado que existe un segundo orden por la
clave primaria. Misma clave, varias ocurrencias, en distintos registros
hace que se desperdicie espacio y hay menor posibilidad que el indice
quepa en memoria.
Soluciones:
• Arreglo: Clave+ vector de punteros con ocurrencias.
 Al agregar un nuevo registro de una clave existente no se
debe reacomodar nada, solo reacomoda el vector de
ocurrencias.
 Al agregar un nuevo registro de una clave nueva, se genera
un arreglo con la clave y un elemento en el vector de punteros.
 Problema, la eleccion del tamaño del vector.
• Tamaño fijo
• Puede haber casos en que sea insuficiente.
• Puede haber casos en que sobre espacio, provocando
fragmentacion interna.
• Mejora: Clave + lista de punteros con ocurrencias
Listas invertidas: Archivos en los que una clave secundaria lleva a un conjunto
de una o mas claves primarias, es una lista de referencias de claves primarias.
De esta forma no se pierde el espacio (ya que no hay reservas) y si se agrega
un elemento a la lista, no es necesaria una reorganizacion completa.
• Organizacion fisica:
• Archivos secundarios
• Marcas o referencias
• Operaciones:
• Agregar un nuevo consiste en agregar concurrencias en la lista
invertida.
• Idem Borrar
• Modificaciones dependiendo el caso.
• Ventajas:
• El unico reacomodamiento en el archivo indice se produce al
agregar o cambiar un nombre, aunque igualmente es menos costoso,
ya que el indice es mas pequeño.
• Borrar o añadir grabaciones para un compositor, solo implica
cambiar el archivo de listas
• Como el reacomodamiento es a bajo costo, se pdria almacenar el
archivo indice en memoria secundaria, liberando RAM
• Desventaja:
• El archivo de listas es conveniente que este en memoria principal,
porque podria haber muchos desplazamientos en disco y es costoso
si hay muchos indices secundarios.
Arboles
Los problemas de usar indices son que a indices grandes, debe irse a
memoria secundaria y el acceso es lento, en el caso de una busqueda
binaria, se requieren demasiados desplazamientos y ademas es necesario
un metodo para mantener los indices ordenados.

La estructura de arbol permite localizar de forma mas rapida informacion


de un archivo (usando esta estructura para los indices)
• Es una estructura jerarquica no lineal
• Relaciones padre-hijo entre nodos
• Un arbol se caracteriza por estar formados por una serie de nodos
conectados por una serie de aristas que verifican que:
o Hay un unico nodo raiz
o Cada nodo, excepto la raiz tiene un unico padre
o Hay un unico camino desde la raiz hasta cada nodo.
• Un Arbol de tipo base T es:
o Estructura vacia, o
o Un nodo de tipo T con un numero finito de estructuras arbol de
tipo base T disjuntas llamadas subarboles
• Terminologia basica:
o Grado de un nodo: numero de descendientes directos
o Grado del arbol: mayor grado de sus nodos.
o Arbol binario: arbol de grado 2, cada nodo tiene a lo sumo dos
nodos directos
o Arbol multicamino: Cada nodo puede tener n descendientes
directos
o Lista : arbol degenerado de grado 1.
o Profundidad de un nodo: cantidad de predecesores
o Altura del arbol: profundidad maxima de cualquier nodo.
o Camino: existe un camino del nodo X al nodo Y, si existe una
sucesion de nodos que permiten llegar de x a y

• Arboles Binarios
o Arbol grado 2
o Cada nodo tiene de 0 a 2 descendientes directos (hijo izquierdo y
derecho)
o Aplicacion: expresiones aritmeticas, arboles de decision,
busqueda ABB
o En algunos casos se exige que el arbol sea completo, es decir que
todo nodo interno tenga sus dos descendientes.
o Como se almacena?
• Archivo con registro de longitud fija
• La informacion en el archivo no esta fisicamente ordenada
o Insercion
• Solo ligar al nodo apropiado (no reorganizar)
• Se va buscando en profundidad hasta donde deba
insertarse comparando a izq y derecha en que lugar queda bien
ordenado.
o Arbol balanceado: si la altura de la trayectoria mas corta hacia
una hoja no difiere de la trayectoria de la altura mas grande.
o Inconveniente, los arboles binarios, se desbalancean muy
facilmente, las busquedas pueden ser costosas. L a solucion es que se
vaya ordenando a medida que recibe las claves.
• Arboles AVL
o Arbol binario balanceado en altura. L a diferencia maxima de
altura entre cualquiera de dos subarboles que comparten la raiz es 1.
• Se llama arbol balanceado en altura o arbol BA(1).
• Las inserciones y eliminaciones se efectuan con un minimo
de acceso.
• Miembro de una clase mas general de arboles balanceados
en altura BA(K): donde la maxima diferencia de altura es K.
• Garantizan un cierto nivel minimo de desempeño de
busqueda.
• La estructura debe ser respetada, al insertar nuevos nodos,
se realizan rotaciones restringidas en un area local del arbol.
• Como son arboles binarios, con muchos niveles, son muy
profundos.
• En un arbol binario completamente balanceado el peor caso
de busqueda para encontrar una clave (considerando n claves
posibles) busca en Log2(n+1) niveles del arbol.
• En un arbol AVL, el peor caso de busqueda podria buscar en
1.44 log2(N+2) niveles del arbol.
• Para 1.000.000 de claves, un completamente balanceado
requiere desplazamiento de 20 niveles.
• En un arbol AVL el Num maximo de niveles a buscar es 28.
• Esto es bueno para almacenar en memoria principal.
• En almacenamiento secundario es deseable a lo sumo 5 o 6
desplazamientos, 20 o 28 es inaceptable.
• Volviendo a los dos problemas iniciales,
 La busqueda binaria requiere demasiados
desplazamientos
 Mantener un indice en orden es costoso:

Los AVL proporcionan una solucion aceptable al segundo


problema
• Arboles binarios paginados:
o Desplazarse en memoria secundaria tiene un costo de tiempo
relativamente alto. Una vez en posicion, leer o escribir un conjunto de
bytes continuos es rapido.
o La combinacion de desplazamiento lento + transferencia rapida
conduce a la idea de paginacion
o Al dividir un arbol binario en paginas y despues almacenar cada
pagina en bloques de localidad contiguas en disco, se puede reducir el
numero de desplazamientos para cualquier busqueda.
o Consiste en:
• Dividir el arbol binario en pafinas
• Almacenar cada pagina en un bloque de direcciones
contiguas en disco
o La busqueda de un arbol binario se accede Log2(N+1) siendo n la
cantidad de claves…. Con los paginados del mismo arbol se tarda
Logk+1(N+1) siendo k la cantidad de claves por paginas…
o Que sucederia si utilizara paginas grandes.
• Para cada acceso a una pagina, requiere transmitir muchos
datos, la mayoria no usados.
• Hay tiempo de transmision adicional, pero se ahorran
muchos desplazamientos que consumen mas tiempo que las
retransmisiones…
o Problemas:
• Dificil implementacion
• Dificil de elegir la raiz
• Dificil de mantener balanceado
• La idea de agrupar claves en paginas es muy buena, pero
no se ha encontrado la forma de agrupar las claves
correctamente.

• Arboles multicamino o N-Arios:


o Arbol en el que cualquier nodo puede tener cualquier numero de
hijos.
o Implementaciones:
• Hijos como arreglos de referencias:desaprovecha memoria
si el numero de hijos es muy variable y no puede usarse si el
numero de hijos es limitado.
• Hijos como lista enlazada.

• Arboles B
o Hasta ahora uno de los problemas era la eleccion de la raiz del
arbol y el otro era mantenerlo siempre balanceado. Los arboles B, son
construidos desde la BASE hacia arriba, la raiz emerge con la
construccion.
o Arboles B Balanceados. Son arboles multicamino con una
construccion especial en forma ascendente que permite mantenerlo
balanceado a bajo costo.
o Propiedades de un arbol B de orden M:
• Orden: Cantidad maxima de punteros por nodo
• Cantidad de punteros es igual a la cantidad de claves + 1.
• Ningun nodo tiene mas de M hijos.
• Cada nodo (menos la raiz y los terminales) tienen como
minimo M/2 hijos.
• La raiz tiene como minimo dos hijos o ninguno.
• Todos los nodos terminales estan a igual nivel
• Nodos no terminales no K hijos contienen K-1 Nodos. Los
nodos terminales tienen como minimo M/2 - 1 nodos y como
maximo M-1 nodos.
o Estructura:
• Archivo con registros de longitud fija
• Cada registro tiene una pagina o nodo
• En pascal seria:
PaginaAB = Record
Cant_claves: integer;
Claves: array[1..maxllaves] of Char;
Hijos: array[1.maxhijos] of integer;
End
o Definicion de nodo adyacente hermano: Dos nodos son
adyacentes hermanos si tienen el mismo padre y son apuntados por
punteros adyacentes en el padre.
o OPERACIONES
• Busqueda: Comienza buscando la clave en el nodo actual, si
no la localiza, toma el puntero correspondiente entre las claves
existentes. Si no es puntero nulo, se toma ese nodo y se llama
recursivamente. Si es un puntero nulo, el elemento no se
encuentra en el arbol.
• Insercion (creacion): Comienza con una busqueda que llega
hasta el nivel hoja, despues de encontrar el lugar de insercion en
el nivel hoja, hace el trabajo de insercion, division y promocion
continua en forma ascendente desde abajo. Si el registro tiene
lugar en el nodo hja ( o terminal) se inserta. Si en cambio no
tuviese lugar, produce overflow, el nodo se divide, se reparten los
elementos y se produce una promocion a un nivel superior,
generandose una nueva raiz.
• Eliminacion. El mejor caso es cuando el borrado de un item
no produce un underflow, en ese caso solo se reacomodan los
nodos internamente, en cambio en el peor caso, se produce un
underflow que implica que se tenga que recurrir a dos posibles
soluciones:
 Redistribucion: Se transladan las claves a un nodo
adyacente hermano (en caso que este tenga suficiente
espacio)
 Concatenacion: Si un nodo adyacente hermano esta
al minimo, no tiene espacio y no se puede redistribuir, se
concatena con un nodo adyacente disminuyendo el numero
de nodos, y en algunos casos la altura del arbol.
o La redistribucion podria posponer la creacion de paginas nuevas,
pueden crearse arboles mas eficientes en terminos de utilizacion de
espacio.
• Arboles B* (B Estrella, B Asterisco o B Especial)
o La condicion que lo distingue del B es que cada nodo (excepto la
raiz) esta lleno por lo menos en 2/3 partes
o Propiedades (arbol orden M)
• Cada pagina tiene como maximo M descendientes
• Cada pagina, menos la raiz y las hojas, tienen al menso
[(2M-1)/3] descendientes
• La raiz tiene como minimo dos hijos o ninguno.
• Todas las paginas que no son hoja, si tiene K descendientes
contiene K-1 Claves.
• Una pagina hoja contiene por lo menos [(2M-1)/3]-1 claves
y no mas de M-1.
o Operaciones:
• Busqueda y borrado similar a Arbol B
• Insercion. (Division e incorpora Redistribucion)
 Tres casos posibles:
• Derecha: redistribuir con nodo adyacente
hermano de la derecha ( o izquierda si es el ultimo)
• Izquierda o derecha: Si el nodo de la derecha
esta lleno o no se puede redistribuir, se busca el de la
izquierda.
• Izquierda y derecha: Busca llenar los tres
nodos, estos tendran un 2/3 parte llena.
• Manejo de paginas en buffers
o El objetivo es minimizar el numero de accesos a disco
o Transferir la raiz a RAM ahorra un acceso asegurado.
o Almacenar la raiz y las paginas solicitadas en un Buffer de paginas
en RAM
o Tecnicas de paginado: Estrategias de reemplazo LRU (Least
recently used)
• Arboles +
o Archivos secuenciales Indizados
• Permiten una mejor recorrida por algun tipo de orden.
• Indizado (ordenado por alguna clave)
• Secuencial (accede secuencialmente al archivo devolviendo
los registros en orden de la clave)
• Hasta ahora de los metodos disjuntos se opta por
recuperacion rapida (arbol) y recuperacion ordenada (secuencial)
pero se debe encontrar una solucion que agrupe ambos casos.
o Los arboles B+ son una mejora sobre los arboles B en los que se
conserva la propiedad de acceso aleatorio rapido pero permitiendo un
recorrido secuencial rapido.
o El arbol esta compuesto por dos partes:
• Indices (nodos interiores)
• Secuencia: paginas hojas enlazadas secuencialmente en las
que se repiten las claves anteriores.
o Todas las claves se encuentran en las hojas, duplicandose en la
raiz y nodos interiores, aquellas necesarias para definir los caminos de
las busquedas)
o Las hojas estan vinculadas entre si, obteniendose de ese modo
una trayectoria secuencial para recorrer las claves del arbol.
o Ocupan mas espacio que los arboles B, ya que algunas claves se
encuentran mas de una vez en el arbol.
o Las claves de la pagina raiz e interiores son usadas unicamente
como indice para las busquedas.
o Propiedades:
• Cada pagina tiene maximo M descendientes
• Cada pagina tiene, menos la raiz y las hojas, entre [M/2] y
M hijos.
• La raiz tiene al menos dos descendientes (o ninguno)
• Todas las hojas aparecen en nivel igual.
• Una paginaque no sea hoja, si tiene K descendientes,
contiene K-1 claves.
• Los nodos terminales representan un conjunto de datos y
son linkeados juntos.
• Los nodos NO terminales no contienen datos, sino punteros
a los datos (en las hojas)
o Operaciones:
• Busqueda: La busqueda no debe detenerse cuando se
encuentre la clave en la raiz o nodo interior, sino que debe seguir
en la pagina apuntada por la rama derecha de dicha clave.
• Insercion: El proceso de insercion es similar a de los arboles
B, excepto cuando se quiere insertar una clave en donde la
pagina se encuentra llena, en tal caso, esta se divide tambien en
otras dos, pero ahora la primera contendra m/2 claves y la
segunda 1+m/2 y lo que subira al padre sera una copia de la
clave central.
• Eliminacion: Este proceso es mas simple que en los arboles
B porque todas las claves se encuentran en las hojas. Si al
eliminar la clave, la cantidad de claves es mayor o igual a M/2, el
proceso concluye (las claves de la raiz o odos internos no se
modifican porque siguen siendo un separador valido entre las
claves de las paginas descendientes) pero si al eliminar la clave,
la cantidad de claves queda menor a M/2, es necesaria una fusion
y redistribucion de las mismas en la hoja y en los indices.
Hashing (Dispersion)
Hashing
• Definiciones
o Tecnica para generar una direccion base unica para una clave
dada. La dispersion se usa cuando se requiere acceso rapido a una
clave.
o Tecnica que convierte la clave del registro en un numero
aleatorio, el que sirve despues para determinar donde se almacena el
registro.
o Tecnica de almacenamiento y recuperacion que usa una funcion
de hash para mapear registros en direccion de almacenamiento
• Atributos:
o No requiere almacenamiento adicional (indice)
o Facilita la insercion y eliminacion rapida de registros
o Encuentra registros con muy pocos accesos al disco en promedio
(generalmente, menos de dos)
• Costo
o No se puede usar registros de longitud variable
o No hay orden fisico de datos
o No se permiten claves duplicadas
• Para determinar una direccion
o La clave se convierte en un numero casi aleatorio
o El numero se convierte en una direccion en memoria
o El registro se guarda en esa direccion
o Si la direccion esta ocupada, hay overflow y se trata de una forma
especial
• Parametros que afectan la eficiencia
o Tamaño del espacio de almacenamiento
o Densidad delempaquetamiento
o Funcion de Hash
o Metodo de tratamiento de desbordes
• Funcion de hash
o Caja negra que a partir de una clase se obtiene la direccion donde
debe estar el registro
o Diferencia con indices:
• Dispersion: no hay relacion aparente entre clave y direccion
• Dos claves distintas pueden transformarse en iguales
direcciones (colisiones), en ese caso son claves sinonimos.
o Colision:
• Situacion en la que un registro es asignado a una direccion
ya ocupada (no tiene suficiente espacio para ser almacenado)
• A las claves que por dispersion se convierten en la misma
direccion, se las llama sinonimos
• Se presentan como soluciones por ejemplo, algoritmos de
dispersion sin colisiones (perfectos) que son imposibles de
conseguir, o el almacenamiento de los registros de alguna forma
diferente, esparcir…
o Soluciones para coliciones:
• Esparcir registros: Buscar metodos que distribuyan los
registros de la forma mas aleatoria posible entre las direcciones
disponibles.
• Usar memoria adicional: Distribuir pocos registros en
muchas direcciones puede disminuir las chances de overflow,
pero desperdicia mucho espacio
• Colocar mas de un registro por direccion:
 Direcciones con N claves.
 Mejoras notables
 Las direcciones que pueden almacenar varios
registros en esta forma son compartimentos.
o Algoritmos simples para dispersion:
• Condiciones:
 Repartir registros en forma uniforme en el espacio de
direcciones disponible.
 Aleatoria (las claves osn independientes, no influyen
una sobre la otra)
• Tres pasos:
 Representar la llave en forma numerica (en caso que
no lo sea)
 Aplicar funcion
 Relacionar el numero resultante con el espacio
disponible
o Funciones de dispersion
• Centros cuadrados: La clave se multiplica por si misma y
tomando los digitos centrales al cuadrado, posteriormente se
ajusta al espacio disponible
• Division: La clave se divide por un numero
aproximadamente igual al numero de direcciones (numero primo,
pues tiende a distribuir los residuos en forma mas eficiente)
• Desplazamiento: los digitos externos de ambos extremos se
corren hacia adentro, se suman y se ajusta al espacio disponible.
• Plegado: Los digitos externos se pliegan, suman y adaptan
al espacio de direcciones.
• Analisis de digitos: Se analizan las claves para eliminar
posibles repeticiones en la misma
• Conversion de raiz: la base del numero se modifica y en la
serie de digitos resultante se suprimen los digitos de orden
mayor. Ej para direcciones 0-99, se ingresa la clave 453,
base11(453)=382, 382 mod 99 = 85
• Division polinominca: cada digito clave se toma como
coeficiente de polinomio, se divide por polinomio fijo, el
coeficiente del resto se toma como direccion.
o La mejor forma de escoger cual usar es tomar algunas claves y
aplicarla a los diferentes algoritmos y luego elegir el que se comporte
de mejor manera. Por lo general los que mejor se comportan son el de
division, o en caso de las claves mas largas el de plegado.
o Tamaño de los compartimientos de memoria:
• Pueden tener mas de un registro
• A mayor tamaño
 Menor colision
 Mayor fragmentacion
 Busqueda mas lenta dentro del compartimiento.
• Es necesario decidir cuanto espacio se esta dispuesto a
desperdiciar para reducir el numero de colisiones. Es deseable
tener el menor numero de colisiones posible pero no a expensas,
por ejemplo de que un archivo use dos discos en lugar de uno…
o Densidad de empaquetamiento: Proporcion de espacio del archivo
asignado que en realidad almacena registros.
DE = numero de registros en archivo / Capacidad total
Es la medida de la cantidad de espacio que se usa en el archivo.
No importa el tamaño real del archivo ni su espacio de direcciones. Lo
importante son los tamaños relativos de los dos, que estan dados por
la densidad de empaquetamiento.
A menor densidad, tendremos menos overflow, pero mayor
desperdicio de espacio.
o Estimacion del overflow:
• Sean los siguientes datos:
N: numero de compartimentos; C: capacidad de los
compartimentos; K: Numero de registros en el arch.
DE = K / (C * N)
Probabilidad de que un compartimento reciba Y Registros esta
definida por una distribucion de probabilidades de Poisson de Y
o En conclusion, si la DE es del 50% y cada dureccion puede
almacenar solo un registro, puede esperarse que el 21% de los
registros sean almacenados en un lugar que no sea su direccion base.
o Una posible solucion es que cada compartimento guarde mas de
un registro.
• En estas condiciones, podemos definir que si h(k1)=h(k2),
k1 <> k2, (antes definicion de colision) ahora decimos que ambos
datos se albergan en un mismo compartimento.
• Redefinimos colision como el momento en que un
compartimento queda lleno.
• Aplicando poison, vemos que a mas capacidad de los
compartimentos (y por lo tanto menos direcciones en memoria),
la saturacion decrece. Entonces, como se determina el tamaño de
los compartimentos; en primer lugar depende del SO, del tamaño
del buffer y el tiempo de acceso. Puede suceder que si el tamaño
del compartimento, eltiempo de recuperacion sea mucho mas
lento (y ya dejaria de ser O(1))
o Metodos de tratamiento de colisiones.
• Saturacion progresiva: Cuando se completa una direccion
de memoria, se busca en las siguientes direcciones en secuencia
hasta encontrar una vacia.
La busqueda comenzaria en la direccion base y continua
buscando en localidades sucesivas hasta encontrarlo, puede
haber circularidad. Si se llegara a encontrar una direccion vacia
se puede suponer que la clave buscada no esta en el archivo o si
el archivo esta lleno, la busqueda vuelve a donde comenzo.
En caso de la eliminacion, no debe permitirse que el espacio
liberado por la eliminacion obstaculice las busquedas posteriores
y al mismo tiempo que debe ser posible utilizar el espacio
liberado para adiciones posteriores, el problema es que la
busqueda finaliza al encontrar una direccion vacia, por eso no es
conveniente dejar direcciones vacias, que terminen la busqueda
por saturacion en forma inapropiada. Es por esto que se necesita
liberar el espacio marcandolo solamente de alguna forma, de esta
forma, el espacio liberado no rompe la secuencia de busquedas,
el espacio disponible puede ser utilizado por adiciones posteriores
y en caso de que el siguiente registro siguiente este vacio, no
seria necesario marcarlo.
Este metodo tiende a agrupar en zonas contiguas… las busquedas
largas con DE que tienden a 1. La solucion seria almacenar los
registros de overflow en zonas no relacionadas. La gran ventaja
de este metodo es la gran simplicidad que tiene.
• Dispersion Doble: Cuando sucede una colision se aplica una
segunda funcion de dispersion a la clave para producir un
numero, el cual se suma a la direccion original tantas veces como
sea necesario hasta encontrar una direccion vacia (con espacio).
Entre sus caracteristicas, se evita el acumulamiento, los registros
no quedan "locales" sino que tienden a esparcirse en el archivo,
aumenta el T.A.P. a los registros, Se deberia conseguir
compartimentos de saturacion con direccion al mismo cilindro de
disco, ya que el cambio de cilindro requiere un costoso
movimiento de la cabeza lectora/grabadora.
• Saturacion progresiva encadenada: intenta evitar los
problemas por acumulacion de registros. Funciona igual que la
saturacion progresiva, excepto que las claves sinonimos se
enlazan por apuntadores (no ocupando necesariamente
posiciones contiguas), cada direccion base contiene un numero
que indica el lugar del siguiente registro con la misma direccion
base, el siguiente registro contiene a la vez un puntero al
siguiente registro con la misma direccion base y asi
sucesivamente. Si bien mejora la cantidad de accesos a los
registros, debe agregarse un campo de enlace a cada registro,
por lo cual requiere mas espacio de almacenamiento.
• Saturacion progresiva con encadenamiento en areas
separadas: Al conjunto de direcciones base se le llama area
principal de datos, al conjunto de direcciones en saturacion se la
llama area de saturacion. Cuando se agrega un registro nuevo si
hay lugar en direccion base se almacena ahi, sino se mueve al
archivo de saturacion (en un area separada) donde se agrega a la
lista enlazada que comienza en la direccion base. Se mejora el
tratamiento de inserciones y eliminaciones. Si el area de
saturacion separada esta en un cilindro diferente al de la
direccion base, toda busqueda de registro en saturacion
impllicara un movimiento de cabeza muy costoso. Conviene que
se utilice cuando la DE sea mayor a uno, es decir que haya mas
registros que las direcciones base.
• Hash asistido por tabla . Es una variante del
encadenamiento. Tiene una tabla en memoria con una entrada
por cada compartimento del archivo. Si bien las inserciones son
lentas, se gana velocidad en lasrecuperaciones, las claves se
convierten en dos elementos, una para la direccion de los
compartimentos y la otr es la secuenca de K-Bits. En la tabla, el
valor maximo de secuencia que obtuvo en el compartimento
(comienza en el infinito).
Es un buen metodo de recuperacion, un acceso, sirve cuando se
recupera mas que lo que se inserta. En el caso de las inserciones,
si hay compartimento con lugar, queda el elemento. En el caso
que el compartimento este lleno, se hace la lista de insercion..
o Para una tecnica buena, necesitamos un numero de direcciones
fijas virtualmente imposible.
o El archivo se llena por lo tanto saturacion excesiva, requiere
redispersar, una nueva funcion y muchos cambios.
o La solucion seria reorganizara las tablas sin mover muchos
registros. Existen tecnicas que asumen bloques fisicos ue pueden
utilizarse o liberarse.
o Cada tecnnica tieen soluciones que derivan en nuevos problemas.
• Partir el compartimento cuando se llena
• Reacomodar registros entre compartimento viejo y nuevo
• Minimizar accesos a compartimentos durante la
recuperacion
• Borrar registros del archivos
o Alternativas: Hash virtual, dinamico u extensible. Hash Extensible:
Adapta el resultado de la funcion de hash de acuerdo al numero de
registros que tenga el archivo y de los compartimentos necesarios
para su almacenamiento. La funcion genera una secuencia de bits
(normalmente 32) y evita mantener areas de desbordamiento y hacer
busquedas con dos lecturas.
• Como trabaja? Se utilizan solo los bits necesarios de
acuerdo a cada instancia del archivo. Los bits tomados forman la
direccion del compartimiento que se utilizara. Si se intentara
inserta a un compartimento lleno, deben reubicarse todos los
registros alli contenidos entre el compartimento viejo y el nuevo.
Para ello se toma un bit mas. La tabla tendra tantas entradas
como 2^I siendo I el numero de bits actuales para el sistema.
Modelado de Datos
• Sistema de informacion: Conjunto de actividades que regulan la
distribucion y compartimiento de la informacion y el almacenamiento de los
datos relevantes para su administracion
• Base de datos: Cualquier conjunto "Grande"de datos estructurados,
almacenados en una computadora
o Escenciales para la supervivencia de la organizacion
o Los datos estructurados constituyen un recurso esencial.
• DBMS: Paquete de software para la gestion de la BD, Especialmente para
almacenar, manipular y recupera datos en un computador.
• Abstraccion: proceso mental aplicado al seleccionar algunas
caracteristicas de un conjunto de objetos y excluir otras
• Diseño de la BD. Tres fases
o Diseño conceptual:
• Representacion abstracta
• Proposito: describir el contenido de informacion de la BD,
mas que las estructuras de almacenamiento.
• Esquema conceptual: descripcion de alto nivel de la
estructura de la BD, independiente del DBMS que la manipula.
• Modelo conceptual: Lenguaje usado para describir
esquemas conceptuales
• Especificacion de requerimientos + Diseño conceptual ->
esquema conceptual de la BD
• Mecanismos de abstraccion :
 Clasificacion: Define un concepto como una clase de
objetos de la realidad con propidades comunes
(ES_MIEMBRO_DE)
• Arbol de un nivel que tiene como raiz la clase y
como hoja los elementos de la clase
• Cada elemento hoja es miembro de cada
elemento de la raiz
• Cada elemento puede ser miembro de varias
clases.
La clasificacion es el procedimiento que se utiliza cuando
partiendo de elementos individuales de informacion se
identifican tipos de campos o atributo.
 Agregacion: Define una clase nueva a partir de otras que
representen sus partes componentes (ES_PARTE_DE)
• Arbol de un nivel en el cual todos los nodos son
clases (la raiz representa la clase creada por agregacion
de las clases representadas por las hojas)
Reune tipos de campos relacionados en grupos, como por
ejemplo tipos de registros.
 Generalizacion: Define una relacion de subconjunto entre
los elementos de 2 o + clases (ES_UN)
• Se representa con un arbol de un nivel, en el que
todos los nodos son clases con clase generica como raiz
y las clases subconjuntos como hojas.
• Todas las abstracciones definidas para la clase
generica son heredadas por las clases subconjunt.
• Propiedades de cobertura:
 Total, si cada elemento de la clase generica
corresponde al menos a un elemento delas clases
subconjunto
 Parcial, si existe algun elementoo de laclase
generica que no corresponde a ningun elemento de
las clases subconjunto
 Exclusiva, si cada elemento de la clase
generica corresponde a lo sumo a un elemento de
las clases subconjunto
 Superpuesta, Si existe algun elemento de la
clase generica que corresponde a los elementos de
dos o mas clases subconjunto diferentes.
• Modelo de datos
 Conceptos que pueden utilizarse para describir
un conjunto de datos y operaciones para
manipularlos
 Dos modelos
• Conceptual: Instrumento para
representar la realidad a un nivel alto de
abstraccion
• Cualqidades que debe tener:
• Expresividad, rico enc onceptos
-> posibilita una representacion mas
extensa de la realidad
• Simplicidad, facil de entender
• Minimalidad, cada concepto tiene
significado distinto,, ningun
concepto puede expresarse
mediante otros conceptos,.
• Formalidad, cada concepto tiene
una sola interpretacion precisa y
bien definida.

• Modelo logico, Apoyan descripciones de


datos procesables por una computadora
(modelo jerarquico, en red y relacional..

Propiedades de las representaciones graficas:


• Complecion grafica, todos los conceptos
tienen representacion grafica
• Facilidad de lectura, si cada concepto se
representa con un simbolo grafico claramente
distinguibles del resto.
Modelo de entidad (Inter)Relacion: modelo de datos
mas usado para el diseño conceptual de BD.
• Peter Chen 1976 a partir de 1988
American National Standard institute ANSI.
• Tres elementos basicos:
• Entidades: clases de objetos de la
realidad
• Interrelaciones: Agregaciones de 2
o mas entidades
• Atributos: Propiedades basicas de
entidades o interrelaciones.
• Cardinalidad de atributos:
• Min: Numero minimo de valores de
atributos asociados con dada caso de
entidad o interrelacion
 Card-min(A,E) = 0
significa que es un atributo opcional
 Card-min(A,E) = 1
significa que el atributo es
obligatorio
• Max: Numero maximo de valores
de atributos asociados con cada caso de
entidad o interrelacion
 Card-max(A,E) = 1 Es un
atributo monovalente
 Card-max(A,E) > 1 Es un
atributo polivalente
• Dominio de los atributos:
• Conjunto de valores legitimos para
un atributo.
• Se asemejan a las declaraciones
de tipo en los lenguajes convencionales
de programacion.
• Otros elementos:
• Jerarquias de generalizacion: una
entidad E es una generalizacion entre las
entidaddes E1, E2, … si en cada objeto Ei
es tambien un objeto de la clase E
 Propiedades de cobertura:
• Total o parcial
• Exclusiva o superpuesta
• Ejemplos
 Subconjuntos: caso particular de
jerarquia de generalizacion con una
sola entidad subconjunto con
cobertura parcial y exclusiva.
Ejemplo.
 Propiedades de herencia: Todas
las propiedades de la entidad
generica son heredadas por las
entidades subconjunto, cada
atributo, interrelacion o
generalizacion definido para la
entidad generica sera heredado por
todas las entidades subconjunto.
 Cada entidad puede participar en
multiples generalizaciones (como
entidad generica o entidad
subconjunto)
 Atributos compuestos: Grupo de
atributos que tienen afinidad en
cuanto a su significado o a su uso.
• Cardinalidad max y min
(similar a los atributos simples)
• Identificadores. Un identificador de
una entidad E es un grupo de atributos o
de entidades relacionados con E que
determinan en forma unica todos los
ccasos de E (claves o claves candidatas)
 Los atributos que pueden tener
valores nulos NO pueden participar
de un identificador
 Internos o externos (mixtos)
 Simples o compuestos
Al final del proceso de diseño se requiere
que cada entidad sea provista de al
menos un identificador.
• Entidades fuertes: Entidades que
pueden identificarse internamente
(tienen una clave interna)
• Entidades debiles: Entidades que
solo poseen identificadores externos.
Necesitan la existencia de otra entidad
• Ejemplo: Entidad
prestamo(#prestamo, #cliente) y
entidad pago(#pago, fecha,
importe). La entidad pago es debil
ya que el #pago se puede repetir
para distintos prestamos.
• El identificador de una Entidad
generica es identificador de las entidades
subconjunto (herencia)
• Resumen de abstracciones:
• Clasificacion
 Entidades (clases de objetos del
mundo real con propiedades
comunes)
 Interrelaciones (clase de hechos
atomicos que relacionan dos o mas
entidades)
 Atributos (clase de valores que
representan propiedades atomicas
de E o I)
• Agregacion
 Entidades (agregacion de
atributos)
 Interrelaciones (agregaciones de
entidades y atributos)
 Atributos compuestos (agregacion
de atributos)
• Generalizacion
 Entidades
 Relaciones
• Cualidades
• Positivas
 Riqueza de conceptos
 Muy expresivo
 Potente para describir la realidad
 Todo puede llevarse a
interrelaciones binarias pero con
costos
 Los problemas pueden resolverse
de distintas formas, sin afectar la
minimalidad
 Esta definido formalmente
 Es graficamente completo
• Negativas
 Atenta contra la simplicidad y
minimalidad
 No es muy sencillo de usar
(cardinalidad e identificacion igual
de dificiles de entender y usar)
 Relaciones n-arias no
convenientes en algunos casos.
• Conclusion: El modelo de E/R
representa un buen termino medio entre
poder de expresion, simplicidad y
minimalidad.
Metodologias de diseño conceptual: se comienza
con una version preliminar del esquema y se
efectua una serie de transformaciones de
esquemas hasta arribar a la version definitiva.
Los tipos de transformaciones usadas en el proceso
de diseño se clasifican en:
• Descendentes: Corresponden a
refinamientos aplicados a un esquema inicial y
producen una descripcion mas detallada
(esquema resultante)
• Primitivas: Propiedades>
 Tienen una estructura simple, el
esquema inicial es un concepto
unico y el resultante se compone de
un conjunto pequeño de conceptos.
 Todos los nombres se refinan
dando lugar a nuevos nombres que
describen el concepto original de un
nivel de abstraccion mas bajo.
 Las conexiones logicas se heredan
por un solo concepto del esquema
resultante.
• Primitivas:
 T1: Entidad -> Entidades
relacionadas
 T2: Entidad -> Generalizacion
 T3: Entidad -> Entidades no
relacionadas
 T4: Interrelacion -> Iterrelaciones
paralelas
 T5: Interrelacion -> Entidades con
Interrelaciones.
 T6: Introduccion de atributos
 T7: Introduccion de atributos
compuestos
 T8: Refinamiento de atributos para
producir un atributo compuesto o un
conjunto de atributos simples.
• Ascendente: Introducen nuevos
conceptos y propiedades que no aparecen en
versiones anteriores del esquema.
• Primitivas: Se usan en el diseño de
un esquema, siempre que se descubren
rasgos del dominio de aplicacion que no
fueron captados en ningun nivel de
abstraccion en la version anterior del
esquema
 B1: Generacion de entidad: el
analista descubre un nuevo
concepto con propiedades
especificas que no aparecia en el
esquema anterior.
 B2: Generacion de interrelacion
 B3: Generacion de generalizacion:
se debe comprobar si las
propiedades deben pasar de una
entidad a otra
 B4: Agregacion de atributos: Se
genera un nuevo atributo y se
conecta a una E o R definida
anteriormente
 B5 Agregacion de atributo
compuesto: Se genera un nuevo
atributo compuesto y se conecta a
una E o R definida anteriormente.
Definicion de vistas: Una vista es una percepcion
de los requerimientos de datos de una aplicacion
• El objetivo es crear un esquema
conceptual partiendo de una descripcion
informal de los requerimientos del usuario
• Actividades
• Analisis de los requerimientos para
captar el significado de los objetos de
interes, su agrupacion, propiedades, etc
• Representacion de los objetos,
clases y propiedades usando conceptos
de E/R
• Fuente de requerimientos
• Descripcion en lenguaje natural
• Formularios
• Software pre-existente
• Reglamentos en organizaciones
• Leyes existentes

Las tres abstracciones (clasificacion, agregacion y generalizacion)


son independientes: ninguna de ellas puede describirse en
funcion de otras, y cada una de ellas proporciona un mecanismo
diferenciado en el proceso de estructuracion de la informacion.
• Propiedades de la correspondencia entre clases:
• Agregacion binaria: correspondencia entre 2 clases.
• Agregacion n-aria: correspondencia entre 3 o mas
clases.

Para obtener una mejora en la calidad del esquema conceptual,


se deberian examinar las cualidades del esquema.
• Compleción: Un esquema es completo cuando representa
todas las caracteristicas del dominio de aplicacion.
• Modos de comprobarse
 Verificar que los requerimientos esten
representados en el esquema
 Verificar en el esquema que cada concepto sea
mencionado en los requerimientos.
• Correccion: Un esquema es correcto cuando usa con
propiedad los conceptos Entidad-Interrelacion
• Dos tipos:
 Sintactica: Conceptos Entidad relacion se usan
correctamente, por ejemplo, las generalizaciones
se definen entre entidades pero no entre
relaciones.
 Semantica: Conceptos se usan de acuerdo a su
definicion.
• Errores mas frecuentes:
• Usar atributos en lugar de entidades
• Olvidar una generalizacion
• Olvidar la propiedad de herencia en la
generalizacion
• Usar entidades en lugar de
interrelaciones
• Olvidar un identificador de una entidad
• Omitir cardinalidad
• Usar una interrelacion con numero
erroneo de entidades.
• Minimalidad: Cada aspecto de los requerimientos aparece
una sola vez en el esquema. Un esquema es minimo si no se
puede borrar del esquema un concepto sin perder
informacion.
• Expresividad: Representa los requuerimientos de manera
natural y se puede entender con facilidad, sin necesidad de
explicaciones adicionales.
• Legibilidad -> Criterios esteticos a respetar:
• Hacer diagramas en hojas cuadriculadas (cuadros y
rombos del mismo tamaño, conexiones horizontales y
verticales)
• En lo posible, estructuras simetricas
• Minimmizar el numero de cruces.
• Generalizar sobre los hijos.
• Autoexplicacion: Esquema se explica a si mismo cuando
puede representar un gran numero de propiedades usando el
modelo conceptual, sin otros formalismos ni aclaraciones.
• Extensibilidad: Un esquema se adapta facilmente a
requerimientos cambiantes cuando puede descomponerse
en partes, a fin de aplicar los cambios en cada parte.
• Normalidad: Concepto derivado de la teoria de
normalizacion (modelo relacional). Formas normales,
purifican anomalias de diseño.

• Transformaciones de esquemas: Se aplicana un esquema de


entrada S1 y producen un esquema resultante S2. Dos esquemas
son equivalentes si por cada consulta Q sobre S1, existe una
consulta Q' sobre S2 con igual respuesta. Finalmente si A,B
esquemas, A > B si existe alguna consulta Q sobre A que no
tenga una consulta correspondiente sobre B, pero no viceversa.
• Clasificacion de transformaciones.
• Preservarn la informacion: Sin cambiar el contenido de
informacion, pero mejorando la organizacion de conceptos.
• Cambian la informacion:
 Aumento del contenido de informacion (ej, agregar
una entidad)
 Reduccion, se eliminan conceptos superfluos no
expresados en los requerimientos.
 No comparable, cambia un nombre por otro.
• Transformaciones para la minimalidad:
Objetivo: Eliminar redundancias
• Eliminar "Ciclo de relaciones": R1, interrelacion entre dos
entidades, posee el mismo contenido que la ruta de
interrelaciones R2, R3,…, Rn que conecta los mismos pares
casos de entidades que R1. No todos los ciclos generan
redundancia.
• Atributos derivados: Atributos que se pueden calcular a
partir de otros (ej, fecha de nacimiento y edad)
Es la tarea del diseñador decidir si acepta redundancas en el
esquema, Si acepta debe quedar explicito ya que podria ser
fuente de anomalias en la administracion de los datos.
• Transformaciones para expresividad y autoexplicacion.
• Eliminar subentidades colgantes de la generalizacion
• Eliminar entidades colgantes que posseen pocos atributos.
• Crear generalizacion: caso de dos entidades distintas con
propiedades similares
• Crear subconjuntos aplicables a entidades con cardinalidad
minima cero.

o Diseño logico:
• Representacion en computadora
• Esquema conceptual + diseño logico -> Esquema logico de
la BD
• Esquema logico: descripcion de la estructura de la BD que
puede procesar un DBMS
• Modelo Logico: Lenguaje usado para especificar esquemas
logicos. Los mas usados: relacional, de redes, jerarquicos.
• Depende de la clase de modelo de datos usado por el
DBMS, pero no del DBMS usado (se efectua de igual forma para
todos los DBMS relacionales porque todos usan el modelo
relacional).
• Pasaje de esquema conceptual a esquema logico:
 Desiciones a tomar:
• Sobre datos derivados: tiene como ventaa que
no se necesita calcular el valor. Reduce el numero de
accesos a la BD. Pero tiene la desventaja que el
procesamiento adicional para mantener los datos
derivados y se requiere mas espacios en el disco.
• Eliminacion de jerarquias de generalizacion:
• Los modelos logicos no permiten
representarlas.
• Se deben representar usando solo
entidades e interrelaciones
• Eliminacion de atributos de cardinalidad
mayor que 1.
• Se debe cuidar de indicarla herencia de
atributos y se debe captar la interrelacion implicita
"ES_UN". Existen tres casos a tener en cuenta:
• Caso 1: Integrar la jerarquia de
generalizacion a una sola entidad uniendo los
atributos de las subentidades y añadiendo
estos atributos a la de la superentidad. Es una
solucion simple, pero genera valores nulos en
los atributos, es aplicable a cualquier caso de
jerarquia de generalizacion.
• Caso 2: Eliminar la supernetidad
pero retener las subentidades. Tiene como
desventaja que se deben repetir los atributos
y operaciones de la superentidad, es decir que
se crearia redundancia no deseable. Es
aplicabl en el caso de cobertura total exclusiva
y es mala en cobertura superpuesta o parcial.
• Caso 3: Retener todas las
entidades y establecer explicitamente las
interrelaciones entre las superentidades y
subentidades: Es el caso mas general y
aplicable, proporciona redundancia inherente
a nivel conceptual, al representar la relacion
"ES_UN" de la jerarquia a traves de una
interrelacion explicita.
• Particion de entidades: para acceso simultaneo
con frecuencia (horizontal para entidades; vertical para
atributos)
• Particion de interrelaciones: En situaciones de
relaciones de uno a muchos y de muchos a muchos.
• Fusion de entidades e interrelaciones:
Normalizacion y cardinalidad.
 El diseño logico en el modelo relacional.
• Restricciones:
• De clave: Especifican las claves
candidatas de cada tabla
• De integridad de entidades: ningun
valor de clave primaria puede ser nulo.
• De integridad referenciales: se
especifica entre dos relaciones.
• Correspondencia E-I <=> Modelo relacional.
• Eliminacion de identificadores externos,
no usados en el modelo relacional
• Eliminacion de atributos compuestos
• Considerar todos sus
componentes como atributos individuales
• Considerar el atributo compuesto
entero como un atributo.
• Eliminacion de atributos polivalentes
• Transformar cada entidad en una
relacion.
• Transformacion de interrelaciones:
• Uno a uno:
• Integracion de una relacion
binaria (se unifica la tabla):
• Misma clave
primaria en las dos entidades
• Clave distinta, se
toma una como clave.
• Relaciones individuales
(una con participacion parcial)
• Relaciones individuales:
ambas con participacion parcial
• Uno a muchos:
• Participacion parcial
• Con valores nulos
• Sin valores nulos
• Participacion total.
• Muchos a muchos
• N-Arias
• Recursivas.
• Dependencia funcional: Dado un atributo B de
una entidad o interrelacion, este es funcionalmente
dependiente de otro A (A -> B), si para cualquier valor
dado del atributo A existe un valor simple asociado en el
atributo B. Siempre existe entre los atributos no clave
respecto del clave.
Si se da el valor de un atributo se puede obtener o
buscar el valor de otro. Ej: Si se conoce el valor del DNI
se puede hallar el nombre de un cliente. En este caso el
nombre es funcionalmente dependiente del DNI. Las
claves son atributos que forman dependencias
funcionales hacia los no claves.
• Anomalias de actualizacion:
• Insercion
• Eliminacion
• Actualizacion
• Integridad referencial
• Que es clave? Un conjunto de atributos que
identifica inevocamente cada entidad del conjunto
de entidades
• Identificador
• Claves
 Primarias
 Candidatas
• Tipos de dependencias:
• Parcial: Un atributo B (no clave) depende
de un subconjunto de A (clave)
• Transitiva: Un atributo B (no clave)
depende de otro C (clave)
• Boyce Codd: Un atributo B (clave o parte
de clave) depende de un atributo no clave.
• Multivaluada: dada una relacion R con
atributos A,B,C, decimos que existe una
dependencia entre A y B multivaluada en R , si
y solo si el conjunto de valores de B que
concuerda con el par A,C en R depende solo
del valor de A pero no del C. Una dependencia
multivaluada existe cuando un atriburo puede
determinar mas de un valor para otro atributo.
• Normalizacion:
• Proceso formal para decidir que atributos deben agruparse
en un entidad/relacion.
• Progresiva deteccion y elimminacion de dependencias no
deseadas.
• Existen politicas partidarias de realizarla sobre el modelo
entidad relacion y otras que lo hacen sobre el modelo
relacional.
• Problemas de mala normalizacion (o normalizacion
inexistente)
 Anomalias de actualizacion
 Anomalias de insercion
 Anomalias de borrado
• Formas normales:
 Primera forma normal: Todos los atributos tienen
cardinalidad 0 o 1.
 Segunda forma normal: Una tabla esta 2NF si esta en
1NF y ademas no existen dependencias parciales.
 Tercera forma normal: Una tabla esta en 3NF si esta
en 2NF y ademas no existen dependencias transitivas.
 Forma Normal Boyce Codd: Una tabla esta en BCNF si
esta en 3NF y no existen dependencias de Boyce Codd.
Otra definicio seria ue para todasl als dependencias de
la forma X->Y; X->Y es trivial (Y esta incluido o es igual
a X) o X es superclave de Y (Superclave, es decir,
conjunto de atributos que incluye la clave )
 Cuarta forma normal: Una tabla esta en 4NF si esta
en BCFN y ademas no existen dependencias
multivaluadas.
 Quinta forma normal o Forma de Dominio Clave: Una
tabla esta en 5FN si cada restriccion es una
consecuencia logica de la definicion de las claves y
dominios.

o Diseño fisico
• Es donde se determina estructuras de almacenamiento
fisico
• Describe las estructuras de almacenamiento y metodos
usados para tener acceso efectivo a los datos
• Esquema logico + Diseño fisico -> esquema fisico
• Esquema fisico: descripcion de la implantacion de una BD
en memoria secundaria.
• Se adapta a un DBMS Especifico
• Hay una retroalimentacion entre el diseño fisico y el logico
(desiciones tomadas durante el diseño fisico para mejorar el
rendimiento pueden afectar el esquema logico)
• Completo el diseño fisico, los esquemas logico y fisico se
expresan usando el lenguaje de definicion de datos del DBMS ->
Nace la BD operacional.

Modelado de Datos
• Sistema de informacion: Conjunto de actividades que regulan la
distribucion y compartimiento de la informacion y el almacenamiento de los
datos relevantes para su administracion
• Base de datos: Cualquier conjunto "Grande"de datos estructurados,
almacenados en una computadora
o Escenciales para la supervivencia de la organizacion
o Los datos estructurados constituyen un recurso esencial.
• DBMS: Paquete de software para la gestion de la BD, Especialmente para
almacenar, manipular y recupera datos en un computador.
• Abstraccion: proceso mental aplicado al seleccionar algunas
caracteristicas de un conjunto de objetos y excluir otras
• Diseño de la BD. Tres fases
o Diseño conceptual:
• Representacion abstracta
• Proposito: describir el contenido de informacion de la BD,
mas que las estructuras de almacenamiento.
• Esquema conceptual: descripcion de alto nivel de la
estructura de la BD, independiente del DBMS que la manipula.
• Modelo conceptual: Lenguaje usado para describir
esquemas conceptuales
• Especificacion de requerimientos + Diseño conceptual ->
esquema conceptual de la BD
• Mecanismos de abstraccion :
 Clasificacion: Define un concepto como una clase de
objetos de la realidad con propidades comunes
(ES_MIEMBRO_DE)
• Arbol de un nivel que tiene como raiz la clase y
como hoja los elementos de la clase
• Cada elemento hoja es miembro de cada
elemento de la raiz
• Cada elemento puede ser miembro de varias
clases.
La clasificacion es el procedimiento que se utiliza cuando
partiendo de elementos individuales de informacion se
identifican tipos de campos o atributo.
 Agregacion: Define una clase nueva a partir de otras que
representen sus partes componentes (ES_PARTE_DE)
• Arbol de un nivel en el cual todos los nodos son
clases (la raiz representa la clase creada por agregacion
de las clases representadas por las hojas)
Reune tipos de campos relacionados en grupos, como por
ejemplo tipos de registros.
 Generalizacion: Define una relacion de subconjunto entre
los elementos de 2 o + clases (ES_UN)
• Se representa con un arbol de un nivel, en el que
todos los nodos son clases con clase generica como raiz
y las clases subconjuntos como hojas.
• Todas las abstracciones definidas para la clase
generica son heredadas por las clases subconjunt.
• Propiedades de cobertura:
 Total, si cada elemento de la clase generica
corresponde al menos a un elemento delas clases
subconjunto
 Parcial, si existe algun elementoo de laclase
generica que no corresponde a ningun elemento de
las clases subconjunto
 Exclusiva, si cada elemento de la clase
generica corresponde a lo sumo a un elemento de
las clases subconjunto
 Superpuesta, Si existe algun elemento de la
clase generica que corresponde a los elementos de
dos o mas clases subconjunto diferentes.
• Modelo de datos
 Conceptos que pueden utilizarse para describir
un conjunto de datos y operaciones para
manipularlos
 Dos modelos
• Conceptual: Instrumento para
representar la realidad a un nivel alto de
abstraccion
• Cualqidades que debe tener:
• Expresividad, rico enc onceptos
-> posibilita una representacion mas
extensa de la realidad
• Simplicidad, facil de entender
• Minimalidad, cada concepto tiene
significado distinto,, ningun
concepto puede expresarse
mediante otros conceptos,.
• Formalidad, cada concepto tiene
una sola interpretacion precisa y
bien definida.

• Modelo logico, Apoyan descripciones de


datos procesables por una computadora
(modelo jerarquico, en red y relacional..

Propiedades de las representaciones graficas:


• Complecion grafica, todos los conceptos
tienen representacion grafica
• Facilidad de lectura, si cada concepto se
representa con un simbolo grafico claramente
distinguibles del resto.
Modelo de entidad (Inter)Relacion: modelo de datos
mas usado para el diseño conceptual de BD.
• Peter Chen 1976 a partir de 1988
American National Standard institute ANSI.
• Tres elementos basicos:
• Entidades: clases de objetos de la
realidad
• Interrelaciones: Agregaciones de 2
o mas entidades
• Atributos: Propiedades basicas de
entidades o interrelaciones.
• Cardinalidad de atributos:
• Min: Numero minimo de valores de
atributos asociados con dada caso de
entidad o interrelacion
 Card-min(A,E) = 0
significa que es un atributo opcional
 Card-min(A,E) = 1
significa que el atributo es
obligatorio
• Max: Numero maximo de valores
de atributos asociados con cada caso de
entidad o interrelacion
 Card-max(A,E) = 1 Es un
atributo monovalente
 Card-max(A,E) > 1 Es un
atributo polivalente
• Dominio de los atributos:
• Conjunto de valores legitimos para
un atributo.
• Se asemejan a las declaraciones
de tipo en los lenguajes convencionales
de programacion.
• Otros elementos:
• Jerarquias de generalizacion: una
entidad E es una generalizacion entre las
entidaddes E1, E2, … si en cada objeto Ei
es tambien un objeto de la clase E
 Propiedades de cobertura:
• Total o parcial
• Exclusiva o superpuesta
• Ejemplos
 Subconjuntos: caso particular de
jerarquia de generalizacion con una
sola entidad subconjunto con
cobertura parcial y exclusiva.
Ejemplo.
 Propiedades de herencia: Todas
las propiedades de la entidad
generica son heredadas por las
entidades subconjunto, cada
atributo, interrelacion o
generalizacion definido para la
entidad generica sera heredado por
todas las entidades subconjunto.
 Cada entidad puede participar en
multiples generalizaciones (como
entidad generica o entidad
subconjunto)
 Atributos compuestos: Grupo de
atributos que tienen afinidad en
cuanto a su significado o a su uso.
• Cardinalidad max y min
(similar a los atributos simples)
• Identificadores. Un identificador de
una entidad E es un grupo de atributos o
de entidades relacionados con E que
determinan en forma unica todos los
ccasos de E (claves o claves candidatas)
 Los atributos que pueden tener
valores nulos NO pueden participar
de un identificador
 Internos o externos (mixtos)
 Simples o compuestos
Al final del proceso de diseño se requiere
que cada entidad sea provista de al
menos un identificador.
• Entidades fuertes: Entidades que
pueden identificarse internamente
(tienen una clave interna)
• Entidades debiles: Entidades que
solo poseen identificadores externos.
Necesitan la existencia de otra entidad
• Ejemplo: Entidad
prestamo(#prestamo, #cliente) y
entidad pago(#pago, fecha,
importe). La entidad pago es debil
ya que el #pago se puede repetir
para distintos prestamos.
• El identificador de una Entidad
generica es identificador de las entidades
subconjunto (herencia)
• Resumen de abstracciones:
• Clasificacion
 Entidades (clases de objetos del
mundo real con propiedades
comunes)
 Interrelaciones (clase de hechos
atomicos que relacionan dos o mas
entidades)
 Atributos (clase de valores que
representan propiedades atomicas
de E o I)
• Agregacion
 Entidades (agregacion de
atributos)
 Interrelaciones (agregaciones de
entidades y atributos)
 Atributos compuestos (agregacion
de atributos)
• Generalizacion
 Entidades
 Relaciones
• Cualidades
• Positivas
 Riqueza de conceptos
 Muy expresivo
 Potente para describir la realidad
 Todo puede llevarse a
interrelaciones binarias pero con
costos
 Los problemas pueden resolverse
de distintas formas, sin afectar la
minimalidad
 Esta definido formalmente
 Es graficamente completo
• Negativas
 Atenta contra la simplicidad y
minimalidad
 No es muy sencillo de usar
(cardinalidad e identificacion igual
de dificiles de entender y usar)
 Relaciones n-arias no
convenientes en algunos casos.
• Conclusion: El modelo de E/R
representa un buen termino medio entre
poder de expresion, simplicidad y
minimalidad.
Metodologias de diseño conceptual: se comienza
con una version preliminar del esquema y se
efectua una serie de transformaciones de
esquemas hasta arribar a la version definitiva.
Los tipos de transformaciones usadas en el proceso
de diseño se clasifican en:
• Descendentes: Corresponden a
refinamientos aplicados a un esquema inicial y
producen una descripcion mas detallada
(esquema resultante)
• Primitivas: Propiedades>
 Tienen una estructura simple, el
esquema inicial es un concepto
unico y el resultante se compone de
un conjunto pequeño de conceptos.
 Todos los nombres se refinan
dando lugar a nuevos nombres que
describen el concepto original de un
nivel de abstraccion mas bajo.
 Las conexiones logicas se heredan
por un solo concepto del esquema
resultante.
• Primitivas:
 T1: Entidad -> Entidades
relacionadas
 T2: Entidad -> Generalizacion
 T3: Entidad -> Entidades no
relacionadas
 T4: Interrelacion -> Iterrelaciones
paralelas
 T5: Interrelacion -> Entidades con
Interrelaciones.
 T6: Introduccion de atributos
 T7: Introduccion de atributos
compuestos
 T8: Refinamiento de atributos para
producir un atributo compuesto o un
conjunto de atributos simples.
• Ascendente: Introducen nuevos
conceptos y propiedades que no aparecen en
versiones anteriores del esquema.
• Primitivas: Se usan en el diseño de
un esquema, siempre que se descubren
rasgos del dominio de aplicacion que no
fueron captados en ningun nivel de
abstraccion en la version anterior del
esquema
 B1: Generacion de entidad: el
analista descubre un nuevo
concepto con propiedades
especificas que no aparecia en el
esquema anterior.
 B2: Generacion de interrelacion
 B3: Generacion de generalizacion:
se debe comprobar si las
propiedades deben pasar de una
entidad a otra
 B4: Agregacion de atributos: Se
genera un nuevo atributo y se
conecta a una E o R definida
anteriormente
 B5 Agregacion de atributo
compuesto: Se genera un nuevo
atributo compuesto y se conecta a
una E o R definida anteriormente.
Definicion de vistas: Una vista es una percepcion
de los requerimientos de datos de una aplicacion
• El objetivo es crear un esquema
conceptual partiendo de una descripcion
informal de los requerimientos del usuario
• Actividades
• Analisis de los requerimientos para
captar el significado de los objetos de
interes, su agrupacion, propiedades, etc
• Representacion de los objetos,
clases y propiedades usando conceptos
de E/R
• Fuente de requerimientos
• Descripcion en lenguaje natural
• Formularios
• Software pre-existente
• Reglamentos en organizaciones
• Leyes existentes

Las tres abstracciones (clasificacion, agregacion y generalizacion)


son independientes: ninguna de ellas puede describirse en
funcion de otras, y cada una de ellas proporciona un mecanismo
diferenciado en el proceso de estructuracion de la informacion.
• Propiedades de la correspondencia entre clases:
• Agregacion binaria: correspondencia entre 2 clases.
• Agregacion n-aria: correspondencia entre 3 o mas
clases.

Para obtener una mejora en la calidad del esquema conceptual,


se deberian examinar las cualidades del esquema.
• Compleción: Un esquema es completo cuando representa
todas las caracteristicas del dominio de aplicacion.
• Modos de comprobarse
 Verificar que los requerimientos esten
representados en el esquema
 Verificar en el esquema que cada concepto sea
mencionado en los requerimientos.
• Correccion: Un esquema es correcto cuando usa con
propiedad los conceptos Entidad-Interrelacion
• Dos tipos:
 Sintactica: Conceptos Entidad relacion se usan
correctamente, por ejemplo, las generalizaciones
se definen entre entidades pero no entre
relaciones.
 Semantica: Conceptos se usan de acuerdo a su
definicion.
• Errores mas frecuentes:
• Usar atributos en lugar de entidades
• Olvidar una generalizacion
• Olvidar la propiedad de herencia en la
generalizacion
• Usar entidades en lugar de
interrelaciones
• Olvidar un identificador de una entidad
• Omitir cardinalidad
• Usar una interrelacion con numero
erroneo de entidades.
• Minimalidad: Cada aspecto de los requerimientos aparece
una sola vez en el esquema. Un esquema es minimo si no se
puede borrar del esquema un concepto sin perder
informacion.
• Expresividad: Representa los requuerimientos de manera
natural y se puede entender con facilidad, sin necesidad de
explicaciones adicionales.
• Legibilidad -> Criterios esteticos a respetar:
• Hacer diagramas en hojas cuadriculadas (cuadros y
rombos del mismo tamaño, conexiones horizontales y
verticales)
• En lo posible, estructuras simetricas
• Minimmizar el numero de cruces.
• Generalizar sobre los hijos.
• Autoexplicacion: Esquema se explica a si mismo cuando
puede representar un gran numero de propiedades usando el
modelo conceptual, sin otros formalismos ni aclaraciones.
• Extensibilidad: Un esquema se adapta facilmente a
requerimientos cambiantes cuando puede descomponerse
en partes, a fin de aplicar los cambios en cada parte.
• Normalidad: Concepto derivado de la teoria de
normalizacion (modelo relacional). Formas normales,
purifican anomalias de diseño.

• Transformaciones de esquemas: Se aplicana un esquema de


entrada S1 y producen un esquema resultante S2. Dos esquemas
son equivalentes si por cada consulta Q sobre S1, existe una
consulta Q' sobre S2 con igual respuesta. Finalmente si A,B
esquemas, A > B si existe alguna consulta Q sobre A que no
tenga una consulta correspondiente sobre B, pero no viceversa.
• Clasificacion de transformaciones.
• Preservarn la informacion: Sin cambiar el contenido de
informacion, pero mejorando la organizacion de conceptos.
• Cambian la informacion:
 Aumento del contenido de informacion (ej, agregar
una entidad)
 Reduccion, se eliminan conceptos superfluos no
expresados en los requerimientos.
 No comparable, cambia un nombre por otro.
• Transformaciones para la minimalidad:
Objetivo: Eliminar redundancias
• Eliminar "Ciclo de relaciones": R1, interrelacion entre dos
entidades, posee el mismo contenido que la ruta de
interrelaciones R2, R3,…, Rn que conecta los mismos pares
casos de entidades que R1. No todos los ciclos generan
redundancia.
• Atributos derivados: Atributos que se pueden calcular a
partir de otros (ej, fecha de nacimiento y edad)
Es la tarea del diseñador decidir si acepta redundancas en el
esquema, Si acepta debe quedar explicito ya que podria ser
fuente de anomalias en la administracion de los datos.
• Transformaciones para expresividad y autoexplicacion.
• Eliminar subentidades colgantes de la generalizacion
• Eliminar entidades colgantes que posseen pocos atributos.
• Crear generalizacion: caso de dos entidades distintas con
propiedades similares
• Crear subconjuntos aplicables a entidades con cardinalidad
minima cero.

o Diseño logico:
• Representacion en computadora
• Esquema conceptual + diseño logico -> Esquema logico de
la BD
• Esquema logico: descripcion de la estructura de la BD que
puede procesar un DBMS
• Modelo Logico: Lenguaje usado para especificar esquemas
logicos. Los mas usados: relacional, de redes, jerarquicos.
• Depende de la clase de modelo de datos usado por el
DBMS, pero no del DBMS usado (se efectua de igual forma para
todos los DBMS relacionales porque todos usan el modelo
relacional).
• Pasaje de esquema conceptual a esquema logico:
 Desiciones a tomar:
• Sobre datos derivados: tiene como ventaa que
no se necesita calcular el valor. Reduce el numero de
accesos a la BD. Pero tiene la desventaja que el
procesamiento adicional para mantener los datos
derivados y se requiere mas espacios en el disco.
• Eliminacion de jerarquias de generalizacion:
• Los modelos logicos no permiten
representarlas.
• Se deben representar usando solo
entidades e interrelaciones
• Eliminacion de atributos de cardinalidad
mayor que 1.
• Se debe cuidar de indicarla herencia de
atributos y se debe captar la interrelacion implicita
"ES_UN". Existen tres casos a tener en cuenta:
• Caso 1: Integrar la jerarquia de
generalizacion a una sola entidad uniendo los
atributos de las subentidades y añadiendo
estos atributos a la de la superentidad. Es una
solucion simple, pero genera valores nulos en
los atributos, es aplicable a cualquier caso de
jerarquia de generalizacion.
• Caso 2: Eliminar la supernetidad
pero retener las subentidades. Tiene como
desventaja que se deben repetir los atributos
y operaciones de la superentidad, es decir que
se crearia redundancia no deseable. Es
aplicabl en el caso de cobertura total exclusiva
y es mala en cobertura superpuesta o parcial.
• Caso 3: Retener todas las
entidades y establecer explicitamente las
interrelaciones entre las superentidades y
subentidades: Es el caso mas general y
aplicable, proporciona redundancia inherente
a nivel conceptual, al representar la relacion
"ES_UN" de la jerarquia a traves de una
interrelacion explicita.
• Particion de entidades: para acceso simultaneo
con frecuencia (horizontal para entidades; vertical para
atributos)
• Particion de interrelaciones: En situaciones de
relaciones de uno a muchos y de muchos a muchos.
• Fusion de entidades e interrelaciones:
Normalizacion y cardinalidad.
 El diseño logico en el modelo relacional.
• Restricciones:
• De clave: Especifican las claves
candidatas de cada tabla
• De integridad de entidades: ningun
valor de clave primaria puede ser nulo.
• De integridad referenciales: se
especifica entre dos relaciones.
• Correspondencia E-I <=> Modelo relacional.
• Eliminacion de identificadores externos,
no usados en el modelo relacional
• Eliminacion de atributos compuestos
• Considerar todos sus
componentes como atributos individuales
• Considerar el atributo compuesto
entero como un atributo.
• Eliminacion de atributos polivalentes
• Transformar cada entidad en una
relacion.
• Transformacion de interrelaciones:
• Uno a uno:
• Integracion de una relacion
binaria (se unifica la tabla):
• Misma clave
primaria en las dos entidades
• Clave distinta, se
toma una como clave.
• Relaciones individuales
(una con participacion parcial)
• Relaciones individuales:
ambas con participacion parcial
• Uno a muchos:
• Participacion parcial
• Con valores nulos
• Sin valores nulos
• Participacion total.
• Muchos a muchos
• N-Arias
• Recursivas.
• Dependencia funcional: Dado un atributo B de
una entidad o interrelacion, este es funcionalmente
dependiente de otro A (A -> B), si para cualquier valor
dado del atributo A existe un valor simple asociado en el
atributo B. Siempre existe entre los atributos no clave
respecto del clave.
Si se da el valor de un atributo se puede obtener o
buscar el valor de otro. Ej: Si se conoce el valor del DNI
se puede hallar el nombre de un cliente. En este caso el
nombre es funcionalmente dependiente del DNI. Las
claves son atributos que forman dependencias
funcionales hacia los no claves.
• Anomalias de actualizacion:
• Insercion
• Eliminacion
• Actualizacion
• Integridad referencial
• Que es clave? Un conjunto de atributos que
identifica inevocamente cada entidad del conjunto
de entidades
• Identificador
• Claves
 Primarias
 Candidatas
• Tipos de dependencias:
• Parcial: Un atributo B (no clave) depende
de un subconjunto de A (clave)
• Transitiva: Un atributo B (no clave)
depende de otro C (clave)
• Boyce Codd: Un atributo B (clave o parte
de clave) depende de un atributo no clave.
• Multivaluada: dada una relacion R con
atributos A,B,C, decimos que existe una
dependencia entre A y B multivaluada en R , si
y solo si el conjunto de valores de B que
concuerda con el par A,C en R depende solo
del valor de A pero no del C. Una dependencia
multivaluada existe cuando un atriburo puede
determinar mas de un valor para otro atributo.
• Normalizacion:
• Proceso formal para decidir que atributos deben agruparse
en un entidad/relacion.
• Progresiva deteccion y elimminacion de dependencias no
deseadas.
• Existen politicas partidarias de realizarla sobre el modelo
entidad relacion y otras que lo hacen sobre el modelo
relacional.
• Problemas de mala normalizacion (o normalizacion
inexistente)
 Anomalias de actualizacion
 Anomalias de insercion
 Anomalias de borrado
• Formas normales:
 Primera forma normal: Todos los atributos tienen
cardinalidad 0 o 1.
 Segunda forma normal: Una tabla esta 2NF si esta en
1NF y ademas no existen dependencias parciales.
 Tercera forma normal: Una tabla esta en 3NF si esta
en 2NF y ademas no existen dependencias transitivas.
 Forma Normal Boyce Codd: Una tabla esta en BCNF si
esta en 3NF y no existen dependencias de Boyce Codd.
Otra definicio seria ue para todasl als dependencias de
la forma X->Y; X->Y es trivial (Y esta incluido o es igual
a X) o X es superclave de Y (Superclave, es decir,
conjunto de atributos que incluye la clave )
 Cuarta forma normal: Una tabla esta en 4NF si esta
en BCFN y ademas no existen dependencias
multivaluadas.
 Quinta forma normal o Forma de Dominio Clave: Una
tabla esta en 5FN si cada restriccion es una
consecuencia logica de la definicion de las claves y
dominios.

o Diseño fisico
• Es donde se determina estructuras de almacenamiento
fisico
• Describe las estructuras de almacenamiento y metodos
usados para tener acceso efectivo a los datos
• Esquema logico + Diseño fisico -> esquema fisico
• Esquema fisico: descripcion de la implantacion de una BD
en memoria secundaria.
• Se adapta a un DBMS Especifico
• Hay una retroalimentacion entre el diseño fisico y el logico
(desiciones tomadas durante el diseño fisico para mejorar el
rendimiento pueden afectar el esquema logico)
• Completo el diseño fisico, los esquemas logico y fisico se
expresan usando el lenguaje de definicion de datos del DBMS ->
Nace la BD operacional.

Optimizacion de consultas
Componentes del "Costo" de ejecucion de una consulta:
o Costo de acceso a almacenamiento secundario -> Buscar, leer y escribir
bloques de datos que residen en disco.
o Costo de almacenamiento - > Costo de almacenar archivos intermedio
que genera una estrategia de ejecucion
o Costo de computo -> Costo de realizar operaciones.
o Costo de comunicacion -> Costo de enviar la consulta y los resultados (si
es un sistema distribuido)
Interpretacion de consultas
Dada una consulta hay varios metodos para llegar a la respuesta.
• Optimizacion lógica: Expresiones equivalentes:
• Algebra relacional: Procedural, existe una secuencia de resolucion
-> se puede encontrar una expresion mas eficiente de otra.
• Operaciones:
 Seleccion: hacerla lo antes posible:
Cambiar ðp1^p2(e) por ðp1(ðp2(e)), es decir, descomponer
la condicion.
 Lo mismo para la proyeccion y para el producto natural.
• Estimacion del costo de las consultas:
 La eleccion de la estrategia impacta contra las estadisticas.
• Numero de tuplas en la relacion (NR)
• Tamaño en bytes de la tupla (SR)
• Numero de valores distintos en la relacion r para un
atributo V(a,r)
 Costo de las consultas:
• Producto cartesiano: rxt
• # tuplas nr * nt
• # bytes en cada tupla = sr + st
• Seleccion ðp(r)
• # tuplas = nr / V(A,r) se supone distribucion
• # bytes x tuplas = sr.
• Optimizacion fisica:
• Generar "Buenos" Indices
• Costo de acceso por indices
 Indice -> Mas rapido, existe ordenamiento.
 Costo adicional -> acceso al indice
 Calculo de tiempo: Depende de la organizacion y
caracteristicas.
• Generar "Buenos"clusters (criterios para agrupar informacion ->
se puede "clusterizar" por tablas, atributos o relacionadas.
• Procesadores paralelos
• Redes: Separar el trabajo en distintas computadoras.
Transacciones
• Transaccion: Secuencia d eoperaciones que forman una unica unidad
logica de trabajo.
• Una transaccion se hace o no se hace, no se puede quedar a medias.
o Si termina, sus efectos quedan en la BD
o Si se anula, sus efectos no quedan en la BD
• Propiedades ACID
o Atomicidad: Una transaccion debe ser una unidad atomica de
trabajo o todas las operaciones de la transaccion se ejecutan o no lo
hacen ninguna de ellas.
o Consistencia: La ejecucion aislada de la transaccion conserva la
consistencia de la BD. Lleva la BD de un estado consistente a otro
consistente.
o Aislamiento (Isolation): Cada transaccion ignora el resto de las
transacciones que se ejecutan concurrentemente en el sistema actua
cada una como unica.
o Durabilidad: Una transaccion terminada con exito realiza cambios
permanentes en la BD. Incluso si hay fallos en el sistema.
• Estados de una transaccion:
o Activa: Estado inicial, estado normal durante la ejecucion.
o Parcialmente cometida: despues de ejecutarse la ultima
instruccion
o Fallada: Luego de descubrir que no puede seguir la ejecucion
normal.
o Abortada: Despues de haber retrocedido la transaccion y
reestablecido la BD al estado anterior al comienzo de la transaccion
o Cometida: Tras completarse con exito , se ha cometido
parcialmente y se garantiza que nunca abortara.

Parcialmente cometida Cometida

Activa

Fallada
Abortada

• Transaccion Abortada, Que hacer?


o Reiniciar la transaccion: Cualquier error que no dependa de la
logica de la transaccion (hardware, software)
o Cancelar la transaccion: Error interno logico en el programa que
ejecuta la transaccion.
• Una transaccion que llega al estado de fallo despues que se determina
que no puede seguir con su ejecucion normal, debe retroceder, esto es
retrotraer lo hecho.
• Hay que tener cuidado con las escrituras externas (xej una impresora)
cuando pasa algo asi no puede borrarse, puesto que puede haber sido vista
fuera del sistema de BD. Muchos sistemas permiten que tales escrituras
tengan lugar solo despues que la transaccion llegue a estado cometida.
• Primer clasificacion:
o Con perdida de informacion
o Sin perdida de informacion. No presenta graves problemas, ya
que los datos quedan bien.
• Tipos de fallos con perdida:
o Fallo en la transaccion: Dos errores:
• Logicos: Internos a la transaccion
• Del sistema: Bloqueos, Deadlock
o Caida delsistema: hardware, software (SO, DBMS)
o Fallo del disco.
• Algoritmos de tratamiento de fallos:
o Acciones llevadas a cabo durante el procesamiento normal de la
transaccion que permite la recuperacion ante fallos
o Acciones llevadas a cabo despues de ocurrir el fallo para
restablecer el contenido de la BD a un estado que asegure ACID
• Estructura de almacenamiento:
o Almacenamiento volatil: La informacion que reside en este
almacenamiento no suele sobrevivir a las caidas del sistema,
o Almacenamiento no volatil: La informacion que reside aqui
sobrevive a las caidas del sistema (ej. Discos y cintas)
o Almacenamiento estable: Teoricamente nunca se pierde
informacion: Replicar la informacion en varios medios no volatiles
independientes y actualizar controladamentee para asegurar que se
mantienen los datos ante cualquier situacion.
• Ante un error, como proceder?
o Reejecutar: no sirve porque se perderia la consistencia
o No reejecutar: Tampoco sirve porque tambien se perderia la
consistencia
o Solucion: Indicar las modificaciones antes de hacerlas efectivas,
de esta forma puede recuperarse.
• Metodo de recuperacion basado en bitacoras:
o Registro historico: Secuencoa de actividades realizadas sobre la
BD.
o Contenido de la bitacora:
• <Ti Iniciada> Se graba antes de que empiece a ejecutar la
transaccion i. indica que la transaccion comienza a estar activa.
• <Ti, E, Va, Vn>
 Identificador de la transaccion
 Identificador del elemento de datos
 Valor anterior
 Valor nuevo
• <Ti Commit> Indica que la transaccion esta parcialmente
cometida
• <Ti Abort>
o Las operaciones sobre la BD se almacenan antes en la bitacora
• Modificacion diferida de la BD: La base de datos se cambia
recien cuando la transaccion pasa al estado de cometida.
 Cuando la transaccion esta parcialmente cometida, la
informacion en la bitacora se usa para las escrituras diferidas
 Si el sistema se cae antes que la transaccion termine
su ejecucion, o si la transaccion aborta, se ignora el
contenido de la bitacora.
 Ejecucion de una transaccion
• Antes de empezar <Ti Starts>
• Al terminar: <Ti Commits>
• Escritura de la bitacora en memoria estable
• Escritura diferida de las modificaciones en la
BD
• Estado cometido.
 Ante un fallo y luego de recuperarse:
• Redo (Ti) para todo Ti que tenga un start y un
commit en la bitacora
• Sino tiene commit, entonces se ignora, dado
que no llego hacer algo en la BD.

• Modificacion inmediata de la BD: Ante un cambio, primero


se guarda en la bitacora y luego inmediatamente se lleva a la BD.
 La actualizacion de la BD se realiza mientras la transaccion
esta activa y se va ejecutando.
 Se necesita el valor viejo, pues los cambios se fueron
efectuand.
 Ante un fallo y luego de recuperarse:
• REDO(Ti) Para toda Ti que tenga un Start y un
Commit en la bitacora.
• UNDO(Ti) Para toda Ti que tenga un Start y no un
Commit en la bitacora.
o Transaccion:
• Condicion de idempotencia: Significa la habilidad para
realizar una accion determinada varias veces y aun asi conseguir
el mismo resultado que se obtendria si se realizace una sola vez.
o Buffers de bitacora:
• Grabar en disco cada registro de bitacora insume gran
costo de tiempo, por lo tanto se utiliza buffers. El procedimiento
es el siguiente
 Una transaccion esta parcialmente cometida
despuesde grabar en memoria no volatil el commit de la
bitacora.
 Un commit de la bitacora en memoria no volatil
implica que todos los registros anteriores de esa transaccion
ya estan en memoria no volatil.
 Antes de grabar en la BD un bloque que esta en
memoria principal, deben haberse grabado en memoria
estable todos los registros de bitacora que pertenecena los
datos de ese bloque. Siempre graba primero la bitacora y
despues la BD.
o Puntos de verificacion
• Ante un fallo que hace: REDO, UNDO segun el caso.
• Revisar la bitacora: No desde el comienzo porque es mas
probableque gran porcentaje este correcto y terminado y por lo
tanto llevaria mucho tiempo.
• Checkpoits (monousuario): Se agregarn periodicamente
indicando que hasta alli, todo se ejecuto bien. El problema es
determinar que tan periodicamente hacer estos checkpoints.
• Doble paginacion (Paginacion en la sombra)
o Pasos:
• La BD se divide en un numero determinaod de bloques de
long fija (paginas)
• Las paginas se numeran
• Para localizar una pagina dada en disco, se utiliza una tabla
de paginado.
• Se mantiene en memoria volatil una tabla actual y en
almacenamiento estable una tabla doble (Sombra)
• Al inicio de una transaccion, ambas tablas son iguales
• Durante la transaccion solo se modifica la tabla actual
• En caso de falla, se usa la tabla doble para recuperacion.
o Idea: Mantener dos tablas de paginas durante la vida de una
transaccion.
o Cuando se realiza una transaccion, se genera una nueva pagina
apuntada por la tabla actual
o La tabla de paginas de sombra mantiene un puntero a la pagina
que contiene el estado anterior de los datos involucrados en la
transaccion (pagina con estado anterior)
o Ante la caida de sistema o fallo de una transaccion, se recupera el
estado anterior de la BD desde la pagina de sombra
o La tabla de paginas actual se escribe en almacenamiento no
volatil cuando la transaccion pasa al estado de cometida. La pagina
actual se convierte en nueva pagina de sombra y se ejecuta la
siguiente transaccion.
o La tabla de paginas de sombra apunta siempre a las paginas de la
BD correspondientes al estado anterior de cualquier transaccion que
estuviera activa en el momento de la caida del sistema.
o Asi no es necesario disponer de una operacion deshacer (aborts
automaticos, se tienen la direccion de la pagina anterior sin las
modificaciones).
o Ventajas
• Menos accesos a disco
• Elimina la sobrecarga de escrituras del log
• Recuperacion mas rapida, no existe el REDO o UNDO
o Desventajas:
• Complicada en un ambiente distribuido o concurrente
• Sobrecarga: La tecnica de paginacion es por cada
transaccion
• Fragmentacion de los datos: Cambia la ubicacion de los
datos continuamenteo
• Garbage collector: Ante un fallo queda una pagina que no
es mas referenciada.
Transacciones
• Transaccion: Secuencia d eoperaciones que forman una unica unidad
logica de trabajo.
• Una transaccion se hace o no se hace, no se puede quedar a medias.
o Si termina, sus efectos quedan en la BD
o Si se anula, sus efectos no quedan en la BD
• Propiedades ACID
o Atomicidad: Una transaccion debe ser una unidad atomica de
trabajo o todas las operaciones de la transaccion se ejecutan o no lo
hacen ninguna de ellas.
o Consistencia: La ejecucion aislada de la transaccion conserva la
consistencia de la BD. Lleva la BD de un estado consistente a otro
consistente.
o Aislamiento (Isolation): Cada transaccion ignora el resto de las
transacciones que se ejecutan concurrentemente en el sistema actua
cada una como unica.
o Durabilidad: Una transaccion terminada con exito realiza cambios
permanentes en la BD. Incluso si hay fallos en el sistema.
• Estados de una transaccion:
o Activa: Estado inicial, estado normal durante la ejecucion.
o Parcialmente cometida: despues de ejecutarse la ultima
instruccion
o Fallada: Luego de descubrir que no puede seguir la ejecucion
normal.
o Abortada: Despues de haber retrocedido la transaccion y
reestablecido la BD al estado anterior al comienzo de la transaccion
o Cometida: Tras completarse con exito , se ha cometido
parcialmente y se garantiza que nunca abortara.

Parcialmente cometida Cometida

Activa

Fallada
Abortada

• Transaccion Abortada, Que hacer?


o Reiniciar la transaccion: Cualquier error que no dependa de la
logica de la transaccion (hardware, software)
o Cancelar la transaccion: Error interno logico en el programa que
ejecuta la transaccion.
• Una transaccion que llega al estado de fallo despues que se determina
que no puede seguir con su ejecucion normal, debe retroceder, esto es
retrotraer lo hecho.
• Hay que tener cuidado con las escrituras externas (xej una impresora)
cuando pasa algo asi no puede borrarse, puesto que puede haber sido vista
fuera del sistema de BD. Muchos sistemas permiten que tales escrituras
tengan lugar solo despues que la transaccion llegue a estado cometida.
• Primer clasificacion:
o Con perdida de informacion
o Sin perdida de informacion. No presenta graves problemas, ya
que los datos quedan bien.
• Tipos de fallos con perdida:
o Fallo en la transaccion: Dos errores:
• Logicos: Internos a la transaccion
• Del sistema: Bloqueos, Deadlock
o Caida delsistema: hardware, software (SO, DBMS)
o Fallo del disco.
• Algoritmos de tratamiento de fallos:
o Acciones llevadas a cabo durante el procesamiento normal de la
transaccion que permite la recuperacion ante fallos
o Acciones llevadas a cabo despues de ocurrir el fallo para
restablecer el contenido de la BD a un estado que asegure ACID
• Estructura de almacenamiento:
o Almacenamiento volatil: La informacion que reside en este
almacenamiento no suele sobrevivir a las caidas del sistema,
o Almacenamiento no volatil: La informacion que reside aqui
sobrevive a las caidas del sistema (ej. Discos y cintas)
o Almacenamiento estable: Teoricamente nunca se pierde
informacion: Replicar la informacion en varios medios no volatiles
independientes y actualizar controladamentee para asegurar que se
mantienen los datos ante cualquier situacion.
• Ante un error, como proceder?
o Reejecutar: no sirve porque se perderia la consistencia
o No reejecutar: Tampoco sirve porque tambien se perderia la
consistencia
o Solucion: Indicar las modificaciones antes de hacerlas efectivas,
de esta forma puede recuperarse.
• Metodo de recuperacion basado en bitacoras:
o Registro historico: Secuencoa de actividades realizadas sobre la
BD.
o Contenido de la bitacora:
• <Ti Iniciada> Se graba antes de que empiece a ejecutar la
transaccion i. indica que la transaccion comienza a estar activa.
• <Ti, E, Va, Vn>
 Identificador de la transaccion
 Identificador del elemento de datos
 Valor anterior
 Valor nuevo
• <Ti Commit> Indica que la transaccion esta parcialmente
cometida
• <Ti Abort>
o Las operaciones sobre la BD se almacenan antes en la bitacora
• Modificacion diferida de la BD: La base de datos se cambia
recien cuando la transaccion pasa al estado de cometida.
 Cuando la transaccion esta parcialmente cometida, la
informacion en la bitacora se usa para las escrituras diferidas
 Si el sistema se cae antes que la transaccion termine
su ejecucion, o si la transaccion aborta, se ignora el
contenido de la bitacora.
 Ejecucion de una transaccion
• Antes de empezar <Ti Starts>
• Al terminar: <Ti Commits>
• Escritura de la bitacora en memoria estable
• Escritura diferida de las modificaciones en la
BD
• Estado cometido.
 Ante un fallo y luego de recuperarse:
• Redo (Ti) para todo Ti que tenga un start y un
commit en la bitacora
• Sino tiene commit, entonces se ignora, dado
que no llego hacer algo en la BD.

• Modificacion inmediata de la BD: Ante un cambio, primero


se guarda en la bitacora y luego inmediatamente se lleva a la BD.
 La actualizacion de la BD se realiza mientras la transaccion
esta activa y se va ejecutando.
 Se necesita el valor viejo, pues los cambios se fueron
efectuand.
 Ante un fallo y luego de recuperarse:
• REDO(Ti) Para toda Ti que tenga un Start y un
Commit en la bitacora.
• UNDO(Ti) Para toda Ti que tenga un Start y no un
Commit en la bitacora.
o Transaccion:
• Condicion de idempotencia: Significa la habilidad para
realizar una accion determinada varias veces y aun asi conseguir
el mismo resultado que se obtendria si se realizace una sola vez.
o Buffers de bitacora:
• Grabar en disco cada registro de bitacora insume gran
costo de tiempo, por lo tanto se utiliza buffers. El procedimiento
es el siguiente
 Una transaccion esta parcialmente cometida
despuesde grabar en memoria no volatil el commit de la
bitacora.
 Un commit de la bitacora en memoria no volatil
implica que todos los registros anteriores de esa transaccion
ya estan en memoria no volatil.
 Antes de grabar en la BD un bloque que esta en
memoria principal, deben haberse grabado en memoria
estable todos los registros de bitacora que pertenecena los
datos de ese bloque. Siempre graba primero la bitacora y
despues la BD.
o Puntos de verificacion
• Ante un fallo que hace: REDO, UNDO segun el caso.
• Revisar la bitacora: No desde el comienzo porque es mas
probableque gran porcentaje este correcto y terminado y por lo
tanto llevaria mucho tiempo.
• Checkpoits (monousuario): Se agregarn periodicamente
indicando que hasta alli, todo se ejecuto bien. El problema es
determinar que tan periodicamente hacer estos checkpoints.
• Doble paginacion (Paginacion en la sombra)
o Pasos:
• La BD se divide en un numero determinaod de bloques de
long fija (paginas)
• Las paginas se numeran
• Para localizar una pagina dada en disco, se utiliza una tabla
de paginado.
• Se mantiene en memoria volatil una tabla actual y en
almacenamiento estable una tabla doble (Sombra)
• Al inicio de una transaccion, ambas tablas son iguales
• Durante la transaccion solo se modifica la tabla actual
• En caso de falla, se usa la tabla doble para recuperacion.
o Idea: Mantener dos tablas de paginas durante la vida de una
transaccion.
o Cuando se realiza una transaccion, se genera una nueva pagina
apuntada por la tabla actual
o La tabla de paginas de sombra mantiene un puntero a la pagina
que contiene el estado anterior de los datos involucrados en la
transaccion (pagina con estado anterior)
o Ante la caida de sistema o fallo de una transaccion, se recupera el
estado anterior de la BD desde la pagina de sombra
o La tabla de paginas actual se escribe en almacenamiento no
volatil cuando la transaccion pasa al estado de cometida. La pagina
actual se convierte en nueva pagina de sombra y se ejecuta la
siguiente transaccion.
o La tabla de paginas de sombra apunta siempre a las paginas de la
BD correspondientes al estado anterior de cualquier transaccion que
estuviera activa en el momento de la caida del sistema.
o Asi no es necesario disponer de una operacion deshacer (aborts
automaticos, se tienen la direccion de la pagina anterior sin las
modificaciones).
o Ventajas
• Menos accesos a disco
• Elimina la sobrecarga de escrituras del log
• Recuperacion mas rapida, no existe el REDO o UNDO
o Desventajas:
• Complicada en un ambiente distribuido o concurrente
• Sobrecarga: La tecnica de paginacion es por cada
transaccion
• Fragmentacion de los datos: Cambia la ubicacion de los
datos continuamenteo
• Garbage collector: Ante un fallo queda una pagina que no
es mas referenciada.
Estadisticas y Aplicaciones
Base de datos estadisticas.
o Es aquella que permite consutas que proporcionen informacion general
(por ejemplo, suma de promedios) pero no consultas que proporcionen
informacion individual.
o Por ejemplo, se permitiria consultar el sueldo promedio de los
programadores, pero no cual es el salario de un programador en
particular.
Nuevas aplicaciones en BD
• Hasta ahora modelos de datos con:
• Uniformidad de datos (estructura y tamaño)
• Orientacion de registros (longitud fija)
• Elementos de datos de tamaño pequeño
• Campos atomicos (1FN)
• Nuevas caracteristicas que debemos reflejar: CAD, CASE, BD
multimediales.
• Se necesita
• Tipos de datos complejos
• Encapsulamiento de datos y TAD
• Nuevos metodos de indexacion y consulta.
• Aplicaciones
• Sistemas de ayuda a las desiciones
 Data mining
• Existe una gran acumulacion de datos
• La tendencia es seguir acumulando datos y en forma
creciente:
• Desarrollo masivo de sistema de altos
volumenes de transacciones
• Concepto de informacion corporativa: "Activo
corporativo"
• Imposibilidad de procesamiento manual de los datos.
• Grandes fuentes de datos: BD Cientificas, DW,
internet.
• La tecnologia actual facilita la recoleccion y
acumulacion de datos
• El analisis tiende a ser lento y costoso
• Existe la sospecha que pueden haber vetas de
informacion sutil, oculta en las masas de datos sin analizar
o poco analizados.
• Definicion
• Extraccion no trivial de informacion implicita
previamente desconocida y potencialmente util de la
BD
• Es la exploracion y analisis por medios
automaticos o semiautomaticos de grandes cantidades
de datos con el fin de descubrir reglas y padrones
significativos
• Los datos ocultan desviaciones, tendencias,
anomalias que se descubren con reglas de induccion,
redes neuronales, etc.
• Porque datamining:
• Los datos estan y mas se estan produciendo
• Los datos se estan almacenando
• Existe la potencia computacional
• Hay fuerte presion competitiva
• Existen productos de software de DM
disponibles comercialmente
• KDD, Knowledge discovery in databases, otro nombre
para DM
• Importancia de Data Mining
• Aplicaciones exitosas en areas como
marketing, planeamiento financiero, deteccion y
prevencion de fraudes, cientificas, etc.
• Objetivos:
• Prediccion: puede mostrar el modo en el que
actuaran en el futuro ciertos atributos dentro de los
datos.
• Identificacion: Los patrones de datos pueden
utilizarse para identificar la existencia de un articulo,
evento o actividad.
• Clasificacion: Puede dividir los datos de modo
que diferentes clases o categorias puedan ser
identificadas basandose en combinaciones de
parametros.
• Optimizacion: La utilizacion de recursos
limitados como el tiempo, espacio, dinero o materiales
y maximizar las variables de salida
• Proceso de DM
• Comprender el dominio
• Preparar las BDs
• Descubrir patrones (data mining)
• Postprocesar los patrones descubiertos.
• Disponer los resultados para su uso.
• Tipos de conocimiento descubierto durante DM:
• Reglas de asociacion: Comunes entre la
presencia de un conjunto de elementos con otro rango
de valores para otro conjunto de variables. Ej, si
compra zapatos, puede comprarse cartera.
• Jerarquias de clasificacion: Partir de un
conjunto de eventos existentes para crear una
jerarquia de clases. Ej, una poblacion puede dividirse
en cinco niveles de merito.
• Patrones secuenciales: Persigue una secuencia
de acciones o eventos. Ej. Patrones de ocurrencia de
eventos vinculados donde uno determina al otro.
• Patrones en serie de tiempo: Detectar las
similitudes en las posiciones de serie de tiempo.
• Categorizacion y segmentacion: Un conjunto
de eventos puede ser segmentado en grupos de
elementos similares. Ej. Serie de datos sobre
enfermedades que puede dividirse en grupos basados
en similitud de efectos secundarios.
• Ventajas:
• Ayuda a soportar el proceso de toma de
desiciones
• Identificacion de nuevas oportunidades en el
mercado
• Estructuras corporativas flexibles: distintos
departamentos en una organizacion comparten la
misma informacion
• Generacion de informes criticos sin costo de
tiempo
• Formato de datos consistente
• Servir de plataforma efectiva de mezclado de
datos desde varias aplicaciones corrientes.
• Reduccion de costos globales para la
organizacion.
 Data Marts
• Satisfacen necesidades especificas de un area,
puede ser un subconjunto de un DW
• Pueden coexistir varios DM dentro de una empresa,
cada area de la misma puede tener uno.
 Data Warehouse
• Una BD que contiene los datos historicos producidos
por los sistemas informaticos de las empresas.
• Son datos administrados que estan situados fuera y
despues de los sistemas operacionales.
• Se remite al adecuado manejo de la informacion
historica generada por una organizacion a fin que esta
pueda otorgarle a sus ejecutivos las herramientas
adecuadas para el proceso de toma de desiciones.
• DW, un tema de negocios
• Cuando las necesidades del mercado y los
progresos tecnologicos convegen, se dan los cambios
mas importantes en las practicas de negocio.
• Antecedentes
• Evolucion de las clases de aplicaciones
en las organizaciones
• Evolucion de la tecnologia de soft y hard
• Cambios en la naturaliza de los negocios
(globalizacion)
• Casos que se presentan
• Tenemos montañas de datos pero no
tenemos accesos a ellos
• Todos saben que algunos datos no son
confiables
• Soolo mostrar lo que es importante.
• Nada enloquece mas a los gerentes que dos
personas presentando el mismo resultado de negocios
pero con numeros distintos.
• Objetivos:
• Brindar acceso a los datos (eficiente, facil,
consistente, confiable)
• Brindar soporte a la toma de desiciones, por
ejemplo permitiendo realizar predicciones de
operaciones futuras de un modo racional.
• Encontrar relaciones entre los datos
producidos por diferentes areas, determinando
patrones que permitan predecir futuros sucesos.
• Identificar nuevas oportunidades de negocio.
• Monitorear las operaciones actuales de
negocio y compararlas con las operaciones efectuadas
previamente.
• Aumento de la productividad
• Posibilidad de separar y combinar los datos por
medio de toda posible medida en el negocio. Por
ejemplo para analisis del problema en terminos de
dimensiones
• Reduccion de los costos de gestion de
informacion.
• Si el DW no logra transformar los datos en
informacion para hacerla accesible a los usuarios en un
tiempo lo suficientemente rapido como para marcar una
diferencia, no sirve.

. Mundo operacional Mundo analitico DW


transaccional
En cuanto Mantienen la empresa Brindan lo necesario para
a objetivos en operacion. ABMC, el planeamiento y toma
diseño de BD y de desiciones. Solo
procesos modelo de datos.
En cuanto Necesidad de flexibilidad
a requisitos Necesidad de y alcance amplio
performance
En cuanto Son para proposito Son para proposito
a datos operacional, datos analitico, Datos no
almacenad volatiles, se modifican, volatiles, pueden
os contienen datos de mantenerse por tiempo
periodos acotados de indefinido. No implica
tiempo por cuestiones mas costo. Los datos se
de performance hallan expresados en
Los datos estan terminos simples de
encriptados por negocio
restricciones del
lenguaje o BD
(normalizaciones)
En cuanto Los datos giran Los datos giran alrededor
a los datos alrededor de de los sujetos de la
que aplicaciones y empresa, estan
almacenan procesos fuertemente integrados
No siempre estan para que el analisis tenga
integrados aunque sentido. Los datos
deberian. Los datos pueden no estar
deberian estar normalizados, es
normalizados. conveniente. Toda
Generalmente no hay estructura clave contiene
necesidad de hacer un elemento de tiempo.
referencia al tiempo en Puede tener datos
las estructuras clave externos (mercado,
tendencia)
En cuanto Las transacciones Transacciones dificiles de
a estan predefinidas. predecir, nunca se sabe
operacione Tienen uso habitual, que se pedira.
sy Operaciones: ABM. Operaciones: carga inicial
transaccion Querys tradicionales: y acceso a datos (no
es SQL modificaciones). Analisis
multimedial para
consultas.
• Algunas definiciones:
• Es un ambiente estructurado y extensible diseñado
para el analisis de datos no volatiles, transformados
logica yy fisicamente desde varias aplicaciones fuentes
para alinearse con la estructura de negocio,
actualizando y manteniendo por un periodo de tiempo
largo, expresando en terminos de negocio simples y
resumido para un analisis rapido.
• Es una coleccion de datos orientada a sujetos,
integrada, variante en el tiempo, no volatil para
soportar el proceso de toma de desiciones.
• Es un proceso y no un producto. Es una tecnica de
ensamblar y gestionar adecuadamente los datos
procedentes de distintas fuentes con el objeto de
tener una vision unica de los mismos para toda la
empresa.
• Componentes:
• BD de datos fuentes (produccion)
• BD con datos resumidos (DW)
• Interfases de acceso (consultas, reportes, analisis
multimedial, datamining)
• Elementos que participan en la construccion de un
DW
• Recursos humanos
• Metodologias de trabajo
• Herramientas de hardware y software
• Infraestructura de la organizacion en general.
• Etapas de diseño de un DW
• Analisis
• Necesidades claras, sin abiguedades,, de la
organizacion que justifican la creacion
• Areas involucradas y el personal interviniente
• Evaluacion de herramientas y arquitectura
tecnologica.
• Diseño del modelo de datos
• Cada area puede manipular la informacion de
manera diferente y con equipamiento diferente.
• Se deben compatibilizar los modelos de cada
area
• Seleccion y extraccion de datos
• Informacion transaccional (indica operatividad)
-> no se incluye
• Actualizacion de datos vs extraccion
• Performance cae si se compite con
transacciones en linea
• Creacion de vistas (espacio adicional vs mejor
tiempo de acceso)
• Limpieza y transformacion
• Calidad de datos de fuentes diferentes -> se
realiza un muestreo de verificacion
• Tecnicas de limpieza (errores inherentes en los
sistema se "limpian" al transformar, errores de
validacion de dominios, tipeos incorrectos dificiles
de detectar y corregir.
• Data scrubbing: Proceso de filtrado,
decodificacion y traduccion de datos fuentes para
crear datos validados.
• Homogenizar tipos de datos
• Valores por defecto inteligentes
• Periodos de tiempo completos
• Creacion de metadatos:
• Proveen informacion sobre los datos a
almacenar en el DW
• Incluyen dominios, reglas de validacion, de
derivacion.
• Carga:
• Preprocesamiento adicional (chequeos de
restricciones de integridad, clasificaciones, etc)
• Se agregan checkpoints (ante una falla se
comienza desde el ultimo checkpoint)
• Debido a la cantidad de informacion a
transferir, se deberia poder paralelizar la carga.
• Actualizacion:
• Establecer la preioricidad
• Cumplimiento de etapas definidas con los
nuevos datos a agregar al DW
Data mars Data warehouse
Enfocado a una sola area Contiene informacion de toda
la organizacion
Menor costo Mayor costo
Pueden existir mas de un DM Existe solo uno en toda la
organizacion
Facil de entender y acceder Mas complejo
Mejor tiempo de acceso y Menor performance
respuesta
A mayor numero de DM, No existe duplicacion de datos.
administracion mas costosa

Conclusiones:
• La necesidad de sistemas de informacion que permitan
generar consultas, reportes y analisis para la toma de decisiones
es cada dia mas apremiante para las empresas que quieren
competir exitosamente en el mercado
• La Implantacion de un DW surge como la solucion a las
necesidades antes mencionadas
• No siempre en las organizaciones existe una conciencia real
de la potencialidad que tiene encubierta en los datos
transaccionales generados cotidianamente.
• Se debe tener en cuenta que un DW no es un producto que
se compra, debe ser planificado cuidadosamente de acuerdo a
cada organizacion y construido a tal efecto.
• Las organizaciones de tecnologia informatica pueden o no
tener todas las cualidades tecnicas necesarias, pero no
implementaran un proyecto de DW exitoso sin que logren que la
unidad de negocios se involucre.
• Cuando se diseña un DW hay que tener en laro que se esta
convirtiendo la informacion generada en forma cotidiana en
conocimiento para la organizacion.
• Pensar en un DW como una simple liberacion de los datos
corporativos seria un error, el valor real de un DW recien se
descubre cuando lo utiliza alguien que puede encontrar detalles
importantes en los datos y marcar las diferencias.

• Bases de datos Espaciales (GIS)


 Se emplean para recoger, modelar ,almacenar y analizar
informacion que describe las propiedades fisicas del mundo
geografico.
 Abarca dos tipos de datos:
• Datos espaciales (mapas, imagenes digitales, fronteras,
carreteras, etc)
• Datos no espaciales (censos, datos economicos, etc)
 Tres categorias de GIS
• Aplicaciones cartograficas
• Por ejemplo de riego, Analisis del rediniemto de
cosechas, planificacion y gestion de instalaciones,
estudios del pisaje, analisis de estructura de trafico.
• Aplicaciones de modelado digital de terrenos
• Ejemplo, evaluacion de ingenieria civil y militar,
analisis de suelo, control de inundaciones, etc.
• Aplicaciones de objetos cartograficos
• Sistemas de navegacion, analisis del mercado
geografico, analisis economico de productos y
servicios para el consumidor.
• Bases de datos multimedia.
 Almacenan datos de imagen, sonido y video
 La BD debe permitir objetos grandes, dado que los videos
pueden ocupar GB
 En ciertas aplicaciones, se requiere recuperacion basada en
la semejanza.
• Ej, En una BD que almacene huellas dactilares se
proporcione la imagen de una huella digital para consulta y
que se deban recuperar las huellas parecidas (no utiliza los
indices tradicionaleS)
 La recuperacin de algunos tipos de datos (ej sonido y video,
datos de medios continuos) debe ser a velocidad constante.
• Bases de datos portatiles: BD de la nueva generacion de sistemas
informaticos portatiles, como las computadoras portatiles,
conectadas a las estaciones base mediante redes de comunicaciones
digitales de radio. La capacidad de almacenamiento es limitada y
necesitan operar mientras esten desconectadas de la red.
• Recuperacion de la informacion: En paralelo con el crecimiento de
sistemas de BD, los SI han crecido tambien, este aspecto tiene que
ver basicamente con la recuperacion de informacion textual (tipo
ISIS, utiliza BD Textuales)
• Recuperacion de la informacion distribuida (usando internet)
Arquitecturas de sistemas de BD
Introduccion:
• La conexion en red de varias computadoras permite que algunas
tareas se ejecuten enel servidor y otras en los clientes, es decir,
sistemas de base de datos Cliente-servidor.
• La necesidad de procesamiento paralelo de consultas ha
conducido al desarrollo de los sistemas de BD Paralelos
• Para administrar datos distribuidos geograficamente o
administrativamente, se han desarrollado sistemas de BD distribuidos.
Sistemas centralizados
• Se ejecutan en una sola computadora sin interactuar con otros
sistemas
• Sistemas de computo de proposito general, algunas CPU y un
numero de dispositivos que estan conectados a travez de un bus
comun que proveen acceso a memoria compartida.
• Sistemas monousuario: Un unico usuario con SO que permite solo
un usuario
• Sistemas multiusuario: Varios usuarios a la vez usando terminales
(sistemas mainframes)
• No tienen control de concurrencia
• Las facilidades de recuperacionen estos sistemas no admiten o no
usan SQL, proporcionan un lenguaje de consulta muy simple
Sistemas cliente/servidor:
• Servidores satisfacen requerimientos generados por los clientes
• Funcionalidad de BD dividida en :
• Backend: maneja acceso a estructuras, evaluacion y
optimizacion de consultas, control de concurrencia y recuperacion
(sistema subyacente)
• Frontend: Consiste de herramientas como formularios
generados de reportes, interfaces, etc
• La interface entre ambas se logra con SQL o con una aplicacion
Ventajas de reemplazar mainframes con redes de workstations o PC:
• Mejor funcionalidad por el costo
• Flexibilidad en la ubicacion de recursos y facilidades en la
expansion
• Mejores interfaces de usuario
• Facilidad de mantenimiento.
Servidores pueden ser categorizados en dos grupos
• Servers de transaccion: Utilizados en sistemas relacionales
• Los clientes envian requerimientos al servidor donde se
ejecutan las transacciones y los resultados se envian nuevamente
al cliente.
• Los requerimientos se hacen en SQL y se comunican via
RPC
• ODBC (open data base conectivity) es la api estandar de
microsoft para la coneccion de servers, envio de pedidos SQL y
recepcion de resultados.
• Servers de datos: Usados por ejemplo en sistemas de BB OO
• Usadas en LAN con conexiones muy rapidas entre clientes y
servidores
• Las maquinas clientes son comparables al servidor en
cuanto a poder de procesamiento y ejecutan tareas de computo
intensivo.
• Se envian los datos al cliente y es este el que realiza la
operacion, luego envia nuevamente los resultados al servidor.
• Se requiere funcionalidad backend completa en los clientes
Sistemas paralelos
ο Mejoran la velocidad de procesamiento y E/S mediante la
utilizacion de CPU y discos en paralelo.
ο Multiples procesadores y multiples discos conectados a travez de
una red de alta velocidad.
ο Se utilizan en aplicaciones que han de manejar BD muy grandes
del orden de terabytes o que tienen que procesar miles de
transacciones por segundo (los sistemas centralizados o clientes-
servidor no lo soportan).
ο Dos conceptos: Maquinas paralelas
• De grano grueso: Un pequeño numero de procesadores
potentes
• De grano fino: Un gran numero procesadores pequeños
(soportan mayor grado de paralelismo)
ο Dos conceptos para medir performance
• Throughput, productividad: numero de tareas que pueden
ser completadas en un intervalo de tiempo.
• Tiempo de respuesta: En contestar una tarea
Sistemas distribuidos
ο Los datos se ubican en multiples maquinas (sitio o nodos)
ο Una red de alta velocidad interconecta las maquinas
ο Los datos son compartidos por usuario y multiples maquinas
• Transacciones de dos tipos
o Locales: solo acceden a datos de su propio nodo
o Globales: Acceden a datos de otras localidades/nodos.
• Compromisos;
o Compartir datos, se debe poder acceder a los datos de cualquier
nodo
o Autonomia: Cada sitio tiene el control de su informacion
o Disponibilidad: Los datos pueden ser replicados en varios lugares
y el sistema puede funcionar aun si un sitio falla.
• Desventajas:
o Costo de desarrollo del software (complejidad inherente a
garantizar la coordinacion entre nodos)
o Mayor posibiidad de bugs
o Mayor sobrecarga de procesamiento
o Mas vulnerable.
• Sistemas distribuidos vs sistemas paralelos
o Procesadores poco acoplados
o No comparten componentes fisicos
o Independencia de DB de cada nodo o localidad.
• Almacenamiento de datos distribuido
o Replicacion
• Disponibilidad (aspecto positivo)
• Aumento de paralelismo en consultas (aspecto positivo
• Aumento de la sobrecarga en actualizaciones (aspecto
negativo)
• Diseño de BDD, reglas de date
o Autonomia local:
• Los nodos o localidades deben ser independientes entre
ellos.
• Caracteristicas:
 Tienen su propio DBMS
 DBMS controla todos los aspectos ligados a el
 Las operaciones de acceso a datos locales utilizan
solo recursos locales.
 Hay cooperacion entre los nodos para el acceso
distribuido de datos.
o No es necesario un sitio central
• Todos los sitios debben ser tratados comoiguales
• De existir un sitio central, seria cuello de botella
• De existir un sitio central, el sistema seria vulnerable,
porque una falla haria fallar todo el sistema
• Para el protocolo de commit de dos fases se necesita sitio
central, pero solo durante la ejecucion de una transaccion.
o Operacion continua
• Un sistema de BDD no requiere estar nunca fuera de
servicio
• Debe proporcionar mayor confiabilidad y mayor
disponibilidad
• Se requiere
 Soporte para backups online total o incremental
 Soporte para recuperaciones rapidas de BD
 Soporte de DBMS tolerante a fallos
o Independencia de ubicacion de datos:
• Los usuarios y las aplicaciones no tienen que conocer la
ubicacion fisica de los datos. Actuan como si fuesen locales a ellos
• Sin Transparencia local deberian distinguirse los datos
locales como de los remotos.
• Simplifica los programas de usuario.
• Punto critico: diccionario de datos
 Usuarios y aplicaciones se refieren a los datos
mediante alias.
 El Diccionario debe mantener una tabla con los
elementos de datos, sus alias y sus ubicaciones
 Un DDBMS debe mantener y utilizar el Diccionario,
aun cuando los datos se mueven entre localidades
 El diccionario debe estar replicado en las localidades
y las replicas deben mantenerse actualizadas.
o Independencia de fragmentacion de datos:
• Fragmentacion:
 Horizontal a nivel fila
 Vertical a nivel columna
 Mixta
• La fragmentacion es necesaria por razones de rendimiento
• Los usuarios deben comportarse como si los datos no
estuvieran fragmentados.
• Los datos pueden estar almacenados en la ubicacion donde
son usados mas frecuentemente para que la mayoria de las
operaciones sean locales y se reduzca el trafico de la red.
o Independencia de la replicacion de daots
• Mejor rendimiento: las aplicaciones operan sobre copias
locales en vez de comunicarse con sitios remotos.
• Mejor disponibilidad: un objeto replicado esta disponible
mientras haya al menos una copia
• Desventaja: Propagar las actualizaciones.
• El usuario debe comportarse como si los datos no
estuvieran replicados.
o Procesamiento de consultas distribuidas
• La performance de una consulta debe ser independiente del
sitio donde se realiza la consulta
• Se debe maximizar la optimizacion de consultas.
o Administracion de transacciones distribuidas.
• Debe mantenerse la atomicidad de las transacciones
• Control de recuperacion de informacion
• Control de concurrencia
• Protocolos utilizados para preservar la atomicidad: dos
fases o tres fases mas conocidos.
o Independencia de hardware
• Es necesario tener la posibilidad de ejecutar el mismo
DBMS en diferentes plataformas de HW
o Independencia del SO
• Es necesario tener la posibilidad de ejecutar el mismo
DBMS en diferentes SO
o Independencia de red
o Independencia del DBMS
• Todos los DBMS en sitios distintos deben soportar la misma
interface
• Denominacion de elementos
o Como asegurar nombre unicos entre localidades
• Asignador de nombres central
 Contradice las reglas de date
 Cuello de botella inseguridad ante caidas
• Cada localidad agrega como prefijo su nombre
• Procesamiento de consultas.
o Aspectos
• Costos de transmision de datos por la red
• Ganancia potencial ante la posibilidad de utilizar
paralelismo en la consulta.
• Existen diversas posibilidades para el desarrollo de las
consultas en BDD, el desarrollo de las mismas depende de la
ubicacion de los datos y del tipo de consulta
• Transacciones distribuidas
o El coordinador actua como centro durante la vida de la
transaccion
o Deben preservar ACID
o Se complica con transacciones globales, el fallo puede estar en
varios lugares
o Cuando una transaccion se genera y se determina que es global
se subdivide y cada copia es gestionada en cada localidad. Esto
preserva la autonomia.
• Arquitecturas del sistema
o Gestor de transacciones: Encargado local de la transaccion.
Preserva la autonomia de cada localidad (una transaccion es
gestionada en cada localidad por el gestor de la misma).
o Coordinador de transacciones: Coordina la ejecucion de la
transaccion generada localmente. Actua como centro durante la vida
de la transaccion.
o Responsabilidad del gestor
• Conservar registro historico con fin de recuperacion
• Participar en el esquema de control de concurrencia de la
trannsaccion de esa localidad
o Responsabilidad del coordinador
• Iniciar la ejecucion de la transaccion
• Dividir la transaccion en subtransacciones y dividir estas
para su ejecucion
• Coordinar la terminacon de la transaccion entre todas las
localidades participantes.
o Fallos del sistema
• Fallo de una localidad
• Perdida de mensajes
• Fallo del enlace de comunicaciones
• Division o particionamiento de la red
o Topologias de red
• Diversos tipos
• Caracteristicas
 Costo de instalacion
 Costo de comunicaciones
 Disponibilidad
o Robustez: debe detectar los fallos, volver a configurar el sistema y
recuperarse cuando se repare el enlace
• Pasos ante un fallo
 Si localidad tiene datos replicados, actualizar el
catalogo para no acceder a ella
 Si habia transacciones activas en esa localidad,
abortarlas.
 Si la localidad es un servidor central de una
transaccion, obrar de acuerdo al protocolo que veremos mas
adelante
o Protocolos de compromiso
• Aseguran la atomicidad de las transacciones en entornos
distribuidos.
• Alternativas:
 Dos fases
• Un nodo coordinador inicia el protocolo para
una transaccion. El resto de los nodos se denominan
participantes
• Una transaccion no compromete en ningun
nodo hasta que todos los participantes estan
preparados.
• El coordinador envia un mensage "prepare" a
los participantes
• Cada participante responde al coordinador un
voto (+ o -)
• Si el coordinador recibe un voto negativo,
aborta latransaccion y se lo comunica a ltodos los
participantes
• Si el coordinador recibe todos los votos y son
positivos, registra el compromiso y se lo comunica a
todos los participantes.
• Los participantes registran la decision, la
aplican y envian un "done" al coordinador
• El coordinador da por finalizada la transaccion
cuando recibio el "done"de todos los participantes.
• Fallos:
• Desde el punto de vista del coordinador:
• Al coordinador no le llegan todas
las respuestas al "prepare", aborta
unilateralmente la transaccion
• No le llegan los mensajes del
"done" los sigue pidiendo por un tiempo.
• Desde el punto de vista del participante
• No recibe el prepare. Aborta la
transaccion. Si despues recibe este mensage
contesta negativamente o lo ignora.
• Si no recibe el resultado luego de
emitir su voto positivo, se bloquea.
• Principal desventaja: El coordinador recibio
todos los votos positivos y se cae antes de enviar el
resultado a los participantes
 Tres fases
 Optimista
 Pesimista
 Una fase

Anda mungkin juga menyukai