Modelo Entidad
Modelo Entidad
Modelo Entidad
Ir a la navegaciónIr a la búsqueda
Este artículo o sección necesita referencias que aparezcan en una publicación
acreditada.
Este aviso fue puesto el 6 de octubre de 2011.
Índice
Una persona. (Se diferencia de cualquier otra persona, incluso siendo gemelos).
Un automóvil. (Aunque sean de la misma marca, el mismo modelo,..., tendrán atributos
diferentes, por ejemplo, el número de chasis).
Una casa (Aunque sea exactamente igual a otra, aún se diferenciará en su dirección).
Una entidad puede ser un objeto con existencia física como: una persona, un animal, una
casa, etc. (entidad concreta); o un objeto con existencia conceptual como: un puesto de
trabajo, una asignatura de clases, un nombre, etc. (entidad abstracta).
Una entidad está descrita y se representa por sus características o atributos. Por ejemplo,
la entidad Persona tiene como características: Nombre, Apellido, Género, Estatura, Peso,
Fecha de nacimiento.
Atributos[editar]
Los atributos son las características que definen o identifican a una entidad. Estas pueden
ser muchas, y el diseñador solo utiliza o implementa las que considere más relevantes.
En un conjunto de entidades del mismo tipo, cada entidad tiene valores específicos
asignados para cada uno de sus atributos, de esta forma, es posible su identificación
unívoca.
Ejemplos:
A la colección de entidades «alumnos», con el siguiente conjunto de atributos en común,
(id, nombre, edad, semestre), pertenecen las entidades:
Restricciones[editar]
Son reglas que deben respetar las entidades y relaciones almacenadas en la base de
datos.
Correspondencia de cardinalidades[editar]
Dado un conjunto de relaciones en el que participan dos o más conjuntos de entidades, la
cardinalidad de la correspondencia indica el número de entidades con las que puede estar
relacionada una entidad dada.
Dado un conjunto de relaciones binarias y los conjuntos de entidades A y B, las
cardinalidades pueden ser:
Uno a Uno: (1:1) Un registro de una entidad A se relaciona con solo un registro en
una entidad B. (ejemplo dos entidades, profesor y departamento, con llaves primarias,
código_profesor y jefe_depto respectivamente, un profesor solo puede ser jefe de un
departamento y un departamento solo puede tener un jefe).
Uno a Varios: (1:N) Un registro en una entidad en A se relaciona con cero o muchos
registros en una entidad B. Pero los registros de B solamente se relacionan con un
registro en A. (ejemplo: dos entidades, vendedor y ventas, con llaves primarias,
código_vendedor y venta, respectivamente, un vendedor puede tener muchas ventas
pero una venta solo puede tener un vendedor).
Varios a Uno: (N:1) Una entidad en A se relaciona exclusivamente con una entidad en
B. Pero una entidad en B se puede relacionar con 0 o muchas entidades en A (ejemplo
empleado-centro de trabajo).
Varios a Varios: (N:M) Una entidad en A se puede relacionar con 0 o con muchas
entidades en B y viceversa (ejemplo asociaciones-ciudadanos, donde muchos
ciudadanos pueden pertenecer a una misma asociación, y cada ciudadano puede
pertenecer a muchas asociaciones distintas).
Restricciones de participación[editar]
Dado un conjunto de relaciones R en el cual participa un conjunto de entidades A, dicha
participación puede ser de dos tipos:
Claves[editar]
Es un subconjunto del conjunto de atributos comunes en una colección de entidades, que
permite identificar inequívocamente cada una de las entidades pertenecientes a dicha
colección. Asimismo, permiten distinguir entre sí las relaciones de un conjunto de
relaciones.
Dentro de los conjuntos de entidades existen los siguientes tipos de claves:
Clave primaria: Es una clave candidata, elegida por el diseñador de la base de datos,
para identificar unívocamente las entidades en un conjunto de entidades.
Los valores de los atributos de una clave, no pueden ser todos iguales para dos o más
instancias.
Para poder distinguir unívocamente las relaciones en un conjunto de relaciones R, se
deben considerar dos casos:
R tiene atributos asociados: En este caso, se usa como clave primaria de R la unión
de los atributos asociados y las claves primarias de todos los conjuntos de entidades
participantes.
Si el conjunto de relaciones, R, sobre las que se pretende determinar la clave primaria está
compuesto de relaciones binarias, con los conjuntos de entidades participantes A y B, se
consideran los siguientes casos, según sus cardinalidades:
Diagrama entidad-relación[editar]
Anteriormente detallamos los conceptos relacionados al modelo ER, en esta sección
profundizaremos en como representarlos gráficamente. Cabe destacar que para todo
proceso de modelado, siempre hay que tener en claro los conceptos, estos nos brindan
conocimiento necesario y además fundamentan nuestro modelo al momento de
presentarlo a terceros.
Formalmente, los diagramas ER son un lenguaje gráfico para describir conceptos.
Informalmente, son simples dibujos o gráficos que describen información que trata un
sistema de información y el software que lo automatiza.
Entidades[editar]
Las entidades son el fundamento del modelo entidad relación. Podemos adoptar como
definición de entidad cualquier cosa o parte del mundo que es distinguible del resto. Por
ejemplo, en un sistema bancario, las personas y las cuentas bancarias se podrían
interpretar como entidades. Las entidades pueden representar entes concretos, como una
persona o un avión, o abstractas, como por ejemplo un préstamo o una reserva. Se
representan por medio de un rectángulo. que pueden ser de tipo: maestras,
transaccionales, históricas y temporales.
Atributos[editar]
Se representan mediante un círculo o elipse etiquetado mediante un nombre en su interior.
Cuando un atributo es identificativo de la entidad se suele subrayar dicha etiqueta.
Por motivos de legibilidad, los atributos suelen no aparecer representados en el diagrama
entidad-relación, sino descritos textualmente en otros documentos adjuntos.
Relación[editar]
Describe cierta dependencia entre entidades o permite la asociación de las mismas.
Por ejemplo:
Si tenemos dos entidades, CLIENTE y HABITACIÓN, podemos entender la relación
entre ambas al tomar un caso concreto (ocurrencia) de cada una de ellas.
Entonces, podríamos tener la ocurrencia Habitación 502, de la
entidad HABITACIÓN y la ocurrencia Henry Johnson McFly Bogard, de la
entidad CLIENTE, entre las que es posible relacionar que la habitación 502 se
encuentra ocupada por el huésped de nombre Henry Johnson McFly Bogard.
Diagramas extendidos[editar]
DER extendido
Ejemplo agregación
Es un tipo de relación dinámica, donde el tiempo de vida de una o más
entidades de bajo nivel que están incluidas en una entidad de alto nivel es
independiente a la entidad que la incluye(entidad de alto nivel).
Es una abstracción a través de la cual las relaciones se tratan como entidades
de un nivel más alto. Se utiliza para expresar relaciones entre relaciones o
entre entidades y relaciones. Se representa englobando la relación abstraída y
las entidades que participan en ella en un rectángulo. En la figura se muestra
un ejemplo de agregación en el que se representa la situación en la que un
profesor, cuando está impartiendo una clase, puede poner una incidencia
ocurrida a lo largo de ésta (se fue la luz, falta la configuración de un
determinado software, etc.).
Es una abstracción a través de la cual las relaciones se tratan como entidades de un
nivel más alto. Se utiliza para expresar relaciones entre relaciones o entre entidades
y relaciones. Se representa englobando la relación abstraída y las entidades que
Fundamentos y
participan en ella en un rectángulo.
Modelo entidad-relación ER
El modelo entidad-relación ER es un modelo de datos que permite representar cualquier
abstracción, percepción y conocimiento en un sistema de información formado por un conjunto
de objetos denominados entidades y relaciones, incorporando una representación visual
conocida como diagrama entidad-relación.
Atributos - Intención. Son las características, rasgos y propiedades de una entidad, que toman
como valor una instancia particular. Es decir, los atributos de una tabla son en realidad sus
campos descriptivos, el predicado que permite definir lo que decimos de un determinado
sujeto. Por ejemplo de una entidad o tabla catálogo, se pueden determinar los atributos título,
subtítulo, título paralelo, otras formas del título, autor principal, otras menciones de
responsabilidad, edición, mención de edición, editorial, lugar de publicación, fecha de
publicación,...
Relación. Vínculo que permite definir una dependencia entre los conjuntos de dos o más
entidades. Esto es la relación entre la información contenida en los registros de varias tablas.
Por ejemplo, los usuarios suelen clasificarse según una lista de tipos de usuarios, ya sean
profesores, alumnos o investigadores. De esta forma es posible emitir la relación entre el
usuario Jorge Martínez como alumno y Enrique Valtierra como profesor. Las relaciones son
definidas de forma natural en un diagrama relacional para expresar un modelo cognitivo que
dará lugar posteriormente a las interrelaciones de las entidades.
Interrelación. Las interrelaciones las constituyen los vínculos entre entidades, de forma tal
que representan las relaciones definidas en el esquema relacional de forma efectiva. Esto no
sólo la relación de los registros sino de sus tablas y de las características de la interrelación
entre las entidades, a través de un campo clave que actúa como código de identificación y
referencia para relacionar (es decir, como nexo de unión y articulación de la relación). Los
tipos de interrelaciones entre entidades o tablas se realizan aplicando las reglas de cardinalidad
y modalidad.
Entidades fuertes. Lo constituyen las tablas principales de la base de datos que contienen los
registros principales del sistema de información y que requieren de entidades o tablas auxiliares
para completar su descripción o información. Por ejemplo la tabla usuario es una entidad fuerte
en relación a la tabla tipos de usuarios, que es una entidad débil dada su condición auxiliar
para clasificar a los usuarios registrados en la biblioteca.
Entidades débiles. Son entidades débiles a las tablas auxiliares de una tabla principal a la que
completan o complementan con la información de sus registros relacionados. Por ejemplo
también son consideradas entidades débiles las tablas intermedias que sirven para compartir
información de varias tablas principales.
Atributos – Intención Campos de una tabla id, nombre, apellidos, tipo de usuario, dni, dirección, telé
Interrelación Relación entre tablas Tabla Usuarios relacionada con Tabla Tipo de usuarios
Clave. Es el campo o atributo de una entidad o tabla que tiene como objetivo distinguir cada
registro del conjunto, sirviendo sus valores como datos vinculantes de una relación entre
registros de varias tablas.
Superclave. Es la combinación de campos clave que identifican unívocamente un
registro en una tabla o entidad.
Clave principal primaria. Permiten identificar unívocamente cada registro de una
tabla. Por ejemplo campo auto-numérico interno ID.
Clave candidata. Campos que cumplen las condiciones de identificación única de
registros, pero que no fueron definidos como principales por el diseñador. Por ejemplo el
DOI (Document Object Identifier) es un campo que define unívocamente un registro de un
documento en una tabla o entidad concreta. No obstante a efectos de gestión interna del
sistema el campo principal ID que contiene un valor numérico correlativo, permite un
tratamiento más sencillo que el DOI.
Clave externa. Campo clave conformado por el valor de una clave principal primaria
de otra tabla. Por ejemplo el campo id_tipodeusuario en la tabla usuarios es un campo clave
externo que guarda el valor del campo primario ID de la tabla tipodeusuario, especificando
de esa forma que un usuario como Enrique Valtierra sea de tipo 2 es decir profesor.
Tipos de relaciones
Según cardinalidad. La cardinalidad se representan en un diagrama ER como una
etiqueta que se ubica en ambos extremos de la línea de relación de las entidades y que
puede contener diversos valores entre los que destacan comúnmente el 1 y el *, obteniendo
los siguientes tipos:
o Relación 1 a 1. La relación uno a uno, define que un único registro de la tabla
puede estar relacionado con un único registro de la tabla relacionada.
Figura1. Esquema de relación 1 a 1
Según modalidad
o Optativa. La relación entre un registro de una tabla y varios de la tabla
relacionada, puede existir o no.
o Obligatoria. La relación entre un registro de una tabla y otro de la tabla
relacionada es obligada, debe existir siempre.
Ejemplos
Relación 1 a 1. Cada documento adquirido es registrado podría equipararse a la cardinalidad 1
a 1. Esto significa que cada documento que se introduce en el módulo de adquisiciones (y por
ende en su tabla) tiene su correspondencia con los documentos que finalmente se reciben en
la biblioteca para ser dados de alta en la tabla registro. De esta forma, puede haber o no
documentos en proceso de adquisición (relación optativa). En cambio la tabla registro se
encarga de registrar los documentos que se reciben por lo que su relación es de obligatoriedad
(todo documento registrado está presente en la tabla de adquisiciones). Todo ello no implica
que todos los documentos en fase de adquisición tengan que estar registrados. Pueden existir
documentos en fase de adquisición que no hubieran sido registrados. Véase ejemplo de
la figura5.
Figura5. Los documentos que se adquieren son registrados
Relación 1 a *. Los usuarios de una biblioteca suelen solicitar préstamos, por lo tanto la relación
que se produce es de uno a muchos. Un usuario puede pedir o no el préstamo de uno o varios
libros o documentos. Por lo tanto, pueden existir uno o ningún usuario solicitando el préstamo,
pero para que exista la relación con la tabla préstamos, ésta debe registrar al usuario, su fecha
de préstamo y devolución. Véase figura6. Por otra parte, el préstamo se compone no sólo del
usuario que lo solicita, sino del documento u objeto que le es prestado, que es el caso que se
expone en la figura7. Al igual que en la relación del usuario con la tabla préstamo, un
documento puede o no ser prestado. Un documento puede haber sido prestado y devuelto
muchas veces y para que exista la relación entre la tabla préstamos y catálogo, debe existir un
registro que integre su información (de aquí su modalidad de relación obligatoria). Todo ello
conduce a una relación más compleja que puede observarse en la figura8. Lo que en un
principio se consideraba una relación de 1 a muchos, termina convirtiéndose en una relación
de muchos a muchos gracias a una tabla débil o intermedia que almacena la información
necesaria del usuario y del documento para poder efectuar el préstamo correspondiente. Por
lo tanto la tabla préstamos, relaciona muchos usuarios con muchos libros en múltiples conjuntos
o registros que pueden estar activos o finalizados. Recuérdese que los libros una vez devueltos
vuelven a estar disponibles para dar servicio a terceros usuarios. Por ello se concluye que para
que un préstamo tenga lugar, deberá estar presente el identificador del usuario y del
documento siendo obligatorios en todo proceso de circulación.
Relación * a *. Cuando se catalogan los documentos en una biblioteca, al seguir las indicaciones
de las normas de catalogación, se advierte un apartado de suma importancia; las autoridades.
Éstas definen la responsabilidad intelectual, artística, cognitiva, editorial, administrativa,
introductoria, del documento. Por ello no es de extrañar que en la catalogación los campos de
autoridades sean repetibles, dado que pueden existir 1 o más autoridades. Esta relación es la
que se advierte en la figura9. Cada libro puede tener o no 1 o muchas autoridades. Por lo tanto
una autoridad puede estar presente en varios libros o formar parte de varias responsabilidades
en el mismo.
Figura9. Los libros al ser catalogados pueden tener o no autoridades
La base de datos relacional (BDR) es un tipo de base de datos (BD) que cumple con
el modelo relacional (el modelo más utilizado actualmente para implementar las BD ya
planificadas).
Tras ser postuladas sus bases en 1970 por Edgar Frank Codd,1 de los
laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo
paradigma en los modelos de base de datos.2
Un sistema de software utilizado para mantener las bases de datos relacionales es un
relational database management system (RDBMS) o sistema de gestión de bases de datos
relacionales. Virtualmente, todas los sistemas de bases de datos relacionales
utilizan SQL (Structured Query Language) para consultar y mantener la base de datos.
Índice
1Características comunes
2Elementos
o 2.1Relaciones (características en común)
2.1.1Relaciones base
2.1.2Relaciones derivadas
o 2.2Restricciones
o 2.3Dominios
o 2.4Clasificación de Claves
2.4.1Clave primaria
2.4.2Clave externa o foránea
2.4.3Clave índice
o 2.5Procedimientos almacenados
3Estructura y definiciones
4Manipulación de la información
5Gestores de base de datos relacionales
6Ventajas y desventajas
7Diseño de las bases de datos relacionales
8Véase también
9Referencias
10Enlaces externos
Características comunes[editar]
Una base de datos se compone de varias tablas, denominadas relaciones.
No pueden existir dos tablas con el mismo nombre ni registro.
Cada tabla es a su vez un conjunto de campos (columnas) y registros (filas).
La relación entre una tabla padre y un hijo se lleva a cabo por medio de las claves
primarias y claves foráneas (o ajenas).
Las claves primarias son la clave principal de un registro dentro de una tabla y estas
deben cumplir con la integridad de datos.
Las claves ajenas se colocan en la tabla hija, contienen el mismo valor que la clave
primaria del registro padre; por medio de estas se hacen las formas relacionales.
Elementos[editar]
Véase también: Dato
Una clave primaria es una clave única (puede estar conformada por uno o más campos de
la tabla) elegida entre todas las candidatas que define unívocamente a todos los demás
atributos de la tabla para especificar los datos que serán relacionados con las demás
tablas. La forma de hacer esto (relación entre tablas) es por medio de claves foráneas.
Clave externa o foránea[editar]
Artículo principal: Clave foránea
Una clave foránea es una referencia a una clave en otra tabla, determina la relación
existente en dos tablas. Las claves foráneas no necesitan ser claves únicas en la tabla
donde están y sí a donde están referenciadas.
Por ejemplo, el código de departamento puede ser una clave foránea en la tabla de
empleados. Se permite que haya varios empleados en un mismo departamento, pero
habrá uno y solo un departamento por cada clave distinta de departamento en la tabla de
departamentos.
Clave índice[editar]
Véase también: Índice (base de datos)
Las claves índice surgen con la necesidad de tener un acceso más rápido a los datos. Los
índices pueden ser creados con cualquier combinación de campos de una tabla. Las
consultas que filtran registros por medio de estos campos, pueden encontrar los registros
de forma no secuencial usando la clave índice.
Las bases de datos relacionales incluyen múltiples técnicas de ordenamiento, cada una de
ellas es óptima para cierta distribución de datos y tamaño de la relación.
Los índices generalmente no se consideran parte de la base de datos, pues son un detalle
agregado. Sin embargo, las claves índices son desarrolladas por el mismo grupo de
programadores que las otras partes de la base de datos.
Procedimientos almacenados[editar]
Artículo principal: Procedimientos almacenados
Estructura y definiciones[editar]
Manipulación de la información[editar]
Para manipular la información utilizamos un lenguaje relacional, actualmente se cuenta
con dos lenguajes formales el álgebra relacional y el cálculo relacional. El álgebra
relacional permite describir la forma de realizar una consulta, en cambio, el cálculo
relacional solo indica lo que se desea devolver.
El lenguaje más común para construir las consultas a bases de datos relacionales es
el SQL (Structured Query Language), un estándar implementado por los principales
motores o sistemas de gestión de bases de datos relacionales integradas.
En el modelo relacional los atributos deben estar explícitamente relacionados a un nombre
en todas las operaciones, en cambio, el estándar SQL permite usar columnas sin nombre
en conjuntos de resultados, como el asterisco taquigráfico ( * ) como notación de
consultas.
Al contrario del modelo relacional, el estándar SQL requiere que las columnas tengan un
orden definido, lo cual es fácil de implementar en una computadora, ya que la memoria es
lineal.
Es de notar, sin embargo, que en SQL el orden de las columnas y los registros devueltos
en cierto conjunto de resultado nunca está garantizado, a no ser que explícitamente sea
especificado por el usuario.
Ventajas y desventajas[editar]
Ventajas
Números enteros
Números reales
Cadena de caracteres de longitud variable
Estos tipos simples se denominan tipos atómicos y permiten una
mayor eficacia en el manejo de la base de datos pero a costa de
reducir la flexibilidad a la hora de manejar los elementos complejos
del mundo real y dificultar la gestión de datos espaciales, en general
suponen un problema para cualquier tipo de datos geométricos.
Las relaciones que se establecen entre los diferentes elementos de
dos tablas en una base de datos relacional pueden ser de tres tipos
distintos:
Figura 92: Municipios con crecimiento de población positivo entre 1981 y 1991
NoSQL
Ir a la navegaciónIr a la búsqueda
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.
Los sistemas de bases de datos NoSQL crecieron con las principales redes sociales, como
Google, Amazon, Twitter y Facebook. Estas tenían que enfrentarse a desafíos con el
tratamiento de datos que las tradicionales SGBDR no solucionaban {ver articulo}. Con el
crecimiento de la web en tiempo real existía una necesidad de proporcionar información
procesada a partir de grandes volúmenes de datos que tenían unas estructuras
horizontales más o menos similares. Estas compañías se dieron cuenta de que el
rendimiento y sus propiedades de tiempo real eran más importantes que la coherencia, en
la que las bases de datos relacionales tradicionales dedicaban una gran cantidad de
tiempo de proceso[cita requerida].
En ese sentido, a menudo, las bases de datos NoSQL están altamente optimizadas para
las operaciones recuperar y agregar, y normalmente no ofrecen mucho más que la
funcionalidad de almacenar los registros (p.ej. almacenamiento clave-valor). La pérdida de
flexibilidad en tiempo de ejecución, comparado con los sistemas SQL clásicos, se ve
compensada por ganancias significativas en escalabilidad y rendimiento cuando se trata
con ciertos modelos de datos.[cita requerida]
Índice
Arquitectura[editar]
Típicamente las bases de datos relacionales modernas han mostrado poca eficiencia en
determinadas aplicaciones que usan los datos de forma intensiva, incluyendo el indexado
de un gran número de documentos, la presentación de páginas en sitios que tienen gran
tráfico, y en sitios de streaming audiovisual. Las implementaciones típicas de SGBDR se
han afinado o bien para una cantidad pequeña pero frecuente de lecturas y escrituras o
para un gran conjunto de transacciones que tiene pocos accesos de escritura. Por otro
lado NoSQL puede servir gran cantidad de carga de lecturas y escrituras.
Implementaciones de NoSQL usadas en el mundo real incluyen los 3TB de los marcadores
verdes de Digg (indicados para señalar las historias votadas por otros en la red social;
aunque duró menos de 3 meses y fue abandonado); los 6 TB de la base de datos del
“ENSEMBLE” de la Comisión Europea usado en los modelos de comparación y calidad del
aire, y los 50 TB de la búsqueda de la bandeja de entrada de Facebook.
Las arquitecturas NoSQL frecuentemente aportan escasas garantías de consistencia, tales
como consistencia de eventos o transaccional restringida a ítems únicos de datos. Algunos
sistemas, sin embargo, aportan todas las garantías de los sistemas ACID en algunas
instancias añadiendo una capa intermedia (como por ejemplo, AppScale o CloudTPS). Hay
dos sistemas que han sido desplegados y que aportan aislamiento snapshot para
almacenamientos de columna: El sistema Percolator de Google (basado en el sistema
BigTable) y el sistema transaccional de Hbase desarrollado por la universidad de Waterloo.
Estos sistemas, desarrollados de forma independiente, usan conceptos similares para
conseguir transacciones ACID distribuidas de múltiples filas con garantías de aislamiento
snapshot para el sistema subyacente de almacenamiento en esa columna, sin sobrecarga
extra en la gestión de los datos, despliegue en el sistema de middleware, ni mantenimiento
introducido por la capa de middleware.
Bastantes sistemas NoSQL emplean una arquitectura distribuida, manteniendo los datos
de forma redundante en varios servidores, usando frecuentemente una tabla hash
distribuida. De esta forma, el sistema puede realmente escalar añadiendo más servidores,
y el fallo en un servidor puede ser tolerado.
Algunos defensores de NoSQL promueven interfaces simples tales como los arrays
asociativos o los pares clave-valor. Otros sistemas, tales como las bases de datos nativas
en XML, promueven el soporte del estándar Xquery. Los sistemas más novedosos tales
como CloudTPS también soportan unión de queries.
Ventajas[editar]
Estos sistemas responden a las necesidades de escalabilidad horizontal que tienen
cada vez más empresas.3
Pueden manejar enormes cantidades de datos.
No generan cuellos de botella.
Escalamiento sencillo.
Diferentes DBs NoSQL para diferentes proyectos.
Se ejecutan en clusters de máquinas baratas.
Desventajas[editar]
Existen desacuerdos sobre la neutralidad en el punto de vista de la versión
actual de este artículo o sección.
En la página de discusión puedes consultar el debate al respecto.
Las bases de datos NoSQL al ser de código abierto poseen un soporte diferente al
soporte que ofrecen las compañías comerciales a sus productos. Esto puede
presentar algunas ventajas y también algunas desventajas.
Sistemas[editar]
Tabla Comparativa de SGBD NoSQL[editar]
Nombre Descripción
Base de datos creada por Apache del tipo clave-valor. Dispone de un lenguaje propio
para realizar consultas CQL (Cassandra Query Language). Cassandra es una
Cassandra
aplicación Java por lo que puede correr en cualquier plataforma que cuente con
la JVM. Es multiplataforma.
Base de datos creada por Salvatore Sanfilippo y Pieter Noordhuis y está apoyado
por VMWare. Se trata de una base de datos del tipo clave-valor. Se puede imaginar
como un array gigante en memoria para almacenar datos, datos que pueden ser
cadenas, hashes, conjuntos de datos o listas. Tiene la ventaja de que sus
operaciones son atómicas y persistentes. Sin embargo, Redis no permite realizar
Redis
consultas, sólo se puede insertar y obtener datos, además de las operaciones
comunes sobre conjuntos (diferencia, unión e inserción). Creado en ANSI C, por lo
tanto, es compatible y funciona sin problemas en sistemas Unix, Linux y sus
derivados, Solaris, OS/X, sin embargo no existe soporte oficial para
plataformas Windows.
Base de datos creada por MongoDB Inc. (anteriormente 10gen) del tipo orientada a
documentos, de esquema libre, es decir, que cada entrada puede tener un esquema
de datos diferente que nada tenga que ver con el resto de registros almacenados. Es
bastante rápido a la hora de ejecutar sus operaciones ya que maneja datos binarios.
En poco tiempo, MongoDB se ha convertido en una de las bases de datos NoSQL
MongoDB
favoritas por los desarrolladores. Está escrito en lenguaje C++. Para el
almacenamiento de la información, utiliza un sistema propio de documento
conocido con el nombre BSON, que es una evolución del formato JSON pero con la
peculiaridad de que puede almacenar datos representados de forma binaria. Está
disponible para los sistemas operativos Windows, Linux, OS/X y Solaris.
CouchDB Sistema creado por Apache y escrito en el lenguaje Erlang que funciona en la
mayoría de sistemas POSIX (multiplataforma), incluyendo GNU/Linux y OS/X,
además de sistemas Windows. Como características más importantes cabe destacar
el uso de RESTful HTTP API como interfaz y JavaScript como principal lenguaje de
interacción. Para el almacenamiento de los datos se utilizan archivos JSON. Permite
la creación de vistas, que son el mecanismo que permite la combinación de
documentos para retornar valores de varios documentos, es decir, CouchDB permite
la realización de las operaciones JOIN típicas de SQL.
Neo4j
DEX/Sparksee
AllegroGraph
OrientDB
InfiniteGraph
Sones GraphDB
InfoGrid
HyperGraphDB
Bases de datos clave/valor[editar]
Artículo principal: Base de datos clave-valor
Rocket D3 DBMS
Rocket mvBase DBMS
Rocket U2 Universe
Rocket U2 Unidata
OpenQM
Caché InterSystems
Reality
Jbase
OpenInsight
Extensible storage engine
Bases de datos orientadas a objetos[editar]
Artículo principal: Base de datos orientada a objetos
ObjectDB
Zope Object Database
ZooDB
db4o
GemStone S
Objectivity/DB
Realm.io
Bases de datos tabular[editar]
HBase, de Apache
BigTable, de Google
LevelDB, versión abierta de BigTable
Hypertable
Bases de datos de arrays[editar]
SciDB, de Paradigm4