Está en la página 1de 18

Base de Datos

25

MODELO RELACIONAL
1.

CONCEPTOS DEL MODELO RELACIONAL

El modelo relacional representa la Base de Datos como una coleccin de relaciones. En trminos ms sencillos, cada relacin se asemeja a una tabla de valores o, hasta cierto punto, a un fichero plano de registros. Por ejemplo se considera que la base de datos de ficheros que se muestran en la figura 1.1 entra dentro del modelo relacional. Sin embargo, existen diferencias importantes entre las relaciones y los ficheros. Alumno Nombre Smith Brown Requisito Cdigo Curso CS3380 CS3380 CS3380

Cdigo Alumno 17 8

Ao 1 2

Especialidad CS CS

Numero Requisito CS3320 MATE2410 CS1310

Curso Nombre Curso Introd a la Computacin Estructura de Datos Matemtica Discreta Base de Datos Seccin Identificador Seccin 85 92 102 112 119 135

Cdigo Curso CS1310 CS3320 MATE2410 CS3380

Crditos 4 4 3 3

Departamento CS CS MATE CS

Cdigo Curso MATE2410 CS1310 CS3320 MATE2410 CS1310 CS3380

Semestre Otoo Otoo Primavera Otoo Otoo Otoo

Ao 98 98 99 99 99 99

Profesor King Anderson Knuth Chang Anderson Stone

Informe_Calificaciones Cdigo Alumno Identificador Seccin Calificacin 17 112 B 17 119 C 8 85 A 8 92 A 8 102 B 8 135 A Figura 1.1. Un ejemplo de una base de datos que almacena registros de alumnos y sus calificaciones. Si se viera una relacin como una tabla de valores, cada fila de la tabla representara una coleccin de valores de datos relacionados entre si. En el modelo relacional, cada fila de la tabla representa un hecho que normalmente corresponde con una entidad o vinculo del mundo real. El nombre de la tabla y los nombres de las columnas ayudan a interpretar el significado de los valores que estn en cada fila. Por ejemplo la primera tabla de la figura 1.1 se llama Alumno por que cada fila representa hechos acerca de una entidad alumno en particular. Los nombres de las columnas (Nombre, NumeroAlumno, Clase, Especialidad) especifican como interpretar los valores de datos de cada fila, basndose en la columna en la que se encuentra cada valor. Todos los valores de una columna tienen el mismo tipo de datos. En la terminologa formal del modelo relacional, una fila se denomina tupla, una cabecera de columnas de un atributo y la tabla de denomina relacin. El tipo de datos que describe los tipos de valores que pueden aparecer en cada columna se llama dominio. 1.1. Dominio, Atributos, Tuplas y Relaciones

Un dominio D es un conjunto de valores atmicos. Por atmico se quiere decir que cada valor del dominio es indivisible en lo que concierne al modelo relacional. Un mtodo comn de especificacin de los dominios Henry George Maquera Quispe

Base de Datos

26

consiste en especificar un tipo de datos al cual pertenecen los valores que constituyen el dominio. Tambin resulta til especificar un nombre para el dominio que ayude a interpretar sus valores. Nmeros telefnicos de EEUU: el conjunto de nmeros de nmeros telefnicos validos de diez dgitos en los Estados Unidos. Nmeros telefnicos locales: el conjunto de nmeros telefnicos validos de siete dgitos dentro de un cdigo de rea en los Estados Unidos. Numero de Seguro Social: El conjunto de nmeros validos de la Seguridad Social formados por nueve dgitos. Nombres: el conjunto de nombres de personas. Promedios de notas: valores posibles de los promedios de notas calculados, cada uno debe ser un numero real entre 0 y 4 Edades de Empleados: edades posibles de los empleados de una empresa, cada una debe ser un valor entre los 15 y 80 aos. Nombres de Departamentos Acadmicos: El conjunto de nombres de departamentos acadmicos como Ingeniera de Sistemas, Arqueologa, etc. Cdigos de Departamentos Acadmicos: El conjunto de cdigos de departamentos acadmicos, como FIS, ARQ, de una universidad.

Las anteriores son definiciones lgicas de dominios. Tambin debe especificarse un tipo de datos o formato para cada dominio. Por ejemplo, se puede declarar el tipo de datos del dominio Nmeros telefnicos de EEUU como una cadena de caracteres de la forma (ddd)ddd-ddd, donde cada d es un digito numrico (decimal) y los primeros tres dgitos forman un cdigo valido de rea telefnica. El tipo de datos Edades de Empleados es un nmero entero entre 15 y 80. En el caso de Nombres de Departamentos Acadmicos, el tipo de datos es el conjunto de todas las cadenas de caracteres que representan nombres o cdigos validos de departamento. As pues, un dominio debe tener nombre, un tipo de datos y un formato. Tambin puede incluirse informacin adicional para interpretar los valores de un dominio; por ejemplo, un dominio numrico como Pesos de Personas deber especificar unidades de medicin: libras o kilogramos. Un esquema de relacin R, denotado por R(A1,A2,,An), se compone de un nombre de relacin R y una lista de atributos, A1,A2,,An . Cada atributo Ai es el nombre de un papel desempeado por algn dominio D en el esquema de relacin R. Se dice que D es el dominio de Ai y se denota por dom(Ai). Un esquema de relacin sirve para describir una relacin; R es el nombre de la relacin. El grado de una relacin es el nmero de atributos n de su esquema de relacin. El siguiente es un esquema de relacin para una relacin grado 7, que describe alumnos universitarios. ALUMNO (Nombre, NSS, Tel Casa, Direccin, Tel Oficina, Edad, Prom) En este esquema de relacin ALUMNO es el nombre de la relacin, la cual tiene siete atributos. Se puede especificar los siguientes dominios, definidos previamente, para algunos de los atributos de la relacin ALUMNO: dom(Nombre) = Nombres; dom(NSS) = Nmeros de Seguridad Social; dom(Tel Casa) = Nmeros telefnicos locales; dom(Tel Oficina) = Nmeros telefnicos locales; dom (Prom) = Promedios de Notas. Una relacin (o estado de relacin) r del esquema de relacin R(A1,A2,,An), denotado tambin r(R), es un conjunto de n-tuplas r = (t1, t2,,tn). Cada n-tupla t es una lista ordenada de n valores t = <v1, v2, , vn>, donde cada valor vi, 1 i n, es un elemento de dom(Ai) o bien un valor nulo especial. El i-esimo valor de la tupla t, que corresponde al atributo Ai, se referencia como t(Ai). Tambin se acostumbra a usar los trminos intensin de una relacin para el esquema R y extensin para el estado de una relacin r(R). La figura 1.2 muestra un ejemplo de una relacin ALUMNO, que corresponde al esquema ALUMNO que se acaba de especificar. Cada Tupla de la relacin representa una entidad alumno en particular. Se presenta una relacin en forma de tabla, en la que cada tupla aparece como una fila y cada atributo corresponde a Henry George Maquera Quispe

