No soy un experto en bases de datos, así que tome esta respuesta con una pizca de sal. Sus elecciones son:
- Un RDBMS basado en cliente-servidor, como MySQL, MSSQL, Oracle, PostgreSQL, etc. Son sólidos, en uso de producción durante mucho tiempo, pero necesitan configuración y administración. Son versátiles: pueden administrar múltiples bases de datos desde una sola instancia del servidor. Se puede ampliar agrupando. Apoyarán la redundancia.
- Una base de datos SQL basada en archivos, como SQLite 3. No necesitan mucha configuración o administración. Trabaja satisfactoriamente para bases de datos pequeñas. Un archivo puede almacenar una base de datos. En realidad, son bibliotecas con una API y se incrustan en su aplicación. Fácil de usar, pero solo para proyectos pequeños. Pero puede ser necesario para dispositivos móviles. Hay otros similares a SQLite: Berkeley DB. No admiten redundancia o ampliación de escala.
- No hay bases de datos SQL ni bases de datos de documentos, como MongoDB. Tienen un esquema flexible, directamente mapeado a estructuras de datos (como diccionarios) en lenguajes de programación. Soporta redundancia y escala bien. Son el nuevo chico de la cuadra.
Con los dos primeros, los programadores usan directamente SQL o capas de abstracción:
DAL (Capa de abstracción de la base de datos) hace que el programa sea independiente de la base de datos real que utilizará el programa. Es decir, puede cambiar el servidor de base de datos back-end sin modificar su programa. Pero el programa tendrá sentencias SQL incrustadas en llamadas a funciones.
- ¿Qué oportunidades hay para un desarrollador front-end más fresco en Bangalore?
- ¿Cómo se maneja el alojamiento web / dominio en la relación cliente / desarrollador?
- ¿Es una buena idea construir un subdominio en una plataforma diferente?
- ¿Debo aprender HTML o HTML5?
- ¿Cuál es el mejor editor / IDE para PHP?
ORM (Object Relational Manager) hace que el programa sea independiente tanto de la base de datos del backend como de evitar sentencias SQL en llamadas a funciones. Se crea un conjunto de objetos y métodos que reflejan las tablas y relaciones en la base de datos y se accede a la base de datos a través de los objetos y sus métodos. El patrón de diseño común para esto es el ActiveRecord, y es implementado por varias bibliotecas en muchos lenguajes de programación.
A los efectos de DAL y ORM, todos los RDBMS, basados en servidor o en archivo, parecen iguales. Las bases de datos NoSQL no necesitan ORM especiales (en lo que respecta a mi conocimiento limitado, corríjame si me equivoco), esto está integrado en el diseño de las bases de datos NoSQL.