Databases, SQL and Python (2024 edition): Glossary

Key Points

Familiarización con la shell SQLite
  • Una base de datos relacional almacena información en tablas, cada una de las cuales tiene un conjunto fijo de columnas y un número variable de registros

  • Un gestor de base de datos es un programa que manipula la información almacenada en una base de datos

  • Las consultas se expresan en un lenguaje llamado SQL para extraer información de las bases de datos

  • Usa SELECT ... FROM ... para obtener valores de una tabla de base de datos

  • SQL no distingue entre mayúsculas y minúsculas para los identificadores, pero sí para los datos

Nuestra primera base de datos
  • La creación de una base de datos desde SQLite se puede hacer desde la terminal poniendo un nombre de fichero.db.

  • Podemos automatizar la creación de tablas y la inserción de registros a través de scripts de SQL.

  • SQLite permite modos de salida para guardar resultados en ficheros en distintos formatos, como HTML y csv.

Manipulación de datos
  • Las claves únicas nos permiten evitar tener datos dupicados (muy útil para guardar identificadores, como el DNI)

  • La clave externa permite relacionar tablas diferentes a través de camos de diferentes tablas

  • Las opciones UPDATE/DELETE ON CASCADE permite mantener una integridad de datos

Transacciones
  • BEGIN inicia una transacción.

  • COMMIT cierra la transcacción guardando los cambios

  • ROLLBACK cierra la transacción sin guardar los cambios

Acceso mediante programa a la base de datos.
  • Casi cualquier gestor de base de datos tiene un interfaz de consulta para ser usado desde cualquier lenguaje de programación.

  • Para SQLite se usa el paquete sqlite3.

  • Podemos poner restricciones a la hora de hacer consultas usando la sección WHERE. Esto además puede conjuntarse con otros operadores como LIKE.

  • Con las consultas de agregación podemos hacer cálculos para contar el número de registros, entre otros.

Creación de nuevas tablas
  • Casi cualquier gestor de base de datos tiene un interfaz de consulta para ser usado desde cualquier lenguaje de programación

  • Para SQLite se usa en Python el paquete sqlite3

Carga masiva de datos en nuevas tablas
  • Casi cualquier gestor de base de datos tiene un interfaz de carga para ser usado desde cualquier lenguaje de programación

  • Para SQLite se usa en Python el paquete sqlite3

Glossary

aggregation function
A function that combines multiple values to produce a single new value (e.g. sum, mean, median).
atomic
Describes a value not divisible into parts that one might want to work with separately. For example, if one wanted to work with first and last names separately, the values “Ada” and “Lovelace” would be atomic, but the value “Ada Lovelace” would not.
cascading delete
An SQL constraint requiring that if a given record is deleted, all records referencing it (via foreign key) in other tables must also be deleted.
case insensitive
Treating text as if upper and lower case characters were the same. See also: case sensitive.
case sensitive
Treating upper and lower case characters as different. See also: case insensitive.
comma-separated values (CSV)
A common textual representation for tables in which the values in each row are separated by commas.
cross product
A pairing of all elements of one set with all elements of another.
cursor
A pointer into a database that keeps track of outstanding operations.
database manager
A program that manages a database, such as SQLite.
fields
A set of data values of a particular type, one for each record in a table.
filter
To select only the records that meet certain conditions.
foreign key
One or more values in a database table that identify records in another table.
prepared statement
A template for an SQL query in which some values can be filled in.
primary key
One or more fields in a database table whose values are guaranteed to be unique for each record, i.e., whose values uniquely identify the entry.
query
A textual description of a database operation. Queries are expressed in a special-purpose language called SQL, and despite the name “query”, they may modify or delete data as well as interrogate it.
record
A set of related values making up a single entry in a database table, typically shown as a row. See also: fields.
referential integrity
The internal consistency of values in a database. If an entry in one table contains a foreign key, but the corresponding records don’t exist, referential integrity has been violated.
relational database
A collection of data organized into tables.
sentinel value
A value in a collection that has a special meaning, such as 999 to mean “age unknown”.
SQL
A special-purpose language for describing operations on relational databases.
SQL injection attack
An attack on a program in which the user’s input contains malicious SQL statements. If this text is copied directly into an SQL statement, it will be executed in the database.
table
A set of data in a relational database organized into a set of records, each having the same named fields.
wildcard
A character used in pattern matching. In SQL’s like operator, the wildcard “%” matches zero or more characters, so that %able% matches “fixable” and “tablets”.