Blockchain 3: la diferencia entre base de datos y blockchain

1. Conceptos básicos de la base de datos

1. Definición y propósito de la base de datos

Haga clic en el enlace para ver el artículo y conocer los dos puntos siguientes:
Base de datos 1: conceptos básicos de la base de datos·Descripción general y conceptos básicos de la base de datos

    1. Conceptos básicos de base de datos.
    1. El papel y la importancia de las bases de datos en las aplicaciones.

2. Descripción general del sistema de gestión de bases de datos (DBMS)

Haga clic en el enlace 1 para ver el artículo y comprender el punto 1:
Base de datos 1: conceptos básicos de la base de datos·Descripción general y conceptos básicos de la base de datos

Haga clic en el enlace 2 para ver el artículo y comprender el punto 2. El enlace 2.1 es para un suplemento de aprendizaje:
Base de datos 2: conceptos básicos de bases de datos·Base de datos relacional y
base de datos SQL 2.1: suplemento de conocimientos sobre bases de datos relacionales y SQL: edición fina

    1. Roles y funciones del DBMS
    1. Introducción a los sistemas de gestión de bases de datos comunes (como MySQL, PostgreSQL, Oracle)

3. Bases de datos relacionales y bases de datos no relacionales

Haga clic en el enlace 2 para ver el artículo y comprender el punto 1. El enlace 2.1 es para aprendizaje complementario:
Base de datos 2: conceptos básicos de bases de datos·Base de datos relacional y
base de datos SQL 2.1: suplemento de conocimientos sobre bases de datos relacionales y SQL: edición refinada

Haga clic en el enlace 7 para ver el artículo y comprender el punto 2:
Base de datos 7: base de datos no relacional

    1. Características y escenarios aplicables de bases de datos relacionales.
    1. Clasificación y comparación de ventajas y desventajas de las bases de datos no relacionales (NoSQL)

2. Conceptos básicos de la cadena de bloques

Haga clic en el enlace 7 para ver el artículo y comprender los puntos a, byc: (Entre ellos, la comparación entre la descentralización de blockchain y las bases de datos centralizadas se explicará más adelante)
Blockchain 1 - Conceptos básicos de Blockchain

a. Definición y usos de Blockchain

  • Conceptos básicos de blockchain
  • Aplicaciones de blockchain en diversas industrias

B. Principios básicos de blockchain

  • Análisis conceptual de bloque, cadena y descentralización.
  • Algoritmo de consenso y contabilidad distribuida.

C. Características de descentralización de blockchain

  • Comparación entre la descentralización de blockchain y las bases de datos centralizadas
  • Ventajas y limitaciones de blockchain

3. Método de almacenamiento de datos

1. Método de almacenamiento de datos de la base de datos

1.1 Métodos de almacenamiento de tablas, índices y vistas.

  • Tabla: La unidad de almacenamiento básica en la base de datos, organizada en forma de filas y columnas. Los datos de la tabla se almacenan en el disco y se pueden recuperar mediante un lenguaje de consulta.

  • Índice: se utiliza para acelerar la recuperación de datos en la base de datos. Un índice es una estructura de datos, similar al índice de un libro, que ayuda a localizar datos rápidamente.

  • Vista: la tabla virtual es una visualización de los resultados de la consulta de una tabla u otras vistas. La vista en sí no almacena datos, sino que se genera dinámicamente.

1.2 Estructura de almacenamiento físico de la base de datos.

  • Archivo de datos: un archivo que contiene datos reales, en forma de tabla.

  • Archivo de registro: registra los cambios en la base de datos para que pueda recuperarse en caso de una falla del sistema.

  • Archivo de índice: un archivo que almacena datos de índice para acelerar la recuperación de datos.

2. Almacenamiento de libro mayor distribuido de blockchain

2.1 Cómo se organizan los datos en blockchain

  • Bloque: los datos se almacenan en bloques y cada bloque contiene una cierta cantidad de registros de transacciones.

  • Estructura de cadena: los bloques se vinculan mediante hashes para formar una estructura de cadena, lo que garantiza la no manipulación de los datos.

  • Almacenamiento descentralizado: los datos se distribuyen entre nodos de la red, en lugar de almacenarse centralmente en un único servidor.

