Vous êtes sur la page 1sur 16

2.

CONCEPTOS BASICOS
2.1 BASE DE DATOS
Un sistema de bases de datos es una coleccin de archivos
interrelacionados y un conjunto de programas que permitan a los usuarios
acceder y modificar estos archivos. Uno de los propsitos principales de un
sistema de bases de datos es proporcionar a los usuarios una visin
abstracta de los datos. Es decir, el sistema esconde ciertos detalles de cmo
se almacenan y mantienen los datos.
2.1.1 Abstraccin de datos
Para que el sistema sea til debe recuperar los datos eficientemente. Esta
preocupacin ha conducido al diseo de estructuras de datos complejas
para la representacin de los datos en la base de datos. Como muchos
usuarios de sistemas de bases de datos no estn familiarizados con
computadores, los desarrolladores esconden la complejidad a los usuarios a
travs de varios niveles de abstraccin para simplificar la interaccin de los
usuarios con el sistema:

Nivel fsico: El nivel ms bajo de abstraccin describe cmo se


almacenan realmente los datos. En el nivel fsico se describen en
detalle las estructuras de datos complejas de bajo nivel.

Nivel lgico: El siguiente nivel ms alto de abstraccin describe qu


datos se almacenan en la base de datos y qu relaciones existen
entre esos datos. La base de datos completa se describe as en
trminos de un nmero pequeo de estructuras relativamente
simples. Aunque la implementacin de estructuras simples en el nivel
lgico puede involucrar estructuras complejas del nivel fsico, los
usuarios del nivel lgico no necesitan preocuparse de esta
complejidad. Los administradores de bases de datos, que deben
decidir la informacin que se mantiene en la base de datos, usan el
nivel lgico de abstraccin.

Nivel de vistas: El nivel ms alto de abstraccin describe slo parte


de la base de datos completa. A pesar del uso de estructuras ms
simples en el nivel lgico, queda algo de complejidad, debido a la
variedad de informacin almacenada en una gran base de datos.
Muchos usuarios del sistema de base de datos no necesitan toda esta
informacin. En su lugar, tales usuarios necesitan acceder slo a una
parte de la base de datos. Para que su interaccin con el sistema se
simplifique, se define la abstraccin del nivel de vistas. El sistema
puede proporcionar muchas vistas para la misma base de datos.

Una analoga con el concepto de tipos de datos en lenguajes de


programacin puede clarificar la distincin entre los niveles de abstraccin.
La mayora de lenguajes de programacin de alto nivel soportan la
estructura de tipo registro. Por ejemplo, en un lenguaje tipo Pascal, se
pueden declarar registros como sigue:

type cliente =
record
Nombre-cliente:
string;
Id-cliente: string;
calle-cliente : string;
ciudad-cliente:
Figura: Los tres niveles de abstraccin de datos

Este cdigo define un nuevo registro llamado cliente con cuatro campos.
Cada campo tiene un nombre y un tipo asociado a l.
Una empresa bancaria puede tener varios tipos de registros, incluyendo
cuenta, con campos nmero-cuenta y saldo
empleado, con campos nombre-empleado y sueldo

En el nivel fsico, un registro cliente, cuenta o empleado se puede describir


como un bloque de posiciones almacenadas consecutivamente (por
ejemplo, palabras o bytes). El compilador del lenguaje esconde este nivel de
detalle a los programadores. Anlogamente, el sistema de base de datos
esconde muchos de los detalles de almacenamiento de nivel inferior a los
programadores de bases de datos. Los administradores de bases de datos
pueden ser conscientes de ciertos detalles de la organizacin fsica de los
datos.

En el nivel lgico cada registro de este tipo se describe mediante una


definicin de tipo, como se ha ilustrado en el fragmento de cdigo previo, y
se define la relacin entre estos tipos de registros. Los programadores,
cuando usan un lenguaje de programacin, trabajan en este nivel de
abstraccin. De forma similar, los administradores de bases de datos
trabajan habitualmente en este nivel de abstraccin.

