Análisis en profundidad

Base de datos: qué es, para qué sirven y cómo elegir la mejor para su empresa

Las bases de datos son una parte indispensable de los sistemas de información: permiten almacenar, modificar, procesar e interconectar la información necesaria para el buen funcionamiento de los programas informáticos, las aplicaciones y los programas diseñados para funcionar en ordenadores, servidores o aplicaciones móviles.

15 Nov 2021

Joseph Arcidiacono

database

Una de las ventajas más representativas introducidas por la tecnología de la información es la posibilidad de analizar, estudiar, relacionar y compartir información heterogénea y aparentemente no relacionada con el objetivo principal de generar nuevos conocimientos y aportar beneficios a los individuos, las empresas y la comunidad.

Basta pensar, por ejemplo, en los logros de la inteligencia artificial, en la que las computadoras y procesadores electrónicos son capaces de agregar en tiempo real miríadas de datos para simular las capacidades cognitivas del cerebro humano, en la Internet de las Cosas, que permite que los seres vivos, los objetos y los dispositivos electrónicos intercambien información sin fisuras, o en todos esos sistemas, como los muy recientes coches autoconducidos, capaces de procesar miles de millones de datos a una velocidad impresionante.

En la base de esta revolución que está modificando drásticamente la forma en que el hombre piensa, actúa y se comunica, se encuentra, en realidad, una tecnología relativamente “antigua” y, en cierto modo, “madura” (en relación, naturalmente, con los rapidísimos tiempos de evolución del mundo informático) como es la de las bases de datos (o bancos de datos) y sus sistemas de gestión y conducción, conocidos como DBMS, de la locución anglosajona “Data Base Management System”.

De hecho, no existe ningún programa o dispositivo electrónico que, de alguna manera, no almacene, procese, transforme o reprocese datos que residen en estructuras más o menos permanentes que pueden variar desde sofisticadas, y a veces futuristas, plataformas de gestión de la información hasta simples archivos, registros o porciones de memoria.

Qué es una base de datos: definición

En síntesis extrema, es posible definir una “base de datos” como un conjunto de datos estructurados, no necesariamente homogéneos en contenido y formato, almacenados en forma electrónica y accesibles mediante funciones y servicios digitales.

A primera vista, una base de datos podría considerarse como la transposición virtual e informatizada de un archivo clásico en papel, capaz de almacenar en pequeños dispositivos electrónicos la misma información que antes se guardaba en voluminosas carpetas almacenadas en estructuras físicas de cientos, si no miles, de metros cuadrados.

En realidad, una base de datos representa una herramienta mucho más poderosa y extraordinariamente eficaz, ya que permite llevar a cabo preciosas actividades de análisis, elaboración y correlación que constituyen, de hecho, los fundamentos digitales en los que se basan prácticamente todas las tecnologías modernas y, al mismo tiempo, hacen posible la extracción de nuevos conocimientos también a través de la explicitación de elementos aparentemente insignificantes si se consideran individualmente, pero ricos en valor si es posible encontrarlos con regularidad dentro de un conjunto de datos extremadamente amplio.

Si, por ejemplo, la circunstancia de que un usuario se equivoque al introducir sus credenciales en un sistema puede considerarse en sí misma un dato insignificante, ¿cómo debe clasificarse la información relativa a miles de errores en un intervalo de tiempo determinado? ¿Sería posible observar fácilmente este fenómeno a través de los archivos en papel o de los archivos digitales no bien estructurados?

Sistema de gestión de bases de datos

En este contexto, juegan un papel decisivo los componentes de software conocidos como “Data Base Management System” (DBMS) que, en síntesis extrema, pueden describirse como sistemas informáticos diseñados para permitir la creación, manipulación, interrogación y, en general, una gestión eficaz y rápida de las bases de datos.

Es posible pensar en un DBMS como una capa de software capaz de conectar las aplicaciones con sus datos a través de herramientas y funcionalidades fáciles de usar que permiten a los operadores (administradores de sistemas, programadores, analistas, etc.) alejarse del “esquema físico”, es decir, de la implementación concreta de una base de datos, e interactuar con un “modelo conceptual”, que garantiza una representación lógica más fácil de usar y manipular.