2.2 Seguridad y confiabilidad del libro mayor distribuido

  • Algoritmo de consenso: la cadena de bloques utiliza un algoritmo de consenso para garantizar que los nodos de la red distribuida estén de acuerdo con el estado del libro mayor.

  • Tecnología de cifrado: los datos se almacenan en la cadena de bloques utilizando tecnología de cifrado para mejorar la seguridad.

  • Fiabilidad descentralizada: dado que los datos se almacenan en varios nodos, el sistema es más resistente a los ataques y tolerante a fallos.

3. Diferencias y conexiones

  • conectar:

    • Las bases de datos y blockchain son tecnologías que se utilizan para almacenar y gestionar datos.
    • Ambos tienen capacidades de organización y recuperación de datos.
  • la diferencia:

    • Centralización versus descentralización: las bases de datos están centralizadas, mientras que las cadenas de bloques están descentralizadas.
    • Manipulación: Blockchain garantiza la inmutabilidad de los datos a través de mecanismos de hash y consenso, mientras que las bases de datos pueden ser más vulnerables a puntos únicos de falla o ataques.
    • Tiempo real: las bases de datos suelen ser más adecuadas para escenarios que requieren actualizaciones y consultas en tiempo real, mientras que las actualizaciones de datos de blockchain pueden llevar cierto tiempo.

4. Coherencia de datos y procesamiento de transacciones.

1. Atributos ACID (base de datos)

1.1 Explicación del atributo ACID

  • Atomicidad: todas las operaciones de una transacción tienen éxito o fracasan. Una transacción es la unidad de trabajo indivisible más pequeña.

  • Consistencia: después de ejecutar una transacción, la base de datos cambia de un estado de coherencia a otro. Los resultados de la ejecución de la transacción deben cumplir con las reglas definidas de la base de datos.

  • Aislamiento: cuando se ejecutan varias transacciones al mismo tiempo, la ejecución de cada transacción no se ve interferida por otras transacciones. Cada transacción se siente como el único usuario del sistema.

  • Durabilidad: una vez que se confirma una transacción, sus resultados son permanentes y pueden recuperarse incluso si el sistema falla.

1.2 Concepto y características de las transacciones.

  • Transacción: es una serie de operaciones de base de datos, ya sea todas ejecutadas o todas revertidas. Las transacciones tienen las características de atomicidad, consistencia, aislamiento y durabilidad.
  • característica:
      1. Atomicidad: Atomicidad significa que todas las operaciones de una transacción se ejecutan correctamente o se revierten si fallan. Esta es una propiedad "indivisible", lo que significa que todas las operaciones de una transacción tienen éxito o fracasan juntas. Si ocurre un error durante la ejecución de la transacción, el sistema deshará automáticamente todas las operaciones ejecutadas y la base de datos volverá al estado anterior al inicio de la transacción.
      1. Consistencia: la coherencia requiere transacciones para transformar la base de datos de un estado de coherencia a otro. La base de datos debe mantener la coherencia antes de que comience una transacción y después de que finalice. Esto significa que los resultados de la ejecución de la transacción deben satisfacer las restricciones de integridad de la base de datos, como restricciones de unicidad, restricciones de clave externa, etc.
      1. Aislamiento: el aislamiento significa que se pueden ejecutar múltiples transacciones simultáneamente sin interferir entre sí y cada transacción está aislada de las operaciones de otras transacciones. El aislamiento de las transacciones se logra mediante un mecanismo de control de concurrencia para evitar la contención de datos y los conflictos entre múltiples transacciones, garantizando así la coherencia de la base de datos.
      1. Durabilidad: La durabilidad requiere que una vez confirmada una transacción, sus modificaciones en la base de datos sean permanentes y no se perderán incluso si el sistema falla. Los sistemas de bases de datos logran durabilidad escribiendo persistentemente modificaciones de transacciones en el disco. Incluso después de una falla del sistema o un reinicio, la base de datos debería poder recuperarse al estado en el que se encontraba después de que se confirmó la transacción.

2. Mecanismo de coherencia de blockchain

2.1 El impacto del algoritmo de consenso en la coherencia

  • Algoritmo de consenso: los nodos de la cadena de bloques llegan a un acuerdo a través del algoritmo de consenso. Por ejemplo, Prueba de trabajo (PoW) y Prueba de participación (PoS) son algoritmos de consenso comunes.

  • Consistencia: el algoritmo de consenso garantiza que todos los nodos de la red estén de acuerdo con el estado de la cadena de bloques para evitar problemas como el doble gasto.

