35 motores de Bases de Datos Open Source

Fantástico el artículo que han preparado en WebResourcesDepot en el cual nos hablan de las grandes posibilidades que tenemos a la hora de elegir un motor de base de datos en el terreno Open Source.

Como indican en el artículo, probablemente conozcáis las principales alternativas (algunas de ellas comerciales):

Como indican en ese texto, es normal que dichas opciones estén tan extendidas: están muy bien documentadas, hay una gran comunidad de usuarios detrás de todas ellas y están muy integradas con la mayoría de CMS del mercado, además de estar disponibles en las principales empresas de hosting. Pero hay todo un mundo de posibilidades que va más allá de esas opciones.

Lo demuestra el citado artículo, del que simplemente haré una adaptación y que os recomiendo visitar. Las 35 alternativas Open Source en este terreno son las siguientes, y antes de nada, permitidme que me disculpe por la traducción. No estoy familiarizado con muchos de los términos que se manejan en el artículo, así que puede que haya metido la pata en alguna descripción:

MongoDB

Es una base de datos Open Source de gran rendimiento, escalable, schema-free (creo que esto se refiere a que no es una base de datos relacional convencional, aunque no estoy del todo seguro) y orientada a documentos (esquemas de datos tipo JSON). Hay drivers preparados para usar esta base de datos desde lenguajes como PHP, Python, Perl, Ruby, JavaScript, C++ y muchos más.

 

Hypertable

Hypertable es un sistema de almacenamiento distribuido de datos de alto rendimiento diseñado para soportar aplicaciones que requieran máximo rendimiento, escalabilidad y eficiencia. Se ha diseñado y modelado a partir del proyecto BigTable de Google y se enfoca sobre todo a conjuntos de datos de gran escala.

Apache CouchDB

Como en el caso de MongoDB, este proyecto está destinado a ofrecer una base de datos orientada a documentos que se pueden consultar o indexar en modo MapReduce usando JavaScript. CouchDB ofrece una API JSON RESTful a la que se puede acceder desde cualquier entorno que soporte peticiones HTTP.

 

 

Neo4j

Es un motor de persistencia completamente transaccional en Java que almacena los datos mediante grafos, y no mediante tablas. Neo4j ofrece una escalabilidad masiva. Puede manejar grafos de varios miles de millones de nodos/relaciones/propiedades en una única máquina, y se puede escalar a lo largo de múltiples máquinas.

 

 

Riak

Riak es una base de datos ideal para aplicaciones web y combina:

  • Una tienda con un valor clave descentralizado
  • Un motor map/reduce flexible
  • Una interfaz de consultas HTTP/JSPN amigable.

Oracle Berkeley DB

Se trata de un motor de bases de datos embebidas que proporciona a los desarrolladores persistencia local, rápida y eficiente con una administración nula. Oracle Berkeley DB es una librería que se enlaza directamente en nuestras aplicaciones y permite realizar llamadas simples a funciones en lugar de enviar mensajes a un servidor remoto para mejorar el rendimiento.

Apache Cassandra

Cassandra es probablemente uno de los proyectos NoSQL más concoidos del mercado. Se trata de una base de datos distribuida de segunda generación con alta escalabilidad que está siendo usada por gigantes como Facebook (que es quien la ha desarrollado), Digg, Twitter, Cisco y más empresas. El objetivo es ofrecer un entorno consistente, tolerante a fallos y de alta disponibilidad a la hora de almacenar datos.

Memcached

Memcached es un almacen del tipo in-memory key-value para pequeñas cadenas de datos arbitrarios (textos, objetos) de resultados de llamadas a base de datos, llamadas a API, o renderizado de páginas. Está orientado a acelerar aplicaciones web dinámicas al aliviar la carga de la base de datos.

 

Firebird

Firebird -no confundir con Firefox- es una base de datos relacional que puede ser utilizada en Linux, Windows y varias plataformas UNIX, y ofrece un alto rendimiento y potente soporte de lenguajes para procedimientos almacenados y triggers.

Redis

Redis es una base de datos avanzada del tipo fast key-value  que está escrita en C y quese puede usar como memcached, por delante de una base de datos tradicional, o bien por sí sola de forma independiente. Tiene soporte para varios lenguajes de programación y se utiliza en proyectos muy populares como GitHub o Engine Yard. También hay un cliente PHP llamado Rediska que permite gestionar bases de datos Redis.