Finalmente, en el nivel de vistas, los usuarios de computadores ven un


conjunto de programas de aplicacin que esconden los detalles de los tipos
de datos. Anlogamente, en el nivel de vistas se definen varias vistas de
una base de datos y los usuarios de la misma ven nica y exclusivamente
esas vistas. Adems de esconder detalles del nivel lgico de la base de
datos, las vistas tambin proporcionan un mecanismo de seguridad para
evitar que los usuarios accedan a ciertas partes de la base de datos. Por
ejemplo, los cajeros de un banco ven nicamente la parte de la base de
datos que tiene informacin de cuentas de clientes; no pueden acceder a la
informacin referente a los sueldos de los empleados.

2.1.2 Ejemplares y esquemas


Las bases de datos van cambiando a lo largo del tiempo conforme la
informacin se inserta y borra. La coleccin de informacin almacenada en
la base de datos en un momento particular se denomina un ejemplar de la
base de datos. El diseo completo de la base de datos se llama el esquema
de la base de datos. Los esquemas son raramente modificados, si es que lo
son alguna vez.

El concepto de esquemas y ejemplares de bases de datos se puede


entender por analoga con un programa escrito en un lenguaje de
programacin. Un esquema de base de datos corresponde a las
declaraciones de variables (junto con definiciones de tipos asociadas) en un
programa. Cada variable tiene un valor particular en un instante de tiempo.
Los valores de las variables en un programa en un instante de tiempo
corresponde a un ejemplar de un esquema de bases de datos.

Los sistemas de bases de datos tienen varios esquemas divididos de


acuerdo a los niveles de abstraccin que se han discutido. El esquema
fsico describe el diseo fsico en el nivel fsico, mientras que el esquema
lgico describe el diseo de la base de datos en el nivel lgico. Una base de
datos puede tener tambin varios esquemas en el nivel de vistas, a menudo
denominados subesquemas, que describen diferentes vistas de la base de
datos.

De stos, el esquema lgico es con mucho el ms importante, en trminos


de su efecto en los programas de aplicacin, ya que los programadores
construyen las aplicaciones usando el esquema lgico. El esquema fsico
est oculto bajo el esquema lgico, y puede ser fcilmente cambiado
usualmente sin afectar a los programas de aplicacin. Los programas de
aplicacin se dice que muestran independencia fsica de datos si no
dependen del esquema fsico y, por tanto, no deben ser modificados si
cambia el esquema fsico.

2.1.3El teorema CAP


El teorema CAP o teorema Brewer, enuncia que en sistemas distribuidos es
imposible garantizar a la vez: consistencia, disponibilidad y tolerancia a
particiones (Consistency-Availability-Partition Tolerance).

Consistencia: al realizar una consulta o insercin siempre se tiene que


recibir la misma informacin, con independencia del nodo o servidor
que procese la peticin.
Disponibilidad: que todos los clientes puedan leer y escribir, aunque
se haya cado uno de los nodos.
Tolerancia a particiones: que es que el sistema sigue funcionado a
pesar de que haya sido partido por fallo de red. Los sistemas
distribuidos pueden estar divididos en particiones (generalmente de
forma geogrfica). As que esta condicin implica, que el sistema
tiene que seguir funcionando aunque existan fallos o cadas parciales
que dividan el sistema.

2.2TIPOS DE BASES DE DATOS