Base de Datos

27

una cabecera de columna que indica un papel o interpretacin de los valores de esa columna. Los valores nulos representan atributos cuyos valores se descomponen o no existen para algunas tuplas ALUMNO individuales.

Figura 1.2. Los atributos y tuplas de una relacin ALUMNO La definicin anterior de relacin puede volver a plantearse como sigue: una relacin r(R) es una relacin matemtica de grado n sobre los dominios dom(Ai), dom(A2), , dom(An), que es un subconjunto del producto cartesiano de los dominios de R: r(R) ( dom(A1) x dom(A2) x x dom (An) ) El producto cartesiano especifica todas las combinaciones posibles de valores de los dominios implicados. As pues, si se denota el nmero de valores o cardinalidad de un dominio D con |D|, y se supone que todos los dominios son finitos, el nmero total de tuplas del producto cartesiano es: | dom(A1) | * | dom(A2) | * * | dom (An) | De todas estas posibles combinaciones, un estado de relacin en un momento dado, el estado actual de la relacin, refleja solo las tuplas validas que representan un estado especfico del mundo real. En general, a medida que cambia el estado del mundo real, cambia la relacin, transformndose en otro estado de la relacin. Sin embargo, el esquema R es relativamente esttico, y no cambia salvo en raras ocasiones; lo hace, por ejemplo, cuando se aade un atributo para representar informacin nueva que no estaba representada originalmente en la relacin. Es posible que varios atributos tengan el mismo dominio. Los atributos indican diferentes papeles, o interpretaciones, para el dominio. En la relacin ALUMNO, por ejemplo, el mismo dominio Nmeros telefnicos Locales desempea el papel de Tel Casa, refirindose al telfono particular de un alumno, y el de Tel Oficina, refirindose al telfono de la oficina del alumno. 1.2. Caractersticas de las Relaciones

La primera definicin de la relacin implica caractersticas que distinguen a una relacin de un fichero o de una tabla. 1.2.1. Orden de las Tuplas en una Relacin Una relacin se define como un conjunto de tuplas. Matemticamente, los elementos de un conjunto no estn ordenados; por tanto, las tuplas de una relacin no tienen un orden especfico. En cambio, los registros de un fichero se almacenan fsicamente en el disco, de modo que siempre existe un orden entre ellos. Este ordenamiento indica el primero, el segundo, i-esimo, y ultimo registro del fichero. De manera similar, cuando se presento una relacin en forma de tabla, las filas se muestran en cierto orden. El ordenamiento de las tuplas no forma parte de la definicin de una relacin, porque la relacin intenta representar los hechos en un nivel lgico o abstracto. Se puede especificar muchos ordenamientos lgicos en una relacin; por ejemplo, las tuplas en la relacin ALUMNO de la figura 1.2 se podran ordenar lgicamente segn los valores de Nombre, NSS, Edad o algn otro atributo. La definicin de una relacin no especifica ningn orden: no existe preferencia por ningn ordenamiento lgico en particular. Por tanto, la relacin de la figura 1.3 se considera idntica a la de la Figura 1.2. Cuando una relacin se implementa en forma de fichero, se puede especificar un ordenamiento fsico para los registros del fichero. Henry George Maquera Quispe

Base de Datos

28

Figura 1.3. La relacin ALUMNO de la figura 1.2 con un orden de tuplas diferentes. 1.2.2. Orden de los Valores dentro de una Tupla. De acuerdo con la definicin anterior de relacin, una n-tupla es una lista ordenada de n valores, as que el orden de los valores de una tupla, y por lo tanto de los atributos en la definicin de un esquema de relacin, es importante. No obstante, en un nivel lgico, el orden de los atributos y de sus valores en realidad no es importante en tanto se mantenga la correspondencia entre atributos y valores. Se puede considerar una tupla como un conjunto de pares (<Atributo>, <valor>), donde cada par da el valor de la transformacin de un atributo Ai y un valor vi de dom(Ai). 1.2.3. Valores de las Tuplas Cada valor en una tupla es un valor atmico; es decir, no divisible en componentes en lo que respecta al modelo relacional bsico. Por ello no se permiten atributos compuestos ni multivaluados. Los atributos multivaluados se deben representar con relaciones individuales, y los atributos compuestos se representan nicamente mediante sus atributos componentes simples. Puede ser que algunos de los atributos de una tupla en particular sean desconocidos o no se apliquen a esa tupla, en estos casos se utiliza un valor especial llamado nulo. 1.2.4. Interpretacin de una relacin El esquema de una relacin se puede interpretar como una declaracin o como un tipo de asercin. Por ejemplo, el esquema de la relacin ALUMNO de la figura 1.2 que, en general, una entidad tiene Nombre, NSS, Tel Casa, Direccin, Tel Oficina, Edad y Prom. Cada tupla de la relacin se puede interpretar como un hecho o una instancia particular de la asercin. Por ejemplo, la primera tupla de la figura 1.2 establece el hecho de que existe un ALUMNO cuyo nombre es Benjamn Bayer, cuyo NSS es 305-61-2435, cuya edad es 19 y as sucesivamente. Cabe sealar que algunas relaciones pueden representar hechos acerca de entidades, en tanto que otras pueden representar hechos sobre vnculos. Por ejemplo, el esquema de relacin Se_Especializa (NSSAlumno, CodigoDepto) establece que los alumnos se especializan en departamentos acadmicos; una tupla de esta relacin relaciona un alumno con el departamento en el que se especializa. As pues, el modelo relacional representa hechos acerca de entidades y de vnculos de una manera uniforme utilizando relaciones. 1.3. Restricciones Relacionales y Esquemas de Bases de Datos Relacionales

1.3.1. Restricciones de Dominio Las restricciones de dominio especifica que el valor de cada atributo A debe ser un valor atmico del dominio dom(A). Los tipos de datos asociados a los dominios por lo regular incluyen los tipos de datos numricos estndar de los nmeros enteros (como entero corto, entero, entero largo) y los nmeros reales (flotante y flotante de doble precisin). Tambin se dispone de caracteres, cadenas de caracteres de longitud fija y caracteres de longitud variable, as como tipos de datos fecha, hora, marca de tiempo y dinero. Otros dominios posibles se pueden describir mediante un subintervalo de valores de un tipo de datos o como un tipo de datos enumerado en el que se listan explcitamente todos los valores posibles. 1.3.2. Restricciones en la Clave y restricciones sobre nulos Una relacin se define como un conjunto de tuplas. Por definicin, todos los elementos de un conjunto son distintos; y por lo tanto, todas las tuplas de una relacin deben ser distintas. Esto significa que no puede haber dos tuplas que tengan la misma combinacin de valores para todos sus atributos. Por lo regular existes otros subconjuntos de atributos de un esquema de relacin R con la propiedad de que no debe Henry George Maquera Quispe

Base de Datos

29

haber dos tuplas en un estado de relacin r de R con la misma combinacin de valores para estos atributos. Suponga que se denota un conjunto de atributos SC; entonces, para dos tuplas distintas cualesquiera t1 y t2 en un estado de relacin r de R, se tiene: t1[SC] t2[SC] Todo conjunto de atributos SC se denomina superclave del esquema de la relacin R. Una superclave SC especifica una restriccin de unicidad que significa que dos tuplas distintas en un estado r de R no pueden tener el mismo valor para SC. Toda relacin tiene por lo menos una superclave: el conjunto de todos sus atributos. Sin embargo, una superclave puede tener atributos redundantes, as que un concepto mucho mas til es el de clave, que carece de redundancia. Una clave K de un esquema de relacin R es una superclave de R con la propiedad adicional de que la eliminacin de cualquier atributo A de K deja un conjunto de atributos K que no es una superclave de R. Por lo tanto, una clave es una superclave mnima, es decir, una superclave a la cual no se le puede quitar atributos sin que deje de cumplirse la restriccin de unidad. El valor de un atributo clave puede servir para identificar de manera nica una tupla de relacin. El hecho de que un conjunto de atributos constituya una clave es una propiedad del esquema de la relacin; es una restriccin que debe cumplirse en todos los estados de relaciones del esquema. La clave se determina a partir del significado de los atributos, y es una propiedad que no varia con el tiempo; debe seguir siendo valida aunque se inserte tuplas nuevas en la relacin. En general un esquema de relacin puede tener ms de una clave. En tal caso, cada una de ellas se denomina clave candidata. Por ejemplo, la relacin COCHE de la figura 1.4 tiene dos claves candidatas: NumMatricula y NumSerieMotor. Es habitual designar una de las claves candidatas como clave primaria de la relacin.

Figura 1.4. La relacin COCHE con dos claves candidatas: NumMatricula y NumSerieMotos

Esta es la clave candidata cuyos valores sirven para identificar las tuplas en la relacin. Cabe sealar que cuando un esquema tiene varias claves candidatas, la eleccin de una para funcionar como clave primaria es arbitraria; sin embargo es mejor escoger una clave primaria con un solo atributo o un nmero reducido de atributos. 1.3.3. Base de Datos Relacionales y Esquemas de Bases de Datos Una base de datos suele contener muchas relaciones y en estas las tuplas estn relacionadas de diversas maneras. Un esquema de base de datos relacional S es un conjunto de esquemas de relaciones S = {R1, R2, , Rm} y un conjunto de restricciones de integridad R1. Un estado de base de datos relacional BD de S es un conjunto de estados de relaciones BD={r1, r2, , rm} tal que cada ri es un estado de R y tal que los estados de relaciones ri satisfacen las restricciones de integridad especificadas en R1. La figura 1.5 muestra un esquema de base de datos relacional: EMPRESA = {Empleado, Departamento, Localizaciones_Dept, Proyecto, Trabaja_en, Dependiente}. La figura 1.6 muestra un estado de base de datos relacional que corresponde al esquema EMPRESA. En la figura 1.5, el atributo NumeroD de Departamento y de Localizaciones_Dept representa el mismo concepto del mundo real: el nmero otorgado a un departamento. Ese mismo concepto se llama ND en Empleado y NumD en Proyecto. Los atributos que representan el mismo concepto del mundo real pueden tener o no nombres idnticos en diferentes relaciones. De manera similar, los atributos que representan diferentes conceptos pueden tener el mismo nombre en relaciones distintas. Por ejemplo, se podra haber usado el nombre de atributo Nombre tanto para NombreP de Proyecto como para NombreD de Departamento, en este caso se tendra dos atributos con el mismo nombre pero que representara conceptos diferentes del mundo real: los nombres de proyectos y nombres de departamentos.

Henry George Maquera Quispe

Base de Datos

30

Figura 1.5. Diagrama del esquema para la base de datos relacional EMPRESA, las claves primarias estn subrayadas.

Figura 1.6. Un posible estado de la base de datos relacional correspondiente al esquema EMPRESA. Henry George Maquera Quispe

Base de Datos 1.3.4. Integridad Referencial, Integridad Referencial y Claves Externas

31

La restriccin de integridad de entidades establece que ningn valor de clave primaria puede ser nulo. Esto es porque el valor de la clave primaria sirve para identificar las tuplas individuales en una relacin; el que la clave primaria tenga valores nulos implica que no se pueda identificar algunas tuplas. Las restricciones de clave e integridad de entidades se especifican sobre relaciones individuales. La restriccin de integridad referencial se especifica entre dos relaciones y sirve para mantener la consistencia entre tuplas de las dos relaciones individuales. La restriccin referencial se especifica entre dos relaciones y sirve para mantener la consistencia entre tuplas de las dos relaciones. En trminos ms sencillos, la restriccin de integridad referencial establece que una tupla en una relacin que haga referencia a otra relacin deber referirse a una tupla existente en esa relacin. Para dar una definicin ms formal de integridad referencial primero se debe definir el concepto de clave externa. Las condiciones que debe satisfacer una clave externa, se especifica una restriccin de integridad referencial entre los dos esquemas de relaciones R1 y R2 un conjunto de atributos CE en el esquema de relacin R1 es una clave externa de R1 si satisface las siguientes reglas. Los atributos de CE tienen el mismo dominio que los atributos de la clave primaria CP de otro esquema de la relacin R2; se dice que los atributos CE hacen referencia o se refieren a la relacin R2. Un valor de CE en una tupla t1 del estado actual r1(R1) ocurre como valor de CP en alguna tupla t2 del estado actual r2(R2) o bien es nulo. En el primer caso, se tiene que t1[CE]= t2[CE], y se dice que la tupla t1 hace referencia o se refiere a la tupla t1 R1 se denomina relacin referenciante y R2 es la relacin referenciada.

Figura 1.7. Restricciones de integridad referencial representada sobre el diagrama del esquema de la base de datos relacional EMPRESA 1.4. Operaciones de Actualizacin y Tratamiento de las Violaciones a las Restricciones

Es posible clasificar las operaciones del modelo relacional en recuperaciones y actualizaciones. Son tres las operaciones de actualizacin bsicas que efectan las relaciones: La operacin Insertar. Proporciona una lista de valores de atributos para una nueva tupla t que se ha de insertar en una relacin R. La insercin puede violar cualquiera de los cuatro tipos de restriccin, en este caso la opcin por defecto es rechazar la insercin. La operacin Eliminar. Permite eliminar tuplas. Solo puede violar la integridad referencial si las claves externas de otras tuplas de la base de datos hacen regencia a la tupla que se ha de eliminar. Si una operacin de eliminacin provoca una violacin se dispone de tres opciones: - Rechazar la eliminacin. - Eliminacin en cascada (o propagacin) Henry George Maquera Quispe

Base de Datos -

32

Modificar los valores del atributo de referencia que provoca la violacin, todos esos valores se pondran a nulo o se modificaran de modo que hicieran referencia a otra tupla valida.

La operacin Actualizar. Permite alterar los valores de algunos atributos de las tuplas existentes. Siempre que se aplique opciones de actualizacin, no se deben violar las restricciones de integridad especificadas en el esquema en el esquema de base de datos relacional. Es necesario especificar una condicin para los atributos de la relacin a fin de seleccionar la tupla (o tuplas) que se modificaran. la actualizacin de un atributo que no es clave primaria ni clave externa casi nunca causa problemas, sin embargo modificar un valor de clave primaria es similar a una tupla e insertar otra en su lugar, puesto que se usa la clave primaria para identificar las tuplas. Restricciones de Verificacin (Check). En algunos casos puede ocurrir que sea necesario especificar una condicin que deben cumplir los valores de determinados atributos de una relacin de la BD aparte de las restricciones ya vistas de clave primaria, unicidad, obligatoriedad y clave ajena. Para ello se definen las restricciones de verificacin que, al igual que las ya estudiadas, siempre llevan implcitas un rechazo en caso de que no se cumpla la condicin especificada y que tambin se comprueban ante una insercin, borrado o modificacin. Como las restricciones de verificacin siempre van ligadas a un nico elemento de la BD (generalmente una relacin) no es necesario que tengan un nombre. Por ejemplo, para la relacin EMPLEADO podra definirse una restriccin sobre el atributo "Salario" que estableciera que "el rango del salario de un empleado puede oscilar entre los 20 000 y las 80 000 euros. As, si se va a insertar un empleado con un sueldo superior a los 80 000 euros la operacin se rechazara. Aserciones (Assertion): Otro tipo de restriccin, que generaliza al anterior, lo forman las aserciones en las que la condicin se establece sobre elementos de distintas relaciones (por ello debe tener un nombre que la identifique). Su funcionamiento es idntico al de las restricciones de verificacin. La nica diferencia consiste en que las restricciones de verificacin o Check tienen como mbito una nica relacin. Continuando con nuestro ejemplo, se podra especificar una asercin para la restriccin que establezca que "no hay empleado que trabaje en el departamento de investigacin que gane ms de 40000 euros." En las restricciones que involucran algn tipo de subconsulta en la condicin (por ejemplo, si se utiliza alguna funcin de agregacin sobre las tuplas de una relacin) puede ocurrir que puedan implementarse como un Check. Sin embargo, es necesario estudiar que la restriccin no pueda ser violada en ningn caso por cualquiera de las operaciones que puedan realizarse sobre el esquema. Por ello, a veces es necesario implementarlas como una Asercin. Disparadores (Trigger): Por ltimo, a veces puede interesar especificar una accin distinta del rechazo 1 cuando no se cumple una determinada restriccin semntica . En ese caso, se recurre al uso de los disparadores o triggers que permiten adems de indicar una condicin, especificar la accin que se quiere se lleve a cabo si la condicin se hace verdadera. Los disparadores pueden interpretarse como reglas de tipo evento-condicin-accin (ECA) que pueden interpretarse como reglas que especifican que cuando se produce un evento, si se cumple una condicin, entonces se realiza una determinada accin. Los disparadores no estn soportados en SQL-92; sin embargo, existen productos relacionales que los soportan aunque con diferencias en el modo de funcionamiento. En nuestro ejemplo, se podra definir un disparador que "informar al administrador de la Base de Datos cuando haya un empleado que gane ms de 45 000 euros y que trabaje en el departamento de Administracin". 2.

ALGEBRA RELACIONAL

Adems de definir la estructura y restricciones de la base de datos, un modelo de datos debe incluir un conjunto de operaciones para manipular los datos. El algebra relacional esta formada por un conjunto bsico de operaciones del modelo relacional. Estas operaciones permiten al usuario especificar las peticiones de recuperacin bsicas. El resultado de la recuperacin es una nueva relacin, que se ha formado a partir de una o mas relaciones. Para los ejemplos se utilizara la base de datos relacional de la figura 1.6.

Al contrario que en las restricciones declarativas vistas hasta ahora en las que se rechaza la operacin de insercin, borrado o modificacin si NO se cumple la condicin, en el caso de los disparadores la accin especificada en el cuerpo del disparador se ejecuta siempre y cuando se cumpla la condicin especificada. Henry George Maquera Quispe

Base de Datos 2.1. La operacin Seleccionar

33

Sirve para seleccionar un subconjunto de las tuplas de una relacin que satisfacen una condicin de seleccin. Se puede considerar la operacin SELECCIONAR como un filtro que mantiene nicamente aquellas tuplas que satisfacen una condicin de calificacin. Se usa la letra griega Sigma () para indicar la seleccin. La condicin aparece como subndice de . Seleccionar las tuplas de EMPLEADO que trabajan en el departamento 4 o aquellos cuyo salario rebasa los 30000 dlares.

ND=4(EMPLEADO)

Figura 1.8. Seleccin de los Empleados con Departamento = 4

Salario > 30000(EMPLEADO)

Figura 1.9. Seleccin de los Empleados con salario > 30000 Se pueden utilizar los operadores lgicos Y(And), O (Or), y NO(Not) para formar la condicin de seleccin general, asimismo los operadores de comparacin del conjunto { =, <, , >, , } Seleccionar las tuplas de todos los empleados que trabajan en el departamento 4 y ganan ms de 25000 dlares al ao, o que trabajan en el departamento 5 y ganan ms de 30000 al ao.

(ND=4 y salario >25000) o (ND=5 y salario>3000) (EMPLEADO)

Figura 1.10. Seleccin de los Empleados con (Departamento = 4 y Salario > 25000) o (Departamento = 5 y Salario > 3000) El operador SELECCIONAR es unario, es decir, se aplica a una sola relacin. Adems, la operacin de seleccin se aplica a cada tupla individualmente; por ello las condiciones de seleccin no pueden implicar a ms de una tupla. 2.2. La operacin Proyectar

Sirve para seleccionar ciertas columnas de la tabla bajo una condicin dada y desecha las dems. Se indica por una letra griega Pi (). El la condicin aparece como subndice de . La operacin Proyectar elimina cualquier tupla repetida, as que el resultado es un conjunto de tuplas y por tanto una relacin valida. Haga una lista con el Apellido, Nombre y Salario de todos los empleados.

Apellido, Nombre, Salario(EMPLEADO)

Figura 1.11. Proyeccin de Apellido, Nombre, Salario de los Empleados

Henry George Maquera Quispe

Base de Datos Haga una lista con Sexo, Salario de los Empleados

34

Sexo, Salario(EMPLEADO)
2.3. Secuencias Renombrar de Operacin y la operacin

Se puede escribir las operaciones en una sola expresin del algebra relacional anidndolas, o bien se puede aplicar una operacin a la vez y crear relaciones de resultados intermedios.

Figura 1.12. Proyeccin de Sexo, Salario de los Empleados

Apellido, Nombre, Salario(ND=5(EMPLEADO))


