Usuario:Gatchan00/Taller

Teorema FEO

editar

En ciencias de la computación, el Teorema FEO es una variación del Teorema CAP centrada en la funcionalidad de los repositorios de datos que:

Cualquier repositorio de datos existente puede cumplir al completo un máximo de 2 de las 3 siguientes características: Flexibilidad, Escalabilidad y Operacional.

Flexibilidad:

editar

Capacidad de adaptar los patrones de acceso y uso.

  • Un repositorio de datos que permita acceder a una tabla por cualquier campo es más flexible, que una que sólo permita por la Primary Key.
  • Un lenguaje de consulta de datos que permita mezclar información de múltiples tablas (como un join de SQL) es más flexible que un repositorio de datos que sólo te permite hacer operaciones sobre datos de la propia tabla.
 
Piramide FEO

Escalabilidad:

editar

Capacidad de ampliar el servicio

  • Una repositorio de datos que sólo funciona en un nodo no es escalable, mientras que una que puede funcionar en varios es más escalable.
  • Una repositorio de datos que permite usarse en varios nodos pero que cada tabla puede estar en un único nodo posee menos escalabilidad que una que permite hacer particiones de las tablas y distribuirlos por múltiples nodos.

Operacional:

editar

La capacidad de ser usado para un aplicativo

  • Un repositorio de datos que permite (bajo el patrón adecuado) acceder al dato en un tiempo reducido (pongamos 200 ms máximo) es más operacional que aquel que se demora segundos en realizar la misma tarea, y por lo tanto no puede dar un servicio operacional.
  • Un repositorio de datos que sólo permite añadir datos y no permite modificar los datos existentes es menos operacional que una que permite actualizar la información.

Aplicación:

editar

La finalidad del teorema FEO es facilitar la elección de tecnología en base a las necesidades de cada caso de uso.

Una vez analizadas las necesidades específicas, podemos buscar los repositorios de datos que se adaptan a las necesidades de dichos casos de uso y facilitar la adopción de nuevas tecnologías

Ejemplos de repositorios de datos:

editar
  • 0% Escalabilidad
  • 100% Flexibilidad
  • 100% Operacional

Un servidor PostgreSQL, y en general cualquier base de datos SQL clásica, permite realizar querys tan complejas como quieras, transformaciones, agregaciones e incluso joins.

Al mismo tiempo tienes posibilidad de actualizar tus datos y acceder a ellos de forma inmediata (Si tenemos los índices adecuados creados).

  • 100% Escalabilidad
  • 100% Flexibilidad
  • 0% Operacional

Se pueden hacer analíticas complejas, incluso joins.

Sólo se puede actualizar datos de tablas de tipo "managed".

El tiempo de respuesta no es válida para aplicaciones operacionales, es una BBDD analítica

  • 100% Escalabilidad
  • 0% Flexibilidad
  • 100% Operacional

No se pueden hacer analíticas sobre los datos.

Se pueden actualizar los datos.

El tiempo de respuesta es muy bajo, es ideal para base de datos operacional.