Bases de datos y JDBC
Java y Servicios Web I
Master en Ingeniería Matemática
Manuel Montenegro
Dpto. Sistemas Informáticos y Computación
Desp. 467 (Mat)
[email protected]
Bases de datos
● Una base de datos (DB) es una colección de
datos interrelacionados, pertenecientes a un
mismo contexto, y almacenados
sistemáticamente para su posterior uso.
● Un sistema gestor de bases de datos (DBMS)
es un programa que almacena y accede a la
información contenida en las bases de datos.
● Una base de datos modela la información
sobre ciertas entidades, y sobre relaciones
entre las mismas.
29 y 30/Mayo/2012
10. Bases de datos y JDBC
2
Contenidos
● Bases de datos relacionales
● Sistemas gestores de bases de datos
● Acceso a bases de datos
● Consultas SQL
● Acceso a bases de datos con JDBC
29 y 30/Mayo/2012
10. Bases de datos y JDBC
3
Estudiante
Entidades
Asignatura
29 y 30/Mayo/2012
10. Bases de datos y JDBC
4
Entidades
Nombre
Apellidos
DNI
Atributos
Estudiante
Teléfonos
Fecha
Nacimiento
Código
Nombre
Asignatura
Grupos
Créditos
29 y 30/Mayo/2012
10. Bases de datos y JDBC
5
Nombre
Apellidos
DNI
Estudiante
Teléfonos
Fecha
Nacimiento
Relaciones
Matriculado
Código
Nombre
Asignatura
Grupos
Créditos
29 y 30/Mayo/2012
10. Bases de datos y JDBC
6
Relaciones
Nombre
Apellidos
DNI
Grupo
Estudiante
Teléfonos
Fecha
Nacimiento
Matriculado
Código
Nombre
Asignatura
Grupos
Créditos
29 y 30/Mayo/2012
10. Bases de datos y JDBC
7
Relaciones
0..*
Matriculado
Grupo
0..*
Código
Nombre
Asignatura
Grupos
Créditos
Nombre
Apellidos
DNI
Estudiante
Teléfonos
Fecha
Nacimiento
Relaciones:
– Uno a uno
– Uno a varios
– Varios a varios.
29 y 30/Mayo/2012
10. Bases de datos y JDBC
8
Bases de datos relacionales
● Modelos de bases de datos:
● Relacionales.
● Jerárquicos.
● Orientado a objetos.
● etc.
● El modelo relacional de base de datos es el más
usado en la actualidad.
● Se basa en la idea de relación, considerada como
un conjunto de tuplas. Cada relación es una tabla
con filas (registros) y columnas (atributos)
29 y 30/Mayo/2012
10. Bases de datos y JDBC
9
Bases de datos relacionales
Estudiante
DNI
Nombre
12345673V Ricardo
Apellidos
Fernández Aguinaga
Fecha Nac.
20/04/1980
82122314X Luis
...
...
Díaz Castro
...
25/04/1978
...
Teléfonos
912421124
617293744
913111564
...
Asignatura
Código
101
102
...
Nombre
Álgebra
Funciones de una
variable
...
Créditos
15
12
Grupos
A,B,C
A,B,C
...
...
29 y 30/Mayo/2012
10. Bases de datos y JDBC
10
Bases de datos relacionales
Matriculado
DNI Estudiante
12345673V
12345673V
82122314X
...
Cod. Asignatura
101
102
101
...
Grupo
A
A
B
...
29 y 30/Mayo/2012
10. Bases de datos y JDBC
11
Atomicidad
● Las columnas sólo pueden tener valores
atómicos. En particular:
● No podemos tener una lista de números de
teléfono dentro de una celda de la tabla de
estudiantes.
● No podemos tener una lista de grupos dentro de
una celda de la tabla de asignaturas.
● Estas restricciones pueden solventarse
mediante la creación de relaciones adicionales.
29 y 30/Mayo/2012
10. Bases de datos y JDBC
12
Atomicidad
Nombre
DNI
12345673V Ricardo
Apellidos
Fernández Aguinaga
Fecha Nac.
20/04/1980
82122314X Luis
...
...
Díaz Castro
...
25/04/1978
...
Teléfonos
912421124
617293744
913111564
...
DNI
Nombre
12345673V Ricardo
12345673V Ricardo
82122314X Luis
...
...
Apellidos
Fernández Aguinaga
Fernández Aguinaga
Díaz Castro
...
Fecha Nac.
20/04/1980
20/04/1980
25/04/1978
...
Teléfonos
912421124
617293744
913111564
...
Redundancia
29 y 30/Mayo/2012
10. Bases de datos y JDBC
13
Atomicidad
Nombre
DNI
12345673V Ricardo
Apellidos
Fernández Aguinaga
Fecha Nac.
20/04/1980
82122314X Luis
...
...
Díaz Castro
...
25/04/1978
...
Teléfonos
912421124
617293744
913111564
...
DNI
12345673V Ricardo
82122314X Luis
...
...
Nombre Apellidos
Fecha Nac.
Fernández Aguinaga 20/04/1980
Díaz Castro
25/04/1978
...
...
Teléfono
DNI
12345673V 912421124
12345673V 617293744
82122314X 913111564
...
...
29 y 30/Mayo/2012
10. Bases de datos y JDBC
14
Atomicidad
Código
101
102
...
Nombre
Álgebra
Funciones de una
variable
...
Créditos
15
12
Grupos
A,B,C
A,B,C
...
...
Código
101
102
...
Nombre
Álgebra
Funciones de una
variable
...
Créditos
15
12
...
Código
101
101
101
102
102
102
...
Grupo
A
B
C
A
B
C
...
29 y 30/Mayo/2012
10. Bases de datos y JDBC
15
Bases de datos relacionales
● El modelo relacional de nuestra base de datos
quedaría:
● Estudiante(DNI, Nombre, Apellido, FechaNac)
● Asignatura(Codigo, Nombre, NumCreditos)
● Matriculado(DNIEstud, CodigoAsig, Grupo)
● TieneTlf(DNIEstud, Telefono)
● TieneGrupo(CodigoAsig, Grupo)
29 y 30/Mayo/2012
10. Bases de datos y JDBC
16
Claves
● Las claves de una tabla es el conjunto de
campos que identifican unívocamente a cada
registro de la tabla.
● Debe tener siempre un valor en cada registro.
● El valor debe permanecer inalterable.
● No pueden existir dos registros dentro de la misma
tabla con la misma clave.
29 y 30/Mayo/2012
10. Bases de datos y JDBC
17
Claves
● Las claves de cada tabla se representan
mediante el subrayado en el modelo
relacional.
● Estudiante(DNI, Nombre, Apellido, FechaNac)
● Asignatura(Codigo, Nombre, NumCreditos)
● Matriculado(DNIEstud, CodigoAsig, Grupo)
● TieneTlf(DNIEstud, Telefono)
● TieneGrupo(CodigoAsig, Grupo)
29 y 30/Mayo/2012
10. Bases de datos y JDBC
18
Claves
● Una clave externa es la representación de la
clave de una tabla en otra.
● Estudiante(DNI, Nombre, Apellido, FechaNac)
● Asignatura(Codigo, Nombre, NumCreditos)
● Matriculado(DNIEstud, CodigoAsig, Grupo)
● TieneTlf(DNIEstud, Telefono)
● TieneGrupo(CodigoAsig, Grupo)
29 y 30/Mayo/2012
10. Bases de datos y JDBC
19
Contenidos
● Bases de datos relacionales
● Sistemas gestores de bases de datos
● Acceso a bases de datos
● Consultas SQL
● Acceso a bases de datos con JDBC
29 y 30/Mayo/2012
10. Bases de datos y JDBC
20
Gestores de bases de datos
● Existe una gran cantidad de gestores de bases
de datos relacionales.
● Oracle
● Microsoft SQL Server
● Microsoft Access
●
MySQL
● PostgreSQL
29 y 30/Mayo/2012
10. Bases de datos y JDBC
21
Gestores de bases de datos
Aplicación
Consultas
Modificaciones
DBMS
Datos
Programador
Lenguaje SQL
29 y 30/Mayo/2012
10. Bases de datos y JDBC
22
Lenguaje SQL
● SQL (Structured Query Language)
● Es un lenguaje declarativo de acceso a bases
de datos relacionales.
● DDL (Data definition language)
Modificación de la estructura de la base de datos.
Creación de tablas.
● DML (Data manipulation language)
Consulta, inserción, y eliminación de registros
dentro de una tabla.
29 y 30/Mayo/2012
10. Bases de datos y JDBC
23
Contenidos
● Bases de datos relacionales
● Sistemas gestores de bases de datos
● Acceso a bases de datos
● Consultas SQL
● Acceso a bases de datos con JDBC
29 y 30/Mayo/2012
10. Bases de datos y JDBC
24
Acceso a bases de datos
● Desde Java: JDBC + driver
MySQL
Aplicación
Programador
● Consola de
MySQL.
● Herramienta gráfica (phpMyAdmin)
29 y 30/Mayo/2012
10. Bases de datos y JDBC
25
Herramienta phpMyAdmin
● Interfaz web para
MySQL.
● Situada en
http://dalila.sip.ucm.es/phpmyadmin
● Nombre de usuario y contraseña:
¡Pregunta al profesor!
29 y 30/Mayo/2012
10. Bases de datos y JDBC
26
Herramienta phpMyAdmin
● Lista de bases de datos
29 y 30/Mayo/2012
10. Bases de datos y JDBC
27
Crear tablas
29 y 30/Mayo/2012
10. Bases de datos y JDBC
28
Tipos de datos
● CHAR(Longitud)
● VARCHAR(Longitud)
● TINYTEXT
● TEXT
● MEDIUMTEXT
● TINYINT
● SMALLINT
● MEDIUMINT
● INT
● BIGINT
● FLOAT
● DOUBLE
● DECIMAL
● DATE
● DATETIME
● TIMESTAMP
● TIME
● ENUM
29 y 30/Mayo/2012
10. Bases de datos y JDBC
29
Insertar registros en una tabla
29 y 30/Mayo/2012
10. Bases de datos y JDBC
30
Contenidos
● Bases de datos relacionales
● Sistemas gestores de bases de datos
● Acceso a bases de datos
● Consultas SQL
● Acceso a bases de datos con JDBC
29 y 30/Mayo/2012
10. Bases de datos y JDBC
31
Consultas en SQL
● Obtener todas las filas y columnas de una
tabla.
SELECT * FROM Estudiantes
DNI
Nombre
12345673V Ricardo
82122314X Luis
20358182T Marta
29377172M Roberto
45219913T Marta
40231491M Martín
23195991S Sandra
29918481X Francisca
Apellidos
Fernández Aguinaga
Díaz Castro
Domínguez Iborra
Blanco Rodrigo
Díaz Agrela
Montes Di Cesare
González de Castro
Montes Trujillo
FechaNac
1980-04-25
1978-04-15
1975-12-21
1981-12-22
1983-01-20
1979-03-15
1982-11-21
1907-10-19
29 y 30/Mayo/2012
10. Bases de datos y JDBC
32
Consultas en SQL
● Obtener ciertas columnas de una tabla
SELECT DNI, Nombre
FROM Estudiantes
DNI
Nombre
12345673V Ricardo
82122314X Luis
20358182T Marta
29377172M Roberto
Laura
45219913T
40231491M Martín
23195991S Sandra
29918481X Francisca
29 y 30/Mayo/2012
10. Bases de datos y JDBC
33
Consultas en SQL
● Imponer condiciones a las filas resultado.
SELECT DNI, Nombre, Apellidos
FROM Estudiantes
WHERE Nombre = 'Marta'
Nombre
DNI
20358182T Marta
45219913T Marta
Apellidos
Domínguez Iborra
Díaz Agrela
29 y 30/Mayo/2012
10. Bases de datos y JDBC
34
Consultas en SQL
● Imponer condiciones a las filas resultado.
SELECT DNI, Nombre, Apellidos
FROM Estudiantes
WHERE FechaNac >= '1980-01-01' AND
FechaNac < '1990-01-01'
DNI
Nombre
12345673V Ricardo
29377172M Roberto
45219913T Marta
23195991S Sandra
Apellidos
Fernández Aguinaga
Blanco Rodrigo
Díaz Agrela
González de Castro
29 y 30/Mayo/2012
10. Bases de datos y JDBC
35
Consultas en SQL
● Imponer condiciones a las filas resultado.
SELECT DNI, Nombre, Apellidos
FROM Estudiantes
WHERE FechaNac BETWEEN '1980-01-01' AND
'1990-01-01'
DNI
Nombre
12345673V Ricardo
29377172M Roberto
45219913T Marta
23195991S Sandra
Apellidos
Fernández Aguinaga
Blanco Rodrigo
Díaz Agrela
González de Castro
29 y
Comentarios de: Bases De Datos y JDBC - Java y Servicios Web I - Master en Ingeniería Matemática (0)
No hay comentarios