Se puede mostrar la secuencia de operaciones dando un nombre a cada una de las relaciones intermedias EMPS_DEP5 ND=5(EMPLEADO) Figura 1.13. Proyeccin de Sexo, Salario de los Empleados de los Empleados que trabajen en el Departamento = 4

RESULTADO Apellido, Nombre, Salario(EMPS_DEP5) TEMP ND=5(EMPLEADO)

Figura 1.14. Relacin TEMP. R(NOMBRE_PILA,PRIMER_APELL, SALARIO) Nombre, Apellido, Salario(TEMP) Tambin se puede utilizar esta tcnica para renombrar los atributos de las relaciones intermedias y de la resultante. Para renombrar los atributos que aparecen, bastara con que se incluya una lista con los nuevos nombres entre parntesis, se utiliza el signo (rho) para denotar el operador RENOMBRAR, S es el nuevo nombre de la relacin y B1, B2, .. Bn son los nuevos nombres de los atributos. Si los atributos de R son (A1, A2, .. An) en ese orden, entonces cada Ai se renombra por Bi. 2.4. Operaciones de la Teora de Conjuntos

Figura 1.15. Relacin R.

Se tienen las operaciones de Unin, Interseccin, y Diferencia, estas operaciones son binarias; es decir se aplican a dos conjuntos. Unin. Es el resultado de la operacin, denotado por R S, es una relacin que incluye todas las tuplas que estn en R o S o en ambas. Las tuplas repetidas se eliminan. EMPS_DEP5 ND=5(EMPLEADO)

RESULTADO2(NSS) NSS_SUPERV(EMPS_DEP5) RESULTADO RESULTADO1 RESULTADO2

RESULTADO1 NSS(EMPS_DEP5)

Henry George Maquera Quispe

Base de Datos

35

Figura 1.16. Resultado de la consulta tras realizar una operacin de UNION: RESULTADO RESULTADO1 RESULTADO2 Interseccin. El resultado de esta operacin, denotado por R S, es una relacin que incluye las tuplas que estn tanto en R como en S. Diferencia. El resultado de esta operacin, denotado por R S, es una relacin que incluye todas las tuplas que estn en R pero no en S. Producto Cartesiano. Conocida tambin como Producto Cruzado o Reunin Cruzada, que se denota por X. Es tambin una operacin binaria de dos conjuntos, pero las relaciones a las que se aplican no tiene que ser compatibles con la unin.

Figura 1.17. a) Relaciones compatibles con la Unin b) Alumno Profesor c) Alumno Profesor d) Alumno Profesor e) Profesor - Alumno

Esta operacin sirve para combinar tuplas de dos relaciones de forma combinatorial. El resultado es una relacin Q tiene una tupla por cada combinacin de tuplas; una de R y una de S. Por ejemplo: Obtenga por cada empleado mujer, una lista de las personas a su cargo (dependientes): EMPS_MUJER Sexo=M(EMPLEADO)

Figura 1.18. Relacin EMPS_MUJER NOMBRES_EMP Nombre, Apellido, NSS(EMPS_MUJER)

Figura 1.19. relacin NOMBRES_EMP DEPENDIENTES_EMP NOMBRES_EMP x DEPENDIENTE Henry George Maquera Quispe

Base de Datos

36

Figura 1.20. Relacin DEPENDIENTES_EMPS DEPENDIENTES REALES NSS=NSSE(DEPENDIENTES_EMP)

Figura 1.21. Relacin DEPENDIENTES_REALES RESULTADO Nombre, Apellido, Nombre_Dependiente(DEPENDIENTES_REALES)

Figura 1.18. Relacin RESULTADO 2.5. La operacin Reunin

Denotada por , sirve para combinar tuplas relacionadas de dos relaciones en una sola tupla. Esta operacin es muy importante en cualquier base de datos relacional que comprenda ms de una relacin ya que permite procesar los vnculos entre relaciones. Obtenga el nombre del jefe de cada uno de los departamentos. JEFE_DPTO DEPARTAMENTO NSS_JEFE=NSS EMPLEADO RESULTADO Nombre, Apellido, Nombre(JEFE_DPTO)

Figura 1.19. Ilustracin de la operacin Reunin Henry George Maquera Quispe

Base de Datos

37

Note que NSS_Jefe es la clave externa y que la restriccin de integridad referencial desempea un papel en el emparejamiento de tuplas de la relacin EMPLEADO. El ejemplo de la figura 1.8 se puede especificar con la operacin Reunin, sustituyendo las dos operaciones: DEPENDIENTES_EMP NOMBRES_EMP x DEPENDIENTE DEPENDIENTES REALES NSS=NSSE(DEPENDIENTES_EMP) Por una nica operacin de Reunin: DEPENDIENTES_REALES NOMBRES_EMP
NSS=NSSE

DEPENDIENTE

La Reunin ms comn implica condiciones de reunin con comparaciones de igualdad exclusivamente. Una Reunin as en la que el nico operador de comparacin empleado es =, llama EQUIRREUNION. En el resultado de una Equirreunion siempre se tiene uno o ms pares de atributos con valores idnticos en todas las tuplas. Puesto uno de cada par de atributos con valores idnticos es superfluo, se ha creado una nueva operacin, llamada REUNION NATURAL (denotada por *), para deshacerse del segundo atributo (superfluo) en una condicin de reunin (o cada par de atributos de reunin) tengan el mismo nombre en las dos operaciones. Si no es as, primero se aplica una operacin de cambio de nombre. En el siguiente ejemplo, primero se renombra el atributo NumeroD de Departamento con NumD, de forma que tenga el mismo nombre que el atributo NumD de Proyecto y despus se aplica la REUNION NATURAL. DPTO_PROY PROYECTO * (NombreD, NumD, Nss_Jefe, Fecha_Inic_Jefe)(DEPARTAMENTO)

