Strozzi NoSQL es un sistema de gestión de bases de datos relacionales basado en shell , inicializado y desarrollado por Carlo Strozzi, que se ejecuta en sistemas operativos tipo Unix u otros con capas de compatibilidad (por ejemplo, Cygwin en Windows). Su nombre de archivo, NoSQL, simplemente refleja el hecho de que no expresa sus consultas mediante el Lenguaje de Consulta Estructurada (SQL ); el SGBDR NoSQL se distingue del concepto general de bases de datos NoSQL de alrededor de 2009 , que suelen ser no relacionales, a diferencia del SGBDR NoSQL. Strozzi NoSQL se distribuye bajo la licencia GNU GPL .
Construcción
NoSQL utiliza el paradigma de flujo de operadores , donde varios "operadores" realizan una función única sobre los datos recibidos. El flujo utilizado es proporcionado por el sistema de redirección de entrada/salida de UNIX, de modo que, a través del sistema de tuberías , el resultado del cálculo se puede pasar a otros operadores. Dado que las tuberías de UNIX se ejecutan en memoria, se trata de una implementación muy eficiente.
NoSQL, cuyo desarrollo está liderado por Carlo Strozzi, es la implementación más reciente y quizás la más activa del diseño de base de datos de operadores de flujo, descrito originalmente por Evan Shaffer, Rod Manis y Robert Jorgensen en un artículo de Unix Review de 1991 y un documento relacionado . Otras implementaciones incluyen RDB , basado en Perl , una versión comercial de los autores originales llamada /rdb , y Starbase , una versión con operadores de datos astronómicos añadidos por John Roll de Harvard y el Observatorio Astrofísico Smithsoniano. Debido a sus ventajas en el manejo de datos de tuberías, la mayoría de las implementaciones son una mezcla de awk y otros lenguajes de programación, generalmente C o Perl.
El concepto se describió originalmente en un artículo de Unix Review de 1991 y posteriormente se amplió en un documento (véase la referencia anterior), así como en el libro "Unix Relational Database Management". NoSQL (junto con otras bases de datos similares basadas en operadores de flujo) es ideal para diversas tareas analíticas rápidas y ofrece la importante ventaja de mantener las tablas en formato de texto ASCII, lo que permite utilizar potentes herramientas de procesamiento de texto como complemento de las propias funciones de la base de datos. Entre las herramientas más populares para trabajar con NoSQL se incluyen Python, Perl, awk y scripts de shell que utilizan las omnipresentes herramientas de procesamiento de texto de Unix (cortar, pegar, grep, ordenar, uniq, etc.).
NoSQL se escribe principalmente en lenguajes interpretados, lo que ralentiza la ejecución real de los procesos, pero su capacidad para utilizar tuberías y sistemas de archivos convencionales significa que puede ser extremadamente rápido para muchas aplicaciones cuando se utilizan sistemas de archivos en RAM o se aprovechan intensamente las tuberías, que en muchas implementaciones se basan principalmente en la memoria.
Filosofía
Las razones para evitar SQL son las siguientes:
- Complejidad: La mayoría de las bases de datos comerciales suelen ser demasiado caras para proyectos pequeños, y las bases de datos gratuitas son demasiado complejas. Además, carecen del enfoque a nivel de línea de comandos que ofrece NoSQL.
- Portabilidad:
- Datos: Los datos de NoSQL se pueden transferir fácilmente a otros tipos de máquinas, como ordenadores Macintosh o Windows , ya que las tablas existen y se pueden leer o redirigir a archivos en cualquier punto del procesamiento.
- Software: NoSQL puede ejecutarse en cualquier máquina UNIX que tenga instalados los lenguajes de programación Perl y AWK , e incluso posiblemente en el entorno Cygwin , similar a UNIX, para Microsoft Windows .
- Sin límites: NoSQL no tiene límites arbitrarios , como el tamaño de un campo de datos, el número de columnas o el tamaño del archivo, y puede funcionar donde otros productos no pueden. (En algunas implementaciones del lenguaje de programación AWK1, el número de columnas en una tabla puede estar limitado a 32 768).
- Usabilidad: Gracias a su concepto sencillo y lógico, NoSQL puede ser utilizado fácilmente por personas sin conocimientos informáticos. Por ejemplo, las filas de datos se seleccionan con el operador 'row' y las columnas con el operador 'column'.
A diferencia de otros sistemas de gestión de bases de datos relacionales (RDBMS), NoSQL aprovecha toda la potencia de UNIX durante el desarrollo y el uso de aplicaciones. Su interfaz de usuario utiliza la consola de UNIX, por lo que no es necesario aprender nuevos comandos para administrar la base de datos. Desde la perspectiva de NoSQL, la base de datos no es más que un conjunto de archivos similares a cualquier otro archivo de usuario. No se utiliza ningún lenguaje de scripting ni ningún otro lenguaje de base de datos, aparte de la consola de UNIX. Esta naturaleza de consola fomenta un uso informal de la base de datos, lo que familiariza su uso y, en consecuencia, lo hace más formal. En otras palabras, NoSQL es un conjunto de rutinas de consola que acceden a archivos normales del sistema operativo.
Ejemplos
Para recuperar información sobre un empleado en particular, una consulta en SQL podría tener este aspecto:
Seleccione e.*, a.*, mgr.* de EMPLEADOS e, DIRECCIONES a, GERENTES mgr DÓNDE .....
Dado que una base de datos NoSQL orientada a documentos a menudo recupera un documento preconectado que representa a todo el empleado, la consulta podría verse así:
$e = doc("/employee/emp_1234") devolver $e/dirección/código postalEl paradigma de operadores de flujo difiere del SQL convencional, pero dado que la base de datos NoSQL es relacional, es posible asignar operadores NoSQL a sus equivalentes SQL:
Véase también
Lecturas adicionales
- Ayers, Larry (noviembre de 1998). "Cómo no reinventar la rueda" . Linux Gazette . Recuperado el 10 de abril de 2015 .
- Litt, Steve (abril de 2007). "NoSQL: La base de datos Unix (con awk)" . Revista Linux Productivity . Recuperado el 3 de mayo de 2011 .
- Paterno, Giuseppe (1 de noviembre de 1999). "Tutorial de NoSQL" . Linux Journal . Recuperado el 3 de mayo de 2011 .
Enlaces externos
- NoSQL: un sistema de gestión de bases de datos relacionales que no es SQL
- Sistemas de gestión de bases de datos relacionales
- Sistemas de gestión de bases de datos gratuitos