Desde el punto de vista arquitectónico, un DMBS puede dividirse en tres componentes principales que pueden describirse como sigue:

  • el “diccionario de datos”, definido en el “IBM Dictionary of Computing” como un “repositorio centralizado de información sobre los datos, como su significado, su relación con otros datos, su origen, su uso y su formato“, consiste esencialmente en una colección de metadatos que contienen información sobre los datos del repositorio. Es un componente de importancia fundamental porque permite interpretar sin ambigüedad la estructura, la finalidad y el valor de los datos contenidos en la base de datos. Puede considerarse como una “tarjeta de visita” de la BD, en la que se resumen las características fundamentales capaces de guiar a los usuarios y a las aplicaciones hacia un uso correcto y consciente de los datos almacenados en el archivo electrónico.
  • El “lenguaje de definición de datos”, en cambio, está diseñado para estructurar el contenido de una base de datos mediante, por ejemplo, la creación, modificación o eliminación de definiciones de tablas, usuarios, permisos. A través de este componente, en concreto, se pueden definir los esquemas lógicos que subyacen al funcionamiento de una base de datos (por ejemplo, se puede indicar qué columnas debe tener una tabla) pero no gestionar directamente los datos y, por tanto, los activos de información que gestiona la BD.
  • el “lenguaje de manipulación de datos” se utiliza, por último, para borrar, insertar, modificar y leer los registros de datos contenidos en una base de datos. Es, por tanto, la capa más operativa, que permite a los usuarios externos poblar la BD de acuerdo con las restricciones definidas en el módulo anterior y obtener la información que necesita cada aplicación individual que accede a la base de datos.

Entre las tareas de los DBMS también se pueden mencionar las de asegurar la compartición e integración de datos entre diferentes aplicaciones, controlar el acceso concurrente a la información y garantizar la seguridad e integridad de la información procesada mediante mecanismos de lectura y escritura adecuados.

Bases de datos relacionales

El tipo de base de datos más extendido es, sin duda, el basado en el “modelo relacional”, en el que las distintas entidades se representan en forma de tabla, se conectan entre sí a través de las llamadas “relaciones” y se modelan, actualizan, consultan y eliminan mediante uno de los lenguajes informáticos más populares del mundo, el “Structured Query Language” (también conocido por las siglas SQL).

Entre las principales características del modelo relacional se encuentran el uso de “claves primarias”, utilizadas para identificar de forma exclusiva cada fila de una tabla, “claves foráneas”, que relacionan dos o más tablas garantizando el respeto de la restricción de integridad referencial, y “índices” que facilitan las actividades de búsqueda mediante “consultas sql” (también conocidas como “query”).

Para entender mejor el significado de estos principios, consideremos el caso de una pequeña empresa que necesita recibir y procesar pedidos de sus productos.

En este contexto, es posible identificar dos tablas simples que contienen información sobre los clientes y los pedidos recibidos, respectivamente.

Como es fácil adivinar, cada registro de la tabla “cliente” puede incluir datos como un identificador único (que representa la “clave primaria”), el nombre, la dirección, la información de envío y facturación, el número de teléfono, etc., mientras que en la tabla “pedido”, cada fila puede incluir el identificador del cliente que hizo la solicitud, el producto pedido, la cantidad, la talla y el color seleccionados.

En el ejemplo anterior, está claro que los clientes y los pedidos pueden correlacionarse a través de la columna “ID_USUARIO” que asociará de forma única a una persona con un pedido recibido por la empresa de referencia.

Proyectando el razonamiento sobre un conjunto muy grande de tablas, filas y correlaciones y suponiendo una base de datos poblada de datos e información, es posible imaginar una base de datos relacional como una gran red en la que todas las entidades están conectadas de alguna manera, participando en la descripción de fenómenos complejos y están implicadas en las fases de almacenamiento, extrapolación, modificación, supresión, análisis e interpolación de datos e información, lo que permite obtener una imagen completa y real de los fenómenos de referencia.

Bases de datos no relacionales

Una de las principales limitaciones relacionadas con las bases de datos relacionales está representada por la necesidad de reconstruir, mediante una serie de consultas y concatenaciones sucesivas, la información necesaria respecto a un caso concreto.

Retomando el sencillo ejemplo propuesto anteriormente, si una empresa quisiera conocer todos los pedidos enviados por un cliente concreto, necesariamente extrapolaría los datos de las tablas, los agregaría de la forma más adecuada, les asignaría un formato y los insertaría en un archivo, un documento o una presentación para compartirlos internamente (por ejemplo, durante las reuniones de la organización) o con interlocutores externos.