2.2.1Base de datos relacional
A travs de los aos los sistemas de administracin de Bases de Datos han
evolucionado hacia Sistemas de Administracin de Base de Datos
Relacionales (RDBMS). Una base de datos relacional es un modelo
organizado de entidades que posee caractersticas que tienen relaciones
entre ellas. Una base de datos relacional bien diseada provee informacin
de un negocio o un proceso y su uso ms comn es para almacenar y
recuperar informacin.
Entre las mayores ventajas de RDBMS estn la forma en la que almacena y
recupera informacin y cmo mantiene la integridad de la misma. Las
estructuras RDBMS son fciles de comprender y construir, pues son
lgicamente representadas utilizando Diagramas Entidad-Relacin. Las
bases de datos relacionales tienen las siguientes caractersticas principales:
Estructuras. Son objetos que almacenan o acceden a los datos de la base
de datos (Tablas, vistas e ndices).
Tabla. Es un objeto que almacena datos en forma de filas y columnas. Cada
tabla tiene una o ms columnas y filas. Las columnas guardan una parte de
la informacin sobre cada elemento que queremos guardar en la tabla, cada
fila de la tabla conforma un registro. Los datos de una tabla contienen
valores atmicos, es decir que contiene elementos indivisibles.
Integridad. La integridad de la base de datos se refiere a la validez y la
consistencia de los datos.
Acceso concurrente. Los sistemas manejadores de base de datos
(RDBMS) controlan el acceso concurrente a una base de datos por parte de
mltiples usuarios.

Flexibilidad. La base de datos ofrece fcilmente distintas vista en funcin de


los usuarios y aplicacin.
Independencia fsica. Permite modificar el esquema fsico sin tener que
rescribir los programas de la aplicacin. Las modificaciones a nivel fsico son
necesarias ocasionalmente para mejorar el funcionamiento del sistema.
Independencia lgica. Permite modificar el esquema conceptual sin que se
tenga que alterar el programa de aplicacin. Estos cambios a nivel
conceptual son necesarios cuando la estructura lgica de la base de datos
es alterada. Esta independencia es ms difcil de implementar, ya que los
programas de aplicacin dependen de la estructura lgica de los datos que
accedan.
Facilidad de uso. Los usuarios tendrn fcil acceso a los datos. Las
complejidades internas son ajenas al usuario, gracias al sistema de
administracin de la base.
Redundancia controlada. Los datos sern almacenados una sola vez excepto
cuando existan razones tcnicas o econmicas que aconsejen el
almacenamiento redundante.
Seguridad de acceso. Se evitar el acceso no autorizado de datos. Los
mismos podrn estar sujetos a diferentes restricciones de acceso para
distintos usuarios.
Operaciones. Son acciones usadas para definir las Estructuras o manipular
los datos de las mismas (SELECT, CREATE)
Reglas de integridad. Gobiernan los tipos de acciones permitidas en los
datos y la estructura de la Base de Datos (BD). Protegen los datos y
estructuras de la BD. (Llaves primarias y forneas).
Identificador nico. No pueden existir dos tablas con el mismo nombre, as
como no pueden existir dos columnas con el mismo nombre en una misma
tabla y los valores almacenados en una columna deben ser del mismo tipo
de dato.
Clave nica. Cada tabla puede tener uno o ms campos cuyos valores
identifican de forma nica cada registro de dicha tabla, es decir, no pueden
existir dos o ms registros diferentes cuyos valores en dichos campos sean
idnticos. Este conjunto de campos se llama clave nica.
Clave primaria. Una clave primaria es una clave nica elegida entre todas
las candidatas que define unvocamente a todos los dems atributos de la
tabla, para especificar los datos que sern relacionados con las dems
tablas. La forma de hacer esto es por medio de claves forneas. Slo puede
existir una clave primaria por tabla y ningn campo de dicha clave puede
contener valores NULL.
Dominios. Un dominio describe un conjunto de posibles valores para cierto
atributo. Como un dominio restringe los valores del atributo, puede ser
considerado como una restriccin. Matemticamente, atribuir un dominio a
un atributo significa "todos los valores de este atributo deben de ser
elementos del conjunto especificado".

Normalizacin. Las bases de datos relacionales pasan por un proceso al que


