Latest web development tutorials

NoSQL Perfil

NoSQL (NoSQL = No Sólo SQL), que significa "no sólo SQL".

En los sistemas informáticos modernos día en la red tendrá una enorme cantidad de datos.

Estos datos son una gran parte del sistema de gestión de base de datos relacional (RDMBSs) de tratar. propuesta de papel 1970 EFCodd modelo relacional "Un modelo relacional de datos para grandes bancos de datos compartidos", lo que hace que el modelado de datos y programación de aplicaciones más fácil.

Mediante la aplicación de modelo relacional probada es muy adecuado para la programación cliente-servidor, mucho más allá de los beneficios esperados, y hoy en día son los datos estructurados almacenados en la red de las aplicaciones de negocio y la tecnología dominante.

la base de datos NoSQL es un nuevo movimiento revolucionario, desde el principio se sugirió que la tendencia de desarrollo de cada vez más creciente a 2009. NoSQL defensores que promueven el uso de almacenamiento de datos no relacionales, con respecto al uso abrumador de bases de datos relacionales, este concepto es, sin duda, inyectaron una nueva forma de pensar.

base de datos relacional para seguir la reglas ACID

Inglés transacción es transacción, y el mundo real de la negociación es muy similar, que tiene las siguientes cuatro características:

1, A (atomicidad) Atómica <br> atómica fácil de entender, que todas las operaciones de la transacción, ya sea todo hecho, o no, la transacción es una transacción de las condiciones para el éxito en todas las operaciones tienen éxito, siempre que haya una operación falla, toda la transacción se producirá un error, tienen que retroceder.

Tales como transferencias bancarias, transferencia de la cuenta de A a B cuentas de 100 yuanes, se divide en dos etapas: 1) tomar la A representa 100 yuanes; 2) a B 100 yuanes cuentas de depósito. Estos dos pasos se han completado ya sea juntos o no juntos completan, si se completa sólo el primer paso, el segundo paso falla, el dinero de alguna manera menos 100 yuanes.

2, C (Coherencia) la coherencia <br> consistencia es relativamente fácil de entender, que ha estado en la base de datos a un estado coherente, ejecute la operación no va a cambiar las restricciones de consistencia de bases de datos originales.

Existentes restricciones de integridad como a + b = 10, si una transacción cambia a, se tienen que cambiar b, de modo que el extremo posterior de la transacción todavía se satisfacen a + b = 10, de lo contrario no la transacción.

3, I (aislamiento) guía llamada independencia significa independencia no se afectan entre sí transacciones simultáneas, si una transacción de datos sean accedidos por otra transacción está siendo modificado, siempre y cuando otra transacción no confirmada, se los datos accedidos no se ve afectada por la transacción no confirmada.
Por ejemplo, hay una cuenta de comercio existente es transferido de A a B cuentas de 100 yuanes, en el caso de esta transacción no se ha completado. Si el B comprobar sus cuentas, no puede ver los recién añadidos 100 yuanes.

4, D (Durabilidad) Persistencia La persistencia se refiere <br> una vez que la transacción se confirma, se edita serán almacenados de forma permanente en la base de datos, no se perderá incluso si se produce el tiempo de inactividad.


Sistemas distribuidos

Los sistemas distribuidos (sistema distribuido) los componentes de software de varios equipos y conexión de comunicaciones (red local o red de área amplia) compuesta por una red de ordenadores.

Los sistemas distribuidos se construyen en la parte superior de los sistemas de software de red. Es precisamente debido a las características del software, el sistema distribuido con un alto grado de cohesión y transparencia.

Por lo tanto, la diferencia entre la red y sistema distribuido que más software de alto nivel (especialmente el sistema operativo), en lugar de hardware.

Los sistemas distribuidos se pueden aplicar en diferentes plataformas tales como: PC, estaciones de trabajo, redes LAN y WAN y similares.


Las ventajas de la computación distribuida

Fiabilidad (tolerancia a fallos):
ventaja importante de un sistema informático distribuido es la fiabilidad. Estrellarse un servidor no afecta al resto del servidor.

escalabilidad:
En un sistema de computación distribuida se puede añadir más máquinas, según sea necesario.

Intercambio de recursos:
Compartir datos es esencial para aplicaciones tales como la banca, los sistemas de reserva.

flexibilidad:
Debido a que el sistema es muy flexible, es fácil de instalar, implementar y depurar nuevos servicios.

