+ All Categories
Home > Documents > Introducción a las bases de datos. Open DataBase Connectivity. JDBC: Java DataBase Connectivity....

Introducción a las bases de datos. Open DataBase Connectivity. JDBC: Java DataBase Connectivity....

Date post: 21-Oct-2018
Category:
Upload: vuongdieu
View: 232 times
Download: 0 times
Share this document with a friend
46
Introducción a las BBDD 1 Introducción a las bases de datos. Carmen B. Navarrete Navarrete [email protected] Centro de Referencia Linux UAM-IBM
Transcript

Introducción a las BBDD 1

Introducción a las bases de datos.

Carmen B. Navarrete [email protected]

Centro de Referencia Linux UAM-IBM

Introducción a las BBDD 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 3

Introducción

● ¿Qué son las bases de datos?● Gestores más conocidos.

Introducción a las BBDD 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 5

¿Qué son las BBDD? (II)

Los valores que toman las celdas pertenecen a un dominio.

Campo

RegistroCelda

Atributo

Tabla Productos.

Introducción a las BBDD 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 7

¿Qué son las BBDD? (IV)

IDProducto: clave primaria

IDProducto: clave externaDNI: clave primaria

Negrita: clave primariaSubrayado: clave externaCursiva: atributo multievaluado

Clave primaria con 3 atributos.

Introducción a las BBDD 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 9

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

Introducción a las BBDD 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 11

Administración

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

Introducción a las BBDD 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 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 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 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 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 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 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 19

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 claves primarias y las multievaluadas, pero NO las externas, puesto que aún no existen.

Introducción a las BBDD 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 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 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 23

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 24

Diagrama E/R (II)

Introducción a las BBDD 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 26

Diagrama relacional (II)

M

N

1

1

Introducción a las BBDD 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 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 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 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 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 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 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 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 0CHECK (VALUE IS NOT NULL)

● CREATE DOMAIN modelo CHAR VARYING(30)CHECK (VALUE IN (‘marca1’, ‘marca2’))

Introducción a las BBDD 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 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 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 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 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 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 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 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 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 44

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.

... e irnos a comer

Introducción a las BBDD 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 46

JDBC (II)

¿Quieres poder conectar una base de datos con Java y hacerle una

interfaz gráfica?

Próximo episodio en prácticas...


Recommended