Vista previa del material en texto
modelo relacional Documento de lectura 1 Modelo Relacional En la semana anterior abordamos las generalidades de las bases de datos, la organización de la información mediante el diseño de diagramas Entidad relación ER y Entidad relación mejorados EER como parte del diseño conceptual de bases de datos, también se definieron las relaciones entre entidades con sus respectivas cardinalidades, característica que nos permitirá La traducción del modelo Entidad-Relación a un Modelo Relacional, lo cual consiste en convertir el esquema conceptual en un esquema lógico relacional aplicando una serie de reglas de transformación. El modelo ER se considera un modelo conceptual ya que permite a un nivel alto el ver con claridad la información utilizada en algún problema o negocio. En este documento de lectura nos concentraremos en desarrollar un buen modelo “lógico” que se conoce como “esquema de la base de datos” (database schema) a partir del cual se podrá realizar el modelado físico en el DBMS (Data Base Management System) Sistema Manejador de Bases de datos, es importante mencionar que es un paso necesario, no se puede partir de un modelo conceptual para realizar un físico. Puede resultar confuso el concepto de modelo entidad-relación vs modelo relacional, quizás porque ambos comparten casi las mismas palabras. El objetivo del modelo relacional es crear un “esquema” (schema), lo cual como se mencionará posteriormente consiste de un conjunto de “tablas” que representan “relaciones”, relaciones entre los datos. (Hidalgo, 2017) 2 Una de las características más útiles y atractivas del modelo E-R es que proporciona un método gráfico para mostrar la estructura conceptual de la base de datos, sin embargo, debemos aplicar más etapas de diseño de bases de datos hasta crear la estructura relacional y tablas. Conversión del modelo E-R a un esquema de base de datos (Conver- sión a tablas) Definiciones de elementos: • Entidades: Una entidad es Una Cosa u objeto del mundo Real. • Atributos: Forman a la entidad, refieren a las características que detallan a la entidad • Relaciones: es la asociación entre varias entidades, especifica el rol con respecto a la otra entidad • Tupla: cada una de las filas de una relación. Contiene la información relativa a una única entidad. • Grado: número de atributos de cada tupla. • Nulo: (NULL) valor asignado a un atributo que indica que no contiene ninguno de los valores del dominio de dicho atributo. • Dominio: Rango o conjunto de posibles valores de un atributo. • Clave: es un conjunto de atributos que identifica de forma unívoca a una tupla. Puede estar compuesto por un único atributo o una combinación de varios. • Clave foránea: en una base de datos relacional es una clave que se usa en una tabla secundaria y que coincide con la clave primaria en una tabla primaria relacionada. Las claves foráneas pueden tener valores duplicados (multiplicidad) en la tabla secundaria, mientras que para las claves primarias eso no es posible. El uso apropiado de claves foráneas permite exigir la integridad referencial. 3 La regla de la integridad referencial establece que cualquier valor de clave foránea no nulo en una tabla secundaria debe hacer referencia a un valor de clave primaria de su tabla primaria en la base de datos. • Restricciones: » Correspondencia de cardinalidad: Uno a uno, Uno a muchos, muchos a muchos » Claves: Es el que permite identificar de manera única cada valor de entidad. En la entidad Misma. » En el grado de participación entre las entidades también es una restricción Si es total significa que se da cuando el grado de al menos una participación ocurre una entidad a otra y es parcial si solo algunas de las relaciones se establecen en otra entidad. (Microsoft, 2017) Ejemplo • Un estudiante al menos se matricula en Una asignatura (TOTAL) • Un estudiante tiene o no tiene beca (PARCIAL) Reglas de propagación La traducción del Modelo Entidad-Relación en un Modelo Relacional consiste en convertir el Esquema Conceptual en un Esquema Lógico Relacional aplicando una serie de reglas de transformación. Para transformar un modelo entidad-relación a modelo relacional seguiremos las siguientes reglas: • Toda entidad del modelo entidad-relación se transforma en una tabla. • Cualquier atributo de una entidad se transforma en un campo dentro la tabla, manteniendo las claves primarias. 4 Las relaciones N:M (Muchos a Muchos) se transforman en una nueva tabla que tendrá como clave primaria la concatenación de los atributos clave de las entidades relacionadas. Tablas Resultantes: • En las relaciones 1:N (Uno a Muchos) se pueden tener dos casos: » Si la entidad que participa con cardinalidad máxima uno lo hace también con cardinalidad mínima uno, entonces se propaga el atributo de la entidad que tiene cardinalidad máxima 1 a la que tiene cardinalidad máxima N, desapareciendo el nombre de la relación. Si existen atributos en la relación éstos también se propagarán. 5 • En el caso de las relaciones 1:1 también pueden darse dos casos: » Si las entidades poseen cardinalidades (0,1), la relación se convierte en una tabla. » Si una de las entidades posee cardinalidad (0,1) y la otra (1,1), conviene propagar la clave de la entidad con cardinalidad (1,1) a la tabla resultante de la entidad con cardinalidad (0,1). Si ambas entidades poseen cardinalidades (1,1) se puede propagar la clave de cualquiera de ellas a la tabla resultante de la otra. • En el caso de las relaciones N-arias se aplica la misma regla que para las relaciones N:M • En el caso de las relaciones reflexivas supondremos que se trata de una relación binaria con la particularidad que las dos entidades son iguales y aplicaremos las reglas vistas en los puntos anteriores. 6 Relaciones N:M Supongamos el siguiente modelo entidad-relación. En este caso la relación “compra” se transforma en una nueva tabla cuya clave primaria estará formada por los atributos dni, que es la clave primaria de CLIENTE, y código, que es la clave primaria de PRODUCTO. Además, tendrá como campo fecha compra, ya que este atributo forma parte de la relación. El modelo relacional quedaría de la siguiente forma (en negrita las claves primarias): • CLIENTE(dni,nombre,apellidos) • PRODUCTO(código,descripción) • COMPRAS(dni_cliente,código_producto,fecha_compra) Relaciones 1:N Veamos ahora el caso de una relación 1:N. En el siguiente modelo entidad-relación un empleado pertenece a un único departamento (debe pertenecer a uno obligatoriamente), y un departamento tiene 1 o más empleados. En este caso se propaga el atributo código de DEPARTAMENTO a la tabla EMPLEADO. El modelo relacional quedaría de la siguiente manera: • EMPLEADO(dni,nombre,salario,codigo_departamento) • DEPARTAMENTO(codigo,nombre,localizacion) Importante: Agregar a las claves foráneas de las entidades el prefijo el nombre de la tabla proveniente, para evitar confusiones cuando se relacionen los datos con otras. Ejemplo: codigo_departamento 7 Relaciones 1:1 Veamos ahora el caso de una relación 1:1 a través del siguiente ejemplo. En el siguiente modelo entidad- relación un equipo de fútbol tiene a un único presidente y un presidente preside a un único club de fútbol. En este ejemplo, tal y como dicen las reglas, podemos propagar la clave de cualquier tabla a la tabla resultante de la otra. Es decir, tenemos dos opciones, o mover la clave de PRESIDENTE a EQUIPO o mover la clave de EQUIPO a PRESIDENTE. El modelo relacional podría quedar de cualquiera de las dos formas siguientes: • EQUIPO(código,nombre,año_fundación) • PRESIDENTE(dni,nombre,código_equipo) • EQUIPO(código,nombre,año_fundación,dni_presidente) • PRESIDENTE(dni,nombre) Relaciones reflexivas Veamos ahora como quedaría en el modelo relacional la siguiente relación reflexiva. En el siguiente modelo entidad-relación un ALUMNO es delegado de varios ALUMNOS y un ALUMNO tiene obligatoriamente un delegado ysólo a uno. Como podemos observar en las reglas de transformación, en este caso la relación reflexiva se trata como si fuera una relación binaria con la particularidad de que las dos entidades son iguales. Al tratarse de una relación 1:N se propagará la clave de la entidad ALUMNO a la entidad ALUMNO, quedando el modelo relacional de la siguiente forma: • ALUMNO(num_expediente,nombre,num_expediente_delegado) 8 EJEMPLOS a. Identificando la entidad con sus atributos, relaciones, y restricciones: • Un cliente es prestatario de un préstamo. • Muchos préstamos pueden ser prestados por un cliente b. Representación de una relación con entidad débil. Uno a muchos • Un pago se abona a un préstamo • Muchos pagos se abonan a un préstamo La entidad débil se asocia al préstamo c. Descripción de un mundo real #1 A partir del siguiente enunciado se desea realizar el modelo entidad-relación. “Se desea informatizar la gestión de una empresa de transportes que reparte paquetes por toda España. Los encargados de llevar los paquetes son los camioneros, de los que se quiere guardar el dni, nombre, teléfono, dirección, salario y población en la que vive. 9 De los paquetes transportados interesa conocer el código de paquete, descripción, destinatario y dirección del destinatario. Un camionero distribuye muchos paquetes, y un paquete sólo puede ser distribuido por un camionero. De las provincias a las que llegan los paquetes interesa guardar el código de provincia y el nombre. Un paquete sólo puede llegar a una provincia. Sin embargo, a una provincia pueden llegar varios paquetes. De los camiones que llevan los camioneros, interesa conocer la matrícula, modelo, tipo y potencia. Un camionero puede conducir diferentes camiones en fechas diferentes, y un camión puede ser conducido por varios camioneros”. Resultado del esquema: Su modelo relacional sería: CAMIONERO(dni, nombre, dirección,tfno,salario,poblacion) CAMION(matricula,potencia,modelo,tipo) PAQUETE(codigo,descripción,destinatario,dirección,codigoprov) PROVINCIA(codigoprov,nombre) 10 Sus tablas serían: 11 Bibliografía Hidalgo, L. (2017). Modelo entidad relación: descripción y aplicaciones. Obtenido de https://www.icemd. com/digital-knowledge/articulos/modelo-entidad-relacion-descripcion-aplicaciones/ Microsoft. (2017). Documentación de SQL. Restricciones entre claves principales y claves externas. Obtenido de https://docs.microsoft.com/es-es/sql/relational-databases/tables/primary-and-foreign-key- constraints?view=sql-server-ver15