Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Orientación de ayuda: ¿Que tipo de base de datos escoger para mi proyecto?

Iniciado por ZOOSTAGE, Abril 16, 2016, 03:41:24 PM

Tema anterior - Siguiente tema
¿Que  tipo de base de datos escoger para mi proyecto?Buenas a todos me gustaría hacer una breve introducción de ayuda para la gente que duda que tipo de base de datos coger para su proyecto y voy a plantear tres opciones validas dependiendo de lo que se necesite hacer.Existen 3 opciones recomendadas : (Bajo mis 11 años de experiencia)

MYSQL (La mas común y seguramente que todos utilicéis)
MARIA DB
MONGODB
Como muchos sabréis existen bases de datos Relacionales y no relacionales, ¿Que es esto? las bases de datos relacionales son todas aquellas que puedes relacionar información entre ellas en una misma consulta y que puedes segmentar y ordenar la información muchas mas eficiente y estructurada dividiéndola en tablas y campos, y por otro lado tenemos las bases de datos no relacionales que son todo lo contrario no puedes relacionar información entre ellas de manera directa.Mysql y Maria db son bases de datos entre otras RELACIONALES.
MONGODB entre otras son bases de datos NO RELACIONALES.¿Y cuales son las ventajas de estas ultimas si con las otras no puedo relacionar datos?
Las bases de datos no relacionales son utilizadas muchos para el BIG DATA la entrada masiva de datos ya que no existe limitaciones de conexiones simultaneas o paradas temporales por actualización o inserción de datos evitando así cuellos de botella. Para que os hagáis una idea una base de datos no relacional (MONGODB) puede aguantar a 6000 personas insertando a la vez sin que se sobrecarga el sistema, sin embargo una base de datos relacional  como MYSQL solo podría soportar en los mejor de los casos a 300.¿RELACIONAMIENTO ENTRE TABLAS, ejemplo practico (MYSQL)?
Por ejemplo necesitas coger de la tabla usuario la id y el nombre y luego por esa id buscar en el inventario, por esa id coges todas las id de objetos que están en la tienda y todos en una misma QUERY.¿NO RELACIONAMIENTO ENTRE TABLAS, ejemplo practico (MONGO)?
Si necesitas que constantemente se este guardando información en la base de datos así como extrayendo la sin que se generen cuellos de botella por saturacion. ¿Cual es mejor?No existe una favorita, la clave es saber que necesitas para tu proyecto, si lo que necesitas es GRAND PERFORMANCE e insertar y consultar muchos datos de una forma rápida MONGODB (no relacional) Si por el contrario necesitas RELACIONAR datos y una arquitectura compleja MYSQL O MARIA. Diferencias entre MYSQL Y MARIALa mysql ya la conocemos todos ya que es la mas utilizada por su sencillez, pues de los creadores de MYSQL llego MARIA DB al vender la patente de mysql los mismos tios decidieron crear MARIA que basicamente una copia de mysql pero mejorada orientada las a la clusterizacion.https://www.mongodb.com/">https://www.mongodb.com/
https://mariadb.org/">https://mariadb.org/
https://www.mysql.com/">https://www.mysql.com/Bueno espero que te servio de orientación a la hora de elegir un sistema de base de datos para tu proyecto.En mi experiencia diaria utilizado mas: mongodbSaludos
CEO
ZOORARE



Muy interesante este hilo. Yo también tengo una larga experiencia en BBDD. Estoy certificado desde Oracle 8.1 y conozco muy bien el entorno de BI. Certificado en SAP BO, experiencia en Micro, Cognos, QlikView, ...Tengo experiencia en mySQL como todo hijo de vecino pero no conozco MongoDB y me gustaría que nos aportaras algo más de información respecto a tu experiencia. Leyendo en wiki habla de ciertos problemas de consistencia, sea por bloqueo, por que no soporta ACID o porqué devuelve el control antes de la escritura. Qué nos puedes decir de ésto?Otro apartado por el cual la veo muy interesante es el tratamiento de JSON dinámico que realiza. Desde el punto de vista de PHP o de Unity, en qué nos puede beneficiar respecto al JSON tradicional?También, y ya para terminar, el tener conectores de BI la hace especialmente interesante para mí.Muchas gracias

Bueno vamos a ver, lo que hace mongodb única es su forma de tratar los datos aquí ya no hablamos de tablas si no de colecciones como su nombre indica son colecciones de datos construidos en JSON tradicional por lo que podemos realizar una consulta y obtener directamente un JSON para el tratamiento de datos sin conversión.Otra cosa interesante es su seguridad ya olvidamos las inyecciones y cosas así que siempre nos han traído de cabeza en mysql.Curiosidad:
MONGODB 
no hace falta seguir una estructura estatica en cada colección es decir por ejemplo en mysql podríamos tener 19 campos que se van a repetir siempre contengan o no contengan información, en mongo no es así solo se crea los campos que contienen información por lo que se optimiza mucho mas. Otro dato curioso es que es capaz de crear colecciones (tablas) al vuelo sin que existan previamente y así de la misma forma puede crear campos por lo que en un bloque de información podemos tener 5 campos en el siguiente 3 y en el siguiente 5 es totalmente dinámica.De este modo yo puedo hacer directamente a una colección vacía un insert de este modo y lo creara automáticamente, expongo un ejemplo de un bloque de información en mongo:
{
  Nombre: "Pedro",
  Apellidos: "Martínez Campo",
  Edad: 22,
  Aficiones: ["fútbol","tenis","ciclismo"],
  Amigos: [
   {
   Nombre:"María",
   Edad:22
   },
   {
   Nombre:"Luis",
   Edad:28
   }
  ]
}
Normalmente hoy en día se utiliza siempre JSON para tener una estructura de datos y la mayoría de gente utiliza mysql por lo que tiene que luego estructurar los datos en JSON y convertir par luego parsear es un poco absurdo realizar este proceso cuando puedes trabajar directamente.Pero que la hace tan especial aparte de todas las ventajas que comento.Pues como dije en el anterior post lo que la hace tan especial es un performance su gran alcance de rendimiento y estabilidad. Otra de las ventajas es que podemos atacar la base de datos por consola directamente sin necesidad de un servidor web. He aqui una cosulta de una simple busqueda de informacion:

db.genbetadev.find({ "_id" : 3, "nombre" : "Cecilio Álvarez", "publicados" : 25 }).skip(2);Sobre tu miedo o inquietud sobre ACID Las tradicionales http://es.wikipedia.org/wiki/ACID" rel="external nofollow">características ACID de las bases de datos relacionales no son una premisa para los nuevos gestores de información así que yo no me preocuparía por esoEspero que sea util.
 

¿Podrías añadir, de paso, qué asset o complemento de Unity recomiendas para trabajar con una u otra?

GraciasEl apartado que más me atrae es el JSON y minimizar el parsing en mobile. Conoces algún hosting (nacional o no) que la soporte?

Etiquetas: