FUNDAMENTOS DE BASE DE DATOS MEJIA GUTIERREZ VIRIDIANA MONSERRAT TIC´S 3ER SEMESTRE TURNO VESP. UNIDAD 3 MODELO RELACIONAL 3.1 ESTRUCTURA BÁSICA Relación o tabla Según el modelo relacional (desde que Codd lo enunció) el elemento fundamental es lo que se conoce como relación, aunque más habitualmente se le llama tabla (o también array o matriz). Codd definió las relaciones utilizando un lenguaje matemático, pero se pueden asociar a la idea de tabla (de filas y columnas) ya que es más fácil de entender. No hay que confundir la idea de relación según el modelo de Codd, con lo que significa una relación en el modelo Entidad/Relación de Chen. No tienen nada que ver Las relaciones constan de: ♦ Atributos. Referido a cada propiedad de los datos que se almacenan en la relación (nombre, dni,...). ♦ Tuplas. Referido a cada elemento de la relación. Por ejemplo si una relación almacena personas, una tupla representaría a una persona en concreto. Puesto que una relación se representa como una tabla; podemos entender que las columnas de la tabla son los atributos; y las filas, las tuplas. Atributo 1 atributo 2 Valor 1,1 valor 1,2 Valor 2,1 valor 2,2 atributo 3 .... Atributo n valor 1,3 .... Valor 1, n tupla 1 valor 2,3 .... Valor 2, n tupla 2 ..... ..... ...... .... ..... Valor m, 1 valor m, 2 valor m, 3 .... Valor m, n .... tupla m La tabla superior representa la estructura de una relación según el modelo de Codd. TUPLA Cada una de las filas de la relación. Se corresponde con la idea clásica de registro. Representa por tanto cada elemento individual de esa relación. Tiene que cumplir que: ♦ Cada tupla se debe corresponder con un elemento del mundo real. ♦ No puede haber dos tuplas iguales (con todos los valores iguales).2º curso de administración de sistemas informáticos FUNDAMENTOS DE BASE DE DATOS MEJIA GUTIERREZ VIRIDIANA MONSERRAT TIC´S 3ER SEMESTRE TURNO VESP. DOMINIO Un dominio contiene todos los posibles valores que puede tomar un determinado atributo. Dos atributos distintos pueden tener el mismo dominio. Un dominio en realidad es un conjunto finito de valores del mismo tipo. A los dominios se les asigna un nombre y así podemos referirnos a ese nombre en más de un atributo. La forma de indicar el contenido de un dominio se puede hacer utilizando dos posibles técnicas: ♦ Intensión. Se define el nomino indicando la definición exacta de sus posibles valores. Por intensión se puede definir el dominio de edades de los trabajadores como: números enteros entre el 16 y el 65 (un trabajador sólo podría tener una edad entre 16 y 65 años). ♦ Extensión. Se indican algunos valores y se sobreentiende el resto gracias a que se autodefinen con los anteriores. Por ejemplo el dominio localidad se podría definir por extensión así: Palencia, Valladolid, Villamuriel de Cerrato,... Además pueden ser: ♦ Generales. Los valores están comprendidos entre un máximo y un mínimo ♦ Restringidos. Sólo pueden tomar un conjunto de valores GRADO Indica el tamaño de una relación en base al número de columnas (atributos) de la misma. Lógicamente cuanto mayor es el grado de una relación, mayor es su complejidad al manejarla. CARDINALIDAD Número de tuplas de una relación, o número de filas de una tabla. SINÓNIMOS Los términos vistos anteriormente tienen distintos sinónimos según la nomenclatura utilizada. DEFINICIÓN FORMAL DE RELACIÓN Una relación está formada por estos elementos: ♦ Nombre. Identifica la relación. ♦ Cabecera de relación. Conjunto de todos los pares atributo-domino de la relación:{(Ai Di)} ni:=1donde n es el grado. ♦ Cuerpo de la relación. Representa el conjunto de m tuplas {t1, t2,... tn} que forman la relación. Cada tupla es un conjunto de n pares atributo-valor {(Ai: V ij)}, donde Vij es el valor j del dominio Di asociado al atributo Ai. ♦ Esquema de la relación. Se forma con el nombre R y la cabecera. Es decir {(Ai Di)} ni: =1 ♦ Estado de la relación. Lo forman el esquema y el cuerpo. Ejemplo: Clientes FUNDAMENTOS DE BASE DE DATOS DNI Nombre Edad 12333944C Ana 52 12374678G Eva 27 28238232H Martín MEJIA GUTIERREZ VIRIDIANA MONSERRAT TIC´S 3ER SEMESTRE TURNO VESP. 33 Esquema: Cliente (DNI: DNI, Nombre: Nombre, Edad: Edad) Cuerpo: {(DNI: “12333944C”, Nombre:”Ana”, Edad: 52), (DNI: “12374678G”, Nombre:”Eva”, Edad; 52), (DNI: “28238232H”, Nombre:”Martín”, Edad: 33)} PROPIEDADES DE LAS TABLAS (O RELACIONES) ♦ Cada tabla tiene un nombre distinto ♦ Cada atributo de la tabla toma un solo valor en cada tupla ♦ Cada atributo tiene un nombre distinto en cada tabla (aunque puede coincidir en tablas distintas) ♦ Cada tupla es única (no hay tuplas duplicadas) ♦ El orden de los atributos no importa ♦ El orden de las tuplas no importa2º curso de administración de sistemas informáticos TIPOS DE TABLAS ♦ Persistentes. Sólo pueden ser borradas por los usuarios: • Bases. Independientes, se crean indicando su estructura y sus ejemplares. Contienen tanto datos como metadatos. • Vistas. Son tablas que sólo almacenan una definición de consulta, resultado de la cual se produce una tabla cuyos datos proceden de las bases o de otras vistas e instantáneas. Si los datos de las tablas base cambian, los de la vista que utiliza esos datos también cambia. • Instantáneas. Son vistas (creadas de la misma forma) que sí que almacenan los datos que muestra, además de la consulta que dio lugar a esa vista. Sólo modifican su resultado (actualizan los datos) siendo refrescadas por el sistema cada cierto tiempo (con lo que tienen el riesgo de que muestren algunos datos obsoletos. ♦ Temporales. Son tablas que se eliminan automáticamente por el sistema. Pueden ser de cualquiera de los tipos anteriores. Las utiliza el SGBD como almacén intermedio de datos (resultados de consultas, por ejemplo 3.2 ESQUEMA DE LAS BASES DE DATOS (2.6.1) grafos relacionales Es un esquema relacional en el que hay líneas que enlazan las claves principales con las claves secundarias para representar mejor las relaciones. A veces se representa en forma de nodos de grafos y otras se complementa el clásico. FUNDAMENTOS DE BASE DE DATOS MEJIA GUTIERREZ VIRIDIANA MONSERRAT TIC´S 3ER SEMESTRE TURNO VESP. Ejemplo: ESQUEMAS RELACIONALES DERIVADOS DEL MODELO ENTIDAD/RELACIÓN Hay quien los llama esquemas entidad/relación relacionales. De hecho es una mezcla entre los esquemas relacionales y los entidad/relación. Hoy en día se utiliza mucho, en especial por las herramientas CASE de creación de diseños de bases de datos. Las tablas se representan en forma de rectángulo que contiene una fila por cada atributo y una fila inicial para la cabecera en la que aparece el nombre de la tabla. Después aparecen líneas que muestran la relación entre las claves y su cardinalidad. Uno de los más utilizados actualmente es éste: Las cardinalidades se pueden mostrar en otros formatos, pero siempre se mostrarán en este tipo de esquemas. En este caso el inicio de la línea (en la clave principal) se considera cardinalidad 1 y en el extremo podemos tener un final de línea sin símbolos (cardinalidad 1,1), acabado en varias ramas (cardinalidad 1, n) o con un círculo (cardinalidad mínima de 0) Se ha hecho muy popular la forma de presentar esquemas relacionales del programa Microsoft Access. Ejemplo: Es otra forma muy clara de representar relaciones y cardinalidades (aunque tiene problemas para representar relaciones de dos o más atributos). FUNDAMENTOS DE BASE DE DATOS MEJIA GUTIERREZ VIRIDIANA MONSERRAT TIC´S 3ER SEMESTRE TURNO VESP. Sin duda los esquemas más completos son los que reflejan no sólo las cardinalidades sino también todas las restricciones (e incluso los tipos de datos, aunque esto ya es una competencia del esquema interno). Véase el esquema de la Ilustración 11. En ese esquema los símbolos funcionan de esta forma: Además los campos que están el final de una flecha son claves secundarias. Ilustración 40, Esquema relacional completo de la base de datos de un Video Club. El programa Visio de Microsoft (y algunos otros más), representan las restricciones con letras: Ilustración 41, Esquema relacional del almacén según el programa Visio de Microsoft En este caso los símbolos PK significan Primary Key (clave principal), FK es Foreign Key (clave secundaria, los números sirven para distinguir unas claves de otras) y UK es Unique (unicidad). FUNDAMENTOS DE BASE DE DATOS MEJIA GUTIERREZ VIRIDIANA MONSERRAT TIC´S 3ER SEMESTRE TURNO VESP. 3.3 CLAVES CLAVE CANDIDATA Conjunto de atributos que identifican unívocamente cada tupla de la relación. Es decir columnas cuyos valores no se repiten en ninguna otra tupla de esa tabla. Toda tabla en el modelo relacional debe tener al menos una clave candidata (puede incluso haber más) CLAVE PRIMARIA Clave candidata que se escoge como identificador de las tuplas. Se elige como primaria la candidata que identifique mejor a cada tupla en el contexto de la base de datos. Por ejemplo un campo con el DNI sería clave candidata de una tabla de clientes, si esa tabla tiene un campo de código de cliente, éste sería mejor candidato (y por lo tanto clave principal) porque es mejor identificador para ese contexto. CLAVE ALTERNATIVA Cualquier clave candidata que no sea primaria. CLAVE EXTERNA, AJENA O SECUNDARIA Son los datos de atributos de una tabla cuyos valores están relacionados con atributos de otra tabla. Por ejemplo en la tabla equipos tenemos estos datos: Equipo Nº Equipo Real Madrid 1 F.C. Barcelona 2 Athletic Bilbao 3 En la tabla anterior la clave principal es el atributo nº equipo. En otra tabla tenemos: Nº Jugador Jugador Nº Equipo 1 Karanka 3 2 Ronaldinho 2 3 Raúl 1 4 Beckham 1 El atributo Nº Equipo sirve para relacionar el Jugador con el equipo al que pertenece. Ese campo en la tabla de jugadores es una clave secundaria. 3.4 LENGUAJES DE CONSULTA Un lenguaje de consulta es un lenguaje con el que los usuarios solicitan información de la BBDD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes de programación habituales. FUNDAMENTOS DE BASE DE DATOS MEJIA GUTIERREZ VIRIDIANA MONSERRAT TIC´S 3ER SEMESTRE TURNO VESP. Clasificación Procedimentales El usuario indica al sistema que lleve a cabo una serie de operaciones en la BBDD para calcular el resultado. No procedimentales El usuario describe la información deseada sin dar un procedimiento concreto para obtener la información. Lenguajes Formales del Modelo Relacional Se parte de los esquemas de relaciones y se define un lenguaje de manipulación de datos. Dentro de estos lenguajes podemos encontrar Álgebra Relacional (Procedimental) Cálculo Relacional de Tuplas (No procedimental) Cálculo Relacional de Dominios (No procedimental) Estos lenguajes son estrictos y formales y han servido como base para los lenguajes implementados en los SGBD comerciales que veremos posteriormente. Álgebra Relacional Lenguaje de consulta procedimental basado en álgebra de conjuntos. Serie de operaciones que toman una o dos relaciones como entrada y generan una relación como salida, pero siempre sin modificar los datos de la base de datos (es un lenguaje de consulta). Las operaciones son: Selección Proyección Reunión (JOIN o producto cartesiano con condición) División Operaciones habituales de conjuntos: unión, intersección, resta y producto cartesiano. El conjunto completo (conjunto de operaciones que permiten realizar todas las operaciones posibles) en este lenguaje es:{unión, resta, producto cartesiano, selección, proyección