Bases de Datos - A PDF
Document Details
Uploaded by Deleted User
2023
Tags
Summary
Este libro de curso de bases de datos, del año 2023, cubre temas como la introducción a las bases de datos, modelos entidad-relación, el modelo relacional, normalización, y lenguajes como SQL. Detalles de la evolución histórica de las bases de datos y la tecnología subyacente están incluidos.
Full Transcript
BASES DE DATOS - A Desarrollo de aplicaciones multiplataforma Desarrollo de aplicaciones web ILERNA, centro autorizado con código 250...
BASES DE DATOS - A Desarrollo de aplicaciones multiplataforma Desarrollo de aplicaciones web ILERNA, centro autorizado con código 25002775 (Lleida), 28077294 (Madrid) y 41023090 (Sevilla) www.ilerna.es © Ilerna Online S.L., 2023 Maquetado e impreso por Ilerna Online S. L. © Imágenes: Shutterstock Impreso en España - Printed in Spain Reservados todos los derechos. No se permite la reproducción total o parcial de esta obra, ni su incorporación a un sistema informático, ni su transmisión en cualquier forma o por cualquier medio (electrónico, mecánico, fotoco- pia, grabación u otros) sin autorización previa y por escrito de los titulares del copyright. La infracción de dichos derechos puede constituir un delito contra la propiedad intelectual. Ilerna Online S. L. ha puesto todos los recursos necesarios para reconocer los derechos de terceros en esta obra y se excusa con antelación por posibles errores u omisiones y queda a disposición de corregirlos en posteriores ediciones. 2.a edición: marzo 2023 ÍNDICE Bases de datos - A 1. Introducción a las bases de datos (BBDD)........................................ 6 1.1. Evolución histórica de las BBDD....................................................8 1.2. Ventajas e inconvenientes de las BBDD...................................... 11 1.3. Almacenamiento de la información............................................ 12 1.4. Sistemas Gestores de bases de datos (SGBD)............................ 17 1.5. ANSI/X3/SPARC. Estándares y niveles......................................... 23 1.6. Modelos de BBDD. Tipos: jerárquico, red, relacional y orientado a objetos....................................................................................... 25 1.7. Bases de datos centralizadas y distribuidas............................... 29 2. Modelo entidad-relación................................................................ 36 2.1. Concepto de modelo entidad-relación....................................... 38 2.2. Entidad: representación gráfica, atributos y tipos de claves..... 39 2.3. Relación: representación gráfica, atributos, grado y cardinalidad................................................................................ 42 2.4. Diagrama entidad-relación......................................................... 43 2.5. Modelo entidad-relación extendido........................................... 49 2.6. Guía para la construcción de un modelo entidad-relación....... 57 3. Modelo relacional........................................................................... 58 3.1. Terminología del modelo relacional........................................... 59 3.2. Concepto de relación. Propiedades y relaciones....................... 60 3.3. Atributos y dominio de los atributos.......................................... 60 3.4. Concepto y tipos de clave: candidatas, primarias, ajenas, alternativas................................................................................... 63 3.5. Valores nulos................................................................................ 66 3.6. Reglas de integridad: de entidad y referencial.......................... 66 3.7. Traducción del modelo entidad-relación al modelo relacional.68 4. Normalización................................................................................. 74 4.1. Concepto de normalización, dependencias funcionales y sus tipos.............................................................................................. 75 4.2. Las formas normales.................................................................... 78 4.3. Primera forma normal (1FN)....................................................... 78 4.4. Segunda forma normal (2FN)...................................................... 81 4.5. Tercera forma normal (3FN)........................................................ 82 4.6. Forma normal Boyce-Codd (FNBC)............................................ 83 4.7. Otras formas normales (4FN, 5FN)............................................. 83 4.8. Desnormalización........................................................................ 83 5. Lenguajes de las BBDD. SQL........................................................... 84 5.1. Tipos de lenguajes para gestionar los datos en un SGBDR corporativo................................................................................... 86 5.2. Herramientas gráficas proporcionadas por el SGBD para la edición de la BD........................................................................... 87 5.3. Lenguaje de definición de datos (DDL).................................... 104 5.4. Lenguaje de manipulación de datos (DML)............................. 114 5.5. Extensiones y otras cláusulas del lenguaje............................... 125 5.6. Herramientas de la BDD para optimizar consultas.................. 127 6. Estrategias para el control de las transacciones y de la concurrencia..................................................................................128 6.1. Concepto de integridad............................................................. 129 6.2. Concepto de transacción. Control............................................. 131 6.3. Propiedades de las transacciones: atomicidad, consistencia, aislamiento y permanencia....................................................... 132 6.4. Estados de una transacción: activa, parcialmente comprometida, fallida, abortada y comprometida................. 133 6.5. Sentencias de transacciones..................................................... 134 6.6. Problemas derivados de la ejecución concurrente de transacciones............................................................................. 135 6.7. Control de concurrencia: técnicas optimistas y pesimistas..... 136 6.8. Recuperación ante errores. Mecanismos para deshacer transacciones............................................................................. 138 7. Lenguajes de las BBDD para la creación de su estructura............140 7.1. Vistas y otras extensiones del lenguaje.................................... 141 Bibliografía / webgrafía.....................................................................146 Solucionario.......................................................................................147 1 INTRODUCCIÓN A LAS BASES DE DATOS (BBDD) Bases de datos - A Las bases de datos (BBDD) son una parte esencial e impres- cindible en el ámbito de los sistemas informáticos. Existen diversas perspectivas y definiciones sobre las BBDD, pero nos vamos a centrar en aquellas relativas a la informática. CONCEPTO Una BBDD se puede definir como una agrupación de datos relacionados entre sí, almacenados en formato digital, con una orga- nización o estructura determinada, de modo que se permite el acceso a dicha información con cierta rapidez. Entre las propiedades más importantes de las BBDD pode- mos destacar las siguientes: Representan elementos abstractos o concretos del mun- do real. Están diseñadas para un objetivo específico. Pueden llegar a almacenar grandes cantidades de infor- mación. Se habilita su uso para un grupo de usuarios concreto. 7 Tema 1: Introducción a las bases de datos (BBDD) 1.1. Evolución histórica de las BBDD Las BBDD como concepto genérico, es decir, como idea de un conjunto de datos o registros recopilados, organizados de algún modo y accesibles para un uso posterior, está directamente relacionado con el origen de la historia hu- mana, dado que dicho origen se establece tras la invención de la escritura. Se ha descubierto que muchos de los primeros escritos que se han hallado y estudiado, como por ejemplo los de la antigua civilización sumeria, servían como registro de las transacciones comerciales o como inventario. Por ejemplo, de la cantidad de arroz recogido tras una cosecha o de animales de ganadería que pertenecían a una persona tras una transacción comercial. Toda esta información quedaba registrada de manera clara y organizada para poder realizar posteriores consultas en caso de necesitarse. Imagen de una antigua tablilla cuneiforme, uno de los primeros sistemas de escritura. 8 Bases de datos - A Con el avance de la historia, este tipo de información fue registrándose cada vez con mejores tecnologías: se pasó del uso de tablillas de arcilla al uso de ordenadores digita- les, pasando por tecnologías intermedias, como el papel y la tinta. En este apartado, nos vamos a centrar en la evolución histórica de las BBDD desde del siglo XX. Es decir, desde la aparición de la informática y la digitalización de la in- formación. 1900 – 1950 Se dan los primeros pasos de la informática con la inven- ción del tubo de vacío, la construcción de la primera puerta lógica AND, la máquina de Turing, la primera máquina elec- tromecánica (Harvard Mark I) o el diseño de la arquitectura de von Neumann. Imagen actual de la Máquina de Turing. Años 60 Aparecen sistemas por lotes (batchprocessing), que eran ejecuciones de programas en los que no era necesario que el usuario tuviese que estar controlando la máquina continuamente. Comienza la incipiente comercialización de la informática y surge DatabaseTaskGroup dentro de CODASYL. Por otro lado, IBM y American Airlines crean SABRE, un sistema de control de pasajeros y vuelos de avión en Estados Unidos. 9 Tema 1: Introducción a las bases de datos (BBDD) Años 70 Edgar Frank Codd crea y publica el modelo relacional de bases de datos. A raíz de esa publicación, nace el sistema de BBDD de ORACLE. Aparece el modelo entidad-relación, que facilita el diseño de las BBDD. Años 80 Fue a partir de los 80 cuando empezó a extenderse la informática y, con ella, las BBDD. Anteriormente, las aplica- ciones que gestionaban las BBDD estaban diseñadas para ser gestionadas por personal muy cualificado. Para solven- tar este problema surgió la estandarización, con un nuevo lenguaje de programación denominado SQL. Este lenguaje produjo un estímulo en el ámbito de las BBDD relacionales. Fue entonces cuando aparecieron los primeros ordenado- res personales, capaces de manejar sistemas de gestión de BBDD a nivel de usuario. StructureQueryLanguage aparece en los años 80. Años 90 A principios de los noventa, nos encontrábamos con una distribución bastante amplia de utilización de BBDD en todas las empresas, por lo que esta década se caracteriza las mejoras en el rendimiento de los sistemas gestores. Microsoft desarrolla el popular sistema gestor de BBDD: Microsoft Access. Los Sistemas de Gestión de bases de datos (SGBD) de la época tenían que servir, básicamente, para gestionar las distintas BBDD que utiliza cada usuario en un ordenador personal. 10 Bases de datos - A Años 2000 y en adelante Tres grandes empresas dominan el mercado de los sistemas gestores de BBDD: ORACLE, IBM y Microsoft. Debido a los límites que presentaban las BBDD en épocas ponte a prueba anteriores, nace la necesidad de incluir tecnologías con imagen y sonido a nuestro almacén de información. Por ¿A partir de qué año es esta razón, los SGBD incluyeron el tipo abstracto de datos posible gestionar los sistemas (TAD). Este tipo de dato no solamente comprende valores, de gestión de bases de datos a sino también operaciones y propiedades. nivel de usuario? Esta nueva forma de entender las BBDD nos lleva a la im- a) A partir de los años 80, con la plementación de la orientación a objetos (OO). El éxito aparición del sistema de base del paradigma de la programación orientada a objetos de datos de Oracle. (POO) y la inclusión de las BBDD en las páginas web, hacen b) A partir de los años 80, con la que los SGBD relacionales estén en plena transformación aparición del lenguaje SQL. para adaptarse a estas nuevas tecnologías de reciente éxito c) A partir de los años 90, con la y fuertemente relacionadas. aparición del sistema gestor Microsoft Access. d) A partir de los años 2000, 1.2. Ventajas e inconvenientes de cuando aparecen los SGDB. las BBDD ¿Qué sistemas aparecen en los años 60? Ventajas a) Los sistemas de puerta lógica La información contenida en la BBDD se procesa de forma AND. independiente. Gracias a un buen diseño de relación entre b) L os sistemas los datos, conseguimos la menor redundancia posible. Batchprocessing. Mediante las BBDD podemos llegar a conseguir la unidad c) Los sistemas SGBD. máxima de información partiendo de una pequeña can- d) L os sistemas de tidad de datos. estandarización. Aseguran la integridad de los datos y devuelven unos re- sultados coherentes. Posibilitan una gran seguridad para la información. Reducen el espacio para el almacenamiento de la infor- mación comparada con otros medios como el papel físico. Se obtiene una forma muy eficiente de almacenar los datos. Desventajas Requieren de un mantenimiento por parte de un adminis- trador cualificado. Requieren la adquisición y configuración de un hardware, lo cual resulta más costoso que otras alternativas como la información en papel. Por tanto, a corto plazo no ofrece rentabilidad. Necesita un espacio considerable en la memoria de la com- putadora, además del espacio requerido en el disco duro. 11 Tema 1: Introducción a las bases de datos (BBDD) 1.3. Almacenamiento de la información Las BBDD son hoy la técnica más eficiente para guardar información de todo tipo de una manera estructurada y accesible. En la sociedad actual, las BBDD están presentes en múltiples ámbitos. Por ejemplo, en Educación, se puede mantener un registro completo de todos los alumnos con sus respectivas calificaciones. En el de la Sanidad se usan BBDD para almacenar toda la información de los pacien- tes, junto con sus historiales médicos. La Banca la usa, por ejemplo, para guardar información de sus clientes y sus cuentas bancarias. Incluso solo en un teléfono móvil se pueden llegar a encontrar distintas BBDD para diversas aplicaciones. En el ámbito de la informática, para almacenar información se utiliza un elemento clave llamado fichero. Los ficheros, también denominados archivos, son una secuencia de dígitos binarios que, siguiendo una estructura lógica de- terminada, almacenan una información concreta, como, por ejemplo, un informe, una imagen, una BD o una can- ción musical. Tipos de ficheros Según como sea el método de acceso a un fichero, pode- mos diferenciar entre los siguientes tipos: Ficheros planos: se caracterizan por tener un orden con- tiguo de registros, de modo que para acceder a un registro concreto se han de recorrer secuencialmente, desde el principio, todos los registros que existan previamente. 12 Bases de datos - A Ficheros indexados: en estos ficheros la información se divide en dos tipos: el índice y los registros. En el índice se establece una tabla de claves que indican la posición física de cada uno de los registros, para así acceder a cada uno más rápidamente. Ficheros de acceso directo: en este tipo se prescin- de del índice y el campo clave de un registro pasa a ser la dirección física. De este modo, el posicionamiento es inmediato y normalmente se necesita que los registros tengan un tamaño fijo. Otros: existen otros tipos de ficheros, como los que usan las funciones Hash, esto es, un algoritmo matemático que se utiliza para generar la relación clave-posición de cada registro. Las operaciones básicas que se pueden realizar en un fi- chero son: Abrir (open) Prepara el fichero para su posterior operación de lectura y/o escritura. Cerrar (close) Cierra el fichero, por lo que no se puede trabajar más con él. Leer (read) Obtiene la información del fichero. Escribir (write) Guarda información en el fichero. Posicionarse (seek) Posiciona el puntero para su posterior operación de lectura y/o escritura. Fin de fichero (eof) Marca el final del fichero. Conceptos clave de las BBDD Tal y como hemos definido previamente, una BD se puede entender como una colección de datos que se relacionan entre sí, en formato digital, con una organización de- terminada y accesible. Se utiliza para mantener la información de diversos objetos de una forma coherente y jerarquizada, de tal manera que, con la mínima cantidad de datos almacenados podamos sacar el mayor número de resultados posible. Para tal fin, vamos a organizar la información dentro de la BBDD en unas estructuras llamadas tablas, definidas posteriormen- te, que deben estar perfectamente relacionadas entre ellas. 13 Tema 1: Introducción a las bases de datos (BBDD) A continuación, se definen de forma más detallada algunos de los conceptos usados en BBDD: Dato: expresa una información concreta sobre algo es- pecífico. Por ejemplo, la edad de una persona es un dato, su fecha de nacimiento es otro dato, la calificación de un alumno en un examen, etc. Tipo de dato: es la estructura en la que se está expresado un dato concreto. Por ejemplo, un dato podría ser de tipo numérico si expresa una edad o podría ser de tipo fecha. Un dato también podría ser de tipo booleano, si lo que se desea es expresar un valor binario, es decir, verdadero o falso. Campo: es un identificador que agrupa los datos de una misma propiedad o atributo en común de todos los regis- tros de una tabla. Por ejemplo, en la tabla Personas, cada registro es una persona concreta y un campo de esos re- gistros podría ser la fecha de nacimiento o el apellido. En función de la información que indica el campo, este ten- drá un tipo de dato u otro. Tabla: corresponde a una entidad formada por varios campos y registros. Por ejemplo, podríamos crear la tabla Persona, que estuviera formada por los campos nombre, apellidos, edad, sexo, DNI, etc., y cada registro sería una persona distinta. Las tablas son el principal elemento del modelo relacional. 14 Bases de datos - A Registro: un registro es una agrupación de datos que ha- cen referencia a un mismo elemento. Por ejemplo, en la tabla Persona un registro podría ser: María, Gómez, 25 años, Mujer, 47585858X. Campo clave: es un campo que identifica de manera única cada registro. Por ejemplo, en la tabla Persona el campo clave podría ser el DNI, ya que el DNI no se repe- tirá entre los diferentes registros. Consulta: una consulta es una petición de búsqueda que se realiza cuando se quiere obtener alguna información. También se conoce como query y se diferencian consul- tas de peticiones, inserciones de datos, actualización o eliminación. Estas consultas pueden ser ejecutadas sobre una o varias tablas. Índice: es una estructura que agrupa los campos clave de cada tabla. De esta forma, si buscamos a través de este índice podemos encontrar los registros de una forma más rápida. Vista: es una tabla virtual que engloba campos de una o diferentes tablas. Informe: es un listado de campos y registros selecciona- dos con un formato que facilita su lectura. Por ejemplo, un informe puede ser un listado de los trabajadores de mayor edad de una empresa. Los informes se diseñan en función del usuario al que van destinados. 15 Tema 1: Introducción a las bases de datos (BBDD) Guiones o scripts: son un conjunto de instrucciones que con una cierta funcionalidad. Estas instrucciones suelen realizarse para el mantenimiento de los datos de las tablas. Procedimiento: un procedimiento es un tipo especial de script que está almacenado en la propia BD. Usos de las BBDD Hoy en día, las BBDD se utilizan en infinidad de áreas. A continuación, veremos varios ejemplos en los que las BBDD se utilizan para gestionar información: Bibliotecas: almacenamos la información perteneciente tanto a libros (títulos, autores, editoriales, años de publi- cación…) como a usuarios, que reservan y utilizan dichos libros (nombres, apellidos, fecha de alquiler, fecha de de- volución…). Censo: guardamos información demográfica de los ha- bitantes (nombres, edades, sexo…) y de sus municipios, comarcas, regiones, países… Científicas: guardamos información recogida en todo tipo de proyectos y experimentos científicos para su pos- terior tratamiento. Administrativas: cualquier empresa necesita mantener la información totalmente ordenada, estructurada y ac- cesible para su buen funcionamiento. Tipos de BBDD Existen diversos tipos de BBDD, pero en función del criterio que usemos para categorizarlas, obtendremos distintas clasificaciones. A continuación, vamos a listar los tipos de BBDD según su modelo de datos (cómo están estructurados internamen- te) y según su ubicación. Tipos de BBDD según su modelo de datos Jerárquicas: se organizan en una estructura de diferen- tes niveles, como un árbol invertido. Esta se asemeja a la organización de árbol que usa el sistema operativo para almacenar la información en el disco. En red: la información se organiza en una estructura de enlaces y nodos. Cada registro contiene un enlace a otro registro. No hay una jerarquía entre los nodos. Relacionales: la información se organiza a través de ta- blas. Las tablas pueden estar interrelacionadas entre sí, de modo que ciertos datos de una tabla pueden depen- der de otras tablas. 16 Bases de datos - A Orientada a objetos: la información se estructura en objetos, los cuales pertenecen a clases. Este tipo permi- te evitar la redundancia gracias a la reutilización de las clases. Si nos guiamos por el criterio de la ubicación, podemos ponte a prueba dividir las bases de datos en centralizadas y distribuidas. Este punto lo estudiaremos un poco más adelante. ¿A qué tipo de fichero se hace referencia con esta afirma- ción: “Disponemos de un fichero lleno de registros, y 1.4. Sistemas gestores de bases para encontrar un registro en de datos (SGBD) concreto debemos recorrer todos los registros de forma CONCEPTO secuencia que se encuentran antes que este.”? Un sistema gestor de base de datos (SGBD) es a) Ficheros indexados. un programa o software que facilita a la persona encargada de la administración de las BBDD b) Ficheros secuenciales. el tratamiento de la información que contiene. c) Ficheros planos. Puede realizar operaciones como diseño, d) Ficheros de lectura continua. consulta y modificación de dichos datos. Dadas las siguientes opciones, indica cuál no podría ser un campo clave en una base de datos. A continuación, vamos a ver algunos de los más utilizados: a) Nombre de persona. b) DNI. c) Matrícula de un coche. d) ID de una película. En referencia a la clasificación de las BBDD. Según su modelo de datos, ¿en cuántos tipos las podemos clasificar? a) Jerárquicas. b) En red. c) Relacionales. d) Todas las opciones anteriores son correctas. Funciones, componentes y tipos Las funciones de los SGBD se pueden clasificar en tres tipos diferentes: Definición: especifican los tipos de datos, las estructuras y las restricciones que se van a almacenar, asegurando la cohesión e integridad de estos. Construcción: proceso de almacenamiento de datos en algún medio controlado por el SGBD. En esta función, podemos citar la posibilidad que deben tener estos siste- 17 Tema 1: Introducción a las bases de datos (BBDD) mas de gestión para que dicha BBDD se pueda conectar con el exterior utilizando algún medio. El estándar más utilizado para estos casos es el protocolo ODBC, que co- munica la BD con una aplicación externa. Manipulación: incluye tareas como la manipulación y consulta de los datos almacenados para obtener una in- formación. Podemos mencionar las herramientas complementarias que ofrecen estos sistemas de gestión para las estadísticas sobre consultas, actualizaciones e incidencias ocurridas en las BBDD. Los SGBD deben estar implementados para que estas operaciones se realicen de forma sencilla y ofrezcan un gran rendimiento. Según su capacidad y potencia, los podemos clasificar en dos grandes grupos: SGBD ofimáticos: destinados a manipular BBDD de uso doméstico o pequeñas empresas. Presentan una interfaz intuitiva y sencilla. El administrador de este sistema no tiene que ser un usuario experto. Por ejemplo, Microsoft Access. SGBD corporativos: implementados para manipular BBDD con una capacidad mucho mayor que los anteri- ores. Suelen ser implantados en grandes o medianas empresas con una gran carga de datos y un volumen alto de transacciones, de tal forma que requieren de un servi- dor con altas prestaciones. El ejemplo más extendido de estos SGBD es ORACLE. Esquema de un SGBD. 18 Bases de datos - A Según su licencia de uso, podemos dividir los SGBD en dos grupos: SGBD comerciales: son aquellos que requieren una li- cencia de uso, de tal modo que el usuario debe abonar un pago establecido para tener el derecho al uso o redis- tribución del SGBD. Además, un SGBD comercial puede ser de código cerrado, lo que significa que el usuario del SGBD no tiene acceso al código fuente y, por tanto, no puede modificarlo. Normalmente este tipo de software suele tener una ga- rantía de mantenimiento así como una cierta estabilidad en su funcionamiento. Algunos de los SGBD comerciales más comunes son Oracle, Microsoft Access o Microsoft SQL Server. SGBD libres: son aquellos que no requieren de una licen- cia de uso por parte del usuario, ni para la utilización ni ¿SABÍAS QUE...? para la distribución. Es común que los SGBD libres, más allá de su uso gratuito, dispongan de código abierto, de modo que el usuario pueda modificar el mismo SGBD. Algunos de los SGBD libres más comunes son MySQL, PostgreSQL y MariaDB. Oracle es una empresa Objetivos del SGBD que ofrece un SGBD Los SGBD o Data Base Management System, en inglés, son de tipo comercial programas de software que brindan a los distintos usuarios (también ofrece otro la posibilidad de procesar, describir, administrar y recupe- libre) y MySQL está rar aquellos datos almacenados en las BBDD. Ofrecen una más enfocado a los serie de programas y procedimientos que permiten a los SGBD libres. usuarios llevar a cabo las diferentes tareas, teniendo siem- pre especial cuidado con la seguridad de los datos. DATOS Para que los SGBD puedan mantener la seguridad e inte- gridad de todos los datos, deben proporcionar una serie de herramientas a los usuarios, entre las que podemos encontrar: Creación y especificación de los datos: crean la estructura física que se requiera en cada unidad. Manipulación de los datos de las BBDD: añaden, modifi- can, suprimen o consultan los datos. 19 Tema 1: Introducción a las bases de datos (BBDD) Recuperación: se lleva a cabo mediante la creación de co- pias de seguridad. Gestión de la comunicación de la BBDD. Creación de aplicaciones. Instalación de la BBDD. Exportación e importación de datos. Tipos de usuarios de BBDD: informáticos y no informáticos Podemos diferenciarlos de la siguiente manera: Informáticos: usuarios sofisticados que se comunican con el sistema mediante consultas, incluyendo a los es- pecializados, capaces de diseñar las aplicaciones de la BBDD en diferentes sistemas. Los administradores de la BBDD también forman parte de los informáticos. No informáticos: aquellos que simplemente interactúan con el programa mediante interfaces de formularios re- llenando datos. 20 Bases de datos - A Administrador de la base de datos (DBA): funciones y responsabilidades Nos referimos a administradores de la base de datos para referirnos a aquellas personas que tienen el control sobre la BBDD en cuestión. Entre sus funciones principales pode- mos encontrar: Definir el esquema de la BBDD. Definir sus estructuras de almacenamiento. Modificar dicho esquema y su organización física. Asignar autorización para su uso. Especificar restricciones de integridad. Tipos de lenguajes de BBDD Podemos diferenciar cuatro tipos de lenguajes, que deta- llamos a continuación: DDL (Data Definition Language): es el lenguaje de de- finición de datos y se utiliza para crear la estructura de una BBD y, también, para diseñar las vistas del nivel ex- terno. Genera una serie de tablas que se almacenan en un archivo al que llamamos diccionario de datos. DML (Data Manipulation Language): es el lenguaje de manipulación de datos y se utiliza para realizar ope- raciones sobre los datos, como insertar, modificar, borrar y consultar. Pueden ser de dos tipos: – Procedimentales: cuando tenemos que especificar de qué forma se obtienen los datos. – No procedimentales: cuando solo tenemos que espe- cificar qué datos son los que se van a necesitar. DCL (Data Control Language): es el lenguaje que nos permite crear permisos y roles y, de ese modo, controlar el acceso a la BBDD. Utiliza GRANT para dar privilegios y REVOKE para retirarlos. TCL (Transactional Control Language): permite admi- nistrar las transacciones que ocurren en la BBDD. Emplea COMMIT para guardar el trabajo realizado y ROLLBACK para deshacer lo realizado desde el último COMMIT. Diccionario de datos: concepto, contenido, tipos y uso Un diccionario de datos es el lugar donde se va a depositar la información referente a los datos que forman la BBDD. Contiene las características lógicas de los sitios donde se van a almacenar los datos del sistema. 21 Tema 1: Introducción a las bases de datos (BBDD) El diccionario proporciona información sobre la estructura lógica y física de la BD: Define todos los objetos de la BD: tablas, vistas, funcio- nes, procedimientos, etc. Define el espacio que tiene asignado y va a ser utilizado por los objetos. Define los valores por defecto de las columnas de las tablas. Define los privilegios asignados. Contiene información sobre restricciones de integridad. Aquí podemos ver un ejemplo: Nombre: Empleado Fecha de creación: 27/09/2018 Descripción: Información de cada empleado Campo Tipo Tamaño Descripción idEmpleado Number 20 Campo primario para identificar al cliente nombre Varchar 60 Nombre del cliente apellidos Varchar 95 Apellido del cliente salarioE Float 10 Cantidad salarial anual departamentoE Number 5 Número del departamento al que pertenece fechaEntrada Date 10 Fecha de incorporación del empleado Relaciones: departamentoE con tabla Departamento Campos clave: idEmpleado Además, un diccionario de datos debe cumplir una serie de características, como son: Soportar descripciones del modelo conceptual. Apoyar la transferencia de información. 22 Bases de datos - A Estar integrado dentro de DBMS. Actualizar los cambios en la descripción de la BBDD. Estar almacenado mediante un acceso directo para tener una fácil recuperación de información. Entre los tipos de diccionarios de datos, podemos encon- trar los siguientes: Off-Line: su función es mantener el diccionario. On-Line: – Funciona con el compilador. – No deja que el programador defina los datos, sino que los define directamente. – Se asegura de que los datos existen en el diccionario. – Añade la definición de los datos. In-Line: no añade la definición de los datos hasta que no se ejecuta. 1.5. ANSI/X3/SPARC. Estándares y niveles En 1975, el organismo ANSI-SPARC (American National Standards Institute – Standards Planning And Requirements Committee) creó un diseño abstracto para estandarizar la manera en que los Sistemas de Gestión de bases de datos (SGBD) administraban las BBDD. Este diseño constaba de una arquitectura de tres niveles: el externo, el conceptual y el interno. De este modo, se conse- guía separar la visión que los usuarios tenían de la BD con los detalles internos de su estructura. Esta arquitectura nunca llegó a estandarizarse formalmen- te, sin embargo, hoy en día la mayoría de los SGBD usan como referente esta propuesta. Nivel externo o de visión: es el nivel enfocado al usuario de la BD. En este nivel se muestra al usuario la informa- ción que le es pertinente y en el formato adecuado. En este nivel se oculta al usuario la información que no tiene permitido ver y, además, se omiten los detalles técnicos sobre la información a la que sí tiene acceso. Nivel conceptual: es el nivel que determina la organiza- ción de los datos en la BD. En este nivel está determinado la información que se almacena en la BD y qué relaciones e interrelaciones existen entre los mismos datos. El admi- nistrador de la BD debería ser el único usuario con acceso 23 Tema 1: Introducción a las bases de datos (BBDD) a este nivel. Este nivel es un nivel lógico, por tanto es in- dependiente al software y hardware utilizado. Nivel interno o físico: es el nivel que determina cómo están almacenados los datos físicamente en el sistema informático. Este nivel concreta los detalles de almace- namiento de cada conjunto de datos, tales como el tipo de dato para cierto campo, el método de acceso a una tabla, etc. Esta arquitectura permite a que el DBA cambie sin que los usuarios lo vean. No hay que confundir la arquitectura de tres niveles de una BD en funcionamiento con los pasos o fases que se deben realizar para la creación de una BD de inicio al final (recopilación de la información, creación del modelo enti- dad-relación, paso al modelo relacional e implementación del modelo físico). Representación niveles de abstracción de la arquitectura DBMS. 24 Bases de datos - A 1.6. Modelos de BBDD. Tipos: jerárquico, red, relacional y orientado a objetos Un modelo de BD determina la estructura lógica que tendrá la BD. Es decir, establece cómo organizar, almacenar y ma- nipular los datos. Además, también indica qué operaciones se pueden llevar a cabo con los datos. A continuación, se detallan los modelos lógicos más comu- nes en BBDD: Modelo jerárquico: la información se organiza de ma- nera jerárquica, utilizando una relación entre las diferentes entidades, siguiendo el tipo padre-hijo. Existe una serie de nodos que contienen atributos que se rela- cionan con nodos-hijos, de manera que puede haber más de un hijo para el mismo padre, pero un hijo no pue- de tener dos padres. Esquema jerárquico. 25 Tema 1: Introducción a las bases de datos (BBDD) Modelo en red: este modelo estructura la información en registros (nodos) y enlaces. En los registros se van a almacenar los datos, mientras que en los enlaces se po- drán relacionar. Este modelo ofrece la posibilidad de tener más de un padre. Esquema en red. Modelo relacional: fue propuesto por Edgar Frank Codd en los años 70. Este modelo organiza la información de la BD con el uso de relaciones y tuplas. Una tupla se puede entender como un registro y una relación se puede enten- der como una tabla. Una tabla contiene varios registros. Este modelo garantiza la normalización de la BD, evita duplicidades de registros (es decir, evita que el valor de un campo clave sea el mismo en dos tuplas distintas) y permite la integridad referencial entre tuplas de diferen- tes tablas. Modelo entidad-relación (ER): es el modelo más usado hoy en día, debido a la buena evolución que ha experi- mentado. No obstante, posee distintas variantes y esto provoca que su representación no es totalmente están- dar todavía. De las variantes, podemos destacar el modelo enti- dad-relación extendido (ERE), que complementa algunas carencias del modelo original. Se debe diferenciar bien el modelo ER con las BBDD re- lacionales. Los esquemas entidad-relación pueden ser usados con cualquier SGBD. Modelo orientado a objetos: este modelo utiliza pro- gramación orientada a objetos (POO), ya que ofrece la posibilidad de cohesionar datos y procedimientos. De 26 Bases de datos - A esta manera, se pueden diseñar estructuras que poseen datos (atributos) en las que se permite definir los dife- rentes procedimientos (operaciones) que se van a realizar con los atributos. La POO se ideó para BBDD adaptadas a estos lenguajes. Las BBDD orientadas a objetos siguen esta misma filo- sofía. De este modo, se pretende que este modelo de BBDD pueda solucionar las limitaciones que tienen las relacionales. Las BBDD orientadas a objetos son de las que más están creciendo en los últimos años. Reglas de integridad de los datos Es fundamental que los SGBD puedan garantizar que se va a trabajar de forma segura, apostando siempre por la inte- gridad de los datos. Es cierto que la redundancia de estos puede provocar un mal funcionamiento e, incluso, puede que los datos sufran pérdidas de integridad. Algunos de los motivos principales por los que se puede perder el valor inicial de los datos pueden ser los errores provocados por los programas, los usuarios o una avería en el sistema, entre otros. Existen diferentes reglas de integridad que se deben tener siempre en cuenta para garantizar un buen funcionamiento: Reglas de integridad del modelo: deben de cumplirse por el SGBD para que no se pierda integridad cada vez que se realicen actualizaciones de los programas. 27 Tema 1: Introducción a las bases de datos (BBDD) Reglas de integridad del usuario: deben de cumplirse por los usuarios ya que en caso de producirse algún error en el que se pierda información, el SGBD está capacitado para dar todas las herramientas necesarias para poderlos reconstruir y, de esta forma, conseguir que no se pierda integridad en el sistema. Modelo distribuido: ventajas e inconvenientes, técnicas de fragmentación, distribución de datos y esquemas de asignación y replicación de datos Un modelo de base de datos distribuido (BDD) consti- tuye un grupo de diferentes máquinas conectadas a través de una red. Cada procesador de los que se utilizan tiene sus dispositivos de entrada y salida y estos intercambian mensajes para conseguir un objetivo común. Sus ventajas principales son: Mejora del rendimiento, ya que permite que varias máquinas conectadas en la red trabajen a la vez con dife- rentes usuarios. Aunque uno de los equipos falle, los demás pueden se- guir trabajando. Todos los equipos comparten el mismo estado, aunque cada uno trabaje de forma independiente. Aunque también es importante señalar algunos de los in- convenientes que presentan: Al estar todos los equipos interconectados en la red, pue- de que aumente la pérdida de mensajes y la saturación. Menor confidencialidad de los datos. En un modelo distribuido podemos encontrar diferentes técnicas utilizadas para la fragmentación: Horizontal: se basa fundamentalmente en particionar tuplas en subconjuntos. De esta manera, cada subcon- junto debe contener aquellos datos que son comunes. Así, cada fragmento, se puede definir como una opera- ción de selección. Vertical: la fragmentación vertical se basa en subdividir los atributos en grupos. De esta manera, podemos ob- tener los distintos fragmentos si proyectamos la relación global sobre todos los grupos. Esta fragmentación es exi- tosa si se puede localizar a cada atributo en, al menos, otro atributo del fragmento en cuestión. Mixta: en este tipo de fragmentación se van a combinar la horizontal con la vertical o viceversa. 28 Bases de datos - A 1.7. Bases de datos centralizadas y distribuidas Una base de datos centralizada es una base de datos que está almacenada de manera íntegra en un solo lugar, es decir, en una misma máquina. Sin embargo y tal y como se comentaba en el apartado anterior, una base de datos distribuida (BDD) es un conjunto de BBDD que se en- cuentran lógicamente relacionadas. Esto significa que se distribuyen en diferentes sitios, de forma que se necesita una interconexión de red para comunicarse. A continua- ción, detallamos con más precisión cada una de ellas: Base de datos centralizada (BDC) Definición Las BBDD centralizadas son aquellas que se encuentran almacenadas en una única computadora, por lo que el sistema informático no interacciona con ninguna otra máquina. Ejemplos de estos sistemas pueden ser BBDD básicas de un solo usuario o BBDD de alto rendimiento, implantadas en grandes sistemas. Características Almacena todos los componentes en una única máquina. No tiene demasiados elementos de procesamiento. Componentes: datos, software de gestión de BBDD y dispositivos de almacenamiento. Ventajas No presenta redundancia ni inconsistencia, ya que se focaliza todo en un sistema central. Si se tratara de una BD no centra- lizada, existiría redundancia de la información y, por tanto, problemas con el espacio de almacenamiento. Puede aplicar restricciones de seguridad. Rendimiento óptimo al procesar datos. Se evita la inconsistencia de los datos, ya que solo existe una sola entrada para cada dato almacenado. Inconvenientes Ante un problema, la recuperación de datos es complicada. No existe la posibilidad de repartir las tareas al intervenir sola- mente una máquina. Si un sistema falla, perdemos la disponibilidad de la información. Los mainframes (ordenadores centrales) ofrecen una relación entre el precio y el rendimiento bastante costosos. 29 Tema 1: Introducción a las bases de datos (BBDD) Base de datos distribuida (BDD) Definición Una BDD es aquella en la que interviene un conjunto de múltiples BDD relacionadas. Se encuentra en diferentes espacios lógicos y geográficos, pero está interconectada por una red. Estas BBDD son capaces de procesar de una forma autónoma, es decir, pueden trabajar de forma local o distribuida. Características Autonomía: los componentes, el SO y la red son independientes y cada uno realiza las diferentes operaciones desde su propio sitio. No necesita ni depende de una red central para obtener un servicio. Presenta la posibilidad de leer y escribir datos ubicados en lugares diferentes de la red. Puede convertir transacciones de usuarios en instrucciones para manipular datos. Ventajas Acceso rápido. Al intervenir varios nodos el procesamiento es más rápido. Los nuevos nodos que intervengan se crean de forma rápida y fácil. Mejora la comunicación entre distintos nodos. Refleja una estructura organizativa donde las BBDD se almacenan en los departamentos donde tienen relación. Bajo coste a la hora de crear una red de pequeñas computadoras. Al presentar una red de BBDD se implementa de forma modular. Esto hace que las operaciones de modificar, insertar o eliminar alguna BD sean mucho más fáciles que en el ejemplo anterior. Inconvenientes Presenta una estructura de diseño más compleja. Aumenta el riesgo de violaciones de seguridad. Mecanismos de recuperación más complejos, debido a que existen muchos más datos. Componentes: hardware y software A nivel de componentes hardware, las bases de datos Dis- tribuidas suponen un mayor uso de infraestructura, ya que, a diferencia de las bases de datos Centralizadas, las prime- ras ubican sus datos en más de una máquina (denominados nodos o sitios). En referencia al software necesario, las bases de datos Dis- tribuidas deben interconectar los nodos que las componen, por lo que necesitan de una red a través de la cual transmi- tir la información entre los mismos. 30 Bases de datos - A Niveles de procesamiento de consultas: procesadores locales y distribuidos En los procesadores locales solamente se hace referencia tanto a tablas como a datos locales, es decir, a aquellos que pertenecen a una misma instancia en una única máquina. Las subconsultas que se ejecutan en un nodo (consulta local) se van a optimizar utilizando el esquema local del nodo. Los diferentes algoritmos se pueden elegir para ejecutar las operaciones relacionales. En los procesadores distribuidos, en cambio, el objetivo principal va a ser pasar las transacciones de usuario a instrucciones para poder manipular los datos. El principal problema que presentan es de optimización, ya que se determina el orden en el que se realizan el número mínimo de operaciones. CONCEPTO El procesamiento de consultas es bastante más complicado en los procesadores distri- buidos que en los locales. Esto se debe a que en los distribuidos interviene un gran número de parámetros que pueden afectar al rendimiento de las consultas que se tengan que realizar. La función más importante de un procesador de consultas relacionales va a ser transformar una consulta de una espe- cificación de nivel alto (normalmente en cálculo relacional) en otra equivalente de bajo nivel (normalmente en álgebra relacional). Esta trasformación se debe llevar a cabo y, si se consigue, debe ser perfectamente correcta y eficiente. Bloqueo y concurrencia. Transacciones distribuidas Cuando nos referimos a los SGBD debemos señalar que estamos ante sistemas concurrentes. Estos sistemas van a ejecutar sus consultas y estas se van a ir procesando al mismo tiempo. Las transacciones distribuidas se pueden definir como transacciones planas o anidadas, que pueden acceder a objetos que han sido administrados por diferentes servi- dores. Cuando una transacción distribuida finaliza, esta necesita que todos los servidores que han formado parte del proceso verifiquen su buen funcionamiento. En caso de que no se pueda verificar, debe abortar la transacción. Este mecanismo se puede llevar a cabo gracias a su propiedad de atomicidad. 31 Tema 1: Introducción a las bases de datos (BBDD) Distribución de los datos La distribución de los datos es una tarea que corresponde al diseñador. Este se va a encargar de elegir dónde se va a posicionar y qué esquema va a representar dicha BD. Pode- mos encontrar las siguientes distribuciones: centralizadas, replicadas, particionadas e híbridas. Centralizada: esta distribución es muy parecida al mo- delo cliente/servidor, en el que la base de datos está centralizada en un nodo central y se distribuye entre los distintos clientes. La desventaja que supone utilizar esta distribución es que la disponibilidad depende de un solo nodo. Replicadas: es un esquema muy costoso, ya que cada nodo va a tener información duplicada. Es más lento, porque tiene muchos datos a almacenar, pero merece la pena a largo plazo, ya que va a tener mucha disponibili- dad a la hora de leer la información. Particionadas: en este caso solo tenemos una copia de cada nodo. De todas formas, cada nodo alojará algunos fragmentos de la BD. Esto hace que el coste sea más re- ducido aunque, también, va a tener menos disponibilidad que el anterior. Híbridas: aquí vamos a representar la partición y replica- ción del sistema. Seguridad y recuperación de la información en bases de datos distribuidas Existen diferentes tipos de ataques a la seguridad entre los que podemos destacar: de privacidad y confidencialidad de los datos, los que están asociados a la autenticación y los que deniegan al servicio. En cuanto a las herramientas de seguridad, debemos seña- lar los distintos protocolos de seguridad, el cifrado de las claves y los cortafuegos. Para poder recuperar los datos, debemos tener activa la tolerancia a fallos que permite que, en caso de fallo de algún componente, el sistema siga funcionando de forma correcta. Arquitectura-implementaciones: múltiples y federadas Las BBDD federadas son un conjunto de sistemas de BBDD que trabajan de forma cooperativa y autónoma. Los usuarios pueden acceder a los datos a través de una interfaz. Esta interfaz no tiene diseñado un esquema total 32 Bases de datos - A donde estén todos los datos, sino que contiene diferentes esquemas más pequeños que hay que unificar. Las BBDD federadas parecen BBDD normales, pero no tienen existencia física por sí solas: son una vista lógica. Arquitectura Las BBDD múltiples actúan como una interfaz de varios componentes diferentes. Una BD múltiple cuenta con dis- tintas operaciones que facilitan el acceso a la información, manteniendo la consistencia de esta y ofreciendo un acce- so uniforme a los servicios. Diseño y gestión de BBDD distribuidas Cuando necesitemos diseñar una BD distribuida, tendre- mos que dar una serie de pasos que nos permitan tener el diseño correcto para almacenar nuestros datos. Existen una serie de pasos que debemos seguir a la hora de diseñar una BD distribuida, veamos los más importantes: 33 Tema 1: Introducción a las bases de datos (BBDD) 1. Diseñar el esquema conceptual: para empezar, nece- sitaremos detallar el esquema conceptual de toda la BD. 2. Diseñar la BD: posteriormente, organizar el esquema conceptual y establecer sus métodos de acceso. 3. Diseñar fragmentación: necesitaremos fragmentar, es decir, realizar subdivisiones en fragmentos de las diferentes partes de la BD. 4. Diseñar asignación de fragmentos: por último, or- ganizar y seleccionar cómo se van a unir los diferentes fragmentos previamente creados. Para después gestionar correctamente nuestra BD, ne- cesitaremos tener una BD estable, cuyas relaciones sean coherentes y su interconexión entre los nodos sea correcta. Para administrar las transacciones en BBDD distribuidas podemos utilizar lo que se conoce como Administrador de Transacciones Distribuidas (DTM). Esto es un programa que procesa y coordina las consultas o transacciones de nuestra BD. 34 Bases de datos - A ponte a prueba Indica cuál de las siguientes opciones es una ventaja de trabajar con bases de datos distribuidas. a) Supone un bajo coste a la hora de crear una red de computadoras pequeña. b) Aumenta el nivel de seguridad. c) Los mecanismos de recuperación de datos son óptimos gracias a que intervienen distintos nodos. d) Solamente tiene una entrada para cada dato que se almacena. Indica cuál de las siguientes opciones perte- nece a una base de datos centralizada. a) No depende ni necesita una red central para obtener servicio. b) No tiene demasiados elementos de procesa- miento. c) No almacena todos los componentes en una única máquina. d) No puede aplicar restricciones de seguridad. El diseñador es el encargado de distribuir los datos en una base de datos. ¿Cuál de las siguientes opciones se corresponde con un esquema costoso, en el que cada uno de los nodos tendrá la información duplicada, que también dispone de mucha disponibilidad pero que resulta más lento al tener muchos datos? a) Distribución centralizada. b) Distribución replicada. c) Distribución particionada. d) Distribución híbrida. Indica cuál de las siguientes opciones es una de las ventajas principales de las bases de datos centralizadas. a) Ante un problema, la recuperación de datos es complicada. b) Si un sistema falla, perdemos la disponibi- lidad de la información. c) Rendimiento óptimo al procesar datos. d) Acceso rápido. 35 2 MODELO ENTIDAD-RELACIÓN Bases de datos - A El modelo entidad-relación es un modelo de datos abstrac- to, que nos permite representar de manera conceptual una base de datos. Se compone de 2 elementos principales: El diagrama entidad-relación. Las restricciones y otras anotaciones que no se pueden representar en el diagrama (como las claves candidatas). El diagrama es el elemento principal el modelo enti- dad-relación. El diagrama entidad-relación se compone principalmente de entidades, relaciones entre las entida- des, atributos y cardinalidades. Este modelo nos ayuda a la creación de una BD. Se realiza tras la recopilación de información sobre la futura BD que se desea construir y antes del modelo relacional. Para contextualizar el modelo entidad-relación dentro de la creación de una BD, vamos a describir las fases que pre- cisa una BD para su completa formación: 1. Recopilar información: es el primer paso. Consiste en recabar toda la información posible de la BD que de- seamos diseñar. Esta información puede ser dada por el cliente o por el mismo desarrollador, dependiendo del caso. 2. Realizar el modelo entidad-relación: tras la recopi- lación de información se realiza el diseño del modelo entidad-relación. Para ello, se refleja toda la informa- ción recogida en el diagrama entidad-relación y en las restricciones asociadas al diagrama. Este modelo corresponde al modelo conceptual. 3. Paso del modelo entidad-relación al modelo relacional: una vez ya tenemos listo el modelo en- tidad-relación, realizamos la conversión de este al modelo relacional. Para ello usaremos unas reglas de- terminadas. El modelo relacional es el modelo lógico. 4. Normalización: en esta fase retocamos el modelo relacional para hacerlo más eficiente de cara a su co- dificación. 5. Codificación: en esta fase trasladamos el modelo lógico que hemos diseñado de una BD a una máquina física, como un servidor. Para ello tendremos que ele- gir el hardware más pertinente y también el software más adecuado, es decir, el SGBD. Una vez hayamos elegido estos dos elementos, pasaremos a codificar en un Lenguaje de bases de datos (SQL) el modelo lógico anteriormente creado. Esta fase pertenece al modelo físico. 37 Tema 2: Modelo entidad-relación Por tanto, podemos definir tres tipos de modelos de una base de datos: Modelo conceptual: representación estructurada de la realidad en entidades y relaciones. Modelo lógico: especificación de todas las tablas. Modelo físico: archivo SQL que determina en el sistema informático la BD. Veamos un ejemplo de BD en el que podemos utilizar el modelo entidad-relación: EJEMPLO En unos grandes almacenes se tiene que publicar un folleto comercial. Gracias a la BD de la empresa, el departamento encargado sabrá qué productos consumen sus clientes y en qué fechas lo hacen. Con esta información, se ofertan los productos más consumidos y también pueden conseguir fidelizar a sus clientes y atraer a compradores potenciales. 2.1. Concepto de modelo entidad-relación Como ya introdujimos anteriormente, el modelo enti- dad-relación es un arquetipo conceptual que representa Modelo entidad- un problema planteado a través de entidades y relaciones. relación (e-r) y sus distintos componentes Debemos diferenciar entre modelo entidad-relación y el youtu.be/faDWd5niMOE diagrama entidad-relación. El modelo entidad-relación es el modelado abstracto de una BD, el cual usa la herra- mienta del diagrama para representarse y las restricciones para matizar el diagrama y completar el modelado con- ceptual de la BD. Simplificando, se podría expresar, como se expresó anteriormente, que el modelo entidad-relación consiste principalmente en un diagrama y unas restriccio- nes asociadas. Ejemplo de una representación de dos entidades y una relación: ALUMNO ESTUDIA ASIGNATURA ENTIDADES: Cada uno de los objetos de los que almacenamos los datos. RELACIÓN: Asociación entre entidades. 38 Bases de datos - A 2.2. Entidad: representación gráfica, atributos y tipos de claves Podemos definir las entidades como la representación de aquellos elementos (físicos o abstractos) de los que se desea almacenar la información. Se pueden representar gráficamente mediante un rectán- gulo que contiene en su interior el nombre del elemento al que representan. Este nombre debe ser único, es decir, no puede aparecer repetido en nuestro diagrama. ALUMNO ASIGNATURA Cuando hablamos de atributos de una entidad hacemos referencia a las propiedades o características que tiene una instancia en particular de esa entidad. Por ejemplo: título, autor, nombre o fecha. Un ejemplo de un elemento en el que se representan sus atributos sería el siguiente: nombre ALUMNO apellidos O también puede representarse: nombre ALUMNO apellidos Respecto a los atributos, hemos de saber que un atributo o un conjunto de atributos pueden conformar una clave pri- maria, la cual permite identificar de manera única un registro de una tabla. Este concepto lo ampliaremos más adelante, y su representación en el diagrama entidad-rela- ción es la siguiente: DNI ALUMNO nombre DNI ALUMNO nombre 39 Tema 2: Modelo entidad-relación Estas son dos formas de representar la clave primaria en el diagrama D. En este caso, la clave primaria de la entidad Alumno es DNI. Atributo multivaluado: un atributo es multivaluado cuando para la misma instancia de una entidad, el atrib- uto posee varios valores posibles. En tal caso, se representa con una doble circunferencia: DNI ALUMNO teléfonos Una instancia de una entidad es un valor concreto. Por ejemplo, de la entidad Alumno podríamos tener diversas instancias y cada una sería un alumno específico, por ejemplo el alumno “Juan Pérez”, la alumna “María Gómez” o el alumno “Marcos Pino”. Todos ellos serían posibles ins- tancias de la entidad Alumno. Atributo derivado: un atributo es derivado o calculado cuando se puede deducir de otro u otros atributos. Se re- presenta con una circunferencia discontinua. Por ejemplo, podemos conocer la edad de un alumno si conocemos su fecha de nacimiento y la fecha actual. DNI ALUMNO teléfonos edad 40 Bases de datos - A ponte a prueba ¿Cuál es el orden correcto de los nombres de los elementos de la siguiente imagen (de arriba abajo)? a) Relación, atributo multivaluado, entidad, entidad débil atributo. b) Entidad débil, atributo, relación, entidad, atributo multivaluado. c) Atributo, Atributo multivaluado, relación, entidad, entidad débil. d) Atributo multivaluado, atributo, relación, entidad, entidad débil. ¿Cuál de las dos formas es correcta para representar un diagrama E-R? DNI 1 ALUMNO nombre DNI 2 ALUMNO nombre a) La opción 1. b) La opción 2. c) Ambas opciones son correctas. d) Ninguna opción es correcta. 41 Tema 2: Modelo entidad-relación 2.3. Relación: representación gráfica, atributos, grado y cardinalidad La relación sirve para escenificar las conexiones entre las diferentes entidades, dándoles así un significado semán- tico más completo. La palabra escogida para identificar la relación acostumbra a ser un verbo e indica la relación existente entre dichas entidades. Este puede estar en infinitivo o en una forma verbal, normalmente Presente. Se pueden representar gráficamente mediante un rombo: ESTUDIA 42 Bases de datos - A Por ejemplo, imaginemos que estamos diseñando la BD de un instituto. Tendríamos la entidad Alumno, la entidad Asignatura y la relación Estudia. Por tanto, representaría- mos en el diagrama entidad-relación la realidad de que los alumnos de la BD estudian asignaturas de este modo: ALUMNO ESTUDIA ASIGNATURA 2.4. Diagrama entidad-relación A continuación, nos adentramos en los distintos conceptos, características o funcionalidades que presentan los diagra- mas entidad-relación. Cardinalidad La cardinalidad representa la participación que hay entre las entidades, es decir, el número de instancias de una en- tidad respecto a otra entidad con la que está relacionada y viceversa. Por ejemplo, imaginemos las entidades Cliente y Factura, y la relación Genera: CLIENTE GENERA FACTURA Pues bien, la cardinalidad nos indicará si un cliente genera una factura o muchas facturas. Y al revés también. La car- dinalidad nos indicará si una factura puede ser generada por un cliente o por muchos clientes. Las cardinalidades posibles son: de uno a uno, de uno a muchos y de mu- chos a muchos. 43 Tema 2: Modelo entidad-relación Veámoslo en la siguiente tabla: CARDINALIDAD EXPLICACIÓN 1:1 (Uno a uno) Este caso ocurre cuando las instancias de dos entidades están relacionadas, como máximo, con solo una instancia de la otra entidad. Es decir, que no habrá una instancia de una entidad que pueda relacionarse con dos o más instan- cias de la otra entidad, sino solo con una, como mucho. 1:N (Uno a muchos) Es un caso asimétrico. Ocurre cuando una entidad puede tener una instancia que se relacione con muchas instancias de la otra entidad, pero no al revés, pues cada instancia de esa otra entidad solo podrá relacionarse, como máximo, con una instancia de la primera entidad y no con varias. N:M (Muchos a Es una situación simétrica. Cada instancia de cualquier muchos) entidad puede relacionarse con dos o más instancias de la otra entidad. A continuación, un ejemplo de los tres tipos de cardinali- dades: 1:1 ENTRENADOR DIRIGE EQUIPO En este caso se indica que un entrenador, como máximo, dirigirá a un equipo. Y que un equipo será dirigido, como máximo, por un entrenador. 1:N CLIENTE GENERA FACTURA Este caso indica que un cliente puede generar muchas fac- turas, pero que cada factura pertenecerá un solo cliente. N:M ALUMNO ESTUDIA ASIGNATURA Y en este caso se indica que un alumno puede estudiar muchas asignaturas y que cada asignatura puede ser estu- diada por muchos alumnos. 44 Bases de datos - A Si hay que poner una segunda N, la segunda N se transforma en una M (se hace así por convenio), pero su significado se mantiene invariable. AVISO Participaciones Las participaciones son las cardinalidades particulares de cada lado de la entidad. Representan el mínimo y máximo de relaciones que puede tener una entidad con la otra enti- dad. Por ejemplo: Max: n Max: n N:M (0,n) (1,n) ALUMNO ESTUDIA ASIGNATURA En este caso se indica que un alumno debe estudiar, como mínimo, una asignatura y, como máximo, muchas. Esto se representa con: (1,n) Y por otro lado, la expresión (0,n) nos indica que una asignatura puede ser estudiada por ningún alumno, como mínimo, o por muchos alumnos, como máximo. Como se puede deducir del ejemplo anterior, la cardinali- dad general de la relación vendrá dada por los máximos de las dos entidades que participan en ella. A continuación mostramos todas las participaciones posi- bles: PARTICIPACIÓN DESCRIPCIÓN (0,1) Mínimo cero, máximo uno (1,1) Obliga a la participación (0,n) Mínimo cero, máximo n (indefinido) (1,n) Mínimo uno, máximo n (indefinido) La notación que utilizamos para expresar la participación de un diagrama entidad-relación consiste en colocar la participación al lado de la entidad, sobre la línea de la relación. 45 Tema 2: Modelo entidad-relación (0,n) (1,n) ALUMNO ESTUDIA ASIGNATURA Para facilitar su comprensión, podemos leerlo como si se tratase de una oración. De este modo, nuestra oración comienza con la primera entidad como sujeto, la relación como el verbo y la otra entidad, como el complemento directo. Entidades fuertes y débiles Podemos hacer diferencia entre dos tipos de entidades: Entidad fuerte: tiene existencia por sí misma, es decir, está dotada de significado propio. ENTIDAD Entidad débil: entidad cuyos atributos no la identifican completamente. Su participación va ligada a una relación fuerte para que esta le ayude a identificarla. ENTIDAD EJEMPLO Podemos poner como ejemplo de entidad fuerte y débil el si