Figura 1.19. Operacin Natural DPTO_PROY El atributo NumD se denomina atributo de reunin. La relacin resultante se ilustra en la figura 1.19, en la relacin DPTO_PROY, cada tupla combina una tupla PROYECTO con la tupla DEPARTAMENTO del departamento que controla el proyecto, pero solo se conserva un atributo reunin. Si los atributos sobre los cuales se especifica la reunin natural tienen los mismos nombres en las dos relaciones, no hace falta renombrarlos. LOCS_DPTOS DEPARTAMENTO * LOCALIZACIONES_DEPT

Figura 1.20. Operacin Natural LOCS_DPTOS 2.6. La operacin Divisin

Esta operacin es til para un tipo especial de consultas que se presenta a veces en aplicaciones de bases de datos. Henry George Maquera Quispe

Base de Datos

38

Obtener los datos de los empleados que trabajan en todos los proyectos en los que trabaja John Smith. NUMSP_SMITH NumP (TRABAJA_EN SMITH Nombre=John y Apellido=Smith(EMPLEADO) EMPLEADO)

Figura 1.21. Relaciones SMITH y NUMSP_SMITH Luego se crea una relacin intermedia por cada vez que el Empleado cuyo numero de seguridad social es NSSE trabaja en el proyecto cuyo numero es NumP. NSS_NUMP

NumP, NSSE (TRABAJA_EN)

Por ultimo se aplica la operacin DIVISION a las dos relaciones, obteniendo los nmeros de seguridad social de los empleados que queremos: NSSS(NSS) NSS NUMP_SMITH RESULTADO Nombres, Apellidos (NSSS*EMPLEADO)

Figura 1.23. relacin NSSS y RESULTADO Figura 1.22. relacin NSS_NUMSP De forma ms general se puede expresar la operacin DIVISION con el siguiente ejemplo: R
A a1 a2 a3 a4 a1 a3 a2 a3 a4 a1 a2 a3 B b1 b1 b1 b1 b2 b2 b3 b3 b3 b4 b4 b4

S
A a1 a2 a3

T
B b1 b2

Figura 1.24. Operacin T R S Henry George Maquera Quispe

Base de Datos 3. 3.1.

39

CASOS Y PROBLEMAS
Alojamientos Rurales

La Comunidad de Tacna desea guardar informacin sobre los alojamientos rurales que existen en dicha comunidad. Para ello decide crear una base de datos que recoja las siguientes consideraciones: Un alojamiento rural se identifica por un nombre ("Villa Hermosa", "Los lamos", etc.), tiene una direccin, un telfono y una persona de contacto que pertenece al personal del alojamiento. En cada alojamiento trabajan una serie de personas que se identifican por un cdigo de personal. Se requiere conocer el nombre completo, la direccin y el NIF. Aunque en un alojamiento trabajen varias personas, una persona slo puede trabajar en un alojamiento. Los alojamientos se alquilan por habitaciones y se desea conocer cuntas habitaciones componen el alojamiento, de qu tipo (individuales, dobles, triples) es cada una de estas habitaciones, si poseen cuarto de bao y el precio. En algunos de estos alojamientos se realizan actividades multiaventura organizadas para huspedes (caminatas, bicicleta de montaa, etc.). Estas actividades se identifican por un cdigo. Es de inters saber el nombre de la actividad, la descripcin y el nivel de dificultad de dicha actividad (1 10). Estas actividades se realizan un da a la semana, por ejemplo: en la casa "Villa Las Flores" se practica caminatas los jueves y se desea guardar esta informacin. Pero puede haber algn da en el que no se practique ninguna actividad. Se pide: Disear el esquema relacional. Indicar en l las claves primarias, claves alternativas y las claves ajenas. De estas ltimas, especificar los modos de borrado y modificacin. Marcar con un asterisco (*) los campos que acepten valores nulos. Y por ltimo. indicar si existe algn atributo que exija definir alguna restriccin a fin de mantener la integridad de la base de datos. Escribir las siguientes consultas en SQL y en lgebra relacional: Nombre y descripcin de las actividades que se realizan en el alojamiento denominado "Los lamos". Nombre de los alojamientos que tienen habitaciones dobles y realizan actividades de caminatas (el nombre de la actividad es caminata). 3.1.1. Discusin del Enunciado Identificacin de las Relaciones Bsicas: "Un alojamiento rural se identifica por un nombre ( "Villa Hermosa", "Los lamos, etc.), tiene una direccin, un telfono y una persona de contacto ". Se debe construir una primera relacin ALOJAMIENTO donde se almacenen todos los alojamientos rurales de la Comunidad de Tacna. Su clave primaria ser el nombre del alojamiento ("Nombre-Aloja"). Considere que el atributo persona de contacto ("Contacto") puede admitir valores nulos para permitir la posibilidad de que cuando se d de alta un nuevo alojamiento la persona de contacto no haya sido asignada todava. ALOJAMIENTO (Nombre-Aloja, Direccin, Telfono, Contacto*) En cada alojamiento trabajan una serie de personas que se identifican por un cdigo de personal. Se requiere conocer el nombre completo, la direccin y el NIF". Considere una nueva relacin PERSONAL cuya clave primaria es el cdigo de personal ("Cdigo-P") y cuya clave alternativa es el NIF. Henry George Maquera Quispe