HBase

HBase es u almaceén distribuido del tipo column-oriented que puede ser también denominado como la base de datos Hadoop. El proyecto está dirigido a ofrecer tablas enormes de “miles de millones de filas, y millones de columnas”. Dispone de un gateway RESTful que soporta XML, Protobug y opciones de codificación binaria de datos.

 

 

Keyspace

Se trata de un almacén del tipo key-value con replicación consistente y que funciona sobre sistemas operativos Windows. Keyspace ofrece una alta disponibilidad al enmascarar los fallos de servidor y red y al aparecer como un único servicio de alta disponibilidad.

 

4store

4store es un motor de almacenamiento de bases de datos y de consultas que mantiene datos en formato RDF. Está escrito en ANSI C99, está diseñado para funcionar en sistemas UNIX y ofrece una plataforma de alto rendimiento, escalable y estable.

 

 

 

 

MariaDB

MariaDB es una rama compatible hacia atrás de MySQL® Database Server. Incluye soporte para la mayoría de los motores de almacenamiento Open Source, y además para el propio motor de almacenamiento Maria.

 

 

 

Drizzle

Es un fork de MySQL que se centra en ser una base de datos eficiente y estable, sobre todo optimizada para aplicaciones de Internet y que siguen la filosofía Cloud Computing.

 

 

 

 

HyperSQL

Es un motor de bases de datos relacionales SQL escrito en Java. HyperSQL ofrece un pequeño pero veloz motor de bases de datos que dispone de tablas in-memory y basadas en disco, y que soporta los modos embebido y servidor. Además, dispone de herramientas como una consola de comandos SQL y una interfaz gráfica para las consultas.

MonetDB

MonetDB es un sistema de bases de datos para aplicaciones de alto rendimiento dirigidas a la minería de datos, OAP, GIS, búsquedas XML, y recolección de información a partir de ficheros de texto y multimedia.

 

Persevere

Es un motor de almacenamiento de objetos y un servidor de aplicaciones (ejecutándose en Java/Rhino) que ofrece almacenamiento de datos dinámicos JSON para el desarrollo rápido de aplicaciones de Internet orientadas a datos y basadas en JavaScript.

 

 

 

eXist-db

eXist-db está desarrollada a través de la tecnología XML. Almacena datos CML según el modelo de datos de este estándar, y se caracteriza por un procesado eficiente y basado en índices de XQuery.

 

Otras alternativas

Fuentes

Fuentes Original

Facebook y sus problemas de bases de datos

De acuer­do al pio­ne­ro de bases de datos, Mi­chael Sto­ne­bra­ker, Fa­ce­book opera una gi­gan­tes­ca im­ple­men­ta­ción de MySQL, equi­va­len­te, según sus pa­la­bras, “a un des­tino peor que la muer­te“, y la única ma­ne­ra de salir de este pro­ble­ma es “re­es­cri­bir­lo todo de nuevo“. Cabe de­cir­se que no es un error ne­ce­sa­ria­men­te de Fa­ce­book. Sto­ne­bra­ker dice que el pre­di­ca­men­to de la red so­cial es comín a todos los inicios en la web que em­pie­zan casi de cero y que cre­cen a pro­por­cio­nes épi­cas.

Du­ran­te una en­tre­vis­ta esta se­ma­na, Sto­ne­bra­ker ex­pli­có que Fa­ce­book ha di­vi­di­do la base de datos MySQL en 4000 frag­men­tos, para poder ma­ne­jar la can­ti­dad ma­si­va de datos y que está ac­tual­men­te co­rrien­do 9000 ins­tan­cias (en me­mo­ria caché), para poder li­diar con el nú­me­ro de transac­cio­nes que la base de datos debe ser­vir. Y aun­que hay que co­rro­bo­rar estos nú­me­ros con Fa­ce­book, es evi­den­te que no hay mis­te­rios en la his­to­ria de Fa­ce­book con MySQL. SigueLeyendo…

Monty Widenius: Salvar MySQL

Monty Widenius: salvar MySQL

El compromiso de Oracle con Europa no es suficiente.

Las negociaciones entre la autoridades antimonopolio de la Unión Europea y Oracle empezaban a dar su fruto. La compra de Sun Microsystems por la multinacional fue aprobada en Estados Unidos pero en Europa aún falta ese visto bueno. Desde aquí la cosa se veía diferente pues la adquisición dejaba en manos (y de hecho es donde está) el futuro de MySQL, una herramienta de código abierto, asequible, imprescindible para explicar el desarrollo de las páginas dinámicas en la historia de Internet. Sigue leyendo

