Introducción a las BBDD 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 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) Campo Atributo Registro Celda Tabla Productos. Los valores que toman las celdas pertenecen a un dominio.
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) 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 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 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 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.
Diagrama E/R (II) Introducción a las BBDD 24
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) 1 M 1 N
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 0 CHECK (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...... 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 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...