Busca elegir las estructuras de almacenamiento específicas y caminos de acceso para los archivos (o tablas), con objetivo de un buen rendimiento de las apps que hacen uso de las bd.
Estructuras de almacenamiento: hace referencia a las alternativas que ofrecen los DBMS para organizar el almacenamiento de memoria secundaria.
Caminos de acceso: qué ofrece para después ir a recuperar esos datos.
Aspectos a considerar:
Rendimiento del sistema: #prom. de trans / minuto.
Rendimiento: num. promedio de transc / minuto.
Tiempo de respuesta: tiempo desde entrada a salida.
Utilización del espacio en disco: cantidad de memoria ocupada.
Tasa de volatilidad: qué tanto se ingresan/eliminan registros.
Tasa de actividad: qué tanto se usan (lectura/escritura) registros.
Como diseñador de BD se debe realizar análisis sobre las consultas (una operación única) y transacciones (conjunto de operaciones).
Estos análisis implican realizar estudios sobre:
Frecuencia esperada de la invocación de la consulta y transacciones.
Podibles restricciones de tiempo de la consultas y transacciones.
Frecuencias esperadas de las operaciones de actualización.
El DBMS es relevante en el diseño físico.
Una de las organizaciones de archivos más tradicionales es la secuencial. Se basa en almacenar cada registro de un archivo o fila de una tabla, una al lado de la otra. Se agrupan estas filas en bloques para una mejor recuperación de los datos. Hay de dos tipos: secuencial ordenado y desordenado.
En el secuencial desordenado, se almacenan las filas como se van llegando, una detrás de la otra, almacenándose los bloques de forma cosecutiva.
En el secuencial ordenado, se almacenan las filas manteniendo un orden propio en base a algún atributo.
Se recomienda este tipo de organización en aplicaciones con alta tasa de volatilidad de insersión, alta tasa de actividad y particularmente ordenados, en consultas como
create table cliente(
RUT char(9) primary key,
Nombre varchar(35) not null,
Dirección varchar(50),
Sexo char
);
Lo contrario a una organización secuencias sería una organización directa que permita encontrar un regristro o fila sin necesidad de tener que pasar por los que están almacenados antes de él. Esto se logra gracias a que el archivo o tabla tiene un atributo como clave primaria, el cual se le aplica algún algoritmo hashing que es capaz de convertir el valor del atributo en una dirección dde algún bloque dentro del área del almacenamiento, para que sea más directo. Tendremos de dos tipos: estático y con expansión dinámica.
En el hashing estático se almacenan las filas como van llegando en algún bloque que el algoritmo hashing le indique. El algoritmo requiere tener def. el tamaño total del área de datos para poder generar direcciones dentro de tal área.
En el hashing con expansión dinámica se requiero de un área de datos y un directorio o área de índices. Se almacenan las filas como van llegando en algún bloque que el algoritmo hashing le indique. El agoritmo, a través de un árbol binario que maneja el área de índices, que le permite encontrar la ubicación de los bloques donde está cada registro y va asignando en forma dinámica nuevos bloques.
Se recomienda el hashing en apps con:
Alta tasa de volatilidad, en archivos con expansión dinámica.
Baja tasa de actividad.
No sirve, normalmente, para salidas ordenadas.
Cada nodo almacena una fila en la tabla, y tiene dos punteros, uno hacia el lado izquiero y el otro hacia el derecho. Vamos, un arbol B. Es importante en esta organización de archivos tener algún atributo que sea PK, y que los datos sean almacenados en forma ordenada por ese atributo.
Se recomienda el uso de estos en apps con:
alta volatilidad.
búsquedas directas.
Los clusters permiten almacenar 2 o más tablas lo más cercanas posibles, de tal manera de aprovechar el acceso que se hace al medio de almacenacenamiento.
Se recomiendan cuando:
Las tablas que son usadas de lectura, principalmente.
Los registros de las tablas agrupadas son frecuentemente utilizadas al mismo tiempo.
Los archivos particionados reducen el tiempo necesario para recuperar los datos de un archivo, repartiéndolos en partes de menor tamaño (y posiblemente en dstintos discos).
Un índice es una estruct. de datos adicional que se le agrega a un archivo para agilizar el acceso a los datos contenidos en él. En ese sentido al crear un índice para una tabla, se aumenta el espacio de almacenamiento requerido y generan dos áreas de almacenamiento, el área de datos y el área de índices.
Según el atributo sobre el cual se construye se denomina:
Índice primario (principal): basado en el atributo el cual se organiza el archivo de datos (PK).
Índice de Grupos: ídem que el anterior, pero no PK.
Índice secundario: especificado sobre un campo que no es usado para organizar un archivo.
Según su estructura, pueden ser dinámico o bitmap.
El índice dinámico tiene atributos únicos y amplio rango de valores.
Mientras que el índice bitmap es completamente lo contrario (atributos no únicos y rango reducido de valores).
Escoger un atributo que sea frecuentemente usado para recupe- mejor pongo la ppt.
RDBMS es un DBMS pero basado en el modelo relacional.
La normalización y las propiedades ACID (Atomicidad, Consistencia, Isolation, Durabilidad) estpan presente en los RDBMS
DDL (Definición).
DML (modificación/manipulación).
Servicios de integridad.
Manipulación de un diccionario de datos como una BD solo de lectura.
Evita que las transacciones finalicen en un estado intermedio.
En la RDBMS, la integridad en las transacciones posee los siguientes elementos:
Compromiso de una transacción: indica que la transacción se ha ejecutado por completo, y que todos los cambios se deben de guardar "para siempre".
Rollback de una transacción: Básicamente deshace todo lo que se hizo para dejar la base de datos como estaba antes de la transacción.
Un DBMS debe proveer las funciones necesarias para que las transacciones sean ACID.
Atomicidad: Cualquier cambio es átomico (todo o nada).
Consistencia: Solo se ejecutar operaciones que no rompen la integridad.
(A)islamiento: Cada ejecución de un conjunto de transacciones debe comportarse como única.
Durabilidad: Garantiza que los cambios perduren en el tiempo.
Aspectos a considerar en un plan de respaldo:
Documentación y comunicación
Cúando
Cuáles datos
Cant. de copias
Modalidad
Tipos
Copia simple: se hace un único ejemplar del respaldo
Copia doble: copia x2.
Copia generacional: Se hacen respaldos a lo largo del tiempo, teniento como un tipo de historial.
Offline: se fuardan desconectados de la BD en producción.
Online: Apoyados con discos espejos, quedando conectados a la BD en producción
Global: 🌭 o full backup.
Parcial: Sólo se respandan los registros que cambian. Pueden ser diferencial o incremental.
Los dos primeros dependen del tipo de coneción que tenga el respaldo con la BD en producción (sin o con conexión). Los otros 2 dependen de la cantidad de registros a copiar.
Funcionan a partir del momento en el que se produce un daño a la BD, ya sea físico o lógico.
Permite evitar que se produzcan inconsistencias en la BD cuando más de una transacción accede a un mismo dato para actualizarlo.
Vistas (views): Tablas virtuales cuyo contenido está definido a partir de los datos que se desean proteger.
Encirptación
Autentificación
Perfiles de usuario o Reglas de autorización: Consiste en definir las operaciones que puede hacer o no un usuario sobre determinados recursos de la BD.