Cómo elegir la base de datos open source más adecuada. Haremos una presentación comparativa de los motores de Bases de Datos más populares como son MySQL, MariaDB, PostgreSQL y el pequeño SQLite.
4. SGBD
Sistema Gestor de Base de Datos: Es un software que permite
la creación de bases de datos su interacción con los usuarios. Se
encarga de proporcionar acceso a los datos, persistencia y
capacidad de manipulación a los usuarios.
- Relacionales
- No relacionales (NoSQL)
SGBD
5. SGBD
Aparecen a mediados de los 70.
- System R (IBM DB2)
- INGRES
La estandarización del lenguaje SQL se produjo en 1979 y fue
adoptado como lenguaje para el acceso a los datos en las bases
de datos relacionales.
Sistemas relacionales
7. SQLite
SQLite es un sistema gestor de base de
datos escrito en C, que requiere recursos
mínimos para funcionar.
Su código ocupa menos de 300 KB, por lo que se encuentra
presente en multitud de software:
La base de datos más usada en el mundo
- Navegadores
- Aplicaciones móviles
- Televisiones
- Skype
- iTunes
- Dropbox
- PHP
- Python
8. SQLite
SQLite no necesita nada para funcionar. No es necesario instalar
programas adicionales, motores de base de datos, ni librerías en
muchos casos.
- Está disponible desde PHP 5.3
- Usa el sistema de archivos para almacenar la información
Disponible "by default"
9. SQLite
Es un cliente por línea de comandos para acceder a las bases de
datos SQLite. Está disponible en cualquier ordenador Mac.
$ sqlite3 nombre_archivo
create table usuarios (nombre varchar(100), edad smallint);
insert into usuarios values ('Miguel Angel', 45);
select * from usuarios;
.quit
SQLite CLI
10. SQLite
Existe un completo API para trabajar con SQLite en PHP. Con
soporte a funcionalidades bastante avanzadas para ser un SGBD
tan elemental.
SQLite PHP
12. MySQL
Es la base de datos open source
más popular.
la clave de su éxito es formar parte del stack LAMP. Con PHP es
un tándem muy usado y casi un estándar en la mayor parte de
los alojamientos web.
Uso correcto de MySQL:
https://www.youtube.com/watch?v=dvXC59PnJF4
MySQL
13. MySQL
En 2005 Versión 4.1 MySQL introduce la integridad referencial *
En 2008 Sun Microsystems compró MySQL AB por 1.000 millones.
En 2009 Oracle compró a Sun Microsystems (Java, Solaris,
MySQL)
2010 Mysql presenta la versión 5.5. El motor de almacenamiento
de MySQL predeterminado pasa a ser InnoDB.
Evolución de MySQL
14. MySQL
MySQL tiene una licencia dual.
- Community: (GNU GPL) que obliga a que cualquier producto
derivado se realice bajo esta misma licencia.
- Enterprise: Licencia comercial.
Licencia de MySQL
Cualquier software que use MySQL y no pueda ser
publicado bajo licencia GNU GPL debe de adquirir una
licencia de MySQL para poder usar la base de datos.
16. MariaDB
MariaDB es un SGBD, fork de MySQL,
focalizado en servir de reemplazo
completo de MySQL.
MariaDB
Después de la compra por parte de Oracle los creadores de
MySQL decidieron continuar su camino de manera independiente.
- Mantener MariaDB con una licencia GNU General Public License.
- Asegurar compatibilidad con MySQL, comandos, API, Drivers
- Donde use MySQL puedo usar MariaDB
17. La licencia de MariaDB ha provocado que muchas empresas que
usaban MySQL en diversas aplicaciones hayan migrado a MariaDB.
- Google
- Wikipedia
- BlaBlaCar
- Walmart
MariaDB
Empresas que usan MariaDB
18. MariaDB ha aportado grandes avances al SGBD. Llegado un
momento abandonaron la secuencia de versiones de MySQL.
MariaDB
Versiones de MariaDB
Wikipedia
19. - Se ejecutan en el mismo puerto
- El cliente se llama igual, se invoca igual
- Binarios iguales, incluso mysql_secure_installation
- Soporte SQL prácticamente idéntico
- Drivers de lenguajes compatibles: PHP, Python, Node...
MariaDB
Similitudes
20. - Motores de almacenamiento de MariaDB son más numerosos
- API's diversas
https://mariadb.com/kb/en/incompatibilities-and-feature-differences-between-mariadb-105-and-mysql-80/
MariaDB
Diferencias
Sin embargo, ambos motores de bases de datos se
retroalimentan, ya que características actuales de uno son
features futuras de otro motor, cuando se consideran
suficientemente estables y demandadas por la comunidad.
22. PostgreSQL
PostgreSQL
Es el SGBD open source más potente, no
solo por su funcionalidad, sino por su
resistencia y disponibilidad.
Su nombre viene de Post-Ingress, ya que sus creadores son los
creadores de la base de datos Ingress.
El proyecto actualmente tiene más de 20 años de desarrollo.
23. PostgreSQL
Características PostgreSQL
- Licencia única BSD sin límites.
- PostgreSQL es objeto-relacional capaz de manejar datos
complejos: IP, Polígonos, XML, JSON… extensible
- Existen distribuciones de PostgreSQL especializadas.
- Procedimientos almacenados en tu propio lenguaje
- Calendario de versiones definido a 5 años y soporte extra
ofrecido por terceras empresas.
- Herramientas para replicación, disponibilidad, escalabilidad
24. MariaDB
A nivel de desarrollo no nos debe de preocupar, ya que usa
estándares como SQL, por lo que el trabajo habitual se hacer de
manera muy similar.
A nivel de administración de la base de datos es donde requiere
mayor conocimiento para configurar y optimizar a las
necesidades de los proyectos.
Base de datos compleja
28. Elección
Cuándo elegir SQLite
Es una base de datos "serverless", ligera, rápida.
Por sus características la usaremos cuando no tenemos
posibilidad de usar otra base de datos más avanzada y siempre
que tengamos pocas necesidades de volumen y funcionalidad.
- Alojamiento sin soporte a base de datos
- Aplicación móvil
- Etapa de desarrollo
29. Elección
Cuándo elegir MySQL
Hoy es una base de datos avanzada. Capaz de soportar un
elevado volumen. Es rápida y configurable.
- Alojamiento compartido
- Aplicaciones pequeñas, medianas y grandes
- No nos importa la licencia
- No es una aplicación de misión crítica
30. Elección
Cuándo elegir MariaDB
Es una base de datos pensada para reemplazar MySQL.
- Cuando es adecuado usar MySQL
- Nos importa la licencia
- Queremos usar motores de almacenamiento diferentes, no
soportados todavía por MySQL y que ofrezcan
características que necesitamos.
- Siempre que tengamos un servidor propio (VPS para arriba)
31. Elección
Cuándo elegir PostgreSQL
Es una base de datos enfocada a un ambiente empresarial.
- Cuando requerimos:
- Flexibilidad
- Escalabilidad
- Rendimiento
- Tolerancia a fallos, aplicaciones de misión crítica
- Volumen grande y enorme de la información, Big Data.
- Su mejor cara la encontramos en aplicaciones exigentes
32. Elección
Abstracción de bases de datos
En un desarrollo ideal es importante usar librerías de abstracción
de base de datos, como PDO en PHP o KNEX.JS para NodeJS.
Nos aseguran que si necesitamos cambiar la base de datos en un
futuro podamos hacerlo sin cambiar el código de la aplicación.