Você está na página 1de 46

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
¿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


Introducción

● ¿Qué son las bases de datos?


● Gestores más conocidos.

Introducción a las BBDD 3


¿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


¿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


¿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


¿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
¿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


Gestores más conocidos
● Gestor: da transparencia al
usuario sobre el principio de
localidad.

Introducción a las BBDD 9


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


Administración

● Introducción.
● Creación de usuarios.
● Creación de tablas.

Introducción a las BBDD 11


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


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


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


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


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


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
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


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


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


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


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


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
– 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
Diagrama E/R (II)

Introducción a las BBDD 24


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


Diagrama relacional (II)

1 M

1 N

Introducción a las BBDD 26


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


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


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


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


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


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


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


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


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


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
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


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


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


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


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


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
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


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


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


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

Você também pode gostar