Juan Luis Mora Blanco. Introducción a los modelos de datos 1 Introducción al modelo de Datos Qué vamos a aprender?...1 Conceptos...1 Ejemplo 1. Cursos del Sexpe...2 Ventajas de las bases de datos...2 Introducción a los tipos de datos...2 Ejemplo. La editorial...2 Sistema gestor de bases de datos...3 Independencia de datos...3 Lenguajes de consulta a bases de datos...3 Ejercicios...4 Transacciones...4 Como se diseñan los diagramas E/R...4 Ejercicios...6 Cardinalidades...6 Claves externas...6 Qué vamos a aprender? Entender un problema de datos como entidades y relaciones Dibujar un diagrama entidad relación Pasar el diagrama entidad relación a una base de datos en SQL Poner datos en la base de datos usando SQL Hacer consultas usando SQL Conceptos 1. Entidad, objeto del mundo real, se puede contar, debe tener atributos (por ejemplo adjetivos). 2. Relación, las relaciones se establecen siempre entre entidades y constan de parte de los atributos de estas entidades. Aparte de esto tienen otras propiedades que veremos más adelante. 3. Diagrama entidad relación (E/R). Es un diagrama donde se ponen la entidades con sus respectivas relaciones. 4. SQL, lenguaje de consulta estructurado. Es un lenguaje de alto nivel. Se usa para : Definir datos, modificar datos, hacer consultas. 5. Consultas, son preguntas que lanzamos a nuestro modelo de datos, usando algún lenguaje como SQL. 6. Sistema gestor de base de datos. Software que nos permite olvidarnos de la implementación física de los datos. 7. Base de datos, conjunto de datos relacionado entre sí. 8. Las bases de datos se usan en: inventarios, reservas, compras, ventas...
Juan Luis Mora Blanco. Introducción a los modelos de datos 2 Ejemplo 1. Cursos del Sexpe Entidades: Alumnos Cursos Notas Posibles atributos: Alumnos: Nombre, Apellidos, DNI, fecha nacimiento. Cursos: Nombre, horas, fecha de inicio, fecha de fin. Notas: Alumno, nota, curso. Posibles relaciones Alumnos pertenece a curso Alumno saca nota en curso Notas pertenecen a curso Ventajas de las bases de datos Búsquedas rápidas Posibilidad de consultas complejas. No tenemos que saber como están guardados los ficheros. Introducción a los tipos de datos Desde que estamos usando Pseint, usamos a diario tipos de datos, es lo que hacemos al inicializar una variable. Por ejemplo cuando ponemos a< 0, establecemos una variable dentro de la memoria que se llama a y forzosamente va a almacenar siempre valores numéricos {, 2, 1, 0, 1, 2, } o también almacenaría número decimales. Ahora en este tema, vamos a ver estos tipos de datos de una forma más explicita la cual permite programar sin algunos problemas que hemos tenido en Pseint. Char y Varchar, ambas son similares, almacenan cadenas caracteres de una longitud determinada (0 255), pero tienen diferencias a nivel físico. Es más eficiente el uso de Varchar, por tanto casi siempre usaremos este. Text, almacena textos completos. Integer, número enteros. Date, fechas. Ejemplo. La editorial Autores Libros Id_autor integer Nombre Varchar(50) Apellidos Varchar (100) Telefono Integer Dirección Text SBN Integer Título Text Descripción Text Autor Integer Páginas Integer Publicado Date
Juan Luis Mora Blanco. Introducción a los modelos de datos 3 Sistema gestor de bases de datos A continuación se muestra un esquema típico de un SGBD: de datos, estudiaremos dos tipos de independencia: 1. Independencia física de datos (por ejemplo migrar de servidor no ofrecerá problemas). 2. Independencia lógica de datos (por ejemplo agregar atributos no modificaría las vistas). Lenguajes de consulta a bases de datos LDD, lenguaje de definición de datos LMD, lenguaje manipulación de datos 1. Nivel de vistas, es lo que ve el usuario, es decir, son los datos ya preparados para su presentación. 2. Nivel conceptual. Es el diagrama entidad relación más restricciones como pro ejemplo los tipos de datos. 3. Nivel físico, es la estructura interna del sistema. Independencia de datos Un SGBD aparte de mantener coherencia de datos, debe ofrecer independencia Ejemplo mysql CREATE TABLE "alumnos" ( id_alumno integer, Nombre varchar(20), Apellidos varchar(50), DNI varchar (15), ) Fecha_nacimiento Date Select apellidos from alumnos Select nombre, apellidos from alumnos where fecha_nacimiento= 16/11/1979 Insert into alumnos ( 22, Juan, Blanco Gonzalez, 15380353E, 17/02/1978 )
Juan Luis Mora Blanco. Introducción a los modelos de datos 4 Ejercicios Aunque no vamos a ver en profundidad Sql hasta el próximo módulo, si es conveniente que cojamos cierta soltura con el lenguaje, por eso de vez en cuando escribiremos un poco de SQL para ir familiarizarnos con él. Vamos a empezar con el LDD, con el lenguaje de definición de datos. Como su propio nombre indica, con este lenguaje se definen los datos. Con lo que sabemos de momento, podemos decir que con el LDD vamos dar forma a nuestras entidades. Par ello usaremos la sentencia CREATE, la forma de usar la sentencia es la siguiente: CREATE TABLE "nombre_tabla" ("columna 1" "tipo_de_datos_para_columna_1", "columna 2" "tipo_de_datos_para_columna_2",... ) Haz estos ejercicios Crea la tabla de los alumnos Crea la tabla de los cursos Crea la tabla de los escritores Crea la tabla de los libros Piensa las relaciones que se establecen entre las distintas tablas Transacciones Todo sistema gestor de bases de datos emplea transacciones, en principio nosotros las vamos a usar de una forma totalmente transparente (Se harán solas y de forma automática), no obstante es muy aconsejable saber que son y algunas propiedades que deben cumplir. Una transaccion es un conjunto de operaciones que se realizan sobre una base de datos, por ejempo una inserción, un borrado, una consulta, la creación de una tabla, la modificación de una restricción. Ante todo es muy importante que tras una transacción todo quede correcto y en caso contrario se debe poder volver a tras (rollback), para dejarlo todo igual que antes. Por tanto un SGBD debe asegurar las siguiente propiedades (A.C.I.D) Atomicidad, se ejecuta toda la transacción o nada. Consistencia, la base de datos debe ser consistente antes y después de la transacción. Insolation (aislamiento), las transacciones son independientes entre sí. Durabilidad, la transacción se almacena de forma permanente. Como se diseñan los diagramas E/R Vamos a aprender a Diseñar un diagrama entidad relación usando el ejemplo del cine. Para debemos saber, al menos (cuando tratamos problemas reales no sabemos todos los atributos desde el principio y seguramente según desarrollamos surgirán algunos atributos nuevos): 1. Se desean almacenar, películas según los actores que actúan y el estudio que las ha realizado. 2. De cada pelicular debemos saber: 1. Nombre y año 3. De cada actor: 1. Nombre y apellidos 4. De cada estudio nombre y dirección En la página siguiente se muestra una posible solución para el problema
Juan Luis Mora Blanco. Introducción a los modelos de datos 5 Entidades 1. Películas 2. Actores 3. Estudios Atributos Películas 1. Nombre 2. Año Atributos Actores 1. Nombre 2. Apellidos Atributos Estudio 1. Nombre 2. Dirección Vamos a aprovechar este ejemplo para hablar acerca de las características de los atributos: 1. Multivaluados y monovaluados. Teléfonos y nombre. 2. Almacenados o derivados. Nombre y edad. 3. Posiblemente nulos. 4. Claves. Identificadores que hacen que cada elemento de la entidad sea totalmente único. Estas claves son necesarias para hace las relaciones. Busquemos las claves del cine Normalmente las claves aparecen para poder definir las relaciones. Para eliminar atributos multivaluados, que son más complicados. Vamos a supones que de cada película sólo almacenamos el actor principal. Si miramos las relaciones vermos que para saber que actor actúa en cada película debemos poder aislar totalmente cada autor y cada película. De las películas no podemos tomar como clave el nombre ya qye varias películas se pueden titular igual, tampoco podemos tomar el año, ya que en un año se pueden producir muchas películas, quizás nos sirviese el el par película nmbre, pero sería muy arriegado. Por tanto pondremos un atributo identificador que se llamará id_película. Más o menos lo mismo nos pasaría con los Actores y con los estudios por eso los atributos quedaría así: Atributos Películas 1. Id_película 2. Nombre 3. Año 4. id_actor Atributos Actores 1. id_actor (DNI) 2. Nombre 3. Apellidos
Juan Luis Mora Blanco. Introducción a los modelos de datos 6 Atributos Estudio 1. id_estudio 2. Nombre 3. Dirección El diagrama E/R con las claves quedaría: Ejercicios 1. Crea en Sql las tablas correspondientes a las distintas entidades del cine. 2. Diseña los diagramas E/R para los cursos sexpe. 3. Diseña los diagramas E/R para los libros y autores. Cardinalidades La cardinalidad es el número de elementos de cada entidad que forma parte de una relación, por ejemplo: Piensa y representa las cardinalidad de las siguientes relaciones: Médico trata a paciente Médico hace receta Cama pertenece a hospital Autor escribe en libro Actor protagoniza película Representa gráficamente las anteriores relaciones. Claves externas Vamos a hacer un pequeño ejemplo con las claves externas usando el cine y los cursos (No obstante ya lo hemos visto en el caso de los autores y libros). El truco se basa en ponerle a una entidad los atributos distintivos de la otra y así ya tenemos las relaciones incluidas dentro de la entidad. 1. Añade claves externas a los cursos del Sexpe 2. Añade claves externas al cine.
Juan Luis Mora Blanco. Introducción a los modelos de datos 7 Relaciones con atributos Volviendo al ejemplo del cine, vamos a hacerlo ahora para múltiples actores por película, para ello tendremos que usar relaciones con atributos, veamoslo: Relaciones multi entidad Relaciones ternarias Son aquellas que se establecen entre tres entidades, normalmente las relaciones con atributos desembocan en una relación ternaria. Relaciones recursivas
Juan Luis Mora Blanco. Introducción a los modelos de datos 8 Entidades débiles y fuertes Entidad débil 1. No tienen atributos clave propios 2. Necesitan otra entidad para ser 3. identificados Entidad fuerte 1. Tiene clave primaria a primera vista (No confundir con la entidades dependientes!!!!!) Ejercicios 1. Define: 1. Entidad 2. Relación 3. SQL 4. SGBD 5. Atributo 6. Clave o identificadores 7. Diagrama E/R 8. Clave Externa 9. SQL 10. LDD 11. LMD 2. Enumera y describe las propiedades ACID o ACAD 3. Haz el diagrama E/R que resuelva este problema: Una empresa de Villanueva desea tener una base de datos donde se controlen los empleados y departamentos. De cada empleado se quiere saber: 1. Datos personales, nombre, apellidos, dirección, teléfonos, e_mail, nss, dni, departamento al que pertenecen y sueldo mensual. 2. De cada departamento queremos saber, nombre, ubicación, director, teléfono de contacto. 3. Ya sabes, pon las entidades, las relaciones, los atributos, las claves, las claves externas, la cardinalidad, las restricciones y todo lo necesario para que el diseño sea lo más real posible. 4. Intenta crear las tablas correspondientes a las entidades del ejercicio anterior en SQL 5. Haz el diagrama E/R que resuelva este problema: Una empresa de Villanueva desea tener una base de donde registrar las ventas por correo que realiza. Para ello quiere almacenar, clientes, productos y compras: 1. De cada cliente tenemos que almacenar: nombre, apellidos, dirección, teléfonos, e_mail, nss, dni, código postal y provincia. 2. De cada producto tenemos que almacenar, nombre, precio, stock, referencia. 3. De cada compra debemos saber, cliente que ha comprado, productos comprados y también se tiene que poder obtener el precio total. 4. Ya sabes, pon las entidades, las relaciones, los atributos, las claves, las claves externas, la cardinalidad, las restricciones y todo lo necesario para que el diseño sea lo más real posible. 6. Intenta crear las tablas correspondientes a las entidades del ejercicio anterior en SQL