Está en la página 1de 3

Aprendiendo Python con bases de datos

Lectura previa para el proyecto

En este proyecto vamos a organizar datos en tablas locales y de bases de datos para consultarlos y
modificarlos. Durante el proceso aprenderás a usar Jupyter Notebook para editar y ejecutar
programas de Python; organizar datos en tablas y consultar y combinar datos utilizando el lenguaje
SQL; definir tus propias funciones, y utilizar funciones y módulos de las bibliotecas pandas y
sqlite3.

Python es un lenguaje de programación de computadoras. El lenguaje permite describir


instrucciones con varios tipos de objetos, sentencias, funciones, módulos, etc. Los objetos
almacenan datos y se operan con otros objetos formando expresiones de acuerdo a las reglas del
tipo o clase al que pertenecen. Los tipos comunes son str (textos, cadenas de caracteres), int
(números enteros), float (números decimales), bool (valores lógicos), list (listas), tuple (tuplas),
etc. Los textos se escriben entre comillas simples, dobles o triples; los números decimales llevan
punto decimal. Los valores lógicos son True, verdadero, y False, falso. Las funciones realizan
tareas comunes y específicas. Se definen con parámetros y se utilizan con argumentos, que
pueden ser valores de objetos, expresiones o resultados de otras funciones. Las bibliotecas o
módulos proveen funciones y objetos especializados. En este proyecto vamos a organizar y procesar
tablas de datos utilizando objetos y funciones de las bibliotecas pandas y sqlite3.

SQL es el acrónimo de structured query language, lenguaje de consulta estructurada. Este


lenguaje permite organizar y administrar tablas de datos relacionadas entre sí. Existen varios
sistemas de bases de datos que utilizan SQL, como MySQL y SQLite. La biblioteca sqlite3 permite
manejar bases de datos SQLite en Python. Ten en cuenta que diferentes sistemas comparten
características pero no son compatibles totalmente. Es muy importante consultar la documentación
de cada sistema.

Jupyter Notebook es un entorno de edición y ejecución de programas. Los programas de


Python se escriben en celdas. Cada celda funciona como una unidad de programación y pueden
ejecutarse en cualquier orden. Al escribir códigos en las celdas, los caracteres son coloreados
automáticamente para distinguir elementos del lenguaje; el editor completa caracteres como
paréntesis y comillas, y agrega sangrías automáticamente para distinguir bloques de códigos en
funciones y en sentencias compuestas. Para ejecutar el código de una celda se pulsa el botón Run
de la barra de herramientas o se pulsan simultáneamente las teclas Mayúsculas y Entrar (Windows)
o Control + Entrar (Mac). Este proyecto utiliza la versión 3.7 de Python en Jupyter Notebook.

A continuación se describen las tareas de este proyecto. Algunas referencias se encuentran al


final de este documento.
1. Explorando datos en listas y tablas
Objetivo: reconocer objetos de Python y de la biblioteca pandas.

En la primera tarea vamos a explorar objetos en listas y tablas de datos. Nos concentraremos en
tuplas y listas de Python y en tablas de pandas, y crearemos una tabla sencilla de cuatro
elementos conteniendo nombres, símbolos y números atómicos.

2. Procesando archivos y tablas con sentencias iterativas y condicionales


Objetivo: guardar y leer datos en archivos CSV y procesarlos con tablas de pandas y
sentencias for, if y try.

En esta tarea vamos a almacenar datos y leerlos desde archivos, y exploraremos sentencias
iterativas y condicionales para controlar el flujo de los programas.

3. Creando una base de datos de elementos químicos


Objetivo: crear tablas en una base de datos.

En esta tarea vamos a crear una tabla de los elementos químicos. Usaremos Python y SQL al
mismo tiempo. La siguiente tabla muestra ejemplos de sentencias SQL.

