Introducción a las
bases de datos.
¿Qué vamos a ver?
● Introducción a las bases de datos.
● Administración de bases de datos.
● Implementación de bases de datos.
● Lenguaje SQL.
Introducción
● ¿Qué son las bases de datos?
¿Qué son las BBDD? (I)
● Colección de información
organizada y relacionada entre ella.
● Estructura similar a una matriz
(tabla) con filas (registros o entradas) y columnas (campos).
● La intersección de fila/columna
se llama celda.
● El tipo de información de un
¿Qué son las BBDD? (II)
Los valores que toman las celdas pertenecen
Campo
Registro
Celda
Atributo
¿Qué son las BBDD? (III)
● Conceptos básicos.
– Tabla, registro, campo, celda,
atributo, dominio...
– Relación: condición de los datos de
una base de datos.
– Clave primaria (primary key):
conjunto de atributos que identifican de forma única a cada tupla
(registro) en una relación.
– Clave externa (foreign key): clave
¿Qué son las BBDD? (IV)
IDProducto: clave primaria
IDProducto: clave externa DNI: clave primaria
Negrita: clave primaria Subrayado: clave externa
¿Qué son las BBDD? (V)
● Características importantes
– Principios:
● Coherencia de datos: no puede existir
datos contradictorios en la base de datos.
● Localidad: los datos no tienen porqué
residir en local. Pueden estar
distribuidas. Aparece el “gestor de la base de datos”.
– Operaciones sobre las bases de datos
● Modificación (inserción, borrado y
Gestores más conocidos
● Gestor: da transparencia al
Cómo empezar
● Introducción a las bases de datos.
● Administración de bases de datos.
● Implementación de bases de datos.
● Lenguaje SQL.
Administración
● Introducción.
● Creación de usuarios.
Introducción
● Todo programa informático
necesita de una administración.
● Aplicaciones, sistemas, web,
bases de datos, etc.
● Tarea consistente en creación de
usuarios, bases de datos, manejo de permisos de acceso...
● Cualquiera de estas operaciones
Administración de usuarios
● Hay que hacerlo desde el usuario
postgres.(1ª)
● Comando:
– createuser [OPTION][USERNAME]
● Permisos para crear nuevas bases
de datos, nuevos usuarios...
● Acordarse de la contraseña
(opción -P)
Administración de BBDD
● Hay que hacerlo desde el usuario
postgres (1ª).
● Comando:
– createdb [OPTION]...[DBNAME][DESCR]
● Base de datos que contiene todo
el conjunto de tablas.
● Por defecto se crea una base de
Continuamos con...
● Introducción a las bases de datos.
● Administración de bases de datos.
● Implementación de bases de datos.
● Lenguaje SQL.
Implementación.
● Introducción.
● Diagrama E/R.
– Entidades. – Relaciones.
● 1 a 1 (uno a uno)
● 1 a N (uno a muchos)
● M a N (muchos a muchos)
– Atributos.
● Diagrama relacional.
Introducción
● Se trata de “dibujar” el diseño de
la base de datos. Lenguaje gráfico estándar.
● Existen diferentes tipos de
diagramas.
● Perfecto para las personas a las
que le gusta la TIF “Teoría de Ideas Felices”.
● No existe un algoritmo, sólo
Diagramas E/R (I)
● Cajas como entidades y rombos con
flechas como relaciones.
● Entidades: Conjuntos de elementos
que “sufren” las acciones. “Sujeto”
● Relaciones: unen las entidades
entre sí. “Verbos”.
● Atributos: características
Entidades
Entidad Atributos
● Representación:
● La entidad como mínimo tiene que tener un
atributo, de lo contrario, no es entidad.
● Ya en este diagrama se especifican las
Relaciones (I)
● Existen diferentes representaciones
dependiendo del tipo de relación que tenga más sentido usar.
● La relación puede no tener atributos.
Depende de si existen o no características que varíen en la relación entre las
entidades.
● Al igual que antes, se especifican las
primarias y multievaluadas, pero no las externas.
● Las relaciones no solo “relacionan” dos
Relaciones (II)
● Representación general.
● Relación 1 a 1
● Relación 1 a N
● Relación M a N
Relaciones (III)
● Podría hacerse una similitud con conjuntos
de la siguiente manera:
El vacío no significa que no haya relación sino que puede que aún ese valor no exista. Por ejemplo, el número de
ocupantes de un coche, a excepción del conductor. Puede que sea un
acompañante, más de uno, o directamente
ninguno... En el E/R se tiene en cuenta y en la implementación este
Ejemplos de relaciones
– El nombre de una persona con sus
apellidos:
● 1 a N
– Si tiene más de un nombre:
● M a N
– Si es extranjero y solo tiene un
apellido:
● 1 a 1
– Extranjero con más de un nombre:
● 1 a N
Diagrama relacional (I)
● Puede obtenerse a partir del
diagrama anterior.
● Entidades con cajas y atributos
(primarios, externas y mutievaluados).
● Desaparecen las relaciones. Se
especifica la cardinalidad.
● Recomendación (no algoritmo) acerca
Diagrama relacional (II)
M
N 1
Diseño de tablas
● Se trata de definir con texto las
tablas a usar, para después pasar a SQL
En negrita las claves primarias, subrayadas las claves externas.
COCHE (Matrícula, Bastidor, DNI, Modelo)
MOTOR (Bastidor, Cilindrada, Potencia, Consumo)
Y se programa en...
● Introducción a las bases de datos.
● Administración de bases de datos.
● Implementación de bases de datos.
● Lenguaje SQL.
Lenguaje SQL
● Introducción y evolución.
● Tipos de datos.
● Creación de tablas.
– Restricciones.
● Modificación de tablas.
● Borrado de tablas.
● Consultas a tablas.
Introducción y evolución
● 1970: Codd describe el modelo relaciona.
– System V: gestor de bases de datos.
– SEQUEL: el lenguaje de programación.
● SEQUEL deriva en SQL Standard Query Language.
● 1982: primer estándar de SQL.
● 1989: modificaciones sobre la integridad
referencial.
● 1992: siguiente estándar.
● 1997: estándar orientado a objetos
Tipos de datos (I)
● Tipos numéricos.
– Enteros: INT(EGER), SMALLINT
– Reales: FLOAT, REAL, DOUBLE PRECISION – Con formato: DECIMAL(t,d) NUMERIC(t,d)
● t: número total de dígitos.
● d: cifras a la derecha del punto.
● Cadenas de caracteres.
– CHAR(n): número de caracteres.
– VARCHAR(n), CHAR VARYING(n): número
Tipos de datos (II)
● Cadenas de bits.
– BIT(n): número de bits.
– BIT VARYING(n): número máximo de bits.
● Fechas.
– DATE 'yyyy_mm_d'
● Horas.
– TIME 'hh:mm:ss'
● Intervalos.
Ejemplos de INTERVAL
– INTERVAL ‘1’ YEAR
● 1 año
– INTERVAL ‘3-2’ YEAR TO MONTH
● 3 años y 2 meses
– INTERVAL ‘2 12’ DAY TO HOUR
● 2 horas y media
– INTERVAL ‘3:20’ HOUR TO MINUTE
● 3 horas y 20 minutos
– INTERVAL ‘3:20:45’ HOUR TO SECOND
Tipos de datos (III)
● Dominios
– Parecido al TYPEDEF ENUM de C.
– CREATE DOMAIN nombre [AS] tipo_datos
[DEFAULT {literal | NULL}]
[CONSTRAINT nombre] CHECK(expresion)
– Ejemplos:
● CREATE DOMAIN matricula NUMERIC(4)
DEFAULT 0
CHECK (VALUE IS NOT NULL)
● CREATE DOMAIN modelo CHAR VARYING(30)
Creación de tablas
● Para crear una tabla se usa:
– CREATE TABLE nombre
(columna {tipo_datos | dominio});
- Todas las entradas acaban
excepto la última en coma (,).
La última va con punto y coma (;)
Restricciones
● Restricciones de columna
– Obligar a que los valores de la
columna cumplan unas condiciones
● Restricciones de tabla
– Sobre todo integridad de la tabla
con otras tablas
● Ejemplos:
● NOT NULL ● UNIQUE
● PRIMARY KEY ● CHECK
Modificación
● En la modificación de tablas se
diferencian las operaciones de:
– Añadir columnas
● ALTER TABLE tabla ADD columna tipo
– Eliminar columnas
● ALTER TABLE tabla DROP columna
{CASCADE | RESTRICT}
– Modificar definiciones de columna
● ALTER TABLE tabla ALTER columna
Borrado
● Borrar restricciones
– ALTER TABLE tabla DROP CONSTRAINT restr
● Borrar tablas
– DROP TABLE tabla {CASCADE | RESTRICT}
● CASCADE: se borra la tabla y todos los
elementos de la BD que referencien a la tabla.
● RESTRICT: sólo se borra la tabla si antes se
Consultas (I)
● Básicamente es:
– SELECT columnas FROM tabla WHERE condicion
● columnas = * --> todas las columnas
● Eliminar valores repetidos.
– SQL no elimina tuplas repetidas. Se usa el
operador DISTINCT antes de 'columnas'¡
● Ordenar los resultados
– ORDER BY columnas {ASC | DESC}
● ASCendente, DESCendente
Consultas (II)
● Renombrar columnas del resultado
– Esto se hace para volver a usar esa columna
en la consulta.
● Seleccionar valores en un
intervalo.
– WHERE valor BETWEEN valor_1 AND valor_2
– Ej: BETWEEN hoy AND hoy + interval '14'
● Pertenecer a un conjunto
Consultas (III)
● Filtro de subcadenas
– LIKE 'cadena'
– cadena puede contener:
– '%' : ó 0 ó más caracteres. – '-' : 1 caracter
– '/' : escapa esos caracteres.
● Ejemplo:
Otros operadores
● Se pueden usar <, >, =, ...
● Existe el operador NOT
● Operadores más complejos como
EXIST, COUNT, HAVING, ADD, SUM, GROUP BY ...
● Referido a más de una tabla:
productos cartesianos (,) y uniones.
● Uniones, diferencias,
Resumen SQL
Sobre todo: ¡¡NO HAY VARIABLES!! ¿Cómo haríais un bucle tipo FOR?
y ¿llevar una cuenta? ...
Cambio muy fuerte de mentalidad en cuanto a la programación.
Y para acabar...
● Introducción a las bases de datos.
● Administración de bases de datos.
● Implementación de bases de datos.
● Lenguaje SQL.
● JDBC.
JDBC (I)
● SQL Estático
● SQL Embebido (incrustado)
– Las consultas se crean en tiempo de
ejecución.
– Necesario una CLI (Common Language
Interface)
● ODBC: Open DataBase Connectivity.
● JDBC: Java DataBase Connectivity.
– Drivers para las conexiones con las
JDBC (II)
¿Quieres poder conectar una base de datos con Java y hacerle una
interfaz gráfica?