Codemaker SQL

SQL Tema 2

Qué es una base de datos

Una base de datos (BBDD) es un sistema que permite guardar un conjunto de datos de forma estructurada y organizada, y que se almacena en un servidor.

El modelo cliente-servidor#

A diferencia de un archivo como un .txt que guardas en tu carpeta, una base de datos real funciona bajo el modelo cliente-servidor:

PiezaQué esQué hace
El servidorUn programa que está encendido 24/7Recibe peticiones de programas como el tuyo y les devuelve la información que han pedido
El clienteTu programa en Java (o en cualquier otro lenguaje)Envía mensajes (consultas SQL) al servidor para pedir o guardar cosas

Este sistema permite que miles de personas usen la misma base de datos al mismo tiempo desde distintas partes del mundo.

Nota

En clase usaremos SQLite, que guarda toda la base de datos en un único fichero (por ejemplo, codemaker.db) y no necesita un servidor encendido. Es perfecta para aprender: el SQL que escribas es el mismo que usarás después con un servidor de verdad.

Conceptos básicos#

Entidades#

Son los objetos o conceptos sobre los que queremos guardar información: Alumno, Profesor, Coche, Libro, etc. En la base de datos, cada entidad se convierte en una tabla.

Atributos#

Son las características que describen a una entidad. Por ejemplo, un Alumno tiene nombre, email, edad, etc. En la tabla, cada atributo es una columna, y cada alumno concreto es una fila (también llamada registro):

id_alumnonombreedadnivel
1Antonio17DEV
2María16DEV
3Juan13Senior

Aquí alumnos es la tabla, nombre es una columna, y 2 | María | 16 | DEV es una fila.

Clave primaria (Primary Key, PK): es el atributo único que identifica a cada fila. No puede repetirse ni estar vacío. En la tabla de arriba es id_alumno: puede haber dos alumnos que se llamen igual, pero nunca con el mismo id_alumno.

Relaciones#

Es la conexión lógica entre dos entidades. Por ejemplo, un Alumno tiene uno o varios Tutores (su madre, su padre…).

El lenguaje de las bases de datos#

Para que nuestro código en Java pueda hablar con la base de datos, usamos un lenguaje común: SQL (Structured Query Language).

Independientemente de si usas Java, Python o C#, el mensaje que enviarás a la base de datos siempre será el mismo. Las bases de datos no entienden lenguajes de programación: entienden SQL.

Ejemplo práctico: la base de datos de Codemaker#

Este es el diagrama de la base de datos que vamos a construir en estos apuntes. Cada caja es una tabla con sus columnas, y la línea dice cómo se relacionan: un alumno puede tener varios tutores, y cada tutor pertenece a un alumno.

Diagrama de la base de datos: la tabla alumnos se relaciona con la tabla tutores; un alumno tiene varios tutores