se le conoce como normalizacin, el resultado de dicho proceso es un
esquema que permite que la base de datos sea usada de manera ptima.
2.2.2 Bases de datos NoSql
Son un enfoque hacia la gestin de datos y el diseo de base de datos que
es til para grandes conjuntos de datos distribuidos.
NoSQL, que abarca una amplia gama de tecnologas y arquitecturas, busca
resolver los problemas de escalabilidad y rendimiento de big data que las
bases de datos relacionales no fueron diseadas para abordar. NoSQL es
especialmente til cuando una empresa necesita acceder y analizar grandes
cantidades de datos no estructurados o datos que se almacenan de forma
remota en varios servidores virtuales en la nube.
Contrariamente a las ideas falsas causadas por su nombre, NoSQL no
prohbe el lenguaje estructurado de consultas (SQL). Si bien es cierto que
algunos sistemas NoSQL son totalmente no-relacionales, otros simplemente
evitan funcionalidades relacionales seleccionadas como esquemas de tablas
fijas y operaciones conjuntas. Por ejemplo, en lugar de utilizar tablas, una
base de datos NoSQL podra organizar los datos en objetos, pares
clave/valor o tuplas.
Podra decirse que la base de datos ms popular NoSQL es Apache
Cassandra. Cassandra, que una vez fue la base de datos propietaria de
Facebook, fue liberada como cdigo abierto en 2008. Otras
implementaciones NoSQL incluyen SimpleDB, Google BigTable, Apache
Hadoop, MapReduce, MemcacheDB y Voldemort. Las empresas que utilizan
NoSQL incluyen NetFlix, LinkedIn y Twitter.
NoSQL se menciona a menudo en combinacin con otras herramientas de
big data, como el procesamiento paralelo masivo, las bases de datos a base
de columnas y las bases de datos como servicio (DaaS).
2.2.3 Base de datos en memoria
Una base de datos en memoria (IMBD, segn sus siglas en ingls, y tambin
conocida como base de datos en memoria principal o MMDB) es una base de
datos cuyos datos estn almacenados en la memoria principal para facilitar
tiempos ms rpidos de respuesta. Los datos de origen se cargan a la
memoria del sistema en un formato comprimido no relacional. Las bases de
datos en memoria optimizan el trabajo relacionado con el procesamiento de
co Una IMDB es un tipo de base de datos analtica, que es un sistema de
solo lectura que almacena datos histricos sobre indicadores para
aplicaciones de inteligencia empresarial/anlisis de negocios (BI/BA),
usualmente como parte de un almacn de datos o un data mart. Estos
sistemas permiten a los usuarios ejecutar consultas e informes sobre la
informacin contenida, que se actualiza regularmente para incorporar datos
de transaccin recientes de los sistemas operativos de una organizacin.
Adems de brindar tiempos extremadamente rpidos de respuesta a
consultas, la analtica en memoria puede reducir o eliminar la necesidad de
indexar datos y almacenar datos preagregados en cubos OLAP o tablas

agregadas. Esta capacidad reduce los costos de informtica y permite una