Explicación del problema del doble gasto:
El problema del doble gasto se refiere a la situación en la que el mismo activo se gasta varias veces en transacciones de moneda digital o criptomonedas. En un sistema centralizado tradicional, existe una autoridad central que mantiene los saldos de las cuentas y procesa las transacciones, por lo que es menos probable que ocurra el problema del doble gasto porque la autoridad centralizada puede evitar el doble gasto. Pero en los sistemas distribuidos y las cadenas de bloques descentralizadas no existe una organización central, por lo que se necesitan algoritmos de consenso para resolver el problema del doble gasto.

El algoritmo de consenso garantiza que los nodos de la red acuerden la validez de una transacción para evitar que una cuenta envíe el mismo activo a diferentes nodos al mismo tiempo. A través del algoritmo de consenso, los nodos de la red pueden alcanzar un orden consistente de registros de transacciones, evitando así la aparición de problemas de doble gasto. Esto significa que todos los nodos acuerdan una secuencia específica de transacciones y solo las transacciones verificadas se agregan a la cadena de bloques, lo que garantiza un historial de transacciones único e inmutable.

2.2 Métodos de procesamiento de transacciones en blockchain

  • Transacciones de blockchain: las transacciones en blockchain se realizan empaquetando múltiples operaciones en un bloque. Este bloque se agrega a la cadena después del consenso.

  • Funciones descentralizadas: las funciones descentralizadas de blockchain permiten que las transacciones se propaguen y verifiquen en toda la red, garantizando seguridad y confiabilidad.

3. Diferencias y conexiones

  • conectar:

    • Tanto las propiedades ACID como el algoritmo de consenso de blockchain se esfuerzan por mantener la coherencia del sistema.
    • El concepto de transacción existe en ambos y ambos enfatizan la atomicidad de los cambios de datos.
  • la diferencia:

    • Centralización versus descentralización: las bases de datos suelen estar centralizadas y administradas por un servidor central. La cadena de bloques está descentralizada y no tiene una agencia de control central.
    • Mecanismo de consenso: las bases de datos se basan en centros de confianza y una gestión de permisos compleja, mientras que las cadenas de bloques utilizan algoritmos de consenso para llegar a un consenso sin la necesidad de una autoridad central.
    • Privacidad y transparencia: Blockchain ofrece mayor transparencia, pero puede sacrificar algo de privacidad.

5. Control de acceso a datos y privacidad

1. Gestión de permisos de la base de datos.

1.1 Gestión de derechos de usuario y derechos de rol

  • Permisos de usuario: la base de datos se administra a través de cuentas de usuario y a cada usuario se le asignan permisos específicos, como el permiso para leer, escribir, modificar o eliminar datos. Los usuarios pueden ser individuos o aplicaciones.

  • Permisos de roles: para simplificar la gestión de permisos, las bases de datos suelen admitir el concepto de roles. Los administradores pueden asignar permisos a roles y luego otorgar roles a los usuarios. Esto facilita la gestión de un gran número de usuarios.

1.2 Cifrado de datos y control de acceso

  • Cifrado de datos: las bases de datos pueden utilizar tecnología de cifrado para proteger la privacidad de los datos. Esto incluye el almacenamiento cifrado de datos, así como el cifrado durante la transmisión.

  • Control de acceso: los sistemas de bases de datos generalmente brindan un control de acceso detallado al establecer reglas y políticas de acceso para garantizar que solo los usuarios autorizados puedan acceder a datos confidenciales.

2. Verificación de identidad descentralizada en blockchain

2.1 Sistema de claves públicas y privadas y verificación de identidad

  • Sistema de clave pública y clave privada: los usuarios de blockchain utilizan claves públicas y privadas para la verificación de identidad. La clave pública se utiliza para compartir públicamente y la clave privada sirve como identidad privada del usuario.

  • Autenticación: los usuarios prueban su identidad proporcionando una firma que coincide con su clave privada para realizar transacciones o acceder a datos en la cadena de bloques.

2.2 Mecanismo de control de permisos en blockchain

  • Contratos inteligentes: Los contratos inteligentes en blockchain son contratos autoejecutables con lógica programada. A través de contratos inteligentes, se pueden definir y aplicar reglas de control de acceso, como restringir el acceso de un usuario a datos específicos.

  • Identidad descentralizada: Blockchain puede admitir la verificación de identidad descentralizada, eliminando la necesidad de una gestión de identidad centralizada. Los usuarios tienen control total sobre su información de identidad sin depender de una autoridad central.

3. Diferencias y conexiones

  • conectar:

    • Tanto las bases de datos como la cadena de bloques funcionan para garantizar que solo los usuarios autorizados tengan acceso a datos confidenciales.
    • Ambos utilizan tecnología de cifrado para proteger la privacidad de los datos.
  • la diferencia:

    • Centralización versus descentralización: las bases de datos a menudo dependen de una gestión de identidad centralizada, mientras que blockchain admite la verificación de identidad descentralizada.
    • Contratos inteligentes: Blockchain logra un control de permisos más flexible a través de contratos inteligentes, mientras que las bases de datos suelen utilizar la asignación de permisos estática.
    • Gestión de identidad: los usuarios de Blockchain tienen un mayor control y pueden gestionar mejor su información de identidad, mientras que los usuarios de bases de datos suelen estar sujetos a una gestión central.

6. Seguridad y cifrado de datos

1. Tecnología de cifrado de bases de datos

1.1 Métodos de cifrado para la transmisión y almacenamiento de datos

  • Cifrado de transmisión de datos: las bases de datos suelen utilizar protocolos de cifrado como SSL/TLS para cifrar la transmisión de datos entre el cliente y el servidor y garantizar que los datos no sean robados ni manipulados durante la transmisión.

  • Cifrado de almacenamiento de datos: la base de datos puede utilizar algoritmos de cifrado para cifrar y almacenar datos, lo que garantiza que incluso si se accede ilegalmente a la base de datos, los datos no se filtrarán fácilmente.

1.2 Aplicaciones prácticas del cifrado de bases de datos.

  • Cifrado a nivel de campo: cifre campos de datos confidenciales, como información de identidad personal de los usuarios, números de cuentas bancarias, etc.

  • Cifrado de datos transparente (TDE): un método de cifrado proporcionado por el sistema de base de datos, que cifra toda la base de datos y es transparente para la aplicación.

2. Algoritmos de hash y cifrado de blockchain

2.1 Aplicación del algoritmo hash en blockchain

  • Integridad de los datos: Blockchain utiliza un algoritmo hash para garantizar la integridad de los datos. Cada bloque contiene el valor hash del bloque anterior. Cualquier manipulación de datos hará que el valor hash cambie y sea detectado.

  • Árbol Merkle: se utiliza para verificar rápidamente la integridad de grandes cantidades de datos, especialmente en blockchains para verificar la validez de las transacciones.

2.2 Firma digital y garantía de cifrado en blockchain

  • Firma digital: las transacciones en blockchain se autentican mediante firmas digitales para garantizar la autenticidad e integridad de la transacción.

  • Cifrado asimétrico: los usuarios de la cadena de bloques utilizan claves públicas y privadas para el cifrado y descifrado, lo que garantiza la seguridad de la transmisión de datos y las transacciones.

3. Diferencias y conexiones

  • conectar:

    • Tanto las bases de datos como la cadena de bloques utilizan tecnología de cifrado para garantizar la seguridad de los datos, incluido el cifrado de la transmisión y el almacenamiento de datos.
    • Ambos utilizan algoritmos hash para garantizar la integridad de los datos.
  • la diferencia:

    • Centralización versus descentralización: las bases de datos a menudo dependen de la autenticación y el control de acceso centralizados, mientras que blockchain admite la autenticación descentralizada y la confirmación de transacciones.
    • Contratos inteligentes: Blockchain utiliza contratos inteligentes para lograr garantías de cifrado y control de permisos más flexibles, mientras que las bases de datos suelen utilizar la asignación de permisos estática.

7. Escalabilidad y rendimiento de los datos

1. Expansión vertical y horizontal de la base de datos.

1.1 El concepto de expansión vertical y expansión horizontal.

  • Escalado vertical: mejore el rendimiento de la base de datos aumentando la potencia de procesamiento de un único servidor, como aumentando la CPU, la memoria o la capacidad de almacenamiento.

  • Escalado horizontal: mejore el rendimiento de la base de datos aumentando la cantidad de servidores, por ejemplo mediante fragmentación o replicación de la base de datos para compartir la carga.