Base de datos relacional – MySQL – como servicio de Amazon

Data Center en la nube

Amazon da un nuevo paso en su rol como gran innovador en la infraestructura como servicio, anuncia el lanzamiento de base de datos relacionales – MySQL como servicio. La idea – como en el resto de sus web services – es que Amazon hospeda la base de datos del cliente, a la que se accede a través de un API. Con este movimiento ya ofrecen tres modos de almacenamiento: S3 para ficheros, SimpleDB y ahora relacional / MySQL.

Sigue leyendo

Instalar MySQL (Documentación)

INTRODUCCIÓN

MySQL es actualmente el sistema de administración de bases de datos SQL mas popular en el Open Source, ya que es ampliamente utilizado en los desarrollos web gracias a su rapidez, estabilidad y a su integración con otros lenguajes de scripting como por ejemplo PHP.

En este documento se pretende dar una introducción básica a su instalación y configuración inicial en sistemas GNU/Linux, esto no quiere decir que es una guia avanzada para su configuración, con el tiempo este documento se ira extendiendo en capítulos mas avanzados.

Ya que MySQL es actualmente distribuido por la mayoría de distribuciones Linux podrás instalarlo desde los paquetes binarios de tu distribución preferida, en este documento se trabajara sobre la distribución Slackware 10.1, para otras distribuciones ver el apéndice que sera agregado próximamente, es recomendable utilizarla version mas actualizada de los paquetes para no estar vulnerables a bugs o otro tipo de fallas.

Informacion sobre el prompt

Cuando vean el símbolo “#” al inicio de el prompt, por ejemplo:

# installpkg mysql-4.0.20-i486-1.tgz

Significa que el comando debe de ser ejecutado como el usuario administrador de el sistema en los unix/linux, es el usuario root.

Cuando vea el símbolo “$” al inicio de el prompt, por ejemplo:

SigueLeyendo Vía: tuxjm.net

Conectar Java con MySQL

Hoy vamos a ver como podemos crear un aplicativo en java que se conecte a una base de datos MySQL y nos cargue unos datos en una interfaz gráfica sencilla.


Para este ejercicio se ha creado una base de datos llamada clase que tiene tres tablas: estudiante, asignatura y nota; para la creación de estas tablas ejecutamos este script de la base de datos. SigueLeyendo…

Cómo instalar y configurar un Servidor Web en Windows con Apache y PHP-Nuke

A continuación mostramos un artículo/manual/ instrucciones sobre cómo instalar y configurar un Servidor Web en Windows con su correspondiente Sitio Web con Apache (Servidor Web), PHP (lenguaje de programación), MySQL (Base de Datos) y PHP-Nuke (Gestor de Contenidos).

Nota: Todos los componentes son gratuitos.

SigueLeyendo en AjpdSoft.com

Funciones MySQL

