Introducción a Bases de Datos en Python 🗂️
Bienvenido a esta introducción a bases de datos para aquellos que no tienen aún claros los conceptos de almacenamiento o tienen una vaga noción. Vamos a hablar sobre el manejo de la información en informática, porque son importantes las bases de datos y cómo se organizan las mismas internamente.
Introducción a bases de datos – ¿Qué son los datos e información?
Creo haber explicado anteriormente que existen diferentes tipos de datos y el conjunto de ellos, si tienen una relación o están ordenados a un propósito pueden considerarse información.
Nosotros actualmente trabajamos con datos cuando programamos, como unidades de un mismo tipo que almacenamos en variables (datos simples) o conjuntos de datos individuales del mismo tipo o no (datos estructurados). Esto lo explique aquí por si te quedan dudas -> Fundamentos de programación – Python – Estructura de datos y también en Tipos de datos
Pero aún así y porque no quiero que te vayas a perder te traigo de nuevo los diagramas:
Los datos estructurados normalmente nos permiten alojar una serie de datos simples de diferentes tipos (o no) que son pertinentes como información, la información ordenada con propósito se convierte en conocimiento 😉
Así en los ejemplos de programación aprendimos a ordenar datos del tipo:
Maria es mujer, tiene 26 años, trabaja en Administración y tiene un salario de $26000.
Estos datos podríamos almacenarlos en un diccionario en python, así:
Persona = {
‘Nombre‘ : ‘Maria’,
‘Género‘ : ‘Femenino’,
‘Edad‘ : 26,
‘Empleo‘ : ‘Administración’,
‘Salario‘ :26000,
}
Y claro, tenemos un diccionario con los datos de Maria, donde podemos consultar toda su información o algún dato simple importante para nosotros en ese momento (también información porque es pertinente). Todos esos datos organizados en un diccionario mediante el par «Clave – Valor«. Excelente!.
¿Pero si te dijera que tienes que añadir los datos de un millón de personas como Maria?. ¿Cuánto crees que va a pesar tu archivo «.py» donde alojas estos datos?. ¿Y si además te dijera que quiero poder consultar esos datos de forma fácil?.
Ha y además quiero poder modificarlos, listarlos según algunos criterios como el salario, también quiero que sea rápido y poder relacionar a María con Carlos y Matías porque viven juntos!. Tu me vas a echar al diablo y Python ni te digo!.
Y tú podrías pensar ¿y si guardo todos esos datos en un archivo aparte y luego lo consulto desde un solo software o script «.py»?
Pues has dado en el clavo.. Eso, es una base de datos!.
La importancia de las bases de datos
Esos datos almacenados aparte del código funcional se convierten en una base de datos. Y basándonos en el ejemplo anterior es claro que no podemos añadir esos millones de datos en el mismo script de python porque estaríamos mezclando perros, gatos y ratones en un mismo corral!.
Por ello utilizamos bases de datos donde almacenamos estos datos aparte del código de Python, entonces en Python solo programamos la parte «funcional» o «el software» y aparte tenemos una base de datos a la cual consultar cuando necesitamos información. ¿Y te preguntarás esto es más rápido que tener todos los datos en el mismo archivo?. Pues si, es más rápido, más cómodo, más simple y más organizado.
Podríamos verlo así también, palabras son datos, un libro es información porque tiene datos (estas palabras) ordenadas con un propósito (contar una historia) y una biblioteca es una base de datos porque almacena esa información de forma ordenada!.
También con su propósito que es servirla al lector rápidamente, porque venga, si viene alguien a pedirte «el principito» y tu tienes una montaña de libros del alto de una casa, no vas a encontrarlo rápido.. Pero si tienes una estantería organizada por autores, tardarás poco tiempo..
-Y ¿cómo es esa estantería?
- Pues, en una biblioteca así:

Y nosotros manejamos algo así:
Recuerda que esto es una introducción a las bases de datos y por ende no pretendo que comprendas el «código» (entre comillas) de la imagen, ni el manejo de las tablas. Solo que veas como se puede organizar la información en un fichero externo.
Claro, una puede parecerse a un excel y la otra a un diccionario en un archivo. Ambas pueden ser bases de datos, lo que cambia es el modelo!!. Recordarás que en programación orientada a objetos (clases) hemos hablado de modelo como «plantilla». Pues existen diferentes «plantillas», «modelos» o formas de almacenar los datos en bases de datos. Y estos «modelos» o «plantillas» los elige el programador según diversos criterios que veremos más adelante.
Pero la mayoría tienen algo en común:
Componentes tradicionales de una base de datos
Al igual que en un diccionario en python tú almacenas los datos en un par «clave : valor» las bases de datos también tienen una especial forma de almacenarlos. Cada dato irá dentro de lo que se conoce normalmente como «campo«. Un campo podría verse como una celda, un espacio, un cubículo o en el caso de los libros como ejemplificamos antes un espacio para cada palabra. Así cada «campo» almacena un dato «del mismo tipo».
También existen los registros que almacenan el «conjunto de campos» (de diferente tipo cada campo o del mismo, pero varios campos). Y estos se organizan en una tabla (dependiendo el modelo que a su vez se organizan en filas y columnas), así:

Si prestas atención a la imagen la información está ordenada dentro de una tabla en filas (de izquierda a derecha) y columnas (de arriba a abajo). Esta contiene campos pero del mismo tipo determinado por la columna, por ejemplo todos los campos pertenecientes a edad almacenarán datos numéricos o un valor Null (nada). Cada conjunto de campos viéndolos de izquierda a derecha son un registro (que bien puede llamarse Tupla a cada registro) por ende en este ejemplo es una persona con sus datos.
Al ser almacenado en la tabla estos tipos de datos deben coincidir, puesto que cada columna determina el tipo de dato y no permite ingresar otro tipo, solo datos de ese tipo o bien el valor «null».
Null
El valor null es una referencia para determinar que aún no se especificó esa información o bien no se conoce. Normalmente null nos permite evitar dejar un campo vacío indicando que aún no existe un valor.
Como programadores o informáticos tenemos que pensar lógicamente siempre en la importancia de los datos, los tipos y el manejo de los mismos. Simplemente a medida que aprendíamos programación almacenamos los datos dentro del mismo código de nuestro software normalmente en tipos de datos estructurados, lo cual está bien para empezar, pero es momento de integrar las bases de datos y comenzar a trabajarlas en cada proyecto.
Para ello te invito a leer la siguiente entrada que considero también una introducción a las bases de datos pero hablando de la historia del nacimiento del modelo relacional de bases de datos y aprenderás a diferenciar los 2 modelos más utilizados actualmente en el desarrollo de aplicaciones web.