velocidad más rápida:
sistema de computación distribuida puede tener más potencia de cálculo de los ordenadores, por lo que es una velocidad de procesamiento más rápido que otros sistemas.

Sistemas Abiertos:
Debido a que es un sistema abierto que puede ser el acceso local o remoto al servicio.

Mayor rendimiento:
agrupaciones de redes informáticas centralizadas comparan para proporcionar un mayor rendimiento (y un mejor precio).


La desventaja de la computación distribuida

Solución de problemas ::
Solucionar problemas y diagnosticar el problema.

software:
Menos de soporte de software es el principal inconveniente de los sistemas de computación distribuida.

red:
Las cuestiones de infraestructura de red, incluyendo: problemas de transmisión, de alta carga, se pierde información y así sucesivamente.

seguridad:
sistema informático características del desarrollo del sistema permite distribuir es vulnerable a los riesgos de seguridad y puesta en común de problemas de datos.


¿Cuál es NoSQL?

NoSQL, se refiere a una base de datos no relacionales. NoSQL a veces también se conoce como una abreviatura de Not Only SQL, que es diferente del tradicional sistema de gestión de base de datos de base de datos relacional colectivamente.

NoSQL para almacenar datos de gran escala. (Tales como Google o Facebook billón de bits de datos por día recogido por sus usuarios). Estos tipos de almacenamiento de datos no requiere un patrón fijo, ninguna operación adicional se puede extender lateralmente.

¿Por NoSQL?

Hoy podemos estar plataforma de terceros: Se puede acceder fácilmente y obtener los datos (tales como Google, Facebook, etc.). La información personal del usuario, las redes sociales, la ubicación, los datos generados por el usuario y los registros de usuarios ha aumentado de manera exponencial. Si queremos la minería estos datos de usuario, base de datos SQL que no es adecuado para estas aplicaciones, y el desarrollo de bases de datos NoSQL también es muy capaz de manejar estos datos de gran tamaño.

web-data-imagen

Ejemplos

redes socializados:

Cada registro: UserID1, UserID2
registros separados: ID de usuario, nombre, apellido, edad, sexo, ...
Tarea: Encontrar todos los amigos de amigos de amigos de amigos ... de un usuario determinado.

La página de Wikipedia:

Gran colección de documentos
La combinación de los datos estructurados y no estructurados
Tarea: Recuperar todas las páginas en relación con el atletismo de Verano Olímpico antes de 1950.

RDBMS vs NoSQL

RDBMS
- La estructura altamente organizada de datos
- Lenguaje de consulta estructurado (SQL) (SQL)
- Los datos y las relaciones se almacenan en una tabla separada.
- Lenguaje de manipulación de datos, Data Definition Language
- La coherencia estricta
- Servicios Básicos

NoSQL
- Representa no sólo SQL
- No hay lenguaje de consulta declarativa
- No hay un patrón predefinido
- Par de valores, la columna de almacenamiento, almacenamiento de documentos, gráficos, bases de datos - Key
- consistencia eventual, en lugar de las propiedades ACID
- Datos impredecible y no estructurados
- Teorema de la PAC
- Alto rendimiento, alta disponibilidad y escalabilidad

bigdata

NoSQL breve historia

NoSQL El término apareció por primera vez en 1998, es un desarrollo de peso ligero Carlo Strozzi, de código abierto, no proporciona la funcionalidad de base de datos relacional SQL.

En 2009, de Last.fm Johan Oskarsson inició un debate sobre la base de datos distribuida de código abierto [2], Eric Evans de Rackspace volvió a proponer el concepto de NoSQL, entonces el NoSQL se refiere principalmente a no relacional, distribuido, no proporcionan ACID patrones de diseño de base de datos.

En 2009 en Atlanta "no: sql (este)" seminario es un hito, con el lema "seleccionar la diversión, el beneficio de real_world donde relacional = false;". Por lo tanto, NoSQL explicación más común es que "no asociado Tipo", destacó las ventajas de los Key-Value almacenes y bases de datos documentales, en lugar de la mera oposición RDBMS.


CAP teorema (teorema CAP)

En informática, PAC teorema (teorema CAP), también conocido como Teorema Brewer (teorema de Brewer), que señaló que para un sistema de computación distribuida, no puede cumplir simultáneamente los tres puntos siguientes:

  • La consistencia (Consistencia) (todos los nodos tienen los mismos datos al mismo tiempo)
  • Disponibilidad (disponibilidad) (asegurar que cada petición tiene una respuesta independientemente del éxito o el fracaso)
  • la tolerancia de partición (partición de la tolerancia) (pérdida o avería del sistema de cualquiera de la información no afecta a la continuidad del funcionamiento del sistema)

