Unidad # 1 Perspectiva practica de la administración de bases de datos.
1.1 Administrador de Base de Datos (DBA).
Debido a la importancia de los datos que están a su cargo, el administrador de bases de datos debe ser experto en TI (tecnología de la información), teniendo particular conocimiento de DBMS (sistemas de administración de bases de datos) y el lenguaje de consulta SQL. También debe tener conocimiento de varios tipos de lenguaje de programación para poder automatizar ciertas tareas.
Una de sus tareas es la de asegurar la integridad del sistema de información de la compañía. Además, es necesario que posea un buen entendimiento de DBMS para optimizar las consultas, ajustar la configuración de DBMS o para sincronizar en forma precisa las herramientas de control del acceso a las bases de datos.
Es posible que el administrador de bases de datos tenga que brindar asistencia técnica a usuarios de las aplicaciones cliente o equipos de desarrollo para solucionar problemas, dar consejos o ayudar a resolver consultas complicadas.
1.1.1 FUNCIONES DE UN DBA:
Los DBA realizan pruebas de rendimiento, pruebas de impacto, pruebas funcionales, pruebas de código, pruebas de carga de datos, pruebas de implementación y pruebas de integración en proyectos Investigación, desarrollo e innovación. Para la ejecución de pruebas es necesario aplicar las metodologías basadas en Ingeniería del software, sus aplicaciones funcionales y los requerimientos de calidad, añadiendo las líneas base de la ingeniería requerimientos en la inteligencia de negocios y las tecnologías de la información. Algunas de las actividades más relevantes de un DBA son:
- Analistas de datos.
- Analistas de sistemas.
- Analistas de programación.
- Administradores de bases de datos.
- Consultores de sistemas.
- Consultores de tecnologías de la información.
- Consultores de aplicaciones.
- Consultores de programación.
- Programadores de bases de datos.
1.1.2 RELACIÓN DEL DBA CON OTRAS ÁREAS DE LA SISTEMAS.
En sistemas muy complejos cliente/servidor y de tres capas, la base de datos es sólo uno de los elementos que determinan la experiencia de los usuarios en línea y los programas desatendidos. El rendimiento es una de las mayores motivaciones de los DBA para coordinarse con los especialistas de otras áreas del sistema fuera de las líneas burocráticas tradicionales. Uno de los deberes menos respetados por el administrador de base de datos es el desarrollo y soporte a pruebas, mientras que algunos otros encargados lo consideran como la responsabilidad más importante de un DBA.
1.2 ANÁLISIS DE LOS MANEJADORES PARA UNA BASE DE DATOS:
Sistema Gestor de Bases de Datos (SGBD)
|
Características
|
Requerimientos para su instalación:
|
- SQL Server 2012 brindará a los usuarios grandes avances en tres campos principales:
- Confianza de misión crítica con mayor tiempo activo, rendimiento ultra rápido y características mejoradas de seguridad para cargas de trabajo de misión crítica.
$ Gratis
| - Memoria: · Mínimo: 1 GB · Se recomienda: al menos 4 GB y debe aumentar a medida que el tamaño de la base de datos aumente para asegurar un rendimiento óptimo. - Velocidad del procesador: · Mínimo: Procesador x86: 1,0 GHz o Procesador x64: 1,4 GHz ·Recomendado: 2 GHz o más | |
- Compile bases de datos más rápida y fácilmente que nunca. - Cree formularios e informes más impactantes. - Obtenga acceso más fácilmente a las herramientas adecuadas en el momento exacto. $ Gratis | - Procesador: 500 Megahertz (MHz) o más veloz. - Memoria (RAM): 256 Megabytes (MB) de RAM o más. - Espacio en disco duro: 1.5 GB - Sistema operativo: Windows Vista SP1, Windows 7, Windows Server 2003 R2 con MSXML 6.0, Windows Server 2008. | |
- Escrito en C y en C++ - Probado con un amplio rango de compiladores diferentes - Funciona en diferentes plataformas - Proporciona sistemas de almacenamiento transaccionales y no transaccionales $ 2,000 - 10,000 dlls. | Suficiente espacio en disco rígido para descomprimir, instalar, y crear las bases de datos de acuerdo a sus requisitos. Un sistema operativo Windows de 32 bits, tal como 9x, Me, NT, 2000, XP, o Windows Server 2003. Soporte para protocolo TCP/IP. | |
- InterBase nos garantiza que es un producto fiable y robusto, probado exhaustivamente y que ofrece unos buenos niveles de seguridad. - Código Abierto - Mantenimiento prácticamente nulo - Bajo Coste de Desarrollo.
$ 7,030
| - Versiones soportadas de Sistema Operativo: Windows 95 / Windows 98 / Windows NT Workstation 4.x / Windows 2000 - Protocolos soportados: TCP/IP - Hardware (Mínimo): Pentium P100 como mínimo absoluto. 64Mb RAM., Disco Duro de 500Mb o similar, Tarjeta de red - Hardware (recomendado): PC Pentium PIII 1GHz, 128Mb RAM, Disco Duro de 4.0Gb, tarjeta de red. | |
- Admite varias opciones de soportes de arranque. - Ayuda en la instalación del sistema operativo. - Proporciona un juego específico de capacidades de procesador de servicio y de configuración de Oracle ILOM.
$ 209.00 - $47,000 Dlls
| - Sistema operativo: Windows 2000 Advanced Server SP4, Windows XP SP2, Windows 2003 Enterprise Server SP1 (32 bit), Windows 2003 Enterprise Server SP1 (64 bit) - Memoria mínima: 1 GB - Memoria recomendada: 2 GB - Espacio en disco mínimo: 500 MB. de espacio libre - Espacio en disco recomendado: 1 GB. de espacio libre | |
- DB2 UDB es un sistema para administración de bases de datos relacionales (RDBMS) multiplataforma, - Especialmente diseñada para ambientes distribuidos, - Permitiendo que los usuarios locales compartan información con los recursos centrales.
$ 23, 300 por servidor.
| - Sistema operativo: Windows XP Professional, Vista Business, Vista Enterprise, Vista Ultimate, 7 Professional, 7 Enterprise, 7 Ultimate, 8 Standard, 8 Professional - Hardware: Todos los procesadores Intel y AMD capaces de ejecutar los sistemas operativos Windows. | |
| - Convertir sus datos en Información valiosa. - Gestiona visualmente los archivos de aplicaciones. - Genera automáticamente código SQL libre de errores. - Crear fácilmente EXE’s de 32 bits.
Gratis
| - Sistema Operativo : Windows XP SP2 - Procesador: Intel Pentium 4, 2.40GHz SP2 32bits - Memoria: 512MB de RAM -Espacio de Disco: 25mb En el disco duro |
- Contiene nuevas librerías de ayuda especializadas para que usted cree y ejecute el lenguaje de Consulta Estructurado (SQL) sin teclear el código. - Paradox agrega un diseñador para crear las formas de Web en una Plataforma independiente.
No especificado
| - Sistema Operativo : Windows 95, Windows 98, o Windows NT® 4.0 - Procesador: 486/66 DX o mayor - Memoria: 16 MB RAM (32 RAM recomendado) -Espacio de Disco: 65 MB de espacio en Disco Duro |
Enlaces de Descarga:- https://www.mysql.com/downloads/
- https://www.embarcadero.com/es/app-development-tools-store/interbase
Almacenamiento de procedimientos de MYSQL
Es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado y por lo tanto el acceso es directo a los datos que se necesita manipular así que sólo se necesita enviar sus resultados de regreso al usuario.
Al incluir la lógica de la aplicación en la base de datos utilizando procedimientos almacenados, la necesidad de embeber la misma lógica en todos los programas que acceden a los datos es reducida.
Permite simplificar la creación y, particularmente, el mantenimiento de los programas que acceden a la base de datos.
código de los procedimientos:
Al incluir la lógica de la aplicación en la base de datos utilizando procedimientos almacenados, la necesidad de embeber la misma lógica en todos los programas que acceden a los datos es reducida.
Permite simplificar la creación y, particularmente, el mantenimiento de los programas que acceden a la base de datos.
código de los procedimientos:
Agregar y editar a algún alumno:
Procedimiento consultar alumno:
Arquitectura MySQL
En estos diversos temas se hablará de las estructuras de una base de datos tanto como físicas y lógicas y nos sirven de gran ayuda para conocer como se desarrolla el proceso de cómo funciona la base de datos que conocemos actualmente y distintos métodos y funciones que esta pueda llevar, son importantes conocerlos y poder iniciar a experimentar con la información que veremos a continuación sobre nuestras bases de datos que estemos trabajando o futuras...
MySQL es un sistema de bases de datos relacional. Eso significa que la información está
organizada en bases de datos, que están compuestas por tablas, que están compuestas
por registros, que están compuestos por columnas.
Además de los datos que almacenamos, las tablas pueden contener índices, y algunas de sus columnas tienen propiedades especiales como claves primarias y claves foráneas que permiten establecer relaciones entre las tablas.
En general, un sistema de bases de datos relacional tienen tres capas: aplicacion, logica, fisica
La capa de aplicación es la parte más externa del sistema y es la interface a través de la que los usuarios se comunican con el sistema.
La funcionalidad central del sistema está en la capa lógica. Es donde se realizan todas las operaciones del sistema.
Finalmente, la capa física es donde están almacenados los datos.
- Arquitectura física de una base de datos en SQL Server:
La unidad fundamental del almacenamiento de datos en SQL Server es la página. El espacio en disco asignado a un archivo de datos (.mdf o .ndf) de una base de datos se divide lógicamente en páginas numeradas de forma contigua de 0 a n. Las operaciones de E/S de disco se realizan en el nivel de página. Es decir, SQL Server lee o escribe páginas de datos enteras.
Estructuras lógicas de la base de datos:
En todas las bases de datos relacionales disponemos de estas estructuras lógicas para organizar la información:
Tablas: Compuestas de filas y columnas en las que se almacenan los datos relevantes de cada base de datos.
Restricciones: Se definen al crear las tablas, pero se almacenan aparte. Están disponibles en el diccionario de datos y marcan las reglas que han de cumplir los datos para que se consideren válidos.
Índices: Se trata de una lista ordenada de claves que permite acceder a los valores de una o más columnas de una tabla de forma veloz.
Vistas: Son consultas almacenadas que nos permiten mostrar de forma personalizada los datos de una o varias tablas.
Procedimientos y funciones: Código del lenguaje procedimental de la base de datos utilizado para ejecutar acciones sobre las tablas (incluidos los triggers).
Estructuras físicas de la base de datos:
En una base de datos almacenamos información relevante para nuestro negocio u organización,a base de datos está conformada por dos tipos de archivos:
Archivos de datos: Contiene los datos de la base de datos internamente, está compuesto por páginas enumeradas secuencialmente que representa la unidad mínima de almacenamiento. Cada página tiene un tamaño de 8kb de información.
Existen diferentes tipos de páginas, a tener en cuenta:
Páginas de datos:Es el tipo principal de páginas y son las que almacenan los registros de datos.
Páginas de espacio libre (PFS Page Free Space): Almacenan información sobre la ubicación y el tamaño del espacio libre.
Paginas GAM and SGAM: Utilizadas para ubicar extensiones.
Páginas de Mapa de Ubicaciones de índices (IAM – Index Allocation Map): Contiene información sobre el almacenamiento de páginas de una tabla o índice en particular.
Páginas Índices: Utilizada para almacenar registros de índices.
· Archivo de Registro de Transacciones: El propósito principal del registro de transacciones es la recuperación de datos a un momento en el tiempo o complementar una restauración de copia de respaldo completa (full backup). Este archivo no puede ser leído por herramientas de usuario de SQL aunque existen herramientas de terceros que leen este archivo para recuperar los cambios efectuados.
Data File: Los datafiles son los archivos físicos en los que se almacenan los objetos que forman parte de un tablespace.
2.1.3 Requerimientos para instalación de la base de datos:
Antes de instalar cualquier SGBD es necesario conocer los requerimientos de hardware y software, el posible software a desinstalar previamente, verificar el registro de Windows y el entorno del sistema, así como otras características de configuración especializadas como pueden ser la reconfiguración de los servicios TCP/IP.
2.1.4 Instalación del software de BD en modo transaccional:
Debido al constante crecimiento de datos que generan las empresas hoy en día, se ha vuelto muy necesaria la búsqueda de nuevas plataformas para almacenar y analizar la información, ambientes que consuman menos recursos, que sean más escalables y que provean una alta disponibilidad.
Una base de datos en modo transaccional significa que la BD será capaz de que las operaciones de inserción y actualización se hagan dentro de una transacción, es un componente que procesa información descomponiéndose de forma unitaria en operaciones indivisibles, llamadas transacciones
Una transacción es un conjunto de líneas de un programa que llevan insert o update o delete.
Se usan los siguientes métodos:
Begin TRans para iniciar la transacción
CommitTrans para efectuar los cambios con éxito
RollbackTrans para deshacer los cambios
2.1.5 Variables de Ambiente y archivos importantes para instalación:
Variable: Es un espacio en memoria al cual se le da un nombre Hay variables específicas que se crean al momento de entrar al sistema, pero también hay variables que pueden ser definidas por el usuario.
Variables de Ambiente: Se usan para personalizar el entorno en el que se ejecutan los programas y para ejecutar en forma correcta los comandos del shell.
A continuación se comentan las opciones más utilizadas de la sección mysqld (afectan al funcionamiento del servidor MySQL), se almacenan en el archivo my.cnf (o my.ini)
basedir = ruta: Ruta a la raíz MySQL
console: Muestra los errores por consola independientemente de lo que se configure para log_error.
datadir = ruta: Ruta al directorio de datos.
default-table-type = tipo: Tipo de la Tabla InnoDB o, MyISAM.
2.1.6 Procedimiento general de instalación de un DBMS:
MySQL Enterprise Edition:
MySQL Enterprise Edition incluye el conjunto más completo de características avanzadas y herramientas de gestión para alcanzar los más altos niveles de escalabilidad, seguridad, fiabilidad y tiempo de actividad. Reduce el riesgo, costo y complejidad en el desarrollo, implementación y administración de aplicaciones críticas de negocio MySQL.
El MySQL Enterprise incluye las siguientes opciones:
Backup: Realiza copias de seguridad de bases de datos MySQL en línea, de los subconjuntos de tablas InnoDB, y la recuperación mediante puntos de restauración.
Alta Disponibilidad: Es proporcionada con soluciones certificadas que incluyen replicación de MySQL.
Escalabilidad: Permite alcanzar el rendimiento sostenido y la escalabilidad de cada vez mayor de usuarios, consulta, y las cargas de datos
MySQL Enterprise Security: Proporciona listas para utilizar los módulos de autenticación externos para integrar fácilmente las infraestructuras existentes de seguridad, incluyendo Pluggable Authentication Modules y el directorio activo de Windows
MySQL Enterprise Monitor:Supervisa continuamente su base de datos y de forma proactiva le asesora sobre cómo implementar las mejores prácticas de MySQL, incluyendo consejos y alertas de seguridad
MySQL Query Analyzer: Mejora el rendimiento de las aplicaciones mediante el control de rendimiento de las consultas y precisa localización de código SQL que está causando una desaceleración.
MySQL Workbench: Cuenta con ofertas de modelado de datos, desarrollo de SQL y herramientas de administración integral para la administración del servidor de configuración del usuario, y mucho más.
2.1.7 Procedimiento para Configuración de un DBMS:
Para configurar nuestro DBMS podemos acceder a las siguientes pantallas, para Oracle o MySQL.
El esquema de una base de datos (en inglés, Database Schema) describe la estructura de una Base de datos, en un lenguaje formal soportado por un Sistema administrador de Base de datos (DBMS). En una Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada campo y cada tabla.
En todas las bases de datos relacionales disponemos de estas estructuras lógicas para organizar la información:
Tablas: Compuestas de filas y columnas en las que se almacenan los datos relevantes de cada base de datos.
Restricciones: Se definen al crear las tablas, pero se almacenan aparte. Están disponibles en el diccionario de datos y marcan las reglas que han de cumplir los datos para que se consideren válidos.
Índices: Se trata de una lista ordenada de claves que permite acceder a los valores de una o más columnas de una tabla de forma veloz.
Vistas: Son consultas almacenadas que nos permiten mostrar de forma personalizada los datos de una o varias tablas.
Procedimientos y funciones: Código del lenguaje procedimental de la base de datos utilizado para ejecutar acciones sobre las tablas (incluidos los triggers).
Estructuras físicas de la base de datos:
En una base de datos almacenamos información relevante para nuestro negocio u organización,a base de datos está conformada por dos tipos de archivos:
Archivos de datos: Contiene los datos de la base de datos internamente, está compuesto por páginas enumeradas secuencialmente que representa la unidad mínima de almacenamiento. Cada página tiene un tamaño de 8kb de información.
Existen diferentes tipos de páginas, a tener en cuenta:
Páginas de datos:Es el tipo principal de páginas y son las que almacenan los registros de datos.
Páginas de espacio libre (PFS Page Free Space): Almacenan información sobre la ubicación y el tamaño del espacio libre.
Paginas GAM and SGAM: Utilizadas para ubicar extensiones.
Páginas de Mapa de Ubicaciones de índices (IAM – Index Allocation Map): Contiene información sobre el almacenamiento de páginas de una tabla o índice en particular.
Páginas Índices: Utilizada para almacenar registros de índices.
· Archivo de Registro de Transacciones: El propósito principal del registro de transacciones es la recuperación de datos a un momento en el tiempo o complementar una restauración de copia de respaldo completa (full backup). Este archivo no puede ser leído por herramientas de usuario de SQL aunque existen herramientas de terceros que leen este archivo para recuperar los cambios efectuados.
Data File: Los datafiles son los archivos físicos en los que se almacenan los objetos que forman parte de un tablespace.
2.1.3 Requerimientos para instalación de la base de datos:
Antes de instalar cualquier SGBD es necesario conocer los requerimientos de hardware y software, el posible software a desinstalar previamente, verificar el registro de Windows y el entorno del sistema, así como otras características de configuración especializadas como pueden ser la reconfiguración de los servicios TCP/IP.
2.1.4 Instalación del software de BD en modo transaccional:
Debido al constante crecimiento de datos que generan las empresas hoy en día, se ha vuelto muy necesaria la búsqueda de nuevas plataformas para almacenar y analizar la información, ambientes que consuman menos recursos, que sean más escalables y que provean una alta disponibilidad.
Una base de datos en modo transaccional significa que la BD será capaz de que las operaciones de inserción y actualización se hagan dentro de una transacción, es un componente que procesa información descomponiéndose de forma unitaria en operaciones indivisibles, llamadas transacciones
Una transacción es un conjunto de líneas de un programa que llevan insert o update o delete.
Se usan los siguientes métodos:
Begin TRans para iniciar la transacción
CommitTrans para efectuar los cambios con éxito
RollbackTrans para deshacer los cambios
2.1.5 Variables de Ambiente y archivos importantes para instalación:
Variable: Es un espacio en memoria al cual se le da un nombre Hay variables específicas que se crean al momento de entrar al sistema, pero también hay variables que pueden ser definidas por el usuario.
Variables de Ambiente: Se usan para personalizar el entorno en el que se ejecutan los programas y para ejecutar en forma correcta los comandos del shell.
A continuación se comentan las opciones más utilizadas de la sección mysqld (afectan al funcionamiento del servidor MySQL), se almacenan en el archivo my.cnf (o my.ini)
basedir = ruta: Ruta a la raíz MySQL
console: Muestra los errores por consola independientemente de lo que se configure para log_error.
datadir = ruta: Ruta al directorio de datos.
default-table-type = tipo: Tipo de la Tabla InnoDB o, MyISAM.
2.1.6 Procedimiento general de instalación de un DBMS:
MySQL Enterprise Edition:
MySQL Enterprise Edition incluye el conjunto más completo de características avanzadas y herramientas de gestión para alcanzar los más altos niveles de escalabilidad, seguridad, fiabilidad y tiempo de actividad. Reduce el riesgo, costo y complejidad en el desarrollo, implementación y administración de aplicaciones críticas de negocio MySQL.
El MySQL Enterprise incluye las siguientes opciones:
Backup: Realiza copias de seguridad de bases de datos MySQL en línea, de los subconjuntos de tablas InnoDB, y la recuperación mediante puntos de restauración.
Alta Disponibilidad: Es proporcionada con soluciones certificadas que incluyen replicación de MySQL.
Escalabilidad: Permite alcanzar el rendimiento sostenido y la escalabilidad de cada vez mayor de usuarios, consulta, y las cargas de datos
MySQL Enterprise Security: Proporciona listas para utilizar los módulos de autenticación externos para integrar fácilmente las infraestructuras existentes de seguridad, incluyendo Pluggable Authentication Modules y el directorio activo de Windows
MySQL Enterprise Monitor:Supervisa continuamente su base de datos y de forma proactiva le asesora sobre cómo implementar las mejores prácticas de MySQL, incluyendo consejos y alertas de seguridad
MySQL Query Analyzer: Mejora el rendimiento de las aplicaciones mediante el control de rendimiento de las consultas y precisa localización de código SQL que está causando una desaceleración.
MySQL Workbench: Cuenta con ofertas de modelado de datos, desarrollo de SQL y herramientas de administración integral para la administración del servidor de configuración del usuario, y mucho más.
2.1.7 Procedimiento para Configuración de un DBMS:
Para configurar nuestro DBMS podemos acceder a las siguientes pantallas, para Oracle o MySQL.
El esquema de una base de datos (en inglés, Database Schema) describe la estructura de una Base de datos, en un lenguaje formal soportado por un Sistema administrador de Base de datos (DBMS). En una Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada campo y cada tabla.
2.1.8 Comandos Generales de Alta y Baja del DBMS:
Una tabla es un sistema de elementos de datos (atributo - valores) que se organizan que usando un modelo vertical - columnas (que son identificados por su nombre)- y horizontal filas. Una tabla tiene un número específico de columnas, pero puede tener cualquier número de filas.
MySQL
soporta varios motores de almacenamiento que tratan con distintos tipos de tabla. Los motores de almacenamiento de MySQL incluyen algunos que tratan con tablas transaccionales y otros que no lo hacen:
MyISAM: trata tablas no transaccionales. Proporciona almacenamiento y recuperación de datos rápida, así como posibilidad de búsquedas fulltext. MyISAM se soporta en todas las configuraciones MySQL.
Los motores de almacenamiento InnoDB y BDB proporcionan tablas transaccionales. BDB se incluye en la distribución binaria MySQL-Max en aquellos sistemas operativos que la soportan. InnoDB también se incluye por defecto en todas las distribuciones binarias de MySQL 5.0.
Conclusión:
En la estructura de la base de datos tanto física como lógica es de gran ayuda para el aprendizaje del desarrollo y funcionamiento de la misma y no pueden faltar recalcar las funciones y múltiples métodos que la base de datos puede llevar acabo y no estaría de más también el tener conocimientos de los mismos y así utilizarlos en diferentes bases de datos.
Librerías para manejar bases de datos en Python
Existen varias maneras de conectar Python con un servidor MySQL, Después de haber investigado algo más, y de probar yo mismo desde la consola con Python, me decantaré por las dos maneras más usuales: MySQLdb y mysql connector.
Únicamente como datos informativos, diré que MySQLdb es un módulo de C que enlaza con la librería libmysqlclient, es muy rápido, pero requiere esta librería para funcionar. De hecho, en mi caso, que uso Debian, esta librería debe ser instalada manualmente:
Por el contrario, mysql-connector es un módulo de Python que reimplementa el protocolo MySQL. Es algo más lento, pero al no precisar librerías C, es independiente del sistema operativo, por lo que es más portable.
En Charles Nagy hacen una comparativa de velocidad entre los dos métodos. La diferencia de velocidad, cuando se usa para aplicaciones pequeñas, es muy pequeña, y para el uso local, que es el que le voy a dar, la diferencia es inapreciable. Además, no necesito portar los scripts que genere, por lo que me decanto por MySQLdb.
--------------------------------------------------------------------------------------------------------------------------
Mucha gente usa Python debido a que como otros lenguajes de script, es portable, independiente de la plataforma y usa un lenguaje de propósito general que puede realizar todo tipo de tareas, incluso las que hacen referencias a Bases de Datos. Python te permite escribir programas que accedan, muestren y actualicen la información en la Base de Datos con un esfuerzo mínimo.
Para realizar esto, se creo en Python un API para accesos a bases de datos que actualmente se encuentra en su versión 2.0
Lo primero que uno tiene que hacer es conseguirse la librería que te va a permitir trabajar con tu Base de Datos preferida. Si escoges SQLite, MySQL, PostgreSQL o Interbase/Firebird la forma de importar sus librerías sería:
import MySQLdb # para o MySQL
import sqlite # para o SQLite
from pyPgSQL import PgSQL # para o PostgreSQL
import kinterbasdb # para Interbase / Firebird
--------------------------------------------------------------------------------------------------------------------------
Debes instalar el driver para MySQL antes de hacer cualquier cosa. A diferencia de PHP, solo el driver para SQLite viene instalado por defecto en Python. El paquete mas usado para hacerlo es MySQLdb pero es un poco difícil de instalar usando easy_install
.
Para usuarios de Windows, pueden descargar un exe de MySQLdb.
Para Linux, es un paquete casual (python-mysqldb
). Puedes usar en la línea de comandos sudo apt-get install python-mysqldb
para distribuciones basadas en Debian o yum install mysql-python
para distribuciones basadas en RPM.
Después de la instalación, reinicia el sistema. Esto no es obligatorio.
Un uso más avanzado:
Una vez que sepas como funciona, puedes usar un ORM para evitar escribir sentencias SQL manualmente y manipular las tablas como si fueran objetos de Python. El ORM mas famoso en la comunidad Python es SQLAlchemy.
Realmente te recomiendo usarlo: tu vida será mucho más fácil.
Recientemente descubrí otra joya en el mundo de Python: peewee. Es un ORM bastante ligero, realmente sencillo y rápido de configurar y usar. Me ayudó mucho en pequeños proyectos o aplicaciones stand alone, donde el uso de grandes herramientas como SQLAlchemy y Django puede ser excesiva:
import peewee
from peewee import *
db = MySQLDatabase('jonhydb', user='john',passwd='megajonhy')
class Book(peewee.Model):
author = peewee.CharField()
title = peewee.TextField()
class Meta:
database = db
Book.create_table()
book = Book(author="me", title='Peewee is cool')
book.save()
for book in Book.filter(author="me"):
print book.title
Peewee is cool
Este ejemplo funciona como ejemplo de usabilidad. Nada mas que tener instalado peewee
(pip install peewee
:-)) es requerido. Sin configuraciones complicadas. Es excelente.
---------------------------------------------------------------------------------------------------------------
Si estás usando una versión actual de Python, la alternativa es usar mysqlclient el cual es un fork de MySQLdb1 y con soporte para Python 2.7 y >3.3.
Instalación:
Desde la línea de comandos:
$ pip install mysqlclient
Ejemplos:
import MySQLdb
db = MySQLdb.connect(passwd="moonpie",db="thangs")
c = db.cursor()
max_price = 5
c.execute("""
SELECT spam, eggs, sausage
FROM breakfast
WHERE price < %s
""", (max_price,))
# no hay que olvidarse de liberar el cursor y la conexión para evitar fugas de memoria
c.close()
db.close()
Otra forma más pythónica de realizar la conexión es mediante el with statement, que se encarga de asegurar que la conexión sea correctamente liberada:
import MySQLdb
max_price = 5
with MySQLdb.connect(passwd="moonpie",db="thangs") as conexion:
consulta_sql = "SELECT spam, eggs, sausage FROM breakfast WHERE price < %s"
parametros = (max_price,)
cursor = conexion.execute(consulta_sql, parametros)
for registro in cursor:
print(registro)
Existen varias maneras de conectar Python con un servidor MySQL, Después de haber investigado algo más, y de probar yo mismo desde la consola con Python, me decantaré por las dos maneras más usuales: MySQLdb y mysql connector.
Únicamente como datos informativos, diré que MySQLdb es un módulo de C que enlaza con la librería libmysqlclient, es muy rápido, pero requiere esta librería para funcionar. De hecho, en mi caso, que uso Debian, esta librería debe ser instalada manualmente:
Por el contrario, mysql-connector es un módulo de Python que reimplementa el protocolo MySQL. Es algo más lento, pero al no precisar librerías C, es independiente del sistema operativo, por lo que es más portable.
En Charles Nagy hacen una comparativa de velocidad entre los dos métodos. La diferencia de velocidad, cuando se usa para aplicaciones pequeñas, es muy pequeña, y para el uso local, que es el que le voy a dar, la diferencia es inapreciable. Además, no necesito portar los scripts que genere, por lo que me decanto por MySQLdb.
--------------------------------------------------------------------------------------------------------------------------Mucha gente usa Python debido a que como otros lenguajes de script, es portable, independiente de la plataforma y usa un lenguaje de propósito general que puede realizar todo tipo de tareas, incluso las que hacen referencias a Bases de Datos. Python te permite escribir programas que accedan, muestren y actualicen la información en la Base de Datos con un esfuerzo mínimo.
Para realizar esto, se creo en Python un API para accesos a bases de datos que actualmente se encuentra en su versión 2.0
Lo primero que uno tiene que hacer es conseguirse la librería que te va a permitir trabajar con tu Base de Datos preferida. Si escoges SQLite, MySQL, PostgreSQL o Interbase/Firebird la forma de importar sus librerías sería:
import MySQLdb # para o MySQL
import sqlite # para o SQLite
from pyPgSQL import PgSQL # para o PostgreSQL
import kinterbasdb # para Interbase / Firebird
--------------------------------------------------------------------------------------------------------------------------
Debes instalar el driver para MySQL antes de hacer cualquier cosa. A diferencia de PHP, solo el driver para SQLite viene instalado por defecto en Python. El paquete mas usado para hacerlo es MySQLdb pero es un poco difícil de instalar usando
easy_install
.
Para usuarios de Windows, pueden descargar un exe de MySQLdb.
Para Linux, es un paquete casual (
python-mysqldb
). Puedes usar en la línea de comandos sudo apt-get install python-mysqldb
para distribuciones basadas en Debian o yum install mysql-python
para distribuciones basadas en RPM.
Después de la instalación, reinicia el sistema. Esto no es obligatorio.
Un uso más avanzado:
Una vez que sepas como funciona, puedes usar un ORM para evitar escribir sentencias SQL manualmente y manipular las tablas como si fueran objetos de Python. El ORM mas famoso en la comunidad Python es SQLAlchemy.
Realmente te recomiendo usarlo: tu vida será mucho más fácil.
Recientemente descubrí otra joya en el mundo de Python: peewee. Es un ORM bastante ligero, realmente sencillo y rápido de configurar y usar. Me ayudó mucho en pequeños proyectos o aplicaciones stand alone, donde el uso de grandes herramientas como SQLAlchemy y Django puede ser excesiva:
import peewee
from peewee import *
db = MySQLDatabase('jonhydb', user='john',passwd='megajonhy')
class Book(peewee.Model):
author = peewee.CharField()
title = peewee.TextField()
class Meta:
database = db
Book.create_table()
book = Book(author="me", title='Peewee is cool')
book.save()
for book in Book.filter(author="me"):
print book.title
Peewee is cool
Este ejemplo funciona como ejemplo de usabilidad. Nada mas que tener instalado
peewee
(pip install peewee
:-)) es requerido. Sin configuraciones complicadas. Es excelente.
---------------------------------------------------------------------------------------------------------------
Si estás usando una versión actual de Python, la alternativa es usar mysqlclient el cual es un fork de MySQLdb1 y con soporte para Python 2.7 y >3.3.
Instalación:
Desde la línea de comandos:
$ pip install mysqlclient
Ejemplos:
import MySQLdb
db = MySQLdb.connect(passwd="moonpie",db="thangs")
c = db.cursor()
max_price = 5
c.execute("""
SELECT spam, eggs, sausage
FROM breakfast
WHERE price < %s
""", (max_price,))
# no hay que olvidarse de liberar el cursor y la conexión para evitar fugas de memoria
c.close()
db.close()
Otra forma más pythónica de realizar la conexión es mediante el with statement, que se encarga de asegurar que la conexión sea correctamente liberada:
import MySQLdb
max_price = 5
with MySQLdb.connect(passwd="moonpie",db="thangs") as conexion:
consulta_sql = "SELECT spam, eggs, sausage FROM breakfast WHERE price < %s"
parametros = (max_price,)
cursor = conexion.execute(consulta_sql, parametros)
for registro in cursor:
print(registro)
Cómo instalar PIP para Python en Windows, Mac y Linux
Al igual que con cualquier lenguaje de programación serio, Python admite bibliotecas y marcos de terceros que puede instalar para evitar tener que reinventar la rueda con cada nuevo proyecto. Puede encontrarlos en un repositorio central llamado "PyPI" (Python Package Index).
Pero descargar, instalar y administrar estos paquetes a mano puede ser frustrante y llevar mucho tiempo, por lo que muchos desarrolladores de Python confían en una herramienta especial llamada PIP para que Python haga todo mucho más fácil y rápido.
¿Qué es PIP para Python?
PIP es un acrónimo que significa "Paquetes de instalación PIP" o "Programa de instalación preferida". Es una utilidad de línea de comandos que le permite instalar, reinstalar o desinstalar paquetes PyPI con un comando simple y directo: "pip".
Si alguna vez ha realizado algún trabajo de línea de comandos en Windows (con el símbolo del sistema) o Mac o Linux (con el Terminal y Bash), entonces te sentirás como en casa y puedes ir directamente a las instrucciones de instalación para su particular sistema operativo.
¿Se instala PIP con Python?
Si está utilizando Python 2.7.9 (o superior) o Python 3.4 (o superior), entonces PIP viene instalado con Python por defecto. Si está utilizando una versión anterior de Python, deberá seguir los pasos de instalación que se detallan a continuación. De lo contrario, salte a la parte inferior para aprender cómo comenzar a usar PIP.
Si está ejecutando Python en un entorno virtual creado con virtualenv o pyvenv, entonces PIP estará disponible para ese entorno independientemente de la versión de Python.
Cómo instalar PIP en Windows
Las siguientes instrucciones deberían funcionar en Windows 7, Windows 8.1 y Windows 10:
- Descargue el script del instalador get-pip.py. Si estás en Python 3.2, necesitarás esta versión de get-pip.py. De cualquier manera, haga clic derecho en el enlace y seleccione Guardar como y guárdelo en cualquier carpeta del pc, como su carpeta de Descargas.
- Abra el símbolo del sistema y navegue hasta el archivo get-pip.py.
- Ejecute el siguiente comando: python get-pip.py
Cómo instalar PIP en Mac
Los sistemas Mac modernos vienen con Python y PIP ya instalados. Sin embargo, esta versión de Python tiende a ser obsoleta y no es la mejor opción para el desarrollo serio de Python, por lo que es muy recomendable que instale una versión más actual de Python y PIP.
Si desea utilizar la instalación de Python del sistema nativo pero no tiene PIP disponible, puede instalar PIP con el siguiente comando en Terminal:
sudo easy_install pip
Si prefiere instalar una versión más actualizada de Python, puede usar Homebrew. ¿No sabes lo que es eso? Obtenga más información sobre la instalación de software con Homebrew en Mac. Las siguientes instrucciones asumen que ya tiene instalado Homebrew y listo para funcionar.
Intalar Homebrew: https://brew.sh/
Instalar Python con Homebrew solo implica usar un solo comando:
brew instalar python
Esto instalará la última versión de Python, que debería venir empaquetada con PIP. Si la instalación es exitosa pero PIP no está disponible, puede necesitar volver a vincular Python usando el siguiente comando de Terminal:
brew unlink python && brew enlace python
Cómo instalar PIP en Linux
Si su distribución de Linux vino con Python ya instalado, debería poder instalar PIP usando el administrador de paquetes de su sistema. Esto es preferible ya que las versiones de Python instaladas en el sistema no funcionan muy bien con el script get-pip.py utilizado en Windows y Mac.
Herramienta de paquete avanzado (Python 2.x)
sudo apt-get install python-pip
Herramienta de paquete avanzado (Python 3.x)
sudo apt-get install python3-pip
Administrador de paquetes pacman (Python 2.x)
sudo pacman -S python2-pip
Administrador de paquetes pacman (Python 3.x)
sudo pacman -S python-pip
Administrador de paquetes Yum (Python 2.x)
sudo yum upgrade python-setuptools
sudo yum instalar python-pip python-wheel
Administrador de paquetes Yum (Python 3.x)
sudo yum install python3 python3-wheel
Dandified Yum (Python 2.x)
sudo dnf upgrade python-setuptools
sudo dnf instalar python-pip python-wheel
Dandified Yum (Python 3.x)
sudo dnf install python3 python3-wheel
Administrador de paquetes Zypper (Python 2.x)
sudo zypper install python-pip python-setuptools python-wheel
Administrador de paquetes Zypper (Python 3.x)
sudo zypper install python3-pip python3-setuptools python3-wheel
Cómo instalar PIP en Raspberry Pi
Como usuario de Raspberry Pi, probablemente esté ejecutando Raspbian, ya que es el sistema operativo oficial designado y proporcionado por la Fundación Raspberry Pi. Puede instalar otro sistema operativo, como Ubuntu, pero en ese caso debe consultar las instrucciones de Linux.
Comenzando con Raspbian Jessie, PIP viene instalado por defecto. Es una de las razones principales para actualizar a Raspbian Jessie en lugar de seguir con Raspbian Wheezy o Raspbian Jessie Lite. Sin embargo, si está en una versión anterior de Raspbian, aún puede instalar PIP.
En Python 2.x:
sudo apt-get install python-pip
En Python 3.x:
sudo apt-get install python3-pip
Con Raspbian, los usuarios de Python 2.x deberían usar pip, mientras que los usuarios de Python 3.x deberían usar pip3 al mandar comandos PIP.
Cómo actualizar PIP para Python
Si bien el PIP en sí mismo no se actualiza con mucha frecuencia, es importante mantenerse al tanto de las nuevas versiones, ya que puede haber soluciones importantes a errores, compatibilidad y problemas de seguridad. Afortunadamente, actualizar PIP es muy rápido y simple.
En Windows:
python -m pip install -U pip
En Mac, Linux o Raspberry Pi:
pip install -U pip
En ciertas versiones de Linux y Raspberry Pi, puede que necesite usar pip3 en su lugar.
Cómo administrar paquetes de Python con PIP
Una vez que PIP esté listo, puede comenzar a instalar paquetes de PyPI:
pip install nombre-paquete
Para instalar una versión específica de un paquete en lugar de la última versión:
pip install nombre-paquete == 1.0.0
Para buscar PyPI para un paquete particular:
pip search "query"
Para ver detalles sobre un paquete instalado:
pip show nombre-paquete
Para enumerar todos los paquetes instalados:
pip list
Para enumerar todos los paquetes desactualizados:
pip list --outdated
Para actualizar un paquete desactualizado:
pip install nombre-paquete --upgrade
Tenga en cuenta que las versiones anteriores de un paquete se eliminan automáticamente por PIP cuando se actualiza a una versión más nueva de ese paquete.
Para reinstalar completamente un paquete:
pip install nombre-paquete -upgrade --force-reinstall
Para deshacerse completamente de un paquete:
pip uninstall nombre-paquete
Fuente: https://tecnonucleous.com/2018/01/28/como-instalar-pip-para-python-en-windows-mac-y-linux/