Ir al contenido principal

BASE DE DATOS (SQL y NOSQL)

¿Que es una base de Datos?

Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido; una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta.

Existen algunos tipos de Base de Datos como los relacionales (SQL) y los no relacionales(NoSQL).




BASE DE DATOS RELACIONALES (SQL)

Características generales de una base de datos relacional se define como un conjunto de tablas que contienen datos provistos en categorías predefinidas. Cada tabla (que a veces se llaman ‘relación’) contiene una o más categorías de datos en columnas. Cada fila contiene una instancia única de datos para las categorías definidas por las columnas. Por ejemplo, una base de datos típica de ingreso de solicitudes de negocio incluiría una tabla que describiera a un cliente con columnas para el nombre, dirección, número de teléfono, y así sucesivamente. Otra tabla identificaría el pedido: producto, cliente, fecha, precio de venta, y así sucesivamente. Un usuario de la base de datos podría obtener una vista de la base de datos que se ajuste a sus necesidades. Por ejemplo, un gerente de sucursal podría preferir una vista o informe sobre todos los clientes que han comprado productos después de una fecha determinada. Un gerente de servicios financieros en la misma empresa podría, desde las mismas tablas, obtener un informe sobre las cuentas que deben ser pagadas.
Al crear una base de datos relacional, se puede definir el dominio de posibles valores de una columna de datos y restricciones adicionales que pueden aplicarse a ese valor de dato. Por ejemplo, un dominio de posibles clientes podría permitir un máximo de diez posibles nombres de clientes, pero estar compilado en una tabla que permita que sólo tres de estos nombres de clientes puedan ser especificados.
La definición de una base de datos relacional resulta en una tabla de metadatos o descripciones formales de las tablas, columnas, dominios y restricciones.
Ejemplo:


BASE DE DATOS NO RELACIONALES (NoSQL)

Las bases de datos NoSQL están diseñadas específicamente para modelos de datos específicos y tienen esquemas flexibles para crear aplicaciones modernas. Las bases de datos NoSQL son ampliamente reconocidas porque son fáciles de desarrollar, su funcionalidad y el rendimiento a escala. Usan una variedad de modelos de datos, que incluyen documentos, gráficos, clave-valor, en-memoria y búsqueda. Esta página incluye recursos para ayudarlo a comprender mejor las bases de datos NoSQL y comenzar a usarlas.

¿Cómo funciona una base de datos
NoSQL (no relacionales)?

Las bases de datos NoSQL utilizan una variedad de modelos de datos para acceder y administrar datos, como documentos, gráficos, clave-valor, en-memoria y búsqueda. Estos tipos de bases de datos están optimizados específicamente para aplicaciones que requieren grandes volúmenes de datos, baja latencia y modelos de datos flexibles, lo que se logra mediante la flexibilización de algunas de las restricciones de coherencia de datos en otras bases de datos.

Considere el ejemplo de modelado del esquema para una base de datos simple de libros:
En una base de datos relacional, un registro de libros a menudo se enmascara (o "normaliza") y se almacena en tablas separadas, y las relaciones se definen mediante restricciones de claves primarias y externas. En este ejemplo, la tabla Libros tiene las columnas ISBN, Título del libro y Número de edición, la tabla Autores tiene las columnas IDAutor y Nombre de autor y, finalmente, la tabla Autor-ISBN tiene las columnas IDAutor e ISBN. El modelo relacional está diseñado para permitir que la base de datos aplique la integridad referencial entre tablas en la base de datos, normalizada para reducir la redundancia y, generalmente, está optimizada para el almacenamiento.
En una base de datos NoSQL, el registro de un libro generalmente se almacena como un documento JSON. Para cada libro, el elemento, ISBN, Título del libro, Número de edición, Nombre autor y IDAutor se almacenan como atributos en un solo documento. En este modelo, los datos están optimizados para un desarrollo intuitivo y escalabilidad horizontal.



¿Por qué debería usar una base de datos

NoSQL?

Las bases de datos NoSQL se adaptan perfectamente a muchas aplicaciones modernas, como dispositivos móviles, web y juegos, que requieren bases de datos flexibles, escalables, de alto rendimiento y altamente funcionales para proporcionar excelentes experiencias de usuario.
·         Flexibilidad: las bases de datos NoSQL generalmente ofrecen esquemas flexibles que permiten un desarrollo más rápido y más iterativo. El modelo de datos flexible hace que las bases de datos NoSQL sean ideales para datos semiestructurados y no estructurados.
·         Escalabilidad: las bases de datos NoSQL generalmente están diseñadas para escalar usando clústeres distribuidos de hardware en lugar de escalar añadiendo servidores caros y sólidos. Algunos proveedores de la nube manejan estas operaciones fuera del alcance, como un servicio completamente administrado.
·         Alto rendimiento: la base de datos NoSQL está optimizada para modelos de datos específicos (como documentos, clave-valor y gráficos) y patrones de acceso que permiten un mayor rendimiento que el intento de lograr una funcionalidad similar con bases de datos relacionales.
·         Altamente funcional: las bases de datos NoSQL proporcionan API altamente funcionales y tipos de datos que están diseñados específicamente para cada uno de sus respectivos modelos de datos.
Ventajas y Desventajas de SQL:
Ventajas:
  • Madurez: Dado que tiene ya muchos años de madurez y aceptación por la comunidad de desarrolladores existe una gran variedad y cantidad de información para poder realizar cualquier tipo de desarrollo o extracción de información, lo cual esto ayuda increíblemente en la mejora de tiempos de entrega de cualquier proyecto de software.
  • Atomicidad: En las operaciones e información, esto quiere decir que cualquier operación realizada en la base de datos, garantiza que si a la mitad de cualquier operación de base de datos, surgió algún tipo de problema, la información no se completa, o se realiza al 100% o no se realiza nada.
  • Estándares bien definidos: Por ejemplo, la creación de tablas, el insertar, eliminar y actualizar información, consultas, se escriben bajo la misma sintaxis, basados en el estándar de SQL.
  • Sencillez en la escritura: Su principal aceptación, es su sencillez de escritura ya que se asemeja mucho al lenguaje humano, la comprensión de las operaciones que se programen puede ser interpretadas o escritas por personas que no tengan grandes conocimientos de informática.