1.2 Estrategia de optimización del rendimiento de la base de datos

  • Optimización de índices: acelere la recuperación de datos mediante el diseño y uso adecuados de índices.

  • Optimización de consultas: mejore el rendimiento de las consultas optimizando las declaraciones de consulta, utilizando métodos de conexión adecuados y filtrado condicional.

  • Optimización de caché: utilice tecnología de almacenamiento en caché para reducir la cantidad de accesos a la base de datos y aumentar la velocidad de acceso a los datos.

2. Soluciones y cuellos de botella en el rendimiento de Blockchain

2.1 Desafíos de rendimiento de Blockchain y estrategias de respuesta

  • Rendimiento de las transacciones: el rendimiento de las transacciones de la cadena de bloques puede ser limitado. Las soluciones incluyen optimizar el algoritmo de consenso, aumentar el ancho de banda de la red y optimizar la estructura de las transacciones.

  • Capacidad de almacenamiento: la cantidad de datos en blockchain puede crecer rápidamente y las soluciones incluyen compresión de datos, almacenamiento fragmentado y optimización del almacenamiento.

  • Problema de retraso: la confirmación de la transacción Blockchain puede tardar un cierto tiempo. Las soluciones incluyen optimizar el algoritmo de consenso e introducir una solución de expansión de segunda capa.

2.2 Aplicación de arquitectura en capas y cadena lateral.

  • Arquitectura en capas: la escalabilidad y el rendimiento generales se pueden mejorar dividiendo la red blockchain en diferentes capas, como el uso de soluciones de segunda capa como Lightning Network.

  • Cadena lateral: una cadena lateral es una cadena de bloques que está interconectada con la cadena de bloques principal y se puede utilizar para procesar tipos específicos de transacciones, lo que reduce la carga de la cadena principal.

3. Diferencias y conexiones

  • conectar:

    • Tanto las bases de datos como las cadenas de bloques enfrentan desafíos de rendimiento y escalabilidad que deben resolverse por medios técnicos.
  • la diferencia:

    • Modelo de datos: las bases de datos suelen estar orientadas a datos estructurados, mientras que blockchain es más adecuado para el almacenamiento y gestión de libros de contabilidad distribuidos.
    • Mecanismo de consenso: los desafíos de rendimiento de blockchain provienen principalmente del mecanismo de consenso, mientras que los desafíos de rendimiento de las bases de datos provienen principalmente del acceso y procesamiento de datos.

8. Contratos inteligentes y lógica empresarial

1. Procedimientos almacenados y desencadenantes en la base de datos.

1.1 Definición y uso de procedimientos almacenados y desencadenantes.

Procedimiento almacenado:
un procedimiento almacenado es un conjunto de declaraciones SQL precompiladas, similar a una función, que se almacena en la base de datos. Mediante procedimientos almacenados se pueden encapsular una serie de sentencias SQL en una única unidad de ejecución, lo que mejora el rendimiento y la seguridad de la base de datos.

Desencadenador:
un desencadenador es un objeto de base de datos relacionado con una tabla que se ejecuta automáticamente cuando ocurre un evento específico (como insertar, actualizar, eliminar) en la tabla. Los desencadenadores se pueden utilizar para hacer cumplir las reglas comerciales, la integridad de los datos y registrar cambios.

1.2 Procesamiento de lógica empresarial en la base de datos.

En una base de datos, el procesamiento de la lógica empresarial suele implicar el uso de procedimientos almacenados y activadores. A través de procedimientos almacenados, se puede encapsular una lógica empresarial compleja y se puede simplificar la interacción entre el cliente y la base de datos. Los activadores se utilizan para realizar operaciones automáticamente en condiciones específicas para garantizar la coherencia e integridad de los datos.

2. Contratos inteligentes en blockchain

Para obtener una explicación más detallada, consulte mi otro blog:
Blockchain 2 - Solidity Smart Contract Development

2.1 Definición y características de los contratos inteligentes

Contrato inteligente:
un contrato inteligente es un contrato automatizado ejecutado en blockchain que contiene un código de programación que define las reglas y condiciones del contrato. Los contratos inteligentes pueden ejecutar, verificar y hacer cumplir automáticamente los términos del contrato sin necesidad de intermediarios, aumentando así la transparencia y seguridad de las transacciones.

Características:

  • Inmutabilidad: una vez implementado en la cadena de bloques, el código de un contrato inteligente es inmutable.
  • Ejecución automática: los contratos inteligentes se pueden ejecutar automáticamente sin intervención de terceros.
  • Transparencia: El proceso de ejecución y los resultados del contrato son públicamente verificables, aumentando la confianza.
  • Descentralización: los contratos inteligentes se ejecutan en nodos de blockchain y no existe una agencia de control central.

2.2 Lenguaje de solidez y desarrollo de contratos inteligentes

Lenguaje de solidez:
Solidity es un lenguaje de desarrollo de contratos inteligentes que se utiliza principalmente en la plataforma Ethereum. Su sintaxis es similar a JavaScript y está diseñada específicamente para escribir contratos inteligentes. Solidity admite programación orientada a objetos, incluida herencia, bibliotecas y otras funciones.

Proceso de desarrollo de contratos inteligentes:

  1. Defina el contrato: utilice el lenguaje Solidity para escribir el código del contrato inteligente y definir las variables de estado y los métodos del contrato.
  2. Compile el contrato: utilice el compilador Solidity para convertir el código en código de bytes para su ejecución en la cadena de bloques.
  3. Implementar el contrato: implementar el contrato en la cadena de bloques, crear una instancia del contrato y obtener una dirección de contrato única.
  4. Interacción e invocación: envíe mensajes al contrato a través de transacciones y llame a métodos en el contrato para realizar las operaciones correspondientes.
  5. Cambios de estado: una vez ejecutado el contrato, los cambios de estado se registran en la cadena de bloques para garantizar la transparencia y la no manipulación.

En los contratos inteligentes, la lógica empresarial se puede escribir como método de contrato y la función de desencadenante se puede realizar mediante la ejecución automática del contrato, lo que garantiza una ejecución descentralizada y un procesamiento transparente de la lógica empresarial.

3. Diferencias y conexiones

  • conectar:

    • Procesamiento de lógica empresarial: contratos inteligentes, procedimientos almacenados y activadores se utilizan para procesar la lógica empresarial. Pueden contener reglas, condiciones y acciones comerciales específicas para garantizar la integridad y coherencia de los datos.
    • Ejecución automática: tanto los contratos inteligentes como los activadores pueden ejecutarse automáticamente en condiciones específicas, mientras que los procedimientos almacenados deben llamarse explícitamente.
    • Procesamiento de datos: todas estas técnicas se pueden utilizar para procesar datos, realizar operaciones específicas o desencadenar eventos específicos.
  • la diferencia:

    • Entorno operativo: los contratos inteligentes se ejecutan principalmente en blockchain, mientras que los procedimientos almacenados y los activadores se ejecutan principalmente en bases de datos relacionales.
    • Inmutabilidad: los contratos inteligentes son inmutables una vez implementados en la cadena de bloques, mientras que los procedimientos almacenados y los activadores se pueden modificar en la base de datos.
    • Descentralización: los contratos inteligentes se ejecutan en una red blockchain descentralizada, mientras que los procedimientos almacenados y los activadores se ejecutan en un servidor de base de datos centralizado.
    • Lenguaje de programación: los contratos inteligentes suelen utilizar un lenguaje de programación de contratos inteligentes específico (como Solidity), mientras que los procedimientos almacenados y los activadores utilizan SQL o un lenguaje de programación específico de la base de datos.
    • Seguridad: La seguridad de los contratos inteligentes está protegida por blockchain, mientras que la seguridad de los procedimientos almacenados y los activadores depende de la seguridad de la base de datos.

En general, los contratos inteligentes son más adecuados para escenarios descentralizados que requieren un alto grado de seguridad y transparencia, mientras que los procedimientos almacenados y los activadores son más adecuados para el procesamiento de lógica empresarial en sistemas de bases de datos centralizados tradicionales.

En algunos casos, los contratos inteligentes y los procedimientos/disparadores almacenados se pueden utilizar juntos para lograr un procesamiento de lógica empresarial y una interacción de datos más complejos.

Supongo que te gusta

Origin blog.csdn.net/weixin_49015143/article/details/135000395
Recomendado
Clasificación