Apache Cassandra es una base de datos NoSQL de código abierto diseñada para manejar grandes volúmenes de datos de forma distribuida, escalable y tolerante a fallos; utiliza un modelo de almacenamiento de clave-valor y es usada por empresas como Twitter para gestionar grandes cantidades de datos de forma distribuida a lo largo de múltiples servidores.
1. 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.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de
las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado
y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
Hay programas denominados sistemas gestores de bases de datos, abreviado SGBD (del inglés Database
Management System o DBMS), que permiten almacenar y posteriormente acceder a los datos de forma rápida y
estructurada. Las propiedades de estos DBMS, así como su utilización y administración, se estudian dentro del
ámbito de la informática.
Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas; También son
ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental.
2.
3. SQL (por sus siglas en inglés Structured Query Language; en español lenguaje de consulta
estructurada) es un lenguaje de dominio específico utilizado en programación, diseñado para
administrar, y recuperar información de sistemas de gestión de bases de datos relacionales.1
Una de sus principales características es el manejo del álgebra y el cálculo relacional para
efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así
como realizar cambios en ellas.
Originalmente basado en el álgebra relacional y en el cálculo relacional, SQL consiste en
un lenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje de
control de datos. El alcance de SQL incluye la inserción de datos, consultas, actualizaciones y
borrado, la creación y modificación de esquemas y el control de acceso a los datos. También el
SQL a veces se describe como un lenguaje declarativo, también incluye elementos procesales.
SQL fue uno de los primeros lenguajes comerciales para el modelo relacional de Edgar Frank
Codd como se describió en su artículo de investigación de 1970 El modelo relacional de datos
para grandes bancos de datos compartidos. A pesar de no adherirse totalmente al modelo
relacional descrito por Codd, pasó a ser el lenguaje de base de datos más usado.
SQL pasó a ser el estándar del Instituto Nacional Estadounidense de Estándares (ANSI) en
1986 y de la Organización Internacional de Normalización (ISO) en 1987. Desde entonces, el
estándar ha sido revisado para incluir más características. A pesar de la existencia de ambos
estándares, la mayoría de los códigos SQL no son completamente portables entre sistemas de
bases de datos diferentes sin ajustes.
4.
5. En informática, NoSQL (a veces llamado "no sólo SQL") es una
amplia clase de sistemas de gestión de bases de datos que
difieren del modelo clásico de SGBDR (Sistema de Gestión
de Bases de Datos Relacionales) en aspectos importantes,
siendo el más destacado que no usan SQL como lenguaje
principal de consultas. Los datos almacenados no requieren
estructuras fijas como tablas, normalmente no soportan
operaciones JOIN, ni garantizan
completamente ACID (atomicidad, consistencia, aislamiento y
durabilidad) y habitualmente escalan bien horizontalmente. Los
sistemas NoSQL se denominan a veces "no sólo SQL" para
subrayar el hecho de que también pueden soportar lenguajes de
consulta de tipo SQL.
Por lo general, los investigadores académicos se refieren a este
tipo de bases de datos como almacenamiento estructurado,
término que abarca también las bases de datos relacionales
clásicas. A menudo, las bases de datos NoSQL se clasifican
según su forma de almacenar los datos, y comprenden
categorías como clave-valor, las implementaciones de BigTable,
bases de datos documentales, y bases de datos orientadas a
grafos.
6.
7. En todo proyecto siempre recomendamos hacer un buen proceso de selección del tipo de
base de datos a utilizar pues de esta elección dependerá en gran medida nuestro éxito. No
sólo debemos pensar en el momento actual en el que nos encontramos, sino que debemos
evaluar la base de datos pensando en donde queremos estar.
Preguntas comunes a la hora de elegir una base de datos son:
A cuantos clientes quiero dar servicio de forma concurrente.
Que tamaño de datos voy a necesitar gestionar.
Voy a necesitar implementar trabajos en “batch” que accederán a la base de datos
Qué exigencia de tiempo de respuesta necesito dar a mis clientes
Cómo voy a escalar mi base de datos según vaya aumentando el número de clientes y
transacciones
Como voy a monitorizar mi base de datos para conseguir el menor posible tiempo de
indisponibilidad.
Necesito una base de datos relacional o una no SQL
Comportamiento de la base de datos ante caída. Como se comporta con problemas.
A continuación pasamos a enumerar las bases de datos más importantes a tener en cuenta
para este 2016 con sus principales características.
Antes de continuar, os dejamos un enlace a este artículo de comparativa de Bases de
Datos NOSQL vs SQL para que podáis conocer las principales diferencias de estos dos
modelos si no las conocéis ya.
8. Microsoft SQL Server es un sistema de gestión de base de datos relacional,
desarrollado por la empresa Microsoft.
El lenguaje de desarrollo utilizado (por línea de comandos o mediante la interfaz
gráfica de Management Studio) es Transact-SQL (TSQL), una implementación del
estándar ANSI del lenguaje SQL, utilizado para manipular y recuperar datos (DML),
crear tablas y definir relaciones entre ellas (DDL).
Dentro de los competidores más destacados de SQL Server
están: Oracle, MariaDB, MySQL, PostgreSQL. SQL Server ha estado
tradicionalmente disponible solo para sistemas operativos Windows de Microsoft,
pero desde 2016 está disponible para GNU/Linux,2y a partir de 2017
para Docker también.
Puede ser configurado para utilizar varias instancias en el mismo servidor físico, la
primera instalación lleva generalmente el nombre del servidor, y las siguientes -
nombres específicos (con un guion invertido entre el nombre del servidor y el nombre
de la instalación).
9. 1.Es un sistema de gestión de base de datos.
2. Es útil para manejar y obtener datos de la red de redes.
3. Nos permite olvidarnos de los ficheros que forman la base
de datos.
4. Si trabajamos en una red social nos permite agregar otros
servidores de SQL Server. Por ejemplo dos personas que
trabajan con SQL Server, uno de ellos se puede conectar al
servidor de su otro compañero y así se puede ver las bases
de datos del otro compañero con SQL Server.
5. SQL permite administrar permisos a todo.
También permite que alguien conecte su SQLO al nuestro
pero sin embargo podemos decirle que no puede ver esta
base de datos pero otro si.
10. 1. Utiliza mucho la memoria RAM para las instalaciones y utilización de
software.
2. No se puede utilizar como practicas porque se prohíben muchas cosas, tiene
restricciones en lo particular.
3. La relación, calidad y el precio esta muy debajo comparado con oracle.
4. Tiene muchos bloqueos a nivel de página, un tamaño de página fijo y
demasiado pequeño, una pésima implementación de los tipos de datos variables.
11. Oracle Corporation es una compañía especializada en
el desarrollo de soluciones de nube y locales. Oracle
tiene su sede en la localidad californiana de Redwood
City, Estados Unidos. Según la clasificación
correspondiente al año 2006, ocupa el primer lugar en la
categoría de las bases de datos y el séptimo lugar a nivel
mundial de las compañías de tecnologías de la
información. La tecnología Oracle se encuentra
prácticamente en muchas industrias del mundo y en las
oficinas de 98 de las 100 empresas Fortune 100.
Oracle (Nasdaq: ORCL) es la primera compañía de
software de estereotipos que desarrolla e implementa
aplicaciones para empresas cien por ciento activado por
Internet a través de toda su línea de productos: base de
datos, aplicaciones comerciales y herramientas de
desarrollo de aplicaciones y soporte de decisiones.
Oracle es el proveedor mundial de software para
administración de información a lo largo de todo el
mundo, muy por delante de la segunda de su
segmento, Software AG
Historia
12. 1)Oracle es el motor de base de datos objeto-relacional más usado a nivel
mundial.
2)Puede ejecutarse en todas las plataformas, desde una Pc hasta un
supercomputador.
3)Oracle soporta todas las funciones que se esperan de un servidor "serio": un
lenguaje de diseño de bases de datos muy completo (PL/SQL) que permite
implementar diseños "activos", con triggers y procedimientos almacenados, con
una integridad referencial declarativa bastante potente.
4)Permite el uso de particiones para la mejora de la eficiencia, de replicación e
incluso ciertas versiones admiten la administración de bases de datos
distribuidas.
5)El software del servidor puede ejecutarse en multitud de sistemas operativos.
6)Existe incluso una versión personal para Windows 9x, lo cual es un punto a
favor para los desarrolladores que se llevan trabajo a casa.
7)Oracle es la base de datos con más orientación hacía INTERNET.
13. 1)Las versiones más recientes de Oracle son la 11g, 10g, 9g, 8g,
desde el lanzamiento original de la 8 se sucedieron varias versiones
con correcciones, hasta alcanzar la estabilidad en la 8.0.3. El motivo
de tantos fallos fue, al parecer, la remodelación del sistema de
almacenamiento por causa de la introducción de extensiones
orientadas a objetos.
2)El mayor inconveniente de Oracle es quizás su precio. Incluso las
licencias de Personal Oracle son excesivamente caras, en mi opinión.
Otro problema es la necesidad de ajustes. Un error frecuente
consiste en pensar que basta instalar el Oracle en un servidor y
enchufar directamente las aplicaciones clientes. Un Oracle mal
configurado puede ser desesperantemente lento.
3)También es elevado el coste de la información, y sólo últimamente
han comenzado a aparecer buenos libros sobre asuntos técnicos
distintos de la simple instalación y administración.
14. MongoDB (del inglés humongous, "enorme") es un sistema de base de
datos NoSQL orientado a documentos de código abierto.
En lugar de guardar los datos en tablas, tal y como se hace en las bases de
datos relacionales, MongoDB guarda estructuras de datos BSON (una
especificación similar a JSON) con un esquema dinámico, haciendo que la
integración de los datos en ciertas aplicaciones sea más fácil y rápida.
MongoDB es una base de datos adecuada para su uso en producción y con
múltiples funcionalidades. Esta base de datos se utiliza mucho en la industria,
contando con implantaciones en empresas como MTV Network,
Craiglist, BCI o Foursquare.
El código binario está disponible para los sistemas
operativos Windows, GNU/Linux, OS X y Solaris.
16. No es una solución adecuada
para aplicaciones con
transacciones complejas
No tiene un reemplazo para
las soluciones de herencia
Aún es una tecnología joven
17. Oracle NoSQL Database (OND) is a NoSQL-type distributed key-value database from Oracle
Corporation.[1][2][3][4] It provides transactional semantics for data manipulation, horizontal
scalability, and simple administration and monitoring.
Oracle released Oracle Autonomous NoSQL Database Cloud (OANDC) on August 10, 2018.
OANDC is a managed cloud service for applications that require low latency, flexible data
models, and elastic scaling for dynamic workloads. Oracle bought the company which developed
the Berkeley DB, Sleepycat Software.[3]
Developers focus on application development and data store requirements rather than managing
back-end servers, storage expansion, cluster deployments, topology, software
installation/patches/upgrades, backup, operating systems, and availability. OANDC scales to meet
dynamic application workloads and throughput requirements.
Users create tables to store their application data and perform database operations. An OANDC
table is similar to a relational table with additional properties including provisioned write units,
read units, and storage capacity. Users provision the throughput and storage capacity in each table
based on anticipated workloads. OANDC resources are allocated and scaled accordingly to meet
workload requirements. Users are billed hourly based on the capacity provisioned.
OANDC provides a very simple data model. Each row is identified by a unique key, and has a
value, of arbitrary length, which is interpreted by the application. The application can manipulate
(insert, delete, update, read) a single row in a transaction. The application can also perform an
iterative, non-transactional scan of all the rows in the database.
18. 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.
19. 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.
20. Apache Cassandra es una base de datos NoSQL distribuida y basada en un
modelo de almacenamiento de «clave-valor», de código abierto que está escrita
en Java. Permite grandes volúmenes de datos en forma distribuida. Por ejemplo, lo
usa Twitter para su plataforma. Su objetivo principal es la escalabilidad lineal y la
disponibilidad. La arquitectura distribuida de Cassandra está basada en una serie
de nodos iguales que se comunican con un protocolo P2P con lo que la
redundancia es máxima. Está desarrollada por Apache Software Foundation.
Cassandra ofrece soporte robusto para múltiples centros de datos,1 con la
replicación asincrónica sin necesidad de un servidor maestro, que permiten
operaciones de baja latencia para todos los clientes.
21. Alta disponibilidad, lo que es muy interesante para el sistema en los que
una caída sea crucial.
Tolerancia a particiones y escalado.
Cantidad de recursos que se tienen disponibles.
22. La conexión de nuevos nodos no es tarea fácil, ya que el mismo se tiene
que poner de acuerdo con el resto, y esto conlleva un tiempo.
Debemos saber qué queries se van a ejecutar previamente, ya que al
hacer SELECT sufre un poco debido a la manera en la que almacena los
datos.