Puntos fuertes y débiles de los métodos de acceso

Acceso secuencial

Ventajas
  • Evita fragmentación externa al no existir espacios entre registros, pero precisa una carga extra de optimización.
  • Acceso rápido a registros contiguos.Por ejemplo, extraer los contactos que comienzan por una determinada letra en una agenda personal.
Desventajas:
  • Accesos ineficientes . Debido a que hay que recorrer muchos registros innecesarios. Obviamente, si el fichero a buscar se encuentra al comienzo, será rápido, mientras que si se encuentra al final, será muy costoso. Para definir el coste se suele indicar el coste medio.
  • Alto coste en las operaciones de mantenimiento de la estructura de datos. Por ejemplo, si se utiliza un almacenamiento contiguo en el que todos los registros ocupan un espacio variable pueden quedar huecos entre registros que deben ser reagrupados (compactación o desfragmentación).

Acceso indexado

Ventajas
  • Todas las del acceso directo, puesto que todos los registros están asociados con una entrada en el fichero de índices.
  • Se pueden realizar búsquedas y órdenes por cualquier campo de los registros, puesto que se pueden construir índices para cada uno de estos.
  • La inserción de registros es muy eficiente, puesto que no se tienen que mantener en orden
  • los registros, sino que se insertan al final y es la gestión de los índices donde recae el esfuerzo.
Desventajas
  • Limitación de hardware, sólo se puede utilizar en soportes direccionales (no se puede implementar en soportes de almacenamiento que no permita esta característica).
  • Las operaciones por lote no son eficientes.
  • Es necesario más espacio en disco.
  • La gestión de índices es muy compleja en las operaciones de inserción/modificación/eliminación.

Direccionamiento calculado

Ventajas
  • Eficiencia en el acceso a datos
  • Bajo coste en operaciones de mantenimiento
Inconvenientes
  • Limitación por hardware
  • Alto coste en recorrer todos los elementos

Diferencia entre acceso directo y acceso por direccionamiento calculado

Acceso directo

El campo de operando en la instrucción contiene la dirección en memoria donde se encuentra el operando.

En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando reside en la memoria y su dirección es dada directamente por el campo de dirección de la instrucción. En una instrucción de tipo ramificación el campo de dirección especifica la dirección de la rama actual.

Si hace referencia a un registro de la máquina, el dato estará almacenado en este registro y hablaremos de direccionamiento directo a registro; si hace referencia a una posición de memoria, el dato estará almacenado en esta dirección de memoria (dirección efectiva) y hablaremos de direccionamiento directo a memoria. Estos modos de direccionamiento tienen una forma muy simple y no hay que hacer cálculos para obtener la dirección efectiva donde está el dato. El tamaño del operando, en el caso del direccionamiento directo a registro, dependerá del número de registros que tenga la máquina; en el direccionamiento directo a memoria, dependerá del tamaño de la memoria.

 

Acceso por direccionamiento calculado

Al igual que ocurre con los ficheros de acceso directo, los registros se almacenan en una posición específica del fichero que  es obtenida en este caso no simplemente por el valor de la clave  sino por el resultado de aplicar el algoritmo a dicha clave. A esta clave se la reconoce también con el nombre de  clave de direccionamiento calculado. El algoritmo determinará la posición de memoria en la que se localizará el registro, denominado como función de direccionamiento calculado. Esta aplicación de aplicar un algoritmo a la clave del registro se conoce como técnica de Hashing o direccionamiento calculado.

tabla hash

Características de las funciones de hasting

Propiedades que debe cumplir las funciones de hasting

1- Sea cual sea la longitud del texto base A, la longitud de su hash resultante B siempre va a ser la misma. Por ejemplo, si la longitud de la salida B esta definida en 128 bits, si aplicamos una función hash a un A de 5 bits nos dará un B de 128 bits, y si se la aplicamos a un A de 380 millones de bits, nos dará un B de 128 bits igualmente.

2- Para cada entrada A, la función generará una salida B única. O lo que es lo mismo, es imposible que dos textos bases A y A’ tengan un mismo hash B.

3- Dado un texto base, es fácil y rápido (para un ordenador) calcular su número resumen.

4- Es imposible reconstruir el texto base a partir del número resumen.Esto es lo que se conoce como One-Way hash functions. A partir del hash es imposible reconstruir el texto base.

5. – No puede presentar Colisiones.

 

Funcion hashing

SQLite: Características

