Not Only SQL

About “Not Only SQL”…

We could say that it’s the next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable.

We can find a lot of new databases of this type like:

  • Couchbase Server:

    API: Memcached API+protocol (binary and ASCII) , most languages, Protocol:Memcached REST interface for cluster conf + management, Written in: C/C++ + Erlang (clustering), Replication: Peer to Peer, fully consistent, Misc: Transparent topology changes during operation, provides memcached-compatible caching buckets, commercially supported version available.

  • RaptorDB:

    JSON based, Document store database with compiled .net map functions and automatic hybrid bitmap indexing and LINQ query filters

  • EJDB:

    Embedded JSON database engine based on tokyocabinet. API: C/C++, C# (.Net, Mono), Lua, Ruby, Python, Node.js binding, Protocol: Native, Written in: C, Query language: mongodb-like dynamic queries, Concurrency: RW locking, transactional , Misc: Indexing, collection level rw locking, collection level transactions, collection joins., License: LGPL

Modelo relacional de empresa de autobuses en Excel

Ejemplo de modelo relacional en Excel

En este ejercicio vamos a crear un modelo de esquema de registros utilizando excel. Para tres ficheros diferentes en los que deberá confeccionar el conjunto de campos y campos clave para una empresa de autobuses en los siguientes supuestos:

  1. Crea un fichero con la información de los autobuses que son de su propiedad.
  2. Fichero con la información de los conductores de la empresa.
  3. Fichero con la información de los clientes que utilizan el servicio de autobuses.

Para ello hemos elegido los siguientes Tablas y registros:

  • Tabla 1 AUTOBUSES: En la cual designamos el campo clave como número de autobús. Los registros capacidad, matricula y disponible como secundarios.

 

  • Tabla 2 CONDUCTORES: En este caso pondremos el número de conductor como campo clave .Los campos nombre, apellidos, DNI y antiguedad como secundarios.

 

  • Tabla 3 CLIENTES: Para esta tabla utilizaremos el número de cliente como campo clave. Los campos nombre, DNI y edad como secundarios.

Registro, campo, campo clave y ficheros lógicos en BBDD

CONCEPTOS: Registro Campo, Campo Clave y Fichero lógico.

  • Registro: representa toda la información de un elemento en concreto de modo estructurado, de modo que, un registro es un conjunto de campos que pertenece a una misma entidad. Por ejemplo, cada uno de los contactos de una agenda consiste en un registro.
  • Campo: cada uno de los atributos o características que se desea almacenar de una entidad. En el ejemplo de la agenda, nombre, teléfono, apellido, edad, son campos.
  • Campo clave: son campos especiales que permiten identificar de un modo unívoco cada uno de los registros. Es muy recomendable que cada registro tenga un campo clave que permita identificarlo y diferenciarlo de los demás.
  • Fichero lógico: es la estructura de datos en la que se almacena el conjunto de registros. De este modo se podrá disponer de un fichero de contactos en los cuales se almacenen todos los registros de contactos.

LibreOffice Base

LibreOffice es una poderosa suite de oficina; su interfaz limpia y sus potentes herramientas permiten dar rienda suelta a tu creatividad y hacer crecer tu productividad. Incorpora varias aplicaciones que lo convierten en la mLibreOfficeás potente suite de oficina Libre y de Código Abierto del mercado: Writer, el procesador de textos, Calc, la hoja de cálculos, Impress, el editor de presentaciones, Draw, nuestra aplicación de dibujo y diagramas de flujo, Base, nuestra base de datos e interfaz con otras bases de datos, y Math para la edición de fórmulas matemática.

Puede también usar LibreOffice Base para conectarse con bases de datos relacionales externas, tales como MySQL u Oracle.

El lenguaje más habitual para construir las consultas en las bases de datos relacionales es el SQL (Structured Query Language o Lenguaje Estructurado de Consultas), un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales, aunque para los usuarios más inexpertos existen otros métodos que no requieren el aprendizaje de este lenguaje.

Empresas que utilizan libreOffice

Millones de personas utilizan LibreOffice todos los días en sus hogares, negocios, organizaciones benéficas y sectores gubernamentales. De entre estos grupos de usuarios pueden destacarse:

  • MIMO, el equipo de trabajo interministerial para el software libre del Gobierno francés, ejecuta LibreOffice en aproximadamente 500 000 equipos. Nuestro software se emplea en varios ministerios, incluidos los de Energía, Defensa, Agricultura y Educación.
  • La administración de la comunidad autónoma de Valencia, en España, ha instalado LibreOffice en 120 000 PC. Con esto, la administración ha ganado independencia frente a proveedores de TI y ha disminuido los gastos en licencias de software privativo.
  • El Ministerio de Defensa de Italia se encuentra en un proceso de transición hacia LibreOffice y el formato OpenDocument (ODF) en más de 100 000 equipos. El Ministerio, asimismo, ha desarrollado cursos en línea para ayudar con el cambio a LibreOffice.

Si deseas ver un tutorial: Bases de Datos Relacionales

MongoDB Qué es y como funciona

MongoDB
MongoDB Logo

MongoDB es la base de datos libre NoSQL de moda actualmente. Gracias a su gran potencia por su programación en JavaScript. También almacena todos sus objetos en BSON de forma dinámica

 

¿Cómo puede funcionar una base de datos MongoDB sin tablas de datos ni sentencias SQL?.

Este es el cambio más llamativo frente a una base de datos tradicional. MongoDB almacena documentos, estos documentos pueden contener tablas y registros o no. Por lo tanto no es necesario tener una estructura tradicional de archivos, podemos tener un esquema distinto para cada grupo de ficheros con distintos registros.

MongoDB esta basado en JavaScript, utiliza para hacer consultas elementos JSON como parámetro. Su terminal esta preparada para interpretar tanto comando propios como JavaScript, también nos permite interpretar sentencias en otros lenguajes de programación mediante drivers.

 

¿Dónde se puede utilizar?

Aunque se suele decir que las bases de datos NoSQL tienen un ámbito de aplicación reducido, MongoDB se puede utilizar en muchos de los proyectos que desarrollamos en la actualidad.

Cualquier aplicación que necesite almacenar datos semi estructurados puede usar MongoDB. Es el caso de las típicas aplicaciones CRUD o de muchos de los desarrollos web actuales.

 

¿Dónde no se debe usar?

En esta base de datos no existen las transacciones. Aunque nuestra aplicación puede utilizar alguna técnica para simular las transacciones, no tiene esta capacidad. Solo garantiza operaciones atómicas a nivel de documento. Si las transacciones son algo indispensable en nuestro desarrollo, deberemos pensar en otro sistema.

Tampoco existen los JOINS. Para consultar datos relacionados en dos o más colecciones, tenemos que hacer más de una consulta. En general, si nuestros datos pueden ser estructurados en tablas, y necesitamos las relaciones, es mejor que optemos por un RDBMS clásico.

Y para finalizar, están las consultas de agregación. Tiene un framework para realizar consultas de este tipo llamado Aggregation Framework. También puede usar Map Reduce. Aún así, estos métodos no llegan a la potencia de un sistema relacional. Si vamos a necesitar explotar informes complejos, deberemos pensar en utilizar otro sistema. Eso sí, esta es una brecha que MongoDB va recortando con cada versión. En poco tiempo esto podría dejar de ser un problema.

 

 

Fuente original:

https://www.genbetadev.com/bases-de-datos/mongodb-que-es-como-funciona-y-cuando-podemos-usarlo-o-no