Para superar esta dificultad, que se hace cada vez más actual junto con la evolución de las plataformas “sociales” en las que la representación gráfica y la rapidez a la hora de compartir es de fundamental importancia, se han extendido en los últimos años algunos tipos de bases de datos no conectadas a esquemas relacionales y clasificadas, en general, como “no relacionales” o “noSql” (el acrónimo deriva de la locución inglesa Not Only SQL), ya que no pueden ser consultadas con el lenguaje basado en consultas tradicionales.

Los principales tipos de bases de datos noSQL

Partiendo de la consideración de que a la familia de las bases de datos noSQL pertenece un conjunto tan amplio y variado de soluciones de software heterogéneas que no es posible encontrar una clasificación unívoca de los diferentes tipos de implementación, a continuación se describen cuatro macroclases de bases de datos no relacionales que están teniendo, en la actualidad, un gran éxito:

  • Bases de datos orientadas a documentos: representan los datos a través de entidades sin un esquema fijo, conocidas como documentos. A cada unidad elemental se le pueden asociar atributos, de forma flexible y dinámica en el tiempo, capaces de modelar los diferentes aspectos de la información que se va a almacenar, procesar o tratar. Por ejemplo, una entidad “persona” podría estar representada por un documento con atributos canónicos como los datos personales del individuo que pueden enriquecerse con el tiempo, sin las restricciones típicas de las BD relacionales, con información adicional relacionada, por ejemplo, con la profesión, los gustos culinarios, etc.
  • Bases de datos clave/valor: se basan en una herramienta lógica muy utilizada en el mundo del desarrollo de software que suele denominarse “hash table” o “diccionario”, y que consiste en una serie de pares clave-valor. En pocas palabras, la información se asocia a una clave de búsqueda que simplifica y agiliza las actividades de búsqueda.
  • Bases de datos gráficas: también este tipo de base de datos se basa en una estructura especialmente famosa en el contexto de la ingeniería del software, que se denomina “grafo” y es similar a una red en la que varios nodos están conectados a través de arcos. Un caso muy común de uso de “redes de información” es el representado por las Redes Sociales, en las que dos usuarios “amigos” pueden describirse como nodos relacionados entre sí por un arco, con el objetivo de proponer nuevos conocimientos potenciales a un usuario navegando por el grafo y recuperando contactos de segundo nivel.
  • Bases de datos “en memoria”: se trata de un tipo de base de datos extremadamente innovador que explota eficazmente el potencial de las memorias volátiles (como la RAM) para garantizar un rendimiento extremadamente alto y permitir a las aplicaciones y a los usuarios obtener datos e información prácticamente en tiempo real. En este tipo de bases de datos es naturalmente necesario prever mecanismos capaces de combinar la eficiencia y la velocidad de las memorias con los requisitos de persistencia e historización propios de las bases de datos y fundamentales para poder recuperar la información a distancia de tiempo desde su creación.

Las diferencias entre las bases de datos relacionales y no relacionales

En general, se puede afirmar que la mayor diferencia entre las bases de datos tradicionales y las no relacionales está representada por la ausencia de estructuras lógicas como las tablas y la consiguiente presencia de otras estructuras de almacenamiento, como los documentos capaces de recoger y poner a disposición inmediata, en caso de necesidad, todos los datos relacionados con una entidad específica.

Para apreciar mejor, a través de un ejemplo concreto, las diferencias entre los dos tipos de bases de datos, consideremos el caso del modelado de una base de datos relacionada con la gestión de artículos científicos, generalmente representados a través de elementos como el autor, la revista de referencia, la fecha de publicación, etc.

En principio, en el caso de una base de datos relacional, sería necesario identificar y mapear en una tabla diferente cada elemento del universo de referencia: obtendríamos, por tanto, en el caso que nos ocupa, al menos las tablas conectadas al artículo (presumiblemente compuestas por las columnas “idArtículo” y “título”), a los autores (con las columnas “idAutor”, “nombre” y “apellido”), y a las revistas científicas (en las que estarán presentes al menos las columnas “idRivista” y “nombre”) así como las relaciones capaces de conectar los artículos con los autores y con las revistas en las que han sido publicados. Es evidente que la representación que acabamos de ilustrar tiene la ventaja de utilizar la menor cantidad de información posible, pero requiere una reconstrucción cuidadosa y laboriosa cuando es necesario acceder a los datos relativos a una sola publicación.

En cambio, en una base de datos NoSQL basada en documentos, el registro de un artículo se suele almacenar como un único documento, generalmente construido con el formato de intercambio de datos “JSON”. En particular, todos los elementos de un mismo artículo relacionados con el autor, la revista, el título y la fecha de publicación, distribuidos en diferentes tablas en el caso de los BD relacionales, se almacenarían como atributos de una única entidad, permitiendo, en caso de necesidad, un acceso rápido y completo a toda la información necesaria.

A la luz de lo anterior, se puede ver que las bases de datos NoSQL son una solución ideal para aplicaciones móviles, basadas en la web y de juegos que requieren bases de datos flexibles, escalables, de alto rendimiento y muy funcionales para ofrecer una gran experiencia de usuario.

Las ventajas de las bases de datos no relacionales

En síntesis extrema, es posible esbozar las ventajas de las bases de datos NoSql según los siguientes principios:

  • Reducción de la carga computacional: las bases de datos no relacionales, al no prever operaciones de agregación de datos, permiten superar la mayor parte de los límites de procesamiento presentes en los entornos SQL, donde la velocidad de las consultas es inversamente proporcional al tamaño general de la base de datos, al número de tablas y a la información que hay que escribir, modificar o eliminar. Por esta razón, las bases de datos noSQL son especialmente adecuadas para soluciones basadas en big data y en las que el tiempo de respuesta es extremadamente importante.
  • Independencia con respecto a un esquema rígido: mientras que las bases de datos relacionales clásicas deben permanecer necesariamente dentro de los límites rígidos de los esquemas, que definen unívocamente la morfología de las tablas y las relaciones, las bases de datos NoSQL son capaces de procesar cualquier tipo de información de forma extremadamente flexible y dinámica.
  • Mayor “escalabilidad horizontal”: gracias a la posibilidad de agregar datos en macroestructuras basadas en archivos y a la ausencia de un esquema definido a priori, las bases de datos no relacionales presentan ventajas considerables también con respecto al llamado principio de “escalabilidad horizontal”, ya que permiten aumentar el rendimiento mediante la provisión de “contenedores” adicionales de datos que pueden procesarse de forma concurrente.

Tipos de software de bases de datos y DBMS empresariales: los mejores, características y cuál elegir

Una vez que hemos definido, aunque sea a grandes rasgos, el marco de referencia y hemos explicado, en particular, las principales diferencias entre las bases de datos clásicas (basadas en SQL) y las de nueva generación (no conectadas a esquemas relacionales), tratemos de entender cuáles son las soluciones empresariales más utilizadas y, sobre todo, de identificar algunos criterios de selección sencillos que puedan adoptarse en relación con las distintas necesidades organizativas o con las demandas siempre cambiantes del mercado.

MySQL

El DBMS relacional más extendido y utilizado en el mundo es probablemente “MySQL“, que es una solución de código abierto, de uso libre y adquirida, gracias a su creciente popularidad, por un gigante de las bases de datos como Oracle, que incluso incorpora algunas características en su DBMS comercial.

Uno de los puntos fuertes de MySQL es que puede utilizarse, a través de una serie de conectores desarrollados a lo largo del tiempo por su amplia comunidad de desarrolladores, en los principales lenguajes de programación, como Java, Php, Dotnet, Pyton, etc.

Otra ventaja de MySQL, que lo convierte en un DMBS ideal para un gran número de empresas, es que puede instalarse tanto en sistemas operativos Windows como Linux/Uninx.

Entre las limitaciones que generalmente se le imputan a este DBMS, en cambio, es posible registrar una compatibilidad no completa con el SQL estándar, una gestión no perfecta de los accesos concurrentes a la base de datos y, por último, la presencia de herramientas limitadas para las búsquedas de “texto completo”, útiles sobre todo en caso de textos largos.

Servidor SQL

No podía faltar un producto de Microsoft en la lista de los DBMS más populares y utilizados en las librerías corporativas: desde su creación, de hecho, SQL Server ha encontrado inmediatamente un buen éxito gracias a la plena integración con otras herramientas proporcionadas por la empresa de Redmond (pensemos por ejemplo en el entorno de desarrollo “Visual Studio”, el framework .Net, etc.).

Entre los puntos fuertes de SQL Server, además de la plena compatibilidad con SQL, se encuentra la amplia gama de licencias que van desde las completamente gratuitas como Express (limitada a 4 núcleos, 1 GB de RAM por instancia y 10 GB de capacidad de BD) y Developer (utilizable sólo en entornos de desarrollo) hasta las de pago, más complejas y elaboradas, como Web, Standard y Enterprise.

Es necesario, sin embargo, subrayar cómo SQL Server no es totalmente compatible con sistemas operativos distintos al de Microsoft: si, de hecho, es posible instalarlo también en algunas distribuciones de Linux, de la documentación oficial se desprende que algunas funciones sólo están garantizadas en entornos Windows.

PostgresSQL

PostgresSQL se considera un estándar universal de referencia para todas aquellas situaciones en las que es necesario gestionar no sólo los clásicos caracteres alfanuméricos (como letras, números, caracteres especiales, etc.), sino también datos de naturaleza compleja, como los datos georreferenciados, o los relativos a contenidos multimedia.

Este DBMS, de hecho, amplía con éxito el modelo relacional tradicional al incluir enfoques típicos de la programación orientada a objetos como la herencia, las clases, la encapsulación, que permiten gestionar escenarios típicamente difíciles para los DBMS tradicionales como los relacionados con el seguimiento espacial, la gestión de archivos de vídeo, audio, etc.

Se trata, en efecto, de una solución extremadamente madura, gracias a sus más de 30 años de presencia en el mercado, completamente opensource y capaz de garantizar el cumplimiento casi total del estándar SQL, pero también de soportar el lenguaje “JSON”, típico de las bases de datos no relacionales.

Entre los puntos débiles cabe mencionar una baja velocidad de lectura, en parte relacionada con las propiedades particulares de los datos gestionados, la documentación a veces incompleta y disponible sólo en inglés y un número limitado de plataformas de alojamiento en las que es realmente posible utilizar postgresSQL.

Mongodb

En la galaxia cada vez más vasta y variada de las bases de datos noSQL, un lugar de prestigio lo ocupa sin duda MongoDB, que está disfrutando de un extraordinario y repentino éxito gracias a la elección hecha por gigantes de la web como Facebook y Twitter de utilizarla como plataforma de referencia para la gestión de sus vastos activos de información.

En pocas palabras, MongoDB puede definirse como una “base de datos orientada a documentos” (o en lenguaje anglosajón “document-oriented storage database”) porque, como se ha mencionado anteriormente, la unidad básica de agregación y almacenamiento de datos es el documento, compuesto por una serie de campos de longitud dinámica que pueden almacenar información de naturaleza compleja.

Entre las características más apreciadas de MongoDb destacan, en particular, la posibilidad de dotar a cualquier atributo de un “índice” que puede agilizar las búsquedas, y la sencillez con la que la base de datos puede distribuirse en un gran número de servidores independientemente de su ubicación geográfica.

Por estas razones, MongoDB se utiliza cada vez más en entornos en los que es necesario almacenar y poner en línea grandes volúmenes de información en intervalos de tiempo extremadamente restringidos.

MongoDB, gracias a una excelente integración con los lenguajes de programación más comunes para la web como PHP, Python y Ruby, se presta a ser utilizado de forma extremadamente sencilla tanto en proyectos destinados a la reconversión de sistemas que operan sobre bases de datos relacionales como para nuevas aplicaciones web basadas originalmente en el DBMS nosql.

Sap/HANA

Un elemento muy innovador en el mundo de las bases de datos lo representa la plataforma HANA (High-performance Analytic Appliance) de SAP que, aprovechando las características de la “computación en memoria”, pretende garantizar el tratamiento de grandes volúmenes de datos operativos y transaccionales en tiempo real. En extrema síntesis, HANA pretende integrar los sistemas de gestión utilizados por la mayoría de las empresas medianas y grandes con bases de datos extremadamente rápidas capaces de apoyar las decisiones estratégicas mediante la producción inmediata de informes, índices y “business cases” especialmente detallados.

Se trata, de hecho, de una solución articulada y estratificada que también permite agregar e importar información de fuentes externas y heterogéneas (como las bases de datos tradicionales, pero también las redes sociales, los archivos de texto, etc.), realizando, por tanto, también las funciones típicamente asociadas al “almacén de datos” y, en consecuencia, permitiendo a las organizaciones adquirir nuevos conocimientos a través del análisis y la concatenación de datos previamente dispersos en bases de datos diferentes e inconexas.

Otra innovación introducida por HANA consiste en la posibilidad de utilizar directamente a nivel empresarial las ventajas derivadas del “Big data” gracias a la capacidad de procesar grandes cantidades de información mediante la aplicación efectiva de técnicas de business intelligence y data minning a los activos de información de cada organización.

Por lo tanto, es inmediatamente comprensible cómo la solución propuesta por SAP supera los límites dentro de los cuales operan generalmente las bases de datos para abarcar temas y áreas más amplias, capaces de garantizar una gestión “holística” de la información de la empresa y extraer valor de los datos almacenados y archivados en tiempos y formas que serían impensables con las técnicas clásicas o tradicionales.

Oracle/Timesten

Cuando se habla de bases de datos, ciertamente no es posible ignorar a un coloso como Oracle, que ha construido su reputación proporcionando herramientas, software y aplicaciones que pueden gestionar bases de datos de considerable tamaño y criticidad con eficiencia, extraordinaria eficacia y altos niveles de seguridad.

A lo largo de los años, los DBMS y las soluciones distribuidas por la empresa estadounidense, que ha ido ampliando sus áreas de actuación hasta abarcar todo el espectro de las tecnologías de la información, han alcanzado un éxito increíble hasta convertirse casi en un estándar de facto.

Entre los productos más innovadores lanzados por Oracle en los últimos años, cabe destacar Timesten, que se encuentra en el espacio de la base de datos “In Memory” y que, como se ha mencionado anteriormente en relación con Hana, permite obtener un rendimiento impensable hasta hace poco tanto en la fase de búsqueda de datos, como en la extracción de informes y documentos estratégicos destinados a apoyar al gobierno de las organizaciones tanto públicas como privadas.

Conclusiones

Las bases de datos son una parte muy valiosa, por no decir indispensable, de los sistemas de información porque, aunque son casi desconocidas para los usuarios finales, permiten almacenar, modificar, procesar e interconectar la información necesaria para el buen funcionamiento de los programas informáticos, las aplicaciones y los programas destinados a funcionar en ordenadores, servidores o aplicaciones móviles.

Se trata, de hecho, de una cuestión nacida prácticamente junto con la tecnología de la información que, desde sus orígenes, ha tenido que hacer frente a la necesidad de hacer persistentes y simplemente accesibles los datos tratados por todos los sistemas de información durante sus actividades de procesamiento.

Pero al mismo tiempo, el complejo y articulado universo que orbita alrededor de las bases de datos evoluciona, mejora y se transforma, gracias sobre todo a las innovaciones introducidas a un ritmo abrumador por las tecnologías emergentes y los gigantes de la web como Facebook, Twitter, Instagram, etc.

Los métodos clásicos de gestión de datos, basados en el esquema relacional y en el famoso lenguaje SQL, se ven hoy acompañados por metodologías no relacionales que garantizan una mejor gestión de datos dinámicos y no conectados a esquemas de referencia, de grandes cantidades de información y son capaces, al mismo tiempo, de combinar la necesidad cada vez más frecuente de acceso rápido e inmediato a los datos con la necesidad de hacer persistente la información procesada.

En este contexto, son muchas las herramientas y soluciones de software que están actualmente a disposición de las empresas y los desarrolladores, que pueden utilizar, por ejemplo, herramientas clásicas como MySQL o SQL Server, soluciones optimizadas para los datos georreferenciados como PostgresSQL, o frameworks extremadamente innovadores y disruptivos como MongoDB, ahora la base de muchas redes sociales, “Hana” de SAP y “Timesten” de Oracle, capaces de explotar eficazmente las memorias volátiles e integrar las funciones tradicionales de los bancos con las más avanzadas de los almacenes de datos y el “big data”.

@RESERVADOS TODOS LOS DERECHOS
A
Joseph Arcidiacono
Temas principales

Especificaciones

B
base de datos
B
big data
S
SQL

Nota 1 de 3