Strozzi NoSQL es un sistema de administración de bases de datos relacionales basado en shell , inicializado y desarrollado por Carlo Strozzi que se ejecuta en sistemas operativos similares a 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 utilizando Structured Query Language ; El RDBMS NoSQL es distinto del concepto general de alrededor de 2009 de las bases de datos NoSQL , que normalmente no son relacionales, a diferencia del RDBMS NoSQL. Strozzi NoSQL se publica bajo la GNU GPL .
Autor (es) original (es) | Carlo Strozzi |
---|---|
Versión inicial | 1998 |
Lanzamiento estable | 4.1.10 / 13 de septiembre de 2010 |
Plataforma | Similar a Unix (p. Ej., Cygwin ) |
Tipo | RDBMS |
Licencia | GPL |
Sitio web | www |
Construcción
NoSQL usa el paradigma de flujo de operadores , donde varios "operadores" realizan una función única en los datos pasados. El flujo utilizado es suministrado por el sistema de redireccionamiento de entrada / salida de UNIX para que a través del sistema de tuberías , el resultado del cálculo se pueda pasar a otros operadores. Dado que las tuberías de UNIX se ejecutan en la memoria, es una forma de implementación muy eficiente.
NoSQL, con el desarrollo liderado por Carlo Strozzi, es la última y quizás la más activa en una línea de implementaciones 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 1991 de Unix Review y un artículo asociado. papel . Otras implementaciones incluyen los basados en Perl RDB , una versión comercial por los autores originales llamada / RDB , y la base estelar , una versión con operadores de datos astronómicos añadidas por John Roll, de Harvard, y el Observatorio Astrofísico Smithsonian. Debido a sus fortalezas en el manejo de datos de tubería, 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 luego se expandió en un artículo (ver la referencia anterior), así como en el libro, "Administración de bases de datos relacionales de Unix". NoSQL (junto con otras bases de datos de operadores de flujo similares) se adapta bien a una serie de tareas de bases de datos analíticas y rápidas, y tiene la ventaja significativa de mantener las tablas en forma de texto ASCII, lo que permite que se utilicen muchas herramientas potentes de procesamiento de texto como adjunto a las funciones de la base de datos. Las herramientas populares para usar con NoSQL incluyen Python, Perl, awk y scripts de shell que utilizan las omnipresentes herramientas de procesamiento de texto de Unix (cortar, pegar, grep, sort, uniq, etc.)
NoSQL está escrito principalmente en lenguajes interpretativos, lo que ralentiza la ejecución real del proceso, pero su capacidad para usar tuberías y sistemas de archivos ordinarios significa que puede ser extremadamente rápido para muchas aplicaciones cuando se utilizan sistemas de archivos RAM o tuberías de gran aprovechamiento, que en su mayoría se basan en memoria en muchas implementaciones. .
Filosofía
Las razones para evitar SQL son las siguientes:
- Complejidad: la mayoría de los productos de bases de datos comerciales suelen ser demasiado costosos para proyectos menores y las bases de datos gratuitas son demasiado complejas. Tampoco tienen el enfoque de nivel de shell que tiene NoSQL.
- Portabilidad:
- Datos: los datos de NoSQL se pueden transferir fácilmente a otros tipos de máquinas, como computadoras Macintosh o Windows , ya que las tablas existen como texto ASCII simple y se pueden leer o redirigir fácilmente 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 , y quizás incluso en el entorno tipo Cygwin UNIX para Microsoft Windows .
- Ilimitado: NoSQL no tiene límites arbitrarios , como un tamaño de campo de datos, número de columna o límite de tamaño de archivo, y puede funcionar principalmente donde otros productos no pueden. (El número de columnas en una tabla puede estar limitado a 32,768 por algunas implementaciones del lenguaje de programación AWK1).
- Usabilidad: Con su concepto sencillo y lógico, NoSQL puede ser utilizado fácilmente por personas que no son informáticas. Por ejemplo, las filas de datos se seleccionan con el operador 'fila', las columnas con el operador 'columna'.
A diferencia de otros RDBMS, NoSQL tiene todo el poder de UNIX durante el desarrollo y uso de aplicaciones. Su interfaz de usuario utiliza el shell UNIX. Por lo tanto, no es necesario aprender un conjunto de comandos nuevos para administrar la base de datos. Desde el punto de vista de NoSQL, la base de datos no es más que un conjunto de archivos similar a cualquier otro archivo de usuario. No se utilizan secuencias de comandos u otro tipo de lenguaje de base de datos además del shell de UNIX. Esta naturaleza de shell fomenta el uso casual de esta base de datos, lo que hace que su uso sea familiar, lo que resulta en un uso formal. En otras palabras, NoSQL es un conjunto de rutinas de shell que acceden a archivos normales del sistema operativo.
Ejemplos de
Para recuperar información sobre un empleado en particular, una consulta en SQL podría tener este aspecto:
seleccione e. *, a. *, administrador. * de EMPLEADOS e, DIRECCIONES a, ADMINISTRADORESDÓ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 ("/ empleado / emp_1234")volver $ e / dirección / zip
El paradigma de operador de flujo difiere del SQL convencional, pero dado que la base de datos NoSQL es relacional, es posible mapear operadores NoSQL a sus equivalentes SQL:
SQL | NoSQL o / rdb |
---|---|
seleccione col1 col2 del nombre de archivo | columna col1 col2 |
donde columna - expresión | fila 'columna == expresión' |
calcular columna = expresión | calcular 'columna = expresión' |
agrupar por | total parcial |
teniendo | fila |
ordenar por columna | columna clasificatoria |
único | uniq |
contar | wc -l |
unión externa | articulable -al |
actualizar | eliminar, reemplazar |
anidando | tubería |
Ver también
Otras lecturas
- Ayers, Larry (noviembre de 1998). "Cómo no reinventar la rueda" . Gaceta de Linux . Consultado el 10 de abril de 2015 .
- Litt, Steve (abril de 2007). "NoSQL: la base de datos Unix (con awk)" . Revista de productividad de Linux . Consultado el 3 de mayo de 2011 .
- Paterno, Giuseppe (1 de noviembre de 1999). "Tutorial de NoSQL" . Revista de Linux . Consultado el 3 de mayo de 2011 .