Tabla de Contenidos

  • mysql_affected_rows — Devuelve el número de filas afectadas de la última operación MySQL
  • mysql_change_user — Cambia el usuario conectado en la conexión activa
  • mysql_client_encoding — Devuelve el nombre del juego de caracteres
  • mysql_close — cierra el enlace con MySQL
  • mysql_connect — Abre una conexión a un servidor MySQL
  • mysql_create_db — Crea una base MySQL
  • mysql_data_seek — Mueve el puntero interno
  • mysql_db_name — Obtener datos de resultado
  • mysql_db_query — Envia una sentencia MySQL al servidor
  • mysql_drop_db — Borra una base de datos MySQL
  • mysql_errno — Deuelve el número del mensaje de error de la última operación MySQL
  • mysql_error — Devuelve el texto del mensaje de error de la última operación MySQL
  • mysql_escape_string — Escapa una cadena para su uso en mysql_query
  • mysql_fetch_array — Extrae la fila de resultado como una matriz asociativa, una matriz numérica o ambas
  • mysql_fetch_assoc — Recupera una fila de resultado como una matriz asociativa
  • mysql_fetch_field — Extrae la información de una columna y la devuelve como un objeto.
  • mysql_fetch_lengths — Devuelve la longitud de cada salida en un resultado
  • mysql_fetch_object — Extrae una fila de resultado como un objeto
  • mysql_fetch_row — Devuelve una fila de resultado como matriz
  • mysql_field_flags — Devuelve las banderas asociados con el campo específicado en un resultado
  • mysql_field_len — Devuelve la longitud del campo específicado
  • mysql_field_name — Devuelve el nombre del campo específicado en un resultado
  • mysql_field_seek — Asigna el puntero del resultado al offset del campo específicado
  • mysql_field_table — Devuelve el nombre de la tabla donde está el campo específicado
  • mysql_field_type — Devuelve el tipo del campo específicado en un resultado
  • mysql_free_result — Libera la memoria del resultado
  • mysql_get_client_info — Obtener información del cliente MySQL
  • mysql_get_host_info — Obtener información de la máquina anfitriona MySQL
  • mysql_get_proto_info — Obtener información del protocolo MySQL
  • mysql_get_server_info — Obtener información del servidor MySQL
  • mysql_info — Obtiene información sobre la consulta más reciente
  • mysql_insert_id — Devuelve el identificador generado en la última llamada a INSERT
  • mysql_list_dbs — Lista las bases de datos disponibles en el servidor MySQL
  • mysql_list_fields — Lista los campos del resultado de MySQL
  • mysql_list_processes — Lista los procesos MySQL
  • mysql_list_tables — Lista las tablas en una base de datos MySQL
  • mysql_num_fields — devuelve el número de campos de un resultado
  • mysql_num_rows — Devuelve el número de filas de un resultado
  • mysql_pconnect — Abre una conexión persistente al servidor MySQL
  • mysql_ping — Efectuar un chequeo de respuesta (ping) sobre una conexión de servidor o reconectarse si no hay conexión
  • mysql_query — Envía una consulta de MySQL
  • mysql_real_escape_string — Escapa caracteres especiales de una cadena para su uso en una sentencia SQL
  • mysql_result — Devuelve datos de un resultado
  • mysql_select_db — Selecciona un base de datos MySQL
  • mysql_set_charset — Sets the client character set
  • mysql_stat — Obtener el status actual del sistema
  • mysql_tablename — Devuelve el nombre de la tabla de un campo
  • mysql_thread_id — Devuelve el ID del hilo actual
  • mysql_unbuffered_query — Envía una consulta SQL a MySQL, sin recuperar ni colocar en búfer las filas de resultado

Via | PHP  <<– Entra aqui para ver el contenido de cada uno de los comando.

Conectar remotamente a My SQL con MS Access

Vamos a ver como conectarnos a una base de datos MySQL que está en un servidor remoto mediante un cliente Windows con MS Access. Para ello deberemos tener instalado en nuestro cliente Windows el driver MyODBC.

Lo primero, es lo primero, arrancar MS Access, después en el menú “Archivo“, pinchamos en “Abrir“, con lo que se nos abre la, pinchamos en “Abrir“, con lo que se nos abre la  caja de diálogos “Abrir” y en campo “Tipo de archivo” seleccionamos “ODBC Databases“.

 

 Ahora debemos seleccionar el origen de los datos (la conexión) al que nos vamos a conectar, pinchamos en la lengüeta de “Origen de datos de equipo” y escogemos el “Windows DNS name” que bien creamos en la instalación de MyODBC o desde el Panel de Windows en “Control en Fuente de datos ODBC“.

Una vez realizada la conexión a nuestra base de datos remota MySQL, debemos escoger las tablas a vincular. 

Si las tablas no tienen una clave primaria, MS Access nos pedirá que elijamos una, sino escogemos ninguna no podremos realizar modificaciones sobre la tabla. 

Pues bien ya tenemos nuestra conexión establecida. Cabenemos nuestra conexión establecida. Cabe que recordar que para poder modificar las tablas hay que tener los permisos pertinentes como usuario de MySQL.

 

Los 10 articulos de Base de Datos MySql más Leidos.

1

  Tutorial básico de MySQL

 

2

  MySQL con Java en MS Windows

 

3

  Extrayendo información de una base de datos

 

4

  Integridad referencial en MySQL

 

5

  Normalización de bases de datos

 

6

  Tipos de datos en MySQL

 

7

  Tutorial básico de MySQL – II

 

8

  Principios de diseño de bases de datos

 

9

  Clientes gráficos para MySQL

 

10

  Introducción a MySQL