SQLite es un sistema de gestión de bases de datos creado por D. Richard Hip en el año 2000 que se diferencia de bases de datos convencionales como MySQL u Oracle en que esta lee y escribe archivos binarios independientes, un estilo similar al de las bases de datos hechas en Microsoft Access.

Fue escrita en lenguaje C y es de dominio público, por lo que puede ser utilizada en cualquier tipo de proyectos, sean libres o comerciales. Además tiene características muy interesantes:

  • Dependiendo de la plataforma, toda la biblioteca se maneja desde un único archivo (shell de comandos) de apenas 500KB.
  • Se utiliza el mismo lenguaje de consulta SQL, por lo que de entrada es fácil usarlo.
  • Es multiplataforma, incluso hay una gran cantidad de documentación para conectarlo con lenguajes como Java, PHP, Python, .NET, entre otros.
  • Las bases de datos se guardan en un fichero con extensión “.db”.

Dada su presentación, puede funcionar en dispositivos y máquinas con características de hardware limitadas tales como tabletas o dispositivos móviles (es muy popular en Android).

¿Cuándo usar SQLite?

Es ideal para proyectos pequeños y medianos. Tanto en aplicativos de escritorio como en páginas web y desarrollos móviles.

Cero configuración

SQLite fue hecho precisamente para que no se requiriera grandes dificultades en su instalación, a diferencia de otros gestores, bastará con bajarse “la shell de comandos” de SQLite para empezar a trabajar. Como ya se ha dicho, las mismas sentencias de SQL son útiles aquí (CREATE, DROP, SELECT, UPDATE, etc). Si el usuario lo requiere, puede descargarse aplicativos con interfaz gráfica para manejar de manera más sencilla las bases de datos creadas.

Seguridad

Al no haber gestión de usuarios, como por ejemplo, en MySQL en donde teníamos que definir varios parámetros para conectarnos, en SQLite la seguridad se basa en los permisos de ficheros establecidos en GNU/Linux.

Para finalizar, en la página oficial se presenta un listado de algunas de las limitaciones que tiene esta biblioteca con respecto a otras: Limitaciones

SQLite

Cabra

The new caffeine dispenser in the power of your arm.

Forget about coffee capsules. Get the coffee within your system in a matter of seconds with this new device!

Imagine dosing yourself in the middle of a boring meeting, or running, or watching a movie or…

CAFFEINE BRACELET BY jtolosa

 

Aprendiendo lo básico: Inodos y sistemas de archivo UFS

UFS

UFS es el acrónimo utilizado para denominar el archivo de ficheros Unix File System, el cual es un sistema de archivos utilizado por varios sistemas operativos UNIX y POSIX.

Los sistemas de archivos, en general, tienen dos partes:

  1. Los metadatos, o los “datos” sobre los datos.
  2. Los datos en sí.

 

La primera parte, los metadatos, aunque suene gracioso, son datos acerca de los datos, pero este es un componente clave de los sistemas de archivos. Incluye información como el nombre del archivo, la fecha en que se modificó el archivo, el propietario del archivo, los permisos de archivos, etc. Este tipo de información es clave para un sistema de archivo.

 

INODOS

Es una estructura de datos propia de los archivos de sistemas tradicionales de Unix, como UFS.

Los inodos almacenan la información de los metadatos y por lo general también almacenan información sobre dónde se encuentran los datos en el medio de almacenamiento.Cada inodo queda identificado por un número entero, único dentro del sistema de ficheros, y los directorios recogen una lista de parejas formadas por un número de inodo y nombre identificativo que permite acceder al archivo en cuestión. Cada archivo tiene un único inodo, pero puede tener más de un nombre en distintos o incluso en el mismo directorio para facilitar su localización.

El número de inodo de un archivo puede obtenerse mediante el comando ls -i. El comando ls -l muestra parte de la información que contiene el inodo de cada archivo.

Los inodos almacenan información acerca de archivos y directorios, tales como quiénes son sus propietarios, cuáles son sus modos de acceso (permisos de lectura, escritura y ejecución), y cuál es el tipo del archivo.

En otras palabras, un inodo representa un índice en una tabla de metadatos almacenada en una ubicación conocida de un dispositivo.

 

Información de un inodo en un sistema de archivo ufs

 

Fuentes

¿Qué es un inodo? 

Investigación sobre sistemas de archivos.

Sistemas de ficheros EXT.

 

Sistemas de alta disponibilidad

Alta disponibilidad

La alta disponibilidad permite que un servicio funcione correctamente ante un fallo de software o hardware. Se puede implementar mediante una configuración basada en hardware o software.

