Saltear al contenido principal

Bases de datos – Lenguaje Python

Una base de datos es una abstracción sobre el sistema de archivos de un sistema operativo que facilita a los desarrolladores la creación de aplicaciones que crean, leen, actualizan y eliminan datos persistentes.

Contrata a un experto en Python para iniciar tu proyecto hoy mismo:

Los logotipos de PostgreSQL, SQLite y MySQL tienen copyright de sus respectivos propietarios.

¿Por qué son necesarias las bases de datos?

En un alto nivel, las aplicaciones web almacenan datos y los presentan a los usuarios de una manera útil. Por ejemplo, Google almacena datos sobre carreteras y proporciona direcciones para llegar de un lugar a otro conduciendo por ela solicitud de Mapas. Las direcciones de conducción son posibles porque los datos se almacenan en un formato estructurado.

Las bases de datos hacen que el almacenamiento estructurado sea confiable y rápido. También le brindan un marco mental sobre cómo se deben guardar y recuperar los datos en lugar de tener que averiguar qué hacer con los datos cada vez que se crea una nueva aplicación.

Bases de datos relacionales

La abstracción de almacenamiento de base de datos más comúnmente utilizada en el desarrollo web de Python son los conjuntos de tablas relacionales. Las abstracciones de almacenamiento alternativas se explican en la página NoSQL.

Las bases de datos relacionales almacenan datos en una serie de tablas. Las interconexiones entre las tablas se especifican como llaves extranjeras. Una clave externa es una referencia única de una fila en una tabla relacional a otra fila en una tabla, que puede ser la misma tabla, pero por lo general es una tabla diferente.

Las implementaciones de almacenamiento de bases de datos varían en complejidad. SQLite, una base de datos incluida con Python, crea un solo archivo para todos los datos por base de datos. Otras bases de datos como PostgreSQL, MySQL, Oracle y Microsoft SQL Server tienen esquemas de persistencia más complicados al tiempo que ofrecen características avanzadas adicionales que son útiles para el almacenamiento de datos de aplicaciones web. Estas funciones avanzadas incluyen, entre otras, las siguientes:

  1. replicación de datos entre una base de datos maestra y una o más instancias esclavas de solo lectura
  2. tipos de columna avanzados que pueden almacenar de manera eficiente datos semiestructurados como la notación de objetos JavaScript (JSON)
  3. fragmentación, que permite el escalado horizontal de varias bases de datos, cada una de las cuales sirve como instancias de lectura y escritura a costa de la latencia en la coherencia de los datos.
  4. monitoreo, estadísticas y otra información útil en tiempo de ejecución para esquemas y tablas de bases de datos

Normalmente, las aplicaciones web comienzan con una única instancia de base de datos, como PostgreSQL, con un esquema sencillo. Con el tiempo, el esquema de la base de datos evoluciona a una estructura más compleja utilizando migraciones de esquema y características avanzadas como la replicación, fragmentación y monitoreo se vuelven más útiles a medida que aumenta la utilización de la base de datos en función de las necesidades de los usuarios de la aplicación.

Bases de datos más comunes para aplicaciones web de Python

PostgreSQL y MySQL son dos de las bases de datos de código abierto más comunes para almacenar datos de aplicaciones web Python.

SQLite es una base de datos que se almacena en un solo archivo en disco. SQLite está integrado en Python, pero solo está diseñado para acceder mediante una única conexión a la vez. Por lo tanto, es muy recomendable no ejecutar una aplicación web de producción con SQLite.

Base de datos PostgreSQL

PostgreSQL es la base de datos relacional recomendada para trabajar con aplicaciones web Python. El conjunto de características, el desarrollo activo y la estabilidad de PostgreSQL contribuyen a su uso como backend para millones de aplicaciones en vivo en la Web en la actualidad.

Obtenga más información sobre el uso de PostgreSQL con Python en la página de PostgreSQL.

Base de datos MySQL

MySQL es otra implementación viable de base de datos de código abierto para aplicaciones Python. MySQL tiene una curva de aprendizaje inicial un poco más fácil que PostgreSQL, pero no tiene tantas funciones.

Obtenga más información sobre las aplicaciones de Python con MySQL respaldado en la página dedicada de MySQL.

Conectarse a una base de datos con Python

Para trabajar con una base de datos relacional usando Python, necesita usar una biblioteca de código. Las bibliotecas más comunes para bases de datos relacionales son:

El soporte de SQLite está integrado en Python 2.7+ y, por lo tanto, no es necesaria una biblioteca separada. Simplemente «importe sqlite3» para comenzar a interactuar con la base de datos única basada en archivos.

Mapeo relacional de objetos

Los mapeadores de objetos relacionales (ORM) permiten a los desarrolladores acceder a los datos desde un backend escribiendo código Python en lugar de consultas SQL. Cada marco de aplicación web maneja la integración de ORM de manera diferente. Hay una página completa sobre mapeo relacional de objetos (ORM) que debe leer para familiarizarse con este tema.

Servicios de terceros de base de datos

