MODELO RELACIONAL DIEGO FERNANDO PATARROYO BARAJAS INSTITUTO TECNICO GONZALO SUARES RENDON SISTEMAS TUNJA 2014 3. MODELO RELACIONAL 3.1 DEFINICIÓN El modelo relacional para la gestión de una base de datos es un modelo de datos basado en la lógica de predicado y en la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de «relaciones». Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados «tuplas». Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar Frank Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar, esto es, pensando en cada relación como si fuese una tabla que está compuestas por registros (cada fila de la tabla sería un registro o tupla), y columnas (también llamadas campos). 3.2 CARACTERISTICAS Independencia física: es decir, el modo en el que se almacenan los datos no influya en su manipulación lógica y, por tanto, los usuarios que acceden a esos datos no tienen que modificar sus programas por cambios en el almacenamiento físico. Independencia lógica: esto es, que el añadir, eliminar o modificar objetos de la base de datos no repercuta en los programas y/o usuarios que están accediendo a subconjuntos parciales de los mismos (vistas). Flexibilidad: en el sentido de poder presentar a cada usuario los datos de la forma en que éste prefiera. Uniformidad: las estructuras lógicas de los datos presentan un aspecto uniforme, lo que facilita la concepción y manipulación de la base de datos por parte de los usuarios. Sencillez: las características anteriores, así como unos lenguajes de usuario muy sencillos, producen como resultado que el modelo de datos relacional sea fácil de comprender y de utilizar por parte del usuario final.Desarrollado por: Ing. Zulma Patricia Salas Página 3 3.3 COMPONENTE MODELO RELACIONAL 3.3.1 Esquemas (Nombre de la Relación) Es el nombre que se le da a una relación y el conjunto de atributos en ella. Ejemplo Películas (título, año, duración, tipo)Desarrollado por: Ing. Zulma Patricia Salas Página 4 En un modelo relación, un diseño consiste de uno o más esquemas, a este conjunto se le conoce como "esquema relacional de base de datos" (relational database schema) o simplemente "esquema de base de datos" (database schema) 3.3.2 Relaciones(Tabla) El modelo relacional proporciona una manera simple de representar los datos: una tabla bidimensional llamada relación. Título año duración Tipo Star Wars 1977 124 Color Mighty Ducks 1991 104 Color Wayne's World 1992 95 Color Relación Películas La relación Películas tiene la intención de manejar la información de las instancias en la entidad Películas, cada renglón corresponde a una entidad película y cada columna corresponde a uno de los atributos de la entidad. Sin embargo las relaciones pueden representar más que entidades, como se explicará más adelante. 3.3.3 Atributos (Columnas) Los atributos son las columnas de un relación y describen características particulares de una relación(relación) Se debe considerar que cada atributo (columna) debe ser atómico, es decir, que no sea divisible.Desarrollado por: Ing. Zulma Patricia Salas Página 5 3.3.4 Tuplas (Filas) Cada uno de los renglones en una relación conteniendo valores para cada uno de los atributos. (Star Wars, 1977, 124, color) 3.3.5 Cardinalidad El número de filas (tuplas) es el cardinalidad de la relación. 3.3.6 Grado El número de columnas es el grado de la relación. 3.3.7 Dominio Entero, cadena de caracteres, etc. Patricia Salas Página 6 Los dominios pueden ser: Booleano (Falso, Verdadero) Numérico(enteros, reales): números de 0 - 9 Texto: palabras que contienen letras de A-Z y a - z Alfanuméricos cadena de caracteres: contienen letras de A-Z , a – z, números de 0 – 9, símbolos 3.3.8 Clave o llaves LLAVES – CLAVES Es un subconjunto del conjunto de atributos comunes en una colección de entidades, que permite identificar unívocamente cada una de las entidades pertenecientes a dicha colección. Asimismo, permiten distinguir entre sí las relaciones de un conjunto de relaciones. Claves (Llaves): Atributos que identifican una entidad dentro de un conjunto de entidades. Superclave: Conjunto de atributos no vacío, que identifica en forma única una entidad dentro de un conjunto de entidades. Cualquier superconjunto de una superclave también es superclave. Clave candidata: Es una superclave para la cual ningún subconjunto es superclave, excepto el mismo. Clave primaria (Llave Primaria): Es la clave candidata escogida por el diseñador. Atributo o conjunto de atributos que permiten identificar en forma única una tupla en la tabla (una entidad en un conjunto de entidades) y ningún subconjunto de ella posee esta propiedad. Llave foránea: Es un atributo que es llave primaria en otra entidad con la cual se relaciona. Las llaves foráneas son en últimas las que permiten relacionar las tablas en las bases de datos.Desarrollado por: Ing. Zulma Patricia Salas Página 7 Las relaciones (tablas) se vinculan, unen o separan a través de los identificadores o campos comunes.(LLAVES) es el principal de la tabla se llama Llave primaria (primary Key o PK) En teoría, todos los atributos de una misma entidad se podrían almacenar en una misma tabla facilitando la búsqueda y se minimiza el riesgo de redundancia de datos. Pero tablas de muchas columnas saturan al usuario y se dividen desde el identificador principal LLAVE PRIMARIA Es un campo o a una combinación de campos que identifica de forma única a cada fila de una tabla. Una clave primaria comprende de esta manera una columna o conjunto de columnas. No pueden haber dos filas en una tabla que tengan la misma clave primaria. Una llave primaria debe identificar unívocamente a todas las posibles filas de una tabla y no solo a las filas que se encuentran en un momento determinado. Ejemplos de claves primarias son DNI (asociado a una persona) o ISBN (asociado a un libro). La cardinalidad entre relaciones indica la cantidad de ocurrencias entre atributos. Se representa por medio de o escribiendo PK LLAVE FORANEA Es una limitación referencial entre dos tablas. La llave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la llave primaria u otra clave candidata en la tabla referenciada. Se representa por medio de * o escribiendo FK Ningún componente de una clave foránea puede contener valores que no están presentes en la clave primaria (alternativa) a la que referencia” Ejemplo *Desarrollado por: Ing. Zulma Patricia Salas Página 8 3.4. INTERRELACION Relaciones uno a varios Una relación uno a varios es el tipo más habitual de relación. En este tipo de relación, una fila de la tabla A puede corresponderse con muchas filas de la tabla B, pero una fila de la tabla B sólo puede corresponderse con otra de la tabla A. Por ejemplo, en las tablas publishers (editoriales) y titles (títulos) se da una relación uno a varios: una editorial publica muchos títulos, pero a cada título le corresponde sólo una editorial. Cree una relación uno a varios si solamente una de las columnas relacionadas es la clave principal o tiene una restricción unique. El lado de la clave principal de una relación uno a varios se indica mediante un símbolo de clave. El lado de la clave externa de una relación se indica mediante un símbolo de infinito. Relaciones Varios a Varios En una relación varios a varios, una fila de la tabla A puede tener muchas filas coincidentes en la tabla B y viceversa. Este tipo de relaciones se crea definiendo una tercera tabla, denominada tabla de unión, cuya clave principal esté constituida por las claves externas de las tablas A y B. Por ejemplo, entre las tablas authors (autores) y titles (títulos) existiría una relación varios a varios definida por una relación uno a varios entre cada una de ellas y la tabla titleauthors (títuloautor). La clave principal de la tabla titleauthors es la combinación de la columna au_id (la clave principal de la tabla authors) y la columna title_id (la clave principal de la tabla titles). Relaciones uno a uno En una relación uno a uno, una fila de la tabla A no puede tener más de una fila coincidente en la tabla B y viceversa. Se crea una relación uno a uno si las dos columnas relacionadas son claves principales o tienen restricciones UNIQUE. Este tipo de relación no es habitual, ya que la mayor parte de la información relacionada de esta manera estaría toda en una tabla. Puede utilizar una relación uno a uno para: una tabla por razones de seguridad. eliminación de la tabla. El lado de la clave principal de una relación uno a uno se indica mediante un símbolo de clave . El lado de la clave externa también se indica mediante un símbolo de clave.Desarrollado por: Ing. Zulma Patricia Salas Página 9 3.5 LA REPRESENTACIÓN DE INTERRELACIONES ENTRE RELACIONES ES: Forma 1 Uno a uno Uno a varios Varios a Varios Forma 2 Uno a uno Uno a varios Varios a Varios Forma 3Desarrollado por: Ing. Zulma Patricia Salas Página 10 3.6. CONVERSIÓN DEL MODELO E-R A UN ESQUEMA DE BASE DE DATOS (CONVERSIÓN A RELACION(TABLAS)) TRANSFORMACION DE MODELO ER(CONCEPTUAL) A MODELO RELACIONAL (LOGICO) Una vez obtenido el modelo conceptual (representado en el diagrama E/R) debe ser transformado a un modelo lógico es decir Modelo Relacional. La secuencia de pasos a aplicar para dicha transformación son: Reducción de diagramas E-R a Modelo Relacional Un diagrama Modelo E-R, puede ser representado también a través de una colección de tablas Modelo Relacional. Para cada una de las entidades y relaciones existe una tabla única a la que se le asigna como nombre el del conjunto de entidades y de las relaciones respectivamente, cada tabla tiene un número de columnas que son definidas por la cantidad de atributos y las cuales tienen el nombre del atributo. La transformación de nuestro ejemplo Venta en la que intervienen las entidades de Vendedor con los atributos RFC, nombre, puesto, salario y Artículo con los atributos Clave, descripción, costo. Cuyo diagrama E-R es el siguiente: Entonces las tablas resultantes siguiendo la descripción anterior son: Nótese que en la tabla de relación - Venta -, contiene como atributos a las llaves primarias de las entidades que intervienen en dicha relación, en caso de que exista un atributo en las relaciones, este atributo es anexado como una fila más de la tabla; Por ejemplo si anexamos el atributo fecha a la relación venta, o valor la tabla que se originaría sería la siguiente: Pasos para trasformar un MER en MR Consultar archivo Desarrollado por: Ing. Zulma Patricia Salas Página 11 Notación para RELACIÓN El esquema de una relación R se denota R(A1,A2, …An) donde R es el nombre de la relación y A1,A2, …An son los atributos de R MODELO ENTIDAD RELACIÒN MODELO RELACIONAL Notación No 1 R(A1,A2, …An) PK PRODUCTO(ID_PRODUCTO, NOMBRE, PRECIO, STOCK ) Notación No 2 Ejemplo de paso de Modelo Entidad Relación a Modelo Relacional Modelo Entidad Relación (MER)Desarrollado por: Ing. Zulma Patricia Salas Página 12 Modelo Relacional (MR) Nomenclatura No 1 Nomenclatura No 2 Ingreso de datos en un Modelo relacional Teniendo en cuenta que el Modelo Relacional una Relación es equivalente a una tabla para ingreso de datos reales se representa la relación en forma de tabla como se muestra a continuación.Desarrollado por: Ing. Zulma Patricia Salas Página 13 3.7. RESTRICCIONES En el modelo relacional, existen restricciones, es decir, estructuras u ocurrencias no permitidas, siendo preciso distinguir entre restricciones inherentes y restricciones de usuario. Restricciones inherentes Además de las derivadas de la definición matemática de "relación" como eran que: No hay dos tuplas iguales. · El orden de las tuplas no es significativo. · El orden de los atributos (columnas) no es significativo. · Cada atributo sólo puede tomar un único valor del dominio, no admitiéndose por tanto los grupos repetitivos. Tenemos que la regla de integridad de entidad establece que "Ningún atributo que forme parte de la clave primaria de una relación puede tomar un valor nulo"; esto es, un valor desconocido o inexistente. Esta restricción debería aplicarse también a las claves alternativas, pero el modelo no lo exige. Restricciones de usuarioDesarrollado por: Ing. Zulma Patricia Salas Página 14 Podemos considerar la restricción de usuario, dentro del contexto relacional, como un predicado definido sobre un conjunto de atributos, de tuplas o de dominios, que debe ser verificado por los correspondientes objetos para que éstos constituyan una ocurrencia válida del esquema. Dentro de las restricciones de usuario destaca la restricción de integridad referencial que dice que los valores de clave ajena deben coincidir con los de clave primaria asociada a ella o ser nulos. La integridad referencial es una restricción de comportamiento ya que viene impuesta por el mundo real y es el usuario quien la define al describir el esquema relacional; es también de tipo implícito, ya que se define en el esquema y el modelo la reconoce (o así algunos productos) sin necesidad de que se programe ni de que se tenga que escribir ningún procedimiento para obligar a que se cumpla. EDITORIAL (NOMBRE_E, DIRECCION, CIUDAD, PAIS) LIBRO (CODIGO, TITULO, IDIOMA, ..., NOMBRE_E) En este ejemplo el atributo nombre_e de la relación LIBRO es clave ajena que referencia a EDITORIAL, de modo que debe concordar con la clave primaria de la relación EDITORIAL o bien ser nulo, porque los libros de nuestra base de datos deberán pertenecer a una editorial existente, o si se desconoce la editorial, no se tendrá ningún valor para este atributo. AUTOR (NOMBRE, NACIONALIDAD, INSTITUCION, ..) LIBRO (CODIGO, TITULO, IDIOMA, EDITORIAL, ...) ESCRIBE (NOMBRE, COD LIBRO) En este ejemplo la relación ESCRIBE posee dos claves ajenas: nombre, que referencia a la relación AUTOR, y cod_libro, que referencia a la relación LIBRO; en este caso ninguna de las dos claves ajenas puede tomar valores nulos, ya que forman parte de la clave primaria de la relación ESCRIBE. Además de definir las claves ajenas, hay que determinar las consecuencias que pueden tener ciertas operaciones (borrado y modificación) realizadas sobre tuplas de la relación referenciada; pudiéndose distinguir, en principio, las siguientes opciones: Operación restringida: esto es, el borrado o la modificación de tuplas de la relación que contiene la clave primaria referenciada; sólo se permite si no existen tuplas con dicha clave en la relación que contiene la clave ajena. Esto nos llevaría, por ejemplo, a que para poder borrar una editorial de nuestra base de datos no tendría que haber ningún libro que estuviese publicado por dicha editorial, en caso contrario el sistema impediría el borrado. Operación con transmisión en cascada: esto es, el borrado o la modificación de tuplas de la relación que contiene la clave primaria referenciada lleva consigo el borrado o modificación en cascada de las tuplas de la relación que contienen la clave ajena. En nuestro ejemplo, equivaldría a decir que al modificar el nombre de una editorial en la relación EDITORIAL, se tendría que modificar también dicho nombre en todos los libros de nuestra base de datos publicados por dicha editorial. Operación con puesta a nulos: esto es, el borrado o la modificación de tuplas de la relación que contiene la clave primaria referenciada lleva consigo poner a nulos los valores de las claves ajenas de la relación que referencia. Esto nos llevaría a que cuando se borra una editorial, a los libros que ha publicado dicha editorial y Desarrollado por: Ing. Zulma Patricia Salas Página 15 que se encuentran en la relación LIBROS se les coloque el atributo nombre_e a nulos. Esta opción, obviamente, sólo es posible cuando el atributo que es clave ajena admite el valor nulo. Operación con puesta a valor por defecto: esto es, el borrado o la modificación de tuplas de la relación que contiene la clave primaria referenciada lleva consigo poner el valor por defecto a la clave ajena de la relación que referencia. Operación que desencadena un procedimiento de usuario: en este caso, el borrado o la modificación de tuplas de la tabla referenciada pone en marcha un procedimiento definido por el usuario.Q