1. Centro de Referencia Linux UAM-IBM
Introducción a las
bases de datos.
Carmen B. Navarrete Navarrete
carmen_navarrete@telefonica.net
Introducción a las BBDD 1
2. ¿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.
●
JDBC.
●
Introducción a las BBDD 2
3. Introducción
¿Qué son las bases de datos?
●
Gestores más conocidos.
●
Introducción a las BBDD 3
4. ¿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
●
campo se conoce como atributo.
Introducción a las BBDD 4
5. ¿Qué son las BBDD? (II)
Campo
Registro
Celda
Atributo
Tabla Productos.
Los valores que toman las celdas pertenecen
a un dominio.
Introducción a las BBDD 5
6. ¿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
–
en una tabla que pertenece a otra.
“Herencia”.
Introducción a las BBDD 6
7. ¿Qué son las BBDD? (IV)
Negrita: clave primaria
Subrayado: clave externa
Cursiva: atributo multievaluado
IDProducto: clave primaria
IDProducto: clave externa
DNI: clave primaria
Clave primaria con 3 atributos.
Introducción a las BBDD 7
8. ¿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
●
actualización).
Consultas (petición de datos).
●
Introducción a las BBDD 8
9. Gestores más conocidos
Gestor: da transparencia al
●
usuario sobre el principio de
localidad.
Introducción a las BBDD 9
10. Cómo empezar
Introducción a las bases de datos.
●
Administración de bases de datos.
●
Implementación de bases de datos.
●
Lenguaje SQL.
●
JDBC.
●
Introducción a las BBDD 10
11. Administración
Introducción.
●
Creación de usuarios.
●
Creación de tablas.
●
Introducción a las BBDD 11
12. 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
●
(comandos) depende del gestor de
la base de datos (en postgresql).
Introducción a las BBDD 12
13. 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)
Puertos, conexiones, etc.
●
Introducción a las BBDD 13
14. 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
●
datos con el mismo nombre que el
usuario.
Introducción a las BBDD 14
15. Continuamos con...
Introducción a las bases de datos.
●
Administración de bases de datos.
●
Implementación de bases de datos.
●
Lenguaje SQL.
●
JDBC.
●
Introducción a las BBDD 15
16. 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.
●
Diseño de tablas.
●
Introducción a las BBDD 16
17. 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
●
recomendaciones. Pura práctica y
“haber visto muchas”.
Introducción a las BBDD 17
18. 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
●
particulares de esa relación o de
las entidades que involucra.
Introducción a las BBDD 18
19. Entidades
Representación:
●
Atributos
Entidad
La entidad como mínimo tiene que tener un
●
atributo, de lo contrario, no es entidad.
Ya en este diagrama se especifican las
●
claves primarias y las multievaluadas,
pero NO las externas, puesto que aún no
existen.
Introducción a las BBDD 19
20. 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
●
entidades, sino que pueden relacionar
entre ellas 3, 4 o las que sean.
Introducción a las BBDD 20
21. Relaciones (II)
Representación general.
●
Relación 1 a 1
●
Relación 1 a N
●
Relación M a N
●
¿Y si la relación queda vacía...?
●
Introducción a las BBDD 21
22. 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
valor podrá ser un null.
Introducción a las BBDD 22
23. Ejemplos de relaciones
El nombre de una persona con sus
–
apellidos:
1aN
●
Si tiene más de un nombre:
–
MaN
●
Si es extranjero y solo tiene un
–
apellido:
1a1
●
Extranjero con más de un nombre:
–
1aN
●
Si no tiene o nombre o apellido
–
0 a N o 0 a 1 --> 0 a 0 no existe.
●
Introducción a las BBDD 23
25. 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
●
de la transformación de un diagrama
en otro.
Introducción a las BBDD 25
27. 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)
OCUPANTES (DNI, Matrícula, N_Ocupantes)
Introducción a las BBDD 27
28. 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.
●
JDBC.
●
Introducción a las BBDD 28
29. 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.
●
Otras operaciones.
●
Introducción a las BBDD 29
30. 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
●
(triggers, disparadores).
Introducción a las BBDD 30
31. 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
–
máximo de caracteres.
Introducción a las BBDD 31
32. 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.
●
INTERVAL ‘valor’ uinicio [TO ufinal]
–
Introducción a las BBDD 32
33. 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
–
3 horas 20 minutos y 45 segundos
●
Introducción a las BBDD 33
34. 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)
●
CHECK (VALUE IN (‘marca1’, ‘marca2’))
Introducción a las BBDD 34
35. 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 (;)
- Se pueden añadir restricciones
de columna y de tabla. Además las
restricciones se pueden nombrar.
Introducción a las BBDD 35
36. 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
●
DEFAULT
●
FOREIGN KEY
●
Introducción a las BBDD 36
37. 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
●
{DROP DEFAULT | SET DEFAULT}
Introducción a las BBDD 37
38. 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
●
han borrado todos los elementos que la
referencien.
Introducción a las BBDD 38
39. 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
●
'columnas' se puede sustituir por
●
números empezando a numerar en 1.
Introducción a las BBDD 39
40. 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
●
WHERE valor IN {lista | subconsulta}
–
Introducción a las BBDD 40
41. Consultas (III)
Filtro de subcadenas
●
LIKE 'cadena'
–
cadena puede contener:
–
'%' : ó 0 ó más caracteres.
–
– '-' : 1 caracter
– '/' : escapa esos caracteres.
Ejemplo:
●
WHERE trabajo LIKE ‘Infor%'
●
Introducción a las BBDD 41
42. 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,
●
intersecciones, NATURAL JOIN...
Introducción a las BBDD 42
43. 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.
API de SQL complejo con multitud de
funcionalidades.
Introducción a las BBDD 43
44. Y para acabar...
... e irnos a comer
Introducción a las bases de datos.
●
Administración de bases de datos.
●
Implementación de bases de datos.
●
Lenguaje SQL.
●
JDBC.
●
Introducción a las BBDD 44
45. 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
–
bases de datos.
Introducción a las BBDD 45
46. JDBC (II)
¿Quieres poder conectar una base
de datos con Java y hacerle una
interfaz gráfica?
Próximo episodio en prácticas...
Introducción a las BBDD 46