Numerosas empresas ejecutan servidores de bases de datos escalables como un servicio alojado. Las bases de datos alojadas a menudo pueden proporcionar copias de seguridad y recuperación automatizadas, configuraciones de seguridad más estrictas y escalado vertical fácil, según el proveedor.

  • Servicio de base de datos relacional de Amazon (RDS)
    proporciona instancias de MySQL y PostgreSQL preconfiguradas. Las instancias se pueden escalar a configuraciones más grandes o más pequeñas según las necesidades de almacenamiento y rendimiento.
  • Google Cloud SQL es un servicio con instancias MySQL administradas, respaldadas, replicadas y con parches automáticos. Cloud SQL se integra con Google App Engine, pero también se puede utilizar de forma independiente.
  • BitCan proporciona bases de datos alojadas en MySQL y MongoDB con amplios servicios de respaldo.
  • ElephantSQL es una empresa de software como servicio que aloja bases de datos PostgreSQL y gestiona la configuración del servidor, las copias de seguridad y las conexiones de datos además de las instancias de Amazon Web Services.

Recursos SQL

Puede planear usar un mapeador relacional de objetos (ORM) como su forma principal de interactuar con una base de datos, pero aún debe aprender los conceptos básicos de SQL para crear esquemas y comprender el código SQL generado por el ORM. Los siguientes recursos pueden ayudarlo a ponerse al día con SQL si nunca lo ha usado anteriormente.

Recursos generales de la base de datos

  • ¿Cómo funciona una base de datos relacional?
    es una publicación detallada de formato largo sobre las operaciones de clasificación, búsqueda, fusión y otras que a menudo damos por sentado cuando usamos una base de datos relacional establecida como PostgreSQL.
  • Bases de datos 101 ofrece una excelente descripción general de los principales conceptos de bases de datos relacionales que es relevante incluso para los no desarrolladores como introducción.
  • Cinco errores que cometen los principiantes al trabajar con bases de datos
    explica por qué no debe almacenar imágenes en bases de datos, así como por qué tener cuidado con la forma en que normaliza su esquema.
  • Motores DB clasifica los sistemas de administración de bases de datos más populares.
  • DB semanal es un resumen semanal de artículos y recursos de bases de datos generales.
  • Diseño de arquitecturas de bases de datos altamente escalables
    cubre el escalado horizontal y vertical, la replicación y el almacenamiento en caché en arquitecturas de bases de datos relacionales.
  • Migraciones en línea a escala
    es una gran lectura sobre cómo analizar la complejidad de la migración de un esquema de base de datos para una base de datos operativa. El enfoque que utilizó el equipo del autor fue un patrón de escritura dual de 4 pasos para evolucionar cuidadosamente la forma en que se almacenan los datos para las suscripciones para que pudieran pasar a un modelo de almacenamiento nuevo y más eficiente.
  • Una base de datos de talla única no se ajusta a nadie
    explica la justificación específica de Amazon Web Services para tener tantos tipos de bases de datos relacionales y no relacionales en su plataforma, pero el artículo también es una buena descripción general de varios modelos de bases de datos y sus casos de uso.
  • SQL tiene 43 años: aquí hay 8 razones por las que todavía lo usamos hoy
    enumera por qué casi todos los desarrolladores utilizan SQL, incluso cuando el lenguaje se acerca a su quincuagésimo aniversario.
  • Claves SQL en profundidad
    proporciona una gran explicación de qué son las claves primarias y cómo debe utilizarlas.
  • Explorando un conjunto de datos en SQL
    es un buen ejemplo de cómo se puede utilizar SQL solo para el análisis de datos. Este tutorial utiliza datos de Spotify para mostrar cómo extraer lo que busca aprender de un conjunto de datos.
  • Estrategias de prueba de integración de bases de datos
    cubre un tema difícil que surge en todos los proyectos del mundo real.
  • GitLab proporcionó su
    post mortem de una interrupción de la base de datos el 31 de enero
    como una forma de ser transparente con los clientes y ayudar a otros equipos de desarrollo a aprender cómo arruinaron sus sistemas de base de datos y luego encontraron una manera de recuperarse.
  • Python asincrónico y bases de datos
    es un artículo detallado que explica por qué muchos controladores de bases de datos de Python no se pueden usar sin modificaciones debido a las diferencias en los modelos de eventos de bloqueo frente a los asincrónicos. Definitivamente vale la pena leerlo si está utilizando WebSockets a través de Tornado o gevent.
  • PostgreSQL frente a MS SQL Server es una perspectiva sobre las diferencias entre los dos servidores de bases de datos de un analista de datos.

Lista de verificación de aprendizaje de bases de datos

  1. Instale PostgreSQL en su servidor. Suponiendo que fue con Ubuntu ejecutar
    sudo apt-get install postgresql.
  2. Asegúrate que psycopg2 la biblioteca está en las dependencias de su aplicación.
  3. Configure su aplicación web para conectarse a la instancia de PostgreSQL.
  4. Crea modelos en tu ORM, ya sea con Django’s ORM incorporado o SQLAlchemy con flask.
  5. Cree las tablas de su base de datos o sincronice los modelos ORM con la instancia de PostgreSQL, si está utilizando un ORM.
  6. Comience a crear, leer, actualizar y eliminar datos en la base de datos desde su aplicación web.

¿Qué sigue para que tu aplicación funcione?

¿Necesitas ayuda para revisar el código de tu proyecto?



Esta entrada tiene 0 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Volver arriba