La teoría básica de la PAC es: un sistema distribuido no puede satisfacer simultáneamente la consistencia, la disponibilidad, tolerancia a fallos, y se reparte estos tres requisitos sólo se puede conocer a dos buen rato.

Por lo tanto, de acuerdo con los principios de la base de datos CAP NoSQL en el CA satisfacer el principio, para cumplir y satisfacer los principios de CP principio AP tres categorías:

  • CA - un único punto de la agrupación se reúnen consistencia, la disponibilidad del sistema, escalabilidad, por lo general en menos potente.
  • CP - satisfacer la consistencia, tolerará la partición del rendimiento del sistema en general, no es particularmente alta.
  • AP - cumple con la disponibilidad, tolerancia a la partición del sistema, por lo general los requisitos de conformidad pueden ser más bajos.
cap-theoram-imagen

NoSQL ventajas / desventajas

ventajas:

  • - Alta escalabilidad
  • - Distributed Computing
  • - Bajo costo
  • - Flexibilidad arquitectónica, los datos semi-estructurados
  • - No hay relación complicada

desventajas:

  • - No hay una estandarización
  • - Función de búsqueda limitada (hasta ahora)
  • - El acuerdo final no es intuitivo programa

BASE

BASE: Disponible Básicamente, el estado suave, eventualmente consistentes. Definida por Eric Brewer.

La teoría básica de la PAC es: un sistema distribuido no puede satisfacer simultáneamente la consistencia, la disponibilidad, tolerancia a fallos, y se reparte estos tres requisitos sólo se puede conocer a dos buen rato.

BASE es una base de datos NoSQL es típicamente débil disponibilidad y coherencia de los requisitos principales:

  • Básicamente Availble - Básico Disponible
  • Soft-Estado - Estado / transacción flexible suave. "Estado blando" se puede entender como "sin conexión", y "estado duro" es "orientado a la conexión" en
  • La consistencia eventual - consistencia eventual consistencia eventual es el objetivo final de ACID.

ÁCIDO vs BASE

ÁCIDO BASE
Atómica (A tomicity) Basic puede ser utilizado (B asically Un vailable)
La consistencia (C OHERENCIA) estado blando / servicios flexibles (S estado oft)
Aislamiento (I consuelos) consistencia eventual (E consistencia ventual)
Persistente (urable D)

clasificación de la base de datos NoSQL

tipo algunos representantes

característica
tiendas de columna

hbase

Cassandra

Hypertable

Como su nombre indica, se almacena en las columnas de datos. La característica más grande es fácil de almacenar datos estructurados y semi-estructurados, fáciles de hacer la compresión de datos, para tener una ventaja muy grande para IO de una columna o columnas de una consulta.

Almacenamiento de documentos

MongoDB

CouchDB

Almacenamiento de documentos se utiliza generalmente para almacenar formato JSON similares, el contenido se almacena en el tipo de documento. Esto también tiene la oportunidad de construir un índice en un cierto campo, para lograr algunas de las características de una base de datos relacional.

almacenamiento de claves-valor

Tokio Gabinete / Tirano

Berkeley DB

MemcacheDB

Redis

Puede comprobar rápidamente a su valor por clave. En general, independientemente del valor de formato de almacenamiento a la herencia. (Redis contiene características adicionales)

mapa de memoria

Neo4J

FlockDB

Las mejores relaciones almacenar gráficos. Bajo uso de rendimiento de base de datos relacional tradicional para resolverlo, y el diseño es inconveniente para su uso.

almacenamiento de objetos

db4o

Versant

A través de la sintaxis del lenguaje orientado a objetos es similar al funcionamiento de la base de datos, se accede por medio del objeto de datos.

base de datos XML

Berkeley DB XML

BaseX

Eficiente de almacenamiento de datos XML y soporta la sintaxis de consulta XML interno, como XQuery, XPath.


¿quién utiliza

Ya hay muchas empresas utilizan NoSQL:
  • google
  • Facebook
  • Mozilla
  • adobe
  • Foursquare
  • LinkedIn
  • Digg
  • McGraw-Hill Education
  • Radio Pública de Vermont