INTRODUCCION A LAS BASES DE DATOS Procesamiento de Archivos vs Bases de Datos ARCHIVOS BASES DE DATOS Datos repetidos. No se manejan estándares. Había inconsistencia de datos. Falta de seguridad en los datos. No existían aplicaciones de uso general. Eliminar redundancias. Poder compartir los datos. Cumplir normas establecidas. Mantener integridad y seguridades de datos. Reducir inconsistencias. Primera práctica: Realizar un programa alumnos (nombre, apellidos, dni, edad, está matriculado) y los almacene en un segundo programa que nos pida un dni y los datos del alumno. que pida los datos de asignaturas en las que fichero. Realizar un nos devuelva el resto de Base de Datos Es un repositorio en donde guardamos información que podemos almacenar y guardar. Es un conjunto de tablas y procesos organizados, estructurados, relacionadas entre si, con la finalidad de manipular datos. Más definiciones de Base de Datos Fondo común de información almacenada en una computadora para que cualquier persona programa autorizado pueda acceder a ella, independientemente de su procedencia del uso que haga. Una base de datos o banco de datos (en ocasiones abreviada con la sigla BD o con la abreviatura b. d.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Existen programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del ámbito de la informática. Sistema de Gestión de Bases de Datos Conjunto de elementos software con capacidad para definir, mantener y utilizar una base de datos. Componentes Hardware Dispositivo de almacenamiento (en nuestro caso ninguno especial. Software DBMS ó Sistema Manejador de Base de Datos (MYSQL en nuestro caso). Datos Almacenados y Procesados. Tipos de usuarios Usuario Final Persona que usa los datos. Desarrollador de Aplicaciones Persona que desarrolla aplicaciones para el sistema en algún lenguaje de programación (que normalmente requerirán algún tipo de librería). DBA (Administrador de Base de Datos) Persona que asegura la integridad, inconsistencia, seguridades de datos. Esta se encarga del mantenimiento periódico o diario de la base de datos. Interactúan con la base de datos Modelización de una base de datos Modelos de datos lógicos: Destacan los modelos ENTIDADRELACIÓN y el modelo orientado a objetos. Usaremos el modelo ENTIDAD-RELACIÓN. Modelos de datos implementables: Usaremos el modelo RELACIONAL, aunque también están el jerárquico y el modelo en red. MODELO RELACIONAL: De forma resumidad podríamos decir que consta de lo siguiente: Definición de tablas para almacenar datos. Álgebra Relacional: Operaciones con los datos (entre las tablas) El modelo anterior es el modelo que siguen gran cantidad de Sistemas de Bases de Bases como son Oracle, MySQL, Postgresql, Microsoft sql server, etc. Lo común a todos ellos es la utización del SQL (lenguaje de consulta estructurado) para definir nuestra base de datos y realizar búsquedas en la misma. Una de sus características es el manejo del álgebra y elcálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla información de interés de una base de datos, así como también hacer cambios sobre ella. Modelización semántica: El modelo Entidad-Relación: El modelo E-R es un mecanismo formal para representar y manipular información de manera general y sistemática. En él cualquier dato o concepto debe ser definido o modelado de manera única, posteriormente se establecerán las conexiones con tros datos. Por ejemplo algo llamado pedido será definido una sola vez y posteriormente se establecerá su relación con clientes, productos, etc. Incluir en un modelo más datos de los necesarios sólo servirá para añadir ruido al diseño y entorpecer la implementación. Elementos del modelo: 1. Entidades y atributos: a. Entidad: objeto distinguible de los demás (libro, empleado, departamento, asignatura). b. Atributos: propiedades que caracterizan un conjunto de entidades (dni, nombre, sueldo, etc.). El conjunto devalores permitidos es conocido como dominio. Si uno o varios atributos identifican a una entidad de manera unívoca a ese conjunto de atributos los llamaremos clave primaria (por ejemplo el dni). c. Entidad débil: Entidades que aún teniendo atributos propios ningún subconjunto de ellos permite identificar unívocamente a ese entidad (no hay clave primaria) y para ello hemos de relacionar esa entidad con otra que llamaremos entidad fuerte (por ejemplo los asientos de un avión con un avión, los movimientos con una cuenta). 2. Asociaciones o relaciones: Conexión semántica entre dos o más conjuntos de entidades (autor escribe libro, empreado trabaja departamento). a. Muchos a muchos: libros y autores b. Uno a muchos: departamentos y empleados (un empleado no puede estar en varios departamentos). c. Uno a uno: relación casado. Las relaciones pueden tener atributos por ejemplo trabajador trabaja (fecha de alta) en departamento. Existen relaciones que conectan un conjunto de entidades consigo mismo (por ejemplo empresa trabaja para empresa). 3. Diagramas: Ejemplo de uso de diagramas con modelo de gestión universitaria: nuestras entidades son departamentos, profesres, asignturas, grupos, matrículas, alumnos, aulas, ect. Un profesor pertenece a un solo departamento. Un profesor puede impartir varios grupos de la misma o diferente asignatura y un grupo ha de ser impartido por al menos un profesor. Hay grupos de teoría y de practicas con un máximo de alumnos por grupo. Los grupos tienen clase a días y horas determinadas. Los alumnos que se matriculan en una asignatura lo hacen en grupo determinado. Todo departamento tiene un director. 4. Generalización y especialización: 5. Agregación: 6. Relaciones n-arias: Del modelo E-R al modelo relacional: La única estructura presente en el modelo relacional es la tabla. Vemos como pasar la información de los diagramas anteriores a tablas que contendrán nuestros datos. 1. Entidades: Paso directo, tenemos una tabla con todos los atributos de la entidad. La clave primaria hace que la tabla no contenga filas repetidas. 2. Entidades débiles: La tabla correspondiente contendrá todos los atributos propios más la clave primaria del cnjunto de entidades fuertes del que depende 3. Conexiones: La tabla correspondiente tendrá como atributos las claves primarias de los elementos relacionados más los atributos propios de la conexión. a. Muchos a muchos: La unión de las claves primarias de las entidades junto con algún atributo de la relación (deenderá de su significado) formará la clave primaria de la tabla obtenida. b. Muchos a uno: La clave primaria de la entidad UNO suele ser la clave primaria de la tabla (quizás falte añadir algún atributo de la relación). c. Uno a Uno: Cada clave primaria en las entidades es clave primaria en la tabla que obtenemos (solamente se elegirá una de ellas). 4. Generalización: Dos opciones. a. Podemos crear una tabla para cada una de las entidades. Tendríamos así las tablas EMPLEADO(NRP,NOMBRE, DIRECCIÓN), FUNCIONARIO(NRP,NIVEL, FECHAALTA) y LABORAL(NRP,GRUPO, ESPECIALIDAD). b. La entidad superior desaparece y tenemos las tablas FUNCIONARIO(NRP,NOMBRE, DIRECCIÓN, NIVEL, FECHAALTA) y LABORAL(NRP,NOMBRE, DIRECCIÓN,GRUPO,ESPECIALIDAD). 5. Agregación: Las agregaciones no se reflejan en tablas aunque cuando intervienen en una relación hay que pensar que su clave primaria es la de la relación que contenida en ella. 6. Relaciones n-arias: a. Muchos-muchos-muchos: Se utilizan las claves primarias de las entidades y los atributos de la relación. La tabla en este caso es SUMINISTRO(COD-PROV,CODPROY,COD-PIE). b. Muchos-muchos-uno: Para este caso utilizamos una generalización de la forma siguiente. Obtenemos en este caso las tablas SUM1(COD-PIEZA,CODPROV) y SUM2(COD-PIE,COD-PROV,COD-PROY). c. Mucho-uno-uno: Tenemos en este caso dos opciones: Las tablas para la primera opción serían SUM1(COD-PIE,COD-PROY) y SUM2(COD-PIE,COD-PROY). Para la segunda opción tenemos SUM1(COD-PROV,COD-PROY) y SUM2(COD-PROV,COD-PIE). Ejercicio: Pasar al modelo relacional el ejemplo anterior. Ejercicio: Se trata de organizar la información relativa a una compañía de seguros de automóvil, donde se mantienen daos acerca de los clientes, los vehículos, las polizas y los partes de accidente. Tenemos las siguientes restricciones: a. Un cliente puede tener asegurado más de un vehículo en la compañía. b. Cada vehículo posee una única póliza de seguro que tendrá un precio en función de la cobertura que se haya contratado y de las carácter´´isticas del vehículo. c. Sobre los siniestros ocurridos deberá conocerse la fecha, el lugar, la causa y la cuantía de los daños ocasionados. Cada tip de siniestro o accidente (colisión múltiple, adelantamiento indebido, exceso de velocidad, etc.) va identificado por un código. d. En un accidente pueden estar involucrados verios vehículos asegurados por la misma compañía. Pasar al modelo relacional el diagrama anterior. Ejercicio: Gestión de la información que se manipula en un hospital sobre pacientes, médicos, historias clínicas, ingresos, pruebas, etc. Tenemos la siguiente situación: o Cada paciente tiene asociada una historia clínica única que se genera la primera vez que el paciente visita el hospital y en la cual se van anotando todos sus ingresos. o Las habitaciones pueden tener varias cama, que irán numeradas y serán de un determinado tipo. o Durante un ingreso, el paciente ocupará una misma cama y se le podrán realizar tantas pruebas como sea necesario. o Los distintos tipo de prueba van codificadas y se realizan con un aparato determinado en una sala determinadas. o Es importante saber cuándo (día y hora) se ha realizado cadas una de las pruebas a un paciente y qué especialista la ha llevado a cabo. o Los atributos asociados a cada conunto de entidades serán los habituales en estos casos. a Disponemos de los siguientes elementos de información: Tarjetas de crédito (identificadas por un número), titulares de dichas tarjetas (de los que conocemos DNI, domicilio y teléfono) y cuentas corrientes (con un código, saldo y fecha de apertura). Las restricciones que tenemos son: o Cada persona puede tener más de una tarjeta. o Cada tarjeta tiene un único titular o propietario. o Cada tarjeta está asociada a una única cuenta. o Podemos cargar más de una tarjeta a una cuenta determinada. o Cada cuenta pertenece a una sola persona. o Una persona puede tener más de una cuenta. Una empresa almacena datos referentes a departamentos (código, nombre, ubicación), empleados (DNI, nombre, DNI del cónyuge), proyectos (código, nombre, presupuesto9, proveedores (código, nombre, teléfono, dirección) y productos (código, nombre, precio). La restricciones son: o Cada empleado trabaja en un departamento. o Un empleado puede trabajar en varios proyectos. o Existe un empleado que dirige cada proyecto. o Los proyectos usan productos. o Los precios de los productos pueden variar de un proveedor a otro. o Algunos productos tiene componentes que son, a su vez, productos. FORMALIZACIÓN DEL MODELO RELACIONAL: Atributo: cuanquier elemento de información del “mundo” que vamos a representar, susceptible de tomar valores. Dominio: llamaremos dominio D al conjunto de valores que puede tomar un determinado atributo A. Relación: Consideremos los atributos Ai . Una relación asociada a los atributos anteriores es un cualquier subconjunto finito del producto cartesiano de sus dominios. Base de datos relacional: Un base de datos relacional es un conjunto finito de relaciones. Propieades de las relaciones: No hay orden en sus elementos. No orden en las tuplas. No hay elementos duplicados. Clave candidata (a clave primaria): Subconjunto C de los atributos de una relación que verifica: 1. Para cualquier par de elementos de la relación el conjunto de valores que toman en los atributos de la clave canditada no coinciden. 2. No existe ningún subconjunto C’ de C que verifique el punto anterior.