Upload
vuongdieu
View
235
Download
0
Embed Size (px)
Citation preview
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 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 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 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.