Desventajas:
  • Crecimiento: Cuando estas bases de datos tienden a crecer demasiado en el almacenamiento y el mantenimiento es sumamente difícil y costoso, suelen presentar fallas en tiempo de respuesta.
  • Cambios en la estructura: En muchas ocasiones, los negocios necesitan realizar cambios, tanto en sus operaciones como en los sistemas de informática, entonces la base de datos puede verse afectada a cambios, si el diagrama de Entidad Relación no lo soporta, entonces esto implica, tener que realizar una modificación en la estructura de la base de datos y posiblemente, detener el sistema por un tiempo moderado hasta terminar el proceso, esto puede requerir mucho tiempo en el sistema y tal vez conocimientos avanzados en la persona designada para realizar estos cambios.
  • Elección del mas adecuado: En el mercado de RDBMS, se pueden encontrar servicios gratuitos o comprados, dependiendo de varios factores, como pueden ser, cantidad de información, tiempo de disponibilidad, fuerza de operación, etc., Cada solución de RDBMS que se presente en el mercado ofrece también ventajas y desventajas, no precisamente lo mas caro vaya a ser la solución a todo.
  • Complejidad en la instalación: Algunos RDBMS dependen del sistema operativo donde se vayan a instalar, no garantizan el buen funcionamiento si no cumplen con los requerimientos mínimos de instalación.
Ventajas y desventajas de NoSQL
Ventajas
  • Versatilidad: La principal ventaja por la cual esta nueva tecnología difiere de las demás soluciones de bases de datos es la versatilidad que ofrece a crecimientos o cambios sobre la forma como almacena la información, si fuera necesario agregar un nuevo campo sobre una “colección” (en base de datos relacional se definen tablas), dado que se basa sobre una notación ligera de intercambio de documentos baso en notación JSON(Java Script Object Notation), simplemente se agregan sobre el documento y el sistema sigue operando sin agregar configuraciones extras.
  • Crecimiento Horizontal: Soportan una escalabilidad descentralizada, es decir, soportan estructuras distribuidas, si durante la operación se ve que el desempeño de los servidores tienden a bajar, se instalan nuevos nodos operativos para que balanceen la carga de trabajo, a esto le llaman crecimiento horizontal.
  • Disponibilidad de Recursos: No se requieren servidores con una gran cantidad de recursos disponibles para operar, pueden empezar a operar con bajos recursos e ir creciendo dependiendo de las necesidades sin tener que detener los servicios de operación.
  • Optimización: Los sistemas NoSQL tienen un algoritmo interno para reescribir las consultas escritas por los usuarios o las aplicaciones programadas, esto con el fin de no sobrecargar el rendimiento de los servidores y mantener un nivel optimo en las operaciones.
Desventajas
  • Atomicidad: No todas las bases de datos contienen la característica de la atomicidad en la información, esto quiere decir, que la información en ocasiones no es consistente, puede ser diferente en cada uno de los nodos replicas que se puedan configurar en la arquitectura de base de datos.
  • Documentación del Software: Dado que NoSQL, es relativamente nuevo, las operaciones pueden ser limitadas y se requiera de conocimientos avanzados con el uso de la herramienta y las personas que se encuentran realizando estos desarrollos en el software tengan que invertir mas tiempo en los desarrollos.
  • Estándares en el lenguaje: No se tiene un estándar definido entre los diferentes motores que ofrecen este servicio, es decir, por ejemplo: DB2 para poder insertar información sobre su base de datos, el manejo de los objetos JSON no es el mismo como se utiliza en MondosDB y con ellos la diversidad de conocimientos que se tiene que tener dependiendo de la solución NoSQL se vaya a utilizar.
  • Herramientas GUI(Graphical User Interface): Las herramientas que ofrecen para la administración de estas herramientas, suelen tener acceso por consola, no tienen una interfaz gráfica, se requiere conocimiento amplio de las instrucciones a utilizar para su mantenimiento.

Comentarios

Entradas populares de este blog

MongDB

que es mongoDB ES UN SISTEMA DE BASE DE DATOS  NOSQL ORIENTADO A DOCUMENTOS DE CÓDIGO ABIERTO. Historia de MongoDB El desarrollo de MongoDB comenzó en 2007 de la mano de 10gen Inc. (ahora llamada MongoDB Inc.) cuando desarrollaban una plataforma como servicio (PaaS) similar al conocido Google App Engine.6​ En 2009 MongoDB fue lanzado como un producto independiente y publicado bajo la licencia de código abierto AGPL.7​En marzo de 2011, se lanzó la versión 1.4 y se consideró ya como una base de datos lista para su uso en producción. características de mongo DB mongo DB esta escrito en su totalidad en C++ la versión de 32 bits no es aconsejable usarla de desarrollo. mongoDB no soporta joins ni transacciones. sin embargo posee indices secundarios, un propio lenguaje de consulta, y lectura consistente. para las versiones de 32 bits de mongo, la base de datos solo puede alcanzar los 32 bits de mongo, la base de datos solo pued...