implementacin ms rpida de aplicaciones de BI/BA.
Tres avances de aos recientes han hecho de la analtica en memoria algo
ms factible: computacin de 64 bits, servidores multi-core y precios ms
bajos de memoria RAM. nsultas.
2.2.4 Bases de datos as a service
La mayora de los servicios de bases de datos ofrecen consolas web, que el
usuario final puede utilizar para aprovisionar y configurar las instancias de
la base de datos. Por ejemplo, la consola web de Amazon Web Services
permite a los usuarios lanzar instancias de bases de datos, crear
instantneas (similar a las copias de seguridad) de bases de datos y realizar
un seguimiento de las estadsticas de la base de datos.1
Los servicios de las bases de datos consisten en un componente de
administracin que controla las instancias de cada base de datos
subyacente utilizando una API de servicios. La API de servicios se expone al
usuario final, y permite a los usuarios realizar operaciones de
mantenimiento y ampliar sus instancias de la base de datos. Por ejemplo, el
servicio de Amazon Relational Database provee una API que permite crear
una instancia de una base de datos, modificar los recursos disponibles de
cada instancia, eliminar una instancia, la creacin de una instantnea
(similar a una copia de seguridad) de una base de datos y restauracin de
una base de datos a partir de una instantnea.2
Los servicios de las bases de datos mantienen la pila del software
subyacente, transparente al usuario - la pila normalmente incluye el sistema
operativo, base de datos y el software de terceros utilizado por la base de
datos. El proveedor de servicios es responsable de la instalacin, parches y
actualizacin de la pila de software subyacente.
Los servicios de las bases de datos cuidan la escalabilidad y la alta
disponibilidad de la base de datos. Caractersticas de escalabilidad difieren
entre los proveedores - algunos ofrecen auto-escala, mientras que otros
permiten al usuario ampliar mediante una API, pero no escalar
automticamente. Normalmente hay un compromiso para un cierto nivel de
alta disponibilidad (por ejemplo, 99,9% o 99,99%).
3.5 CQL CASSANDRA
Convenios de sintaxis:
Para ayudar en la especificacin de la sintaxis CQL, utilizaremos las
siguientes convenciones en este documento:
Reglas del lenguaje se dan en una notacin BNF-like, con este aspecto:
<Start> ::= <CQL_Statement>*

Smbolos no terminales en las reglas de sintaxis tendrn <angle


brackets> .
Smbolos terminales sern mostrados en "single quotes" .
A modo de notacin BNF acceso directo adicional a, smbolos
opcionales (que pueden ocurrir cero o una vez) ser seguida por una
?. Smbolos opcionales que pueden ocurrir cero o cualquier nmero
de veces que irn seguidas de un *. Mltiples smbolos pueden ser
agrupados juntos en (parntesis) para significar que todos ellos son
opcionales o repetible juntos.
En unos pocos casos donde el significado es ms fcilmente
transportada a travs de la prosa, explicamos un smbolo y su
expansin sin BNF.
El cdigo de ejemplo tambin se muestra en un bloque de cdigo:

SELECT sample_usage FROM cql;

Las referencias a palabras clave o piezas de cdigo CQL en el texto se


mostrarn en una fixed-width font .
Sintaxis general
CQL consiste en sentencias. Al igual que en SQL, algunas declaraciones
hacen directamente cambios en los datos, algunas se ven los datos, y
algunos cambian la forma de datos se almacena.

Todas las declaraciones terminan con un punto y coma.


<CQL_Statement> :: = <statementBody> ";"
;
<StatementBody> :: = <useStatement>
| <SelectStatement>
| <DataChangeStatement>
| <SchemaChangeStatement>
;
<DataChangeStatement> :: = <insertStatement>
| <UpdateStatement>
| <BatchStatement>
| <DeleteStatement>
| <TruncateStatement>
;
<SchemaChangeStatement> :: = <createKeyspaceStatement>
| <CreateColumnFamilyStatement>
| <CreateIndexStatement>
| <DropKeyspaceStatement>
| <DropColumnFamilyStatement>
| <DropIndexStatement>
| <AlterTableStatement>

Los strings y los identificadores (incluidos los nombres de espacio de claves


y familiares columna) entre maysculas y minsculas, pero las palabras
clave CQL no lo son. Mostramos palabras clave CQL en este documento en
UPPERCASE meramente como una convencin para facilitar la lectura.
Los valores literales se pueden expresar de varias maneras en CQL.
<Term> :: = "CLAVE"
| <Identificador>
| <StringLiteral>
| <Entero>
| <Float>
| <Uuid>
;

Un <identifier> es una letra seguida de cualquier secuencia de letras,


dgitos o el guin bajo ( _ ).

Un <stringLiteral> est encerrado en 'single quotes' . Una cita nica


en s se puede representar en una cadena literal con la duplicacin de
ella, como en SQL: 'Single quote -> '' <-' .