Base de Datos PERSONAL (Cdigo-P, Nombre-P, Direccin, NIF)

40

"Los alojamientos se alquilan por habitaciones y se desea conocer cuntas habitaciones componen el alojamiento, de qu tipo (individuales, dobles, triples) es cada una de estas habitaciones, si poseen cuarto de bao y el precio". Debe considerar una relacin HABITACIN. Se puede tomar como clave primaria el nmero de habitacin ("N-Habita") junto con el nombre del alojamiento. Como puede darse el caso de que no se facilite informacin acerca de si una determinada habitacin tiene bao o no y cul es su precio, se puede considerar que los atributos "Bao" y "Precio" admiten nulos. Se desea recoger el nmero de habitaciones de que dispone cada alojamiento, por lo que se debe introducir un nuevo atributo "Nmero-Habita" en la relacin ALOJAMIENTO, como se muestra en la figura. HABITACIN (Nombre-Aloja, N-Habita, Tipo, Bao*, Precio*) ALOJAMIENTO (Nombre-Aloja, Direccin, Telfono, Contacto*, Nmero-Habita) En algunos de estos alojamientos se realizan actividades multiaventura organizadas para huspedes (caminatas, bicicleta de montaa, etc.). Estas actividades se identifican por un cdigo. Es de inters saber el nombre de la actividad, la descripcin y el nivel de dificultad de dicha actividad ( 1 10)". De este ltimo prrafo se deduce la necesidad de una nueva relacin ACTIVIDAD, cuya clave primaria ser el cdigo de actividad ("Cdigo-Activ"). ACTIVIDAD (Cdigo-Activ, Nombre-Activ, Descripcin, Nivel) Anlisis de los Supuestos Semnticos: "Un alojamiento rural se identifica por un nombre (Villa Hermosa", "Los lamos", etc.),... y una persona de contacto que pertenece al personal del alojamiento. En cada alojamiento trabajan una serie de personas, sin embargo, aunque en un alojamiento trabajen varias personas, una persona slo puede trabajar en un alojamiento". En un alojamiento pueden trabajar una serie de personas, pero una misma persona slo puede trabajar en un alojamiento, por tanto se debe introducir un atributo "Nombre-Aloja" en la relacin PERSONAL, que ser clave ajena de esta relacin y referenciar a ALOJAMIENTO. Adems todo alojamiento tiene una persona de contacto que pertenece al personal del alojamiento, luego el atributo "Contacto" ser clave ajena que referenciar a PERSONAL.

Figura 1.25 Entre las relaciones ALOJAMIENTO y PERSONAL, existe un ciclo referencial que impide la creacin de las mismas. Este problema se puede solucionar creando las tablas sin las claves ajenas y posteriormente alterarlas. Opciones de borrado y modificacin Si se elimina un alojamiento de la base de datos, se elimina todo el personal que trabaja en l, en cascada (B:C). Lo mismo ocurre con las modificaciones (M:C). Sin embargo, si se elimina una persona que resulta ser una persona de contacto de un alojamiento, no Henry George Maquera Quispe

Base de Datos

41

se debe permitir que se elimine el alojamiento, pero como el atributo "Contacto" admite valores nulos, se puede considerar el borrado con puesta a nulos (B:N). La modificacin puede hacerse en cascada, pues si se modifica una persona de contacto en PERSONAL, se debe modificar en ALOJAMIENTO (M:C). Reglas ECA Se deberan controlar mediante un disparador que en un alojamiento trabaje al menos una persona. Es necesario controlar que la persona de contacto sea una de las que trabaje en el alojamiento. "Los alojamientos se alquilan por habitaciones y se desea conocer cuntas habitaciones componen el alojamiento.... Como los alojamientos disponen de una serie de habitaciones y las habitaciones dependen de los alojamientos en el sentido de que para hacer referencia a una habitacin se necesita el nombre del alojamiento donde est incluida, "Nombre-Aloja" es clave ajena de la relacin HABITACIN que referencia a ALOJAMIENTO.

Figura 1.26 Opciones de Borrado y Modificacin Si se elimina o se modifica un alojamiento se deben eliminar o modificar todas las habitaciones de dicho alojamiento, por lo que tanto el borrado como la modificacin se deben hacer en cascada (B:C, M:C) Reglas ECA Se debera controlar mediante un disparador la cardinalidad mnima en ALOJAMIENTO. Adems, como se desea conocer el nmero de habitaciones de las que consta cada alojamiento, se debera tener un disparador que, cada vez que se d de alta o se elimine una habitacin, se incremente o decremente en uno el valor del atributo "Nmero-Habita". "En algunos de estos alojamientos se realizan actividades multiaventura organizadas para huspedes {caminatas, bicicleta de montaa, etc.).... Estas actividades se realizan un da a la semana, por ejemplo: en la casa "Villa Las Flores" se practica senderismo los jueves y se desea guardar esta informacin. Pero puede haber algn da en el que no se practique ninguna actividad". Cada alojamiento puede proporcionar ciertas actividades multiaventura, adems una misma actividad puede ser propuesta por varios alojamientos, por tanto se tiene que crear una nueva relacin REALIZAACTIVIDAD, cuya clave primaria estar compuesta por las claves primarias de las relaciones ALOJAMIENTO y ACTIVIDAD. Cada una de ellas ser a su vez clave ajena que referenciar a la relacin de la cual provienen.

Figura 1.27 Se debe introducir el atributo "Da-Semana" en la relacin REALIZA-

Henry George Maquera Quispe

ERROR: syntaxerror OFFENDING COMMAND: --nostringval-STACK:

También podría gustarte