CREATE TABLE elementos ( Crea la tabla elementos conteniendo tres columnas: id,
id INTEGER PRIMARY KEY, nombre y símbolo. Los tipos de datos son entero,
nombre TEXT NOT NULL, INTEGER, y texto, TEXT. NOT NULL indica que debe
simbolo TEXT NOT NULL) existir un dato. PRIMARY KEY significa que los datos
de la columna id serán únicos, para identificar a cada fila
de la tabla.
INSERT INTO elementos Inserta datos en la tabla elementos. Los valores se
VALUES (1, 'Cobre', 'Cu') especifican separados por comas y entre paréntesis.
SELECT * FROM elementos Selecciona todas las columnas de la tabla elementos.

4. Modificando tablas y datos


Objetivo: agregar columnas de datos, actualizar valores y recrear tablas.

En esta tarea vamos a crear una función de conexión a la base de datos y mostraremos los datos
de las tablas con un par de métodos. Agregaremos una columna a la tabla de elementos
químicos y actualizaremos los datos. Ejemplos de sentencias SQL:

ALTER TABLE elementos Modifica la tabla elementos para agregar la


ADD COLUMN "Número atómico" INTEGER columna Número atómico de tipo entero.
UPDATE elementos Actualiza la tabla elementos fijando el número
SET 'Número atómico' = ? atómico a un valor de referencia donde la
WHERE id = ? columna id tenga otro valor de referencia.
Veremos cómo especificar dichas referencias.

5. Seleccionando y procesando datos


Objetivo: procesar datos con objetos y métodos de pandas y con sentencias SQL.

En esta tarea vamos a crear una tabla elementos en la base de datos a partir de un archivo
conteniendo el número atómico, nombre, símbolo, periodo, grupo, año de descubrimiento y el
descubridor de cada elemento químico. Los datos fueron extraídos de Wikipedia. Luego
consultaremos datos utilizando tanto funciones de pandas como sentencias SQL.
6. Creando tablas relacionadas
Objetivo: distribuir los datos de una tabla en tablas relacionadas y consultar datos desde
varias tablas.

En esta tarea vamos a crear dos tablas relacionadas para optimizar el espacio de la tabla
elementos. La tabla Descubridores se formará con los nombres únicos de los descubridores.
Grupos de descubridores serán considerados como un descubridor. La tabla tendrá dos
columnas: Descubridor, de tipo texto, y la columna id, que será la columna PRIMARY KEY.

La tabla Elementos tendrá los mismos nombres de columnas que antes, pero la columna
Descubridor será de tipo entero, y tendrá el atributo FOREIGN KEY, que significa que sus
valores deben existir en otra tabla, en este caso la de Descubridores. Además, si un dato en la
tabla Descubridores es actualizado o eliminado, automáticamente se actualizará o eliminará el
dato referenciado en la tabla Elementos. La figura siguiente muestra la relación entre ambas
tablas. La columna Descubridor de Elementos debe tener un valor en la columna id de la tabla
Descubridores.

Luego combinaremos los datos de ambas tablas mediante consultas específicas. Por ejemplo
mostraremos cuantos elementos descubrió cada descubridor en orden descendente. Finalmente
eliminaremos un registro de la tabla Descubridores y comprobaremos que las entradas
correspondientes en la tabla Elementos también estén eliminadas.

Durante la presentación es recomendable que pauses los vídeos frecuentemente para ejecutar los
programas en tu espacio de trabajo. Por el corto tiempo de los vídeos, no es posible mencionar
todos los detalles de los códigos, funciones y programas. Nota que en Rhyme tienes un tiemplo
limitado para ejecutar los programas. En la sección de Recursos de la plataforma de Coursera
puedes descargar el cuaderno del proyecto. Si el entorno de Jupyter Notebook deja de responder
puedes detenerlo o reiniciarlo eligiendo del menú Kernel la opción Interrupt o la opción Restart.

Referencias
 Python, https://docs.python.org/3.7/index.html
 pandas, https://pandas.pydata.org/
 SQLite, https://www.sqlite.org/index.html
 sqlite3, https://docs.python.org/3/library/sqlite3.html
 Anaconda edición individual, https://www.anaconda.com/products/individual
 Tutorial de Python en español, https://docs.python.org/es/3.7/tutorial/index.html
 Descubrimientos de los elementos químicos,
https://es.wikipedia.org/wiki/Descubrimiento_de_los_elementos_qu%C3%ADmicos

También podría gustarte