Un <integer> consiste en un signo menos opcional ( - ) seguido de


uno o ms dgitos ( 0-9 ).

Un <uuid> se puede expresar en la forma cannica UUID: 32 dgitos


hexadecimales ( 0-9 o af , maysculas y minsculas), separados por
guiones ( - ) despus de los dgitos 8, 12, 16, y
20. Ejemplo:01234567-0123-0123-0123-0123456789ab

Un <float> es una serie de uno o ms dgitos decimales, seguido de


un punto ( . ), Y uno o ms dgitos decimales siguiente. Tenga en
cuenta que no existe ninguna disposicin para la notacin "E", sin
opcionales + signo, y las formas .42 y 42. No se
aceptan. Utilice 0.42 y 42.0 .

El espacio en blanco no es significativo, excepto a los trminos


separados, y literales de cadena en el interior.

Los comentarios en CQL pueden comenzar con un doble guin ( -- ) o una


doble barra ( // ) y se extienden hasta el final de la lnea. Los comentarios
multilnea estn encerrados en /* ... */ .
Tipos de almacenamiento de datos
Sintaxis:
Utilizacin
de fechas

<storageType> ::= "ascii"


| "bigint"
| "blob"
| "boolean"
| "counter"
| "decimal"
| "double"
| "float"
| "int"
| "text"
| "timestamp"
| "uuid"
| "varchar"
| "varint"

Los valores
serializados
con el
tipo timesta
mp se
codifican
como enteros
con signo de
64 bits que
;
representan
un nmero de
milisegundos
desde el momento de base estndar conocido como the epoch: January 1
1970 at 00:00:00 GMT.
Tipos de fecha y hora se pueden introducir en CQL como enteros largos
simples, dando el nmero de milisegundos desde el tiempo, tal como se ha
definido anteriormente.
Tipos de fecha y hora tambin pueden introducirse como literales de cadena
en cualquiera de los siguientes formatos ISO 8601, que representan cada
uno el tiempo y una fecha Jan 2, 2003, at 04:05:00 AM, GMT.:

2011-02-03 04:05+0000

2011-02-03 04:05:00+0000

2011-02-03T04:05+0000

2011-02-03T04:05:00+0000

USE
Sintaxis:
<useStatement> ::= "USE" <term>

La sentencia USE consiste en el uso de palabras clave, seguido de un


nombre de espacio de claves vlidas. Su propsito es asignar espacio de
claves de trabajo actual por conexin. Todas las acciones subsiguientesespacio de claves especficas se llevarn a cabo en el contexto del espacio
de claves seleccionadas, a menos que se especifique lo contrario, hasta que
se emite otra sentencia USE o la conexin termina.
SELECT
Sintaxis:

<selectStatement> ::= "SELECT" <whatToSelect>


"FROM" ( <name> "." )? <name>
( "USING" "CONSISTENCY" <consistencylevel> )?
( "WHERE" <selectWhereClause> )?
( "LIMIT" <integer> )?
;
<whatToSelect> ::= <term> ( "," <term> )*
| ("FIRST" <integer> )? "REVERSED"? <columnRange>
| "COUNT" "(" <countTarget> ")"
;
<columnRange> ::= <term> ".." <term>
| "*"
;
<countTarget> ::= "*"
| "1"
;
<name> ::= <identifier>
| <stringLiteral>
| <integer>
;
<selectWhereClause> ::= <relation> ( "AND" <relation> )*
| <term> "IN" "(" <term> ( "," <term> )* ")"
;
<relation> ::= <term> <relationOperator> <term>
;
<relationOperator> ::= "=" | "<" | ">" | "<=" | ">="
;

Ejemplo:
SELECT Name, Occupation FROM People WHERE key IN (199, 200, 207);
SELECT FIRST 3 REVERSED 'time199'..'time100' FROM Events;
SELECT COUNT(*) FROM system.Migrations;

Un SELECT se utiliza para leer uno o ms registros de una familia de pilares


Cassandra. Devuelve un conjunto de resultados de filas, donde cada fila
consiste en una llave y una coleccin de columnas correspondientes a la
consulta.

Especificando columnas
SELECT col1, col2 FROM ...
SELECT range_lo..range_hi FROM ...
SELECT * FROM ...
SELECT FIRST 4 REVERSED range_hi..range_lo FROM ...

La sentencia SELECT determina qu columnas aparecern en los resultados


y pueden tomar unas cuantas formas diferentes, como se muestra arriba. El
ms simple es una lista separada por comas de nombres de
columna. Observe que los nombres de columna de Cassandra se pueden
especificar con literales de cadena o enteros, adems de identificadores.
Vale la pena sealar que a diferencia de la proyeccin en un SELECT SQL, no
hay garanta de que los resultados contienen todas las columnas
especificadas, porque Cassandra es sin esquema.
Columna de la familia
SELECT ... FROM MyApp.LocationSnapshots ...;
SELECT ... FROM EventTimeline ...;

La clusula FROM se utiliza para especificar la familia de columnas


Cassandra aplicable a un SELECT de la consulta. A diferencia de otras
operaciones en las familias de las columnas, el espacio de claves en los que
la familia existe la columna tambin puede ser especificado por dar su
nombre antes de que el nombre de la familia de columna, y separndolos
por un punto ( . ). Si no se especifica el espacio de claves, se utilizar el
espacio de claves actual, como por normal.
Nivel de coherencia
SELECT ... USING CONSISTENCY QUORUM;

SELECT ... donde key = 11194251 Y startdate = '2011-10-08-0500';


SELECT ... donde key> = 'AM' y KEY = < 'AZ' y el mdulo = 17;
SELECT ... DONDE EN keyalias ( 'key1', 'clave2', 'key3', ...);

Filtrando filas

La clusula WHERE filtra las filas que aparecen en los resultados. La


clusula puede filtrar en un nombre de clave, o el rango de teclas, y en el
caso de las columnas indexadas, en los valores de las columnas. Filtros
clave se especifican utilizando la palabra clave o nombre de la clave alias,

seguido de un operador relacional (uno de = , > , >= , < y <= ), y luego un


valor a largo plazo. Cuando los trminos aparecen en ambos lados de un
operador relacional se supone que el filtro se aplica a una columna
indizada. Con los filtros de ndice de la columna, el trmino de la izquierda
del operador debe ser el nombre de la columna indexada, y el trmino de la
derecha es el valor a filtrar.

Limits
SELECT ... WHERE favoriteArtist = 'The Mighty Mighty Bosstones' LIMIT
90000;

La opcin LIMIT de una expresin SELECT limita el nmero de filas


devueltas por una consulta. LIMIT por defecto a 10.000 cuando se deja sin
establecer.

INSERT
<insertStatement> ::= "INSERT" "INTO" <name>
"(" <term> "," <term> ( "," <term> )* ")"
"VALUES" "(" <term> "," <term> ( "," <term> )* ")"
( "USING" <usingOption> ( "AND" <usingOption> )* )?
;
<usingOption> ::= "CONSISTENCY" <consistencylevel>
| "TIMESTAMP" <integer>
| "TTL" <integer>
;

Ejemplo:
Un INSERT se
INSERT INTO NerdMovies (KEY, 11924)
VALUES ('Serenity', 'Nathan Fillion')
utiliza para
USING CONSISTENCY LOCAL_QUORUM AND TTL 86400;
escribir una o
ms
columnas a
un registro en
una familia
de pilares
Cassandra. N
o se devuelven resultados.
El primer nombre de columna en el INSERT lista debe ser el nombre de la
clave familia de columnas. Adems, tiene que haber ms de un nombre de

columna especificado (filas Cassandra no se consideran de existir slo con


una llave y no hay columnas asociadas).
A diferencia de SQL, la semntica de INSERT y UPDATE son idnticos. En
cualquiera de los casos se crea un registro si antes no exista, y se actualiza
cuando lo hace.
UPDATE
Sintaxis:
<updateStatement> ::= "UPDATE" <name>
( "USING" <usingOption> ( "AND" <usingOption> )* )?
"SET" <assignment> ( "," <assignment> )*
"WHERE" <updateWhereClause>
;
<assignment> ::= <term> "=" <term>
| <term> "=" <term> "+" <term>
| <term> "=" <term> "-" <term>
;
<updateWhereClause> ::= <term> "=" <term>
| <term> "IN" "(" <term> ( "," <term> )* ")"
;

Ejemplo:
Un UPDATE se
UPDATE NerdMovies USING CONSISTENCY ALL AND TTL 400
utiliza para
SET 'A 1194' = 'The Empire Strikes Back',
escribir una o
'B 1194' = 'Han Solo'
ms columnas
WHERE KEY = B70DE1D0-9908-4AE3-BE34-5573E5B09F14;
a un registro
UPDATE UserActionCounts SET total = total + 2 WHERE keyalias = 523;
en una familia
de pilares
Cassandra. No
se devuelven
resultados. La clave de fila se puede especificar utilizando la KEY palabra
clave o por un seudnimo de claves establecido por columna familia.
DELETE
Sintaxis:
<deleteStatement> ::= "DELETE" ( <term> ( "," <term> )* )?
"FROM" <name>
( "USING" <deleteOption> ( "AND" <deleteOption> )* )?
"WHERE" <updateWhereClause>
;
col1, col2,<consistencylevel>
col3 FROM Planeteers USING CONSISTENCY ONE WHERE
<deleteOption> ::=DELETE
"CONSISTENCY"
KEY
=
'Captain';
| "TIMESTAMP" <integer>
DELETE FROM MastersOfTheUniverse WHERE KEY IN ('Man-At-Arms', 'Teela');
;

Ejemplo:

Especificando Filas
La clusula WHERE se utiliza para determinar en qu fila (s) de
un DELETE se aplica. La primera forma permite la especificacin de un nico
DELETE ... WHERE KEY = 'some_key_value';
DELETE ... WHERE keyalias IN (key1, key2);

nombre de clave utilizando la palabra clave (o seudnimo de claves) y el


operador =. La segunda forma permite una lista de trminos nombre de
clave que se especifica mediante la notacin IN y una lista entre parntesis
de trminos nombre de claves delimitados por comas.
3.7 VENTAJAS

Rpidas respuestas aunque la demanda crezca.


Almacenamiento distribuido.
Escalabilidad horizontal (aade nuevo hardware cuando sea preciso).
Orientado a columna familias,
Tolerante a fallos, ya que replica los datos de forma automtica a
mltiples nodos.
Permite replicas a mltiples data centers;
Almacenamiento de los datos tipo column family.
Ausencia de esquemas en los registros de datos.

5. BIBLIOGRAFIA

http://www.genbetadev.com/bases-de-datos/nosql-clasificacion-de-lasbases-de-datos-segun-el-teorema-cap
http://www.ptolomeo.unam.mx:8080/xmlui/bitstream/handle/132.248.
52.100/907/A5.pdf?sequence=5
http://searchdatacenter.techtarget.com/es/definicion/NoSQL-No-SoloSQL
http://searchdatacenter.techtarget.com/es/definicion/Base-de-datosen-memoria
https://es.wikipedia.org/wiki/Base_de_datos_en_la_nube
https://cassandra.apache.org/doc/cql/CQL.html#Syntaxconventions
http://docs.datastax.com/en/cql/3.1/cql/cql_using/about_cql_c.html
https://unpocodejava.wordpress.com/2013/06/18/cassandra-querylanguage-cql/

Vous aimerez peut-être aussi