Una solución hardware trata de asegurar que el servidor funcione de forma interrumpida y para ello suele utilizar sistemas redundantes de alimentación, discos duros, de red, etc…

Una configuración basada en software consiste en una serie de servidores, denominados nodos, conectados entre sí de manera que, ante el fallo de un nodo se reparten sus servicios a los otros nodos del clúster.

Para permitir el alto rendimiento se crea un clúster en el que cada nodo se encarga de realizar una serie de tareas que se van distribuyendo dependiendo de diversos factores: equipos activos, rendimiento, etc.. Esta solución ofrece dos características muy importantes: evita la saturación de un nodo; y balancea la carga de los nodos de manera inteligente.

En definitiva, las soluciones de alta rendimientos ofrecen una mayor capacidad de gestión, escalabilidad y ampliación así como una mayor disponibilidad para los servicios de entorno empresarial. Además ofrecen tolerancias a fallos, flexibilidad y tranquilidad.

Paradójicamente, añadiendo más componentes al sistema total puede socavar esfuerzos para lograr alta disponibilidad. Esto es debido a que sistemas complejos tienen inherentemente más puntos de fallos potenciales y son más difíciles de implementar correctamente. La mayoría de los sistemas altamente disponibles extraen a un patrón de diseño simple: un sistema físico multipropósito simple de alta calidad con redundancia interna comprensible ejecutando todas las funciones interdependientes emparejadas con un segundo sistema en una localización física separada.

Alta disponibilidad

 

Al elaborar un plan eficaz para hacer frente a los retos que disminuyen la disponibilidad de un sistema, primero es necesario comprender el sistema en su conjunto y cómo cada componente afecta la disponibilidad general del mismo.

Para entonces, es posible identificar los componentes más críticos. Es importante recalcar: no importa cuán insignificante un componente del sistema pueda parecer, es posible que tenga un profundo impacto sobre la disponibilidad general del sistema.

Una vez que hayan sido identificados los componentes más críticos, se puede buscar la manera de mejorar su confiabilidad, recuperabilidad, capacidad de servicio y administrabilidad.

Fuentes

¿Qué es la alta disponibilidad?

Aspectos básicos de la alta disponibilidad

 

Archivado o migración de datos.¿Qué elegir?

Archivado de datos

Para que el archivado de datos funcione bien será necesario que haya una persona responsable de él. Las funciones de esta persona serán las siguientes:

  • Conocerá la ubicación de los documentos y el sistema de archivo.
  • Marcará las normas de uso y clasificación.
  • Será responsable de la presencia y conservación adecuada de los documentos.
  • Determinará los pasos a seguir para la salida de documentos (cesión o eliminación).

Los documentos se conservan por dos razones: su valor legal y su valor informativo o de organización, y cuando el documento no tiene ninguno de ellos se debe proceder a su eliminación.

 

Migración de datos

La información es un activo esencial para cualquier organización y el potencial de su valor reside en los datos que, en ocasiones, deben migrar para mejorar el desempeño de una base de datos, actualizar versiones, reducir costes o aplicar políticas de seguridad.

Este proceso consiste en la transferencia de datos de un sistema a otro y suele tener lugar en momentos de transición provocados por la llegada de una nueva aplicación, un cambio en el modo o medio de almacenamiento o las necesidades que impone el mantenimiento de la base de datos corporativa.

Hay tres opciones principales para llevar a cabo la migración de datos:

  •  Combinar los sistemas de las dos empresas o fuentes en uno nuevo.
  •  Migrar uno de los sistemas al otro.
  •  Mantener la integridad de ambos sistemas, dejándolos intactos, pero creando una visión común a ambos: un almacén de datos.

Con la explosión de las tecnologías de la información cada vez existen más documentos  digitales y digitalizaciones de documentos que han de ser preservados manteniendo su integridad, autenticidad, fiabilidad, legibilidad y funcionalidades.

Para evitar estas amenazas que se ciernen sobre los documentos electrónicos se pueden utilizar una serie de estrategias, de entre las cuales la migración es la más utilizada por las ventajas que aporta:

  • Es una operación muy experimentada.
  • No se requieren conocimientos técnicos muy especializados.
  • Se puede automatizar una parte de los procesos.
  • La tendencia hacia la estandarización de software y formatos facilitará la migración.
  • Convierte el documento a un formato compatible con sistemas actuales.

 

Archivado y migración de datos

Fuentes

¿Qué es la migración de datos?

Cómo elegir herramientas de migración de bases de datos