in

base de datos: qué son OLTP y OLAP. ¿Cuál es la diferencia entre ellos?

apple touch icon@2

Respuesta muy corta:

Las diferentes bases de datos tienen diferentes usos. No soy un experto en bases de datos. Regla de oro:

  • si está haciendo análisis (por ejemplo, agregando datos históricos) use OLAP
  • si está realizando transacciones (por ejemplo, agregando / eliminando pedidos en un carrito de comercio electrónico) use OLTP

Respuesta corta:

Consideremos dos escenarios de ejemplo:

Escenario 1:

Está creando una tienda / sitio web en línea y desea poder:

  • almacenar datos de usuarios, contraseñas, transacciones anteriores …
  • almacenar productos reales, sus precios asociados

Desea poder encontrar datos para un usuario en particular, cambiar su nombre … básicamente realizar operaciones INSERT, UPDATE, DELETE en los datos del usuario. Lo mismo ocurre con los productos, etc.

Desea poder realizar transacciones, posiblemente involucrando a un usuario que compra un producto (eso es una relación). Entonces OLTP probablemente sea una buena opción.

Escenario 2:

Tiene una tienda / sitio web en línea y desea calcular cosas como

  • el «dinero total gastado por todos los usuarios»
  • «cuál es el producto más vendido»

Esto pertenece al dominio de análisis / inteligencia empresarial y, por lo tanto, OLAP probablemente sea más adecuado.

Si piensa en términos de «Sería bueno saber cómo / qué / cuánto» …, y eso involucra a todos los «objetos» de uno o más tipos (por ejemplo, todos los usuarios y la mayoría de los productos para conocer el total gastado), entonces OLAP probablemente sea más adecuado.

Respuesta más larga:

Por supuesto que las cosas no son tan sencillas. Por eso tenemos que usar etiquetas cortas como OLTPy OLAP en primer lugar. Cada base de datos debe evaluarse de forma independiente al final.

Entonces, ¿cuál podría ser la diferencia fundamental entre OLAP y OLTP?

Bueno, las bases de datos tienen que almacenar datos en algún lugar. No debería sorprender que la forma en que se almacenan los datos refleje en gran medida el posible uso de dichos datos. Los datos generalmente se almacenan en un disco duro. Pensemos en un disco duro como una hoja de papel realmente ancha, donde podemos leer y escribir cosas. Hay dos formas de organizar nuestras lecturas y escrituras para que sean eficientes y rápidas.

De una sola mano es hacer un libro que sea un poco como un directorio telefónico. En cada página del libro, almacenamos la información sobre un usuario en particular. Eso es bueno, ¡podemos encontrar la información de un usuario en particular muy fácilmente! ¡Simplemente salte a la página! Incluso podemos tener una página especial al principio para decirnos en qué página están los usuarios si queremos. Pero, por otro lado, si queremos encontrar, digamos, cuánto dinero gastaron todos nuestros usuarios, entonces tendríamos que leer cada página, es decir, ¡todo el libro! Eso sería un libro / base de datos basado en filas (OLTP). La página opcional al principio sería el índice.

De otra manera usar nuestra gran hoja de papel es hacer una libro de contabilidad. No soy contable, pero imaginemos que tendríamos una página para «gastos», «compras» … Eso es bueno porque ahora podemos consultar cosas como «dame los ingresos totales» muy rápidamente (solo lee las «compras» » página). También podemos pedir cosas más complicadas como «darme los diez productos más vendidos» y aún tener un rendimiento aceptable. Pero ahora considere lo doloroso que sería encontrar los gastos de un usuario en particular. Tendría que revisar la lista completa de los gastos de todos y filtrar los de ese usuario en particular, luego sumarlos. Lo que básicamente equivale a «leer todo el libro» de nuevo. Esa sería una base de datos basada en columnas (OLAP).

Resulta que:

  • OLTP Las bases de datos están destinadas a realizar muchas transacciones pequeñas y, por lo general, sirven como una «fuente única de información».

  • OLAP Por otro lado, las bases de datos son más adecuadas para análisis, minería de datos, menos consultas, pero generalmente son más grandes (operan con más datos).

Es un poco más complicado que eso, por supuesto, y es una descripción general de 20 000 pies de cómo difieren las bases de datos, pero me permite no perderme en un mar de siglas.

Hablando de siglas:

  • OLTP = procesamiento de transacciones en línea
  • OLAP = procesamiento analítico en línea

Para leer un poco más, aquí hay algunos enlaces relevantes que inspiraron mucho mi respuesta:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Método str () del diccionario de Python

QApD5ko56YypvyWnNf2bJL 1200 80

Final de Assassin’s Creed Odyssey: ¿qué significa todo esto?