Curso Python. Volumen XV: Bases de Datos
Bienvenidos un día más al curso de Python, hoy os vamos a introducir en el mundo de las bases de datos. Hoy os contaremos las herramientas que vamos a utilizar. Las bases de datos son muy extensas y nos vamos a centrar en las bases de datos “NoSQL” que están tan de moda ahora, para ser exactos utilizaremos la base de datos “MongoDB”.
Utilizaremos “MongoDB” por ser una de las bases de datos más utilizadas dentro de las “NoSQL”. Así que pongámonos manos a la obra.
¿“SQL” vs “NoSQL”?
Durante mucho tiempo sólo han existido las bases de datos “SQL”, debido a la necesidad de tener que almacenar estructuras de datos cada vez más complejas nacieron las bases de datos “NoSQL”. Las bases de datos “NoSQL” permiten al desarrollador almacenar información heterogénea y sin estructura.
A continuación os exponemos algunas diferencias entre los dos tipos de bases de datos:
SQL
- Es un modelo relacional.
- La información se almacena en tablas.
- Solución apta cuando todos los registros son de la misma clase y tienen las mismas propiedades.
- Añadir una nueva propiedad obliga a modificar toda la estructura.
- El esquema de la base de datos es muy estricto.
- Las transacciones “ACID” son soportadas.
- Escala bien de forma vertical.
NoSQL
- Es un modelo no relacional.
- Se debe almacenar como “JSON”, clave-valor, etc. (depende del tipo de base de datos “NoSQL”).
- No todos los registros tienen que ser iguales, lo que la convierte en una base de datos muy flexible.
- Se puede agregar una propiedad a los datos sin modificar la estructura.
- No requiere de esquema.
- También soporta transacciones “ACID” aunque esto depende de qué base de datos “NoSQL” se use.
- La consistencia puede variar.
- Escala bien de forma horizontal.
Como podemos comprobar las dos tienen sus ventajas e inconvenientes, el decidirse por un tipo u otro dependerá del proyecto que se vaya a realizar.
“MongoDB” aparte de ser una base de datos “NoSQL” está orientada a documentos, esto quiere decir que los registros los guarda en documentos cuya estructura es un “JSON”. Se trata de una base de datos “open source”, por lo que nos podremos descargar todas las herramientas de manera gratuita.
Instalación
Lo primero que tendremos que hacer será dirigirnos la página de “MongoDB” y nos descargaremos el software necesario. Para ello una vez que entremos en el portal pulsaremos en descargar que se encuentra en la esquina superior derecha.
En nuestro caso hemos dejado la opción por defecto para descargar ya que nuestro ordenador es un Windows 10 x64.
Una vez hayáis pulsado en “descargar” os saldrá un cuestionario como el que os mostramos a continuación:
Comentaros que no es obligatorio el registrarnos ya que como habéis podido comprobar se habrá iniciado la descarga de manera automática. Una vez que se haya descargado el fichero procederemos a instalarlo, para ello lo ejecutamos y seguimos las instrucciones como en cualquier otro instalador que hayáis utilizado.
Una vez hayamos aceptado las condiciones de uso nos saldrá la siguiente pantalla:
En ella pulsaremos “complete” y de ese modo dejaremos la instalación por defecto, si se quiere cambiar la ubicación o alguna de las opciones sólo hay que pulsar en “Custom”. Durante este curso, nosotros realizaremos la instalación por defecto.
Pulsamos “Install”, nos saldrá que si le damos permiso de ejecución a lo que pulsaremos que sí. Y de este modo empezará a instalarse.
Una vez finalice nos mostrará la siguiente ventana:
Una vez que haya finalizado abriremos un “cmd” y podremos el siguiente comando:
md \data\db
Esto nos creará un directorio en “C:” para que “MongoDB” pueda guardar los datos. Luego únicamente tendremos que ir a la ruta donde se ha instalado:
“C:\Program Files\MongoDB\Server\3.4\bin\”
Y ejecutar “mongod.exe”, es probable que os salga una alerta de seguridad para dar permisos a “MongoDB”, hay que concedérselos y ya tendremos el servidor funcionando.
Esto es todo por hoy, os dejamos realizando la instalación de esta base de datos. En la próxima entrega os enseñaremos cómo podemos utilizar este tipo de base de datos en Python. Recordamos a todos los que se acaban de unir al curso que tienen un índice del curso, ya que nunca es tarde para empezar.
Via: www.redeszone.net