• No se han encontrado resultados

Diseño e implementación de un sistema de calificación y su fundamentación matemática

N/A
N/A
Protected

Academic year: 2020

Share "Diseño e implementación de un sistema de calificación y su fundamentación matemática"

Copied!
138
0
0

Texto completo

(1)

FACULTAD DE CIENCIAS

Escuela Profesional de Matemática

INFORME DE COMPETENCIA PROFESIONAL

PARA OPTAR EL TÍTULO PROFESIONAL DE:

LICENCIADO EN MATEMÁTICA

DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE

CALIFICACIÓN Y SU FUNDAMENTACIÓN

MATEMÁTICA

PRESENTADO POR:

JOSÉ PARIS MIGUEL CAÑAMERO

ASESOR

Mg. WILLIAM CARLOS ECHEGARAY CASTILLO

(2)

y me apoyaron.

A l Profesor Wiiiiam Echegaraypor su apoyo, amistad y

comprensión en la revisión del trabajo así como sus sugerencias.

A l personal del Centro de Estudios Pre-Universitarios de la

Universidad Peruana Cayetano Heredia por guardar, usar y

(3)

Por su apoyo y ánimo

para alcanzar nuevas metas,

(4)
(5)

El presente informe consta de cuatro capítulos y un apéndice que contiene los códigos fuentes del sistema. Está estructurado de la siguiente manera:

En el Capitulo I se establece las necesidades por las que se requiere una calificación automatizada. En la introducción se indica las condiciones a favor y en contra y siendo esto una polémica se deja establecido que con los defectos y virtudes de un sistema

automatizado, este ha llegado para ser usado. A continuación se introduce los conceptos tanto de hardware como de software necesario para el sistema. Las estructuras de datos

toman las formas de bases de datos que en el contexto matemático se expresan mediante relaciones y son visualizadas como tablas de datos.

En el Capítulo II está dedicado al estudio de los conceptos matemáticos que se usan

para la definición de un sistema de base de datos. Se hace énfasis en las relaciones y la forma como se pueden ver las operaciones desde el punto de vista matemático. Las operaciones con relaciones son las que forman el algebra relacional de las Matemáticas y aun cuando esto es mucho más amplio se restringe a las operaciones básicas.

En el Capítulo III realiza una descripción de las estructuras de datos fundamentales describiéndolas en detalle y estableciendo las tablas que forman la base de datos general. Se indica las operaciones matemáticas que sirven para formar las diversas relaciones. Se menciona los conceptos que permiten adaptar el sistema a otros requerimientos y su adaptación a otras situaciones.

(6)

PRÓLOGO 1

CAPÍTULO I

INTRODUCCIÓN, PRUEBAS DE SELECCIÓN MÚLTIPLE, OBJETIVOS,

HARDWARE Y SOFTWARE DEL SISTEMA 2

1 .1 . - In tr o d u c c ió n 2

1.2. - Pruebas de selección múltiple 3

1.3- Objetivos 4

1.4. - Componentes de hardware del sistema 5

1.4.1. - Lectora ópticade tarjetas 5

1.4.2. - Tarjetasópticas 6

1.5. - Componentes de software: base de datos 7

1.5.1. - Importancia y ventajas de las bases de datos 8

1.5.2. - Desventajas de las bases de datos 10

1.5.3. - Arquitectura de una base de datos 11

CAPÍTULO II

BASES DE DATOS Y PRINCIPIOS MATEMATICOS 15

2.1 Relaciones 15

2.2. Dominios y atributos 16

2.3. Más sobrellaves 17

2.4. Algunos aspectos del algebrarelacional 18

2.4.1 Lenguajes de consulta 18

2.4.2. El algebra relacional 18

2.4.3. Operaciones fundamentales 19

2.4.4. Operaciones derivadas de las básicas 21

2.4.5. Operaciones adicionales 27

2.5. Operaciones extendidas del algebra relacional 30

(7)

CAPÍTULO III

SISTEMA DE CALIFICACIÓN 42

3.1. Introducción 42

3.2. El flujo de datos 43

3.3 Base de datos ALUMNO 44

3.4. Lectura de datos 46

3.5. Estructuras de datos adicionales 49

3.6. Procesos de cálculo 51

3.6.1. Corrección de datos de entrada 51

3.6.2. Generación de la clave 52

3.6.3.. Calificación 53

3.7. Generación de consultas reportes 56

3.7.1. Reportes para estudio de pruebas 57

3.7.2. Reportes para informe de estudiantes 57

CAPÍTULO IV

DESCOMPOSICION JERÁRQUICA DEL SISTEMA Y ALGORITMOS 59

4.1. Menú principal y secundarios. 60

4.2. Procesamiento de pruebas 61

4.2.1. Inicialización 63

4.2.2. Calificación y consistencia 64

4.2.3. Calificación final y generación de grados de dificultad 66

4.2.4 Estadísticos diversos 68

4.2.5. Reportes 69

4.2.6. Normalización 71

4.3. Procesamiento de pruebas integrales 71

4.3.1. Inicialización 73

4.3.2. Calificación y consistencia 73

4.3.3. Calificación y gradosde dificultad por turnoy salón 75

4.3.4. Generación de estadísticas diversas 76

(8)

4.3.6. Grados de dificultad y estadísticos por turno y salón 79 4.3.7. Generación de un orden de mérito de un examen integral. 79

4.4 Calificación de pruebas de hasta 50 preguntas 80

4.5 Calificación de pruebas externas 81

4.6 Reportes varios 82

A PENDICE 84

CONCLUSIONES 128

(9)

La calificación de pruebas de selección múltiple se ha convertido en el método

usual que existe en la actualidad para la asignación de notas a grupos grandes de estudiantes que intervienen en un examen de conocimientos o habilidades. Las grandes ventajas pueden pensarse en dos características esenciales: 1) la prontitud con la que se pueden obtener los resultados para poblaciones numerosas y 2) el anonimato con que se califica de modo que existe la uniformidad y un mismo criterio de calificación.

En este caso la calificación es realizada usando computadoras y periféricos

especializados. El periférico especializado es la lectora óptica de marcas, la cual está acompañado de un software especializado que permite la lectura de datos y la consiguiente conversión a información digital que luego es procesada por el sistema objeto del presente trabajo. Es posible también el aplicar pruebas de selección múltiple en línea, con lo cual la

lectora óptica no sería necesaria.

Las aplicaciones para calificación de pruebas de selección múltiple entonces dependen del fabricante de la lectora óptica de marcas. El fabricante proporciona el software que realiza la comunicación entre la lectora y el periférico. Los datos una vez convertidos en información digital son trabajados por los sistemas de calificación de acuerdo a las políticas de la institución. El sistema presentado ha sido diseñado para poder adaptarse a la mayor cantidad de posibles pruebas. También es posible adaptarlo a otras aplicaciones como procesos de encuestas.

(10)

HARDWARE Y SOFTWARE DEL SISTEMA 1.1 Introducción

La calificación de pruebas ha sido y es siempre una necesidad de parte de las instituciones educativas que ofrecen cursos y programas a un número elevado de participantes y que requiere que los resultados se den de manera casi inmediata. Esto, aunado al hecho de que

el número de preguntas a evaluar sea relativamente alto, hace que la calificación manual sea demasiado lenta y los resultados no se obtengan en forma oportuna.

La solución al problema anterior se da con el establecimiento de pruebas de selección múltiple y que puedan ser calificadas por una computadora y una lectora de marcas ópticas

o de tarjetas o en línea.

Las pruebas de selección múltiple tienen como objetivo establecer una pregunta con cuatro o cinco alternativas de las cuales solo una es la correcta y los demás son llamados

distractores. Eso hace que los instrumentos electrónicos “ lean” la posición correcta para la clave y al calificar detecten si la marca está colocada en la posición correcta.

El presente trabajo describe un sistema de calificación de diversos tipos de pruebas de selección múltiple en forma automatizada. Asimismo incluye el encontrar algunos de los indicadores de índole estadístico que permiten validar ya sea la prueba en sí o la pregunta desde un punto de vista estadístico.

El sistema se desarrolló para atender diversas necesidades, en un inicio una simple calificación de pruebas pero luego se adecuó para poder evaluar encuestas de diverso tipo. Con ligeras modificaciones y adecuaciones se logró establecer y atender esas y otras necesidades.

(11)

en este contexto las bases de datos. Estas estructuras así como los algoritmos son discutidos en los capítulo 3 y 4.

El sistema tiene como estructuras de datos a las tablas relaciónales o bases de datos. Esto debido a que el sistema de soporte de la misma (en este caso el Microsoft FoxPro) posee

un sub lenguaje de consulta y de manipulación de tablas que facilitan la programación sin necesidad que se incluyan rutinas que están incluidas en el lenguaje de consulta. También

las tablas quedan expeditas o son formadas de tal manera que puedan usarse a programas o sistemas que permitan un análisis mas profundo de los datos. Las tablas pueden en ese sentido exportarse a un paquete estadístico como SPSS ú otros como a Matlab.

1.2 Pruebas de selección múltiple

Una de las preocupaciones de toda institución es la de determinar la efectividad de las pruebas de selección múltiple en la evaluación de candidatos. Al respecto las opiniones en contra de la misma están fundamentadas por las siguientes afirmaciones aún cuando hay otras:

1. En las pruebas de selección múltiple un alumno puede adivinar o sencillamente marcar al azar y obtener la respuesta correcta.

2. El entrenamiento para pruebas de selección múltiple también incluye técnicas para deducir la respuesta correcta sin tener que resolver en si la pregunta. Esto hace que la elaboración de distractores tenga que hacerse en forma bastante cuidadosa y

amplia.

3. Dado que en las pruebas de selección múltiple se da un conjunto de por lo menos 10 a 20 preguntas para un tiempo limitado, no es posible establecer preguntas que evalúen de forma adecuada o profunda un determinado tema.

4. Al ser calificada una prueba por una máquina no ingresan factores humanos que permitirían hacer una evaluación rigurosa del trabajo del alumno. La asignación de

puntaje es estricta, obteniéndose la totalidad o nada del puntaje y de ese modo no se reconoce ningún avance parcial que pueda haber realizado el estudiante.

(12)

participantes. Cada una de las afirmaciones en contra de las pruebas de selección múltiple tiene una refutación como se enumera nuevamente:

1. Efectivamente en las pruebas de selección múltiple el alumno puede adivinar y la probabilidad de que acierte la respuesta correcta es de 1/5 si hay una respuesta correcta y 4 distractores. Esta es la razón por la que en muchas evaluaciones las opciones incorrectas disminuyen el puntaje en 1/5 de lo que vale la respuesta

correcta. Así por ejemplo, si se bonifica con 5 puntos la respuesta correcta entonces se asigna con -1 la elección de uno de los distractores.

2. Efectivamente la preparación para un examen incluye algunas técnicas legales e

ilegales que los participantes pueden usar. Sin embargo la elección de distractores adecuados y lo que se pregunta en si disminuyen las chances de que esto suceda. Es común ver que no se pide la respuesta correcta, sino algo relacionado con la misma u a obtener a partir de ella.

3. Se tiene que entender que este tipo de pruebas son de entrenamiento o se utilizan

en un proceso de selección. Las preguntas que evalúen de forma algo más profunda y con mayores criterios corresponden a cuestionarios donde se quiere evaluar la formación de la persona en los temas a evaluar. Es más parte de un proceso formativo antes que de un proceso selectivo.

4. Basándonos en el punto anterior la opción de dar puntaje parcial corresponde a criterios humanos basados más en el aspecto formativo que en el proceso selectivo.

De la discusión precedente podemos decir que la efectividad de evaluación de candidatos usando pruebas de selección tiene varios aspectos tanto a favor como en contra. El hecho

que no intervenga el aspecto humano para algunos es considerado ventajoso ya que de ese modo se elimina el aspecto subjetivo de la persona que evalúa y por otro lado la calificación de pruebas con máquinas aporta el sentido de equidad bajo la premisa que todos son calificados con el mismo criterio o en este caso con la misma clave.

1.3 Objetivos

(13)

a. Resolver el problema de calificación y prontitud de notas cuando la población de estudiantes era de un mínimo de 500 alumnos, los cuales daban pruebas diarias de

diversas materias. La calificación manual se complicaba por los errores humanos y por la cantidad de pruebas, que se comenzaba a acumulaban mas rápido de lo que

se corregían.

b. Tener un conjunto de bases de datos (tablas) que permitan conocer la historia educativa tanto de los estudiantes como de las pruebas que se llevan a cabo. Esto último se da en cuanto a pregunta.

c. Disponer de la información para la generación de diversos reportes de índole general o particular. Al estar organizados como bases de datos por año y/o

semestre el acceso a la información de un periodo determinado estaba contemplado en el sistema mismo.

d. Evitar los errores propios de una calificación manual. Los medios electrónicos al ser más seguros asegura que los errores se reduzcan a su mínima expresión.

e. Permitir la corrección de errores que producidos en forma involuntaria tales como

algunas claves incorrectas o preguntas donde pueda existir una clave doble.

f. Opción de re-calificar con prontitud cualquiera de las pruebas antes rendidas y actualizar los datos.

1.4 Componentes de hardware del sistema

El sistema de calificación consta de una parte electrónica o de hardware que apoya a la parte conceptual y al software. Aparte de un computador, que ejecuta el software tenemos

lo siguiente:

1 .4 .1 .- L e c to r a ó p tic a de ta r je ta s

Un OMR (Optical Mark Reader) es un periférico que se puede comunicar a un computador y cuyo objetivo es convertir marcas realizadas con lápiz o lapicero en información que es usada fácilmente por programas especializados del computador. Dependiendo del modelo

(14)

izquierdo. Su versatilidad da para leer códigos de barras también. La figura 1.1 muestra una lectora de marcas típica.

1.4.2 Tarjetas Ópticas

Una tarjeta óptica está constituida por una hoja con un diseño acorde al modelo de lectora que se usa. El diseño de la tarjeta se realiza con un software especial que proporcional el fabricante y se hace la adaptación a las necesidades de una institución. Dependiendo de la densidad y del diseño la información que se puede captar en una tarjeta puede variar. Para exámenes es fácil tener tarjetas hasta para más de 200 preguntas. La figura 1.2 las muestra.

Fig.l.l Lectora óptica de marcas.

4 . >L-MÜ»*I r , * ¿**h ■

MK l *

* .*¿#

i* - - i*

’ »i', »ifi #*¡ ^*H *4*1

*!• ■4*1

«MI- i| •írél *4 f|

(15)

te ^tokrtsgr^

1.5 Componentes de software: bases de datos

Las bases de datos constituyen la estructura de datos usada en el sistema de calificación. En el sistema se representara como un conjunto de tablas debido a la naturaleza del sistema de software de apoyo teniendo su fundamento teórico en las relaciones matemáticas.

Aun sin haber estudiado de manera formal, la mayor parte de las personas y a través de

muchas fuentes tienen una idea general de lo que es una base de datos. La impresión general es diagramada en la siguiente figura:

Usrates en toa

Fig. 1.3

Esta percepción nos permite hacer la siguiente definición: Una base de datos es un conjunto de información almacenada usada por programas, sistemas y usuarios de una determinada institución. En dicho sentido se asume que la institución es de un tamaño mediano a grande y que posee suficiente información que debe ser almacenada.

Una institución mantiene una gran cantidad de datos, denominada los “datos operacionales”. Los datos operacionales pueden ser alumnos, notas de alumnos, pruebas de alumnos, etc.

(16)

que no forman parte de la base de datos a menos que el sistema los incorpore. En forma similar la datos de salida se refiere a reportes y mensajes que emanan del sistema ya sea

impresos o mostrados en el terminal. Nuevamente tal reporte contiene información que es derivada de la data operacional pero no es en sí mismo parte de la base de datos.

Un ejemplo de datos operacionales se muestra a continuación:

Fig.1.4

En este ejemplo los datos son variados y se explican por ellos mismos. Es claro que

cualquier institución educativa guardará información sobre sus cursos, exámenes, alumnos y otros. En el caso del sistema en el que se esta trabajando los datos más importantes serán

los cursos, alumnos, notas, exámenes y la clave de exámenes.

El otro elemento importante en las bases de datos está constituido por las relaciones que pueden asociarse a dos o más entidades que participan del sistema. Esto es representado en el esquema mediante flechas apropiadas. Estas relaciones se han declarado como bidireccionales. Asimismo entre dos entidades se pueden dar más de una relación así como en una relación puedan intervenir más de una entidad. Por ejemplo para formar claves de exámenes deben participar el profesor, examen y curso.

1.5.1 Importancia y ventajas de las bases de datos.

La respuesta más general de por que usar bases de datos se da en el sentido de tener un control centralizado de los datos operacionales. Esto comparado con que cada aplicación tenga sus propios archivos privados, lo cual origina que los datos operacionales estén

dispersos y sea muy difícil controlarlos en forma sistemática.

(17)

a) La redundancia en los datos almacenados puede reducirse. Esto en contraste con aplicaciones que mantienen sus propios datos, lo cual origina duplicación y desperdicio de espacio en disco. El reto aquí es identificar las aplicaciones que usarán los mismos datos. Por ejemplo la data de clave será usada por la aplicación

que califica tarjetas así como por la aplicación que origina indicadores estadísticos. b) Problemas de inconsistencia en los datos almacenados pueden ser previstos (hasta

cierto punto). Esto esta relacionado con el hecho que cada dato tiene una única representación dentro de la base de datos.

c) La data almacenada puede ser compartida. Diversas aplicaciones pueden usar la misma data y aquí se enfatiza el hecho que para el uso se pongan ciertos niveles de

seguridad e incluso forma de ver los datos.

d) Reglas comunes o estándares pueden ser implementadas, de modo que todas las aplicaciones, por ejemplo, usen un mismo lenguaje o sub lenguaje para su desarrollo.

e) Problemas de integridad de los datos pueden ser solucionados. Este problema tiene

que ver con el hecho que la base de datos solo debe contener datos que son exactos. Inconsistencia entre dos entidades que representan el mismo hecho es un ejemplo de falta de integridad, lo cual es consecuencia de que exista alguna redundancia entre los elementos que están almacenados.

0 Requerimientos conflictivos pueden ser balanceados. Esto tiene que ver con los requerimientos de la institución versus los de una persona individual. Las personas que administran las bases de datos tienen la responsabilidad de encontrar soluciones a problemas de conflicto entre dos partes de una misma institución que desean tener acceso a los mismos datos y cuyas necesidades puedan afectar una a la otra.

g) Las bases de datos tienen un fundamento matemático fuerte basado en las matemáticas discretas. El énfasis está establecido en el estudio de las relaciones y

(18)

h) Se reducen los costos en cuanto a ingresos de datos y otros elementos ya que no es

en forma individual sino con fines institucionales. Los datos estarán disponibles para varias divisiones de la misma institución.

1.5.2 Desventajas de las bases de datos.

Se ha mencionado muchas ventajas en el uso de bases de datos. Sin embargo existen algunos aspectos que también necesitan algo de control y atención. Entre las desventajas tenemos:

a) Los sistemas de bases de datos son complejos y el diseño consume tiempo y tiene

sus dificultades. Dependiendo del tamaño y de los requerimientos de la organización esta tarea puede demorar un tiempo considerable. Como consecuencia de ello se tiene que tener una persona (as) altamente especializado (s) que se

constituye en el administrador de bases de datos, que es una persona o un grupo de personas.

b) Se requiere una inversión significativa en cuanto a software y hardware en muchos casos. Muchas organizaciones en la actualidad, recurren a manejadores de archivos

y con software limitado manejan sus necesidades.

c) Si existiera una folla en la base de datos, esto afectaría la mayor parte de las aplicaciones. De hecho esto puede eventualmente paralizar a la misma institución y por ello es necesario prevenir copias de respaldo que mantengan la integridad de los datos operacionales.

d) Si una institución trabaja con archivos el mudar a una estructura de bases de datos implica un costo considerable en tiempo como en recursos humanos y materiales. e) Se requiere un entrenamiento especial para acostumbrar a todos los programadores

y usuarios al nuevo sistema. Esto puede convertirse en un proceso lento y algo costoso dependiendo del nivel de experto que se tenga o requiera.

^ Si existen aplicaciones individuales se requerirá un mayor tiempo para la ejecución de esa aplicación comparado con las usuales. Esto genera ciertos conflictos con

(19)

1.5.3 Arquitectura de una base de datos

La presente nota es para indicar un marco en lo que se trabajara en relación a las bases de

datos. La mayor parte de las bases de datos son descritas de esta forma y ello se refleja en la figura que se presenta a continuación.

Esquema externo

Fig.1.5 Arquitectura simple

En esta figura observamos que la arquitectura se divide en tres niveles generales: interno o esquema físico, esquema conceptual y nivel o esquema externo. El nivel interno es el más cercano a lo que entendemos por almacenaje físico, es decir la forma como los datos son almacenados. El nivel externo es el más cercano a los usuarios, es decir la forma como los usuarios verán los datos. El nivel conceptual es el de acople entre los dos esquemas anteriores. Si el nivel externo esta dedicado a las vistas individuales el nivel conceptual

puede pensarse que es una vista de usuario comunitario. De está forma pueden existir múltiples “vistas externas”, cada cual representando más o menos algunas porciones de la

base de datos pero solo existe una vista conceptual que consiste de la representación abstracta de la base de datos en su totalidad. En ese sentido tengamos presente que la mayor parte de usuarios y aplicaciones solo usa una parte de la base de datosy no toda en su totalidad. También existirá una sola vista interna que representa a la base de datosy la forma como se almacena en forma física.

(20)

U s u a r io s

N iv e l E x t e r n o

D is e ñ o

correspondencias

N iv e l C o n c e p t u a l

. . . T tx x r o s p o fK itjn

A l m a c e n a m i e n t o l

___________________________________

N i v e l I n t e r n o

Fig.l.6

Para ver algunos de los elementos de la Base de datos la figura anterior es ampliada a continuación:

Usuario Usuano Usuario Usuario

Fig.1.7

La figura muestra los tres niveles, los cuales son fácilmente reconocidos.

(21)

los usuarios terminales el sistema proveerá con un lenguaje simple y a la medida de las necesidades. Es importante notar que aun los sistemas de manejo de archivos en la actualidad proveen de un sub lenguaje de manejo de datos basado en el lenguaje dedicado

a la extracción y almacenaje de información en la base de datos.

Un usuario individual está interesado solo en una parte de la base de datos, denominada la vista externa. Esta vista es algo diferente de la forma como los datos están almacenados en forma física. Por ejemplo una persona que ve las notas de los alumnos de una determinada aula puede verla como una tabla, donde cada fila describe el nombre del alumno y las notas que tendría. Si el usuario final es el alumno el tendría acceso a sus propias notas y por tanto seria una vista restringida de la anterior. Esto indica que por ejemplo con una vista

externa estemos viendo registros adecuados a lo que deseamos ver, pero que de ningún modo constituyen la forma como son almacenadas en la base de datos. Vistas individuales pueden existir si el alumno es un usuario el base de datos. Para definir la vista externa usamos las herramientas que nos proporciona el sistema de base de datos. La vista externa consiste entonces de descripciones de lo que va a contener o será mostrada al usuario. Esto se logra con el lenguaje asociado así como con un mapeo al esquema conceptual.

El esquema o vista conceptual, al que mayormente se refieren también como el modelo conceptual ó el modelo de datos que es una representación de toda la información contenida en la base de datos y en una forma que es algo abstracta en comparación con la forma en la que la misma es almacenada físicamente. También puede ser algo diferente de la forma como ella es vista por un usuario particular. En forma amplia se pretende que sea una vista de los datos tal como son. De ese modo un registro conceptual no es necesariamente lo mismo que un registro externo o un registro almacenado. El modelo conceptual se define mediante el esquema conceptual que incluye definiciones de cada uno de los diversos tipos de registros conceptuales. Estas definiciones tienen la intención de adicionar muchas características especiales, tales como revisiones de autorizaciones,

procedimientos de validación, restricciones en datos, y otros.

El tercer nivel de la arquitectura es el nivel interno. El nivel interno es una representación a un nivel muy bajo de la base de datos en su totalidad y consiste de ocurrencias múltiples

de múltiples tipos de registros internos. Este registro es el que reside en el dispositivo de almacenamiento masivo tal como los discos duros.

(22)

que maneja todos los accesos a la base de datos. Conceptualmente sucede lo siguiente: (l) un usuario envía un requerimiento de acceso para lo que usa un sub lenguaje de datos, (2) el DBMS intercepta e interpreta el requerimiento y (3) el DBMS conjuga el esquema

externo, el mapeo externo/conceptual, el esquema conceptual, y la definición de la estructura de almacenamiento. Con ello procesa el pedido. Asimismo el DBMS procesa pedidos mucho mas complicados y ejecuta programas que pueden haber sido desarrollados en algún lenguaje compatible.

Asimismo el DBMS es responsable de aplicar revisiones de autorización y todos los procedimientos de validación que se hayan implementado. La figura 1.8 muestra la importancia dentro de las base de datos y su posición en figura 1.3.

Sistema de administacion

(23)

2.1 Relaciones

Dada una familia de conjuntos Di,D2,D3,...D n ,no necesariamente distintos, un conjunto R

de n-uplas ordenadas de la forma (di,d2,d3,...,d n ) de tal forma que di pertenece a Di, d2 pertenece a D2, ... , dn pertenece a Dn, es llamada una relación de n componentes. Los conjuntos Di,D2,D3,...D n son los dominios de R y n es el grado de la relación.

En forma matemática una relación puede considerarse como un subconjunto del producto cartesiano DixD2xD3X...xDn . Por tanto no existe un ordenamiento entre los elementos que lo constituyen.

La figura 2.1 muestra la relación llamada alumno. En esta relación de grado 7 definido con dominios Código, Ape.Paterno, Ape.materno, Nombre, Edad, Domicilio y Sexo. De

inmediato observamos que cada dominio es un subconjunto de uno más amplio. Por ejemplo el dominio de Edad no considerara todos los números enteros, así como el de Sexo considera dos instancias.

Alumno Codigo Ape-Paterno Ape-Materno Nombre Edad Domicilio Sexo

2000101 Campos Pizarro Ricardo 16 San Miguel M

2000102 Palacios Robledo Jimena 15 Jesús Maria F

2000103 Vega Paz Claudia 14 Miradores F

2000104 Garcia Calderón Luis Alfonso 17 Breña M

2000105 Oropesa Rivera Carla 17 Miradores F

2000106 Garcia Vega Cindy Rocío 16 Los Olivos F 2000107 Arévalo Rivero Eduardo 18 San Isidro M

Fig.2.1 Relación alumno

(24)

En las relaciones en muchas situaciones es frecuente que se tenga un atributo con valores que identifican en forma única a cada ocurrencia de la relación. Por ejemplo en la relación Alumno el atributo Código identifica en forma única a cada ocurrencia de la relación. En

este caso decimos que Código constituye la llave primaria de la relación. En algunos casos la llave primaria se puede formar con dos o mas atributos de modo que cada ocurrencia sea única.

Asumiendo que se tiene una llave primaria entonces la relación puede visualizarse como una función cuyo dominio es precisamente el conjunto de elementos que definen la llave

primaria y tenemos así en el ejemplo notado: Alumno: Dominio de Códigos y el rango el producto cartesiano de los dominios de los otros elementos.

En general si D| constituye la llave primaria y D2,D3,...D n los otros dominios entonces la

relación es R : D ^ D2x D 3x ....xDn que se puede considerar como una función en el sentido matemático estricto y por tanto aplicar todas las propiedades de funciones y de productos cartesianos.

2.2 Dominios y atributos

De la representación gráfica se deduce que es importante indicar las diferencias que existen entre un dominio y las columnas o atributos que son elementos del dominio. Un atributo representa un uso de un elemento de un dominio dentro de una relación. Para enfatizar esta distinción modelamos una declaración del esquema que tendría la relación alumno como se muestra en la figura 2.2.

(25)

DOMAIN COD« NUMERICA)

DOMAIN Ape-Pa CHARACTER(20)

DOMAIN Ape-Ma CHARACTER(20)

DOMAIN Nombre CHARACTER(IO)

DOMAIN Ed NUMERICA)

DOMAIN Distrito CHARACTER(20)

DOMAIN Sex CHARACTER(l)

DOMINIO NOTA NUMERICO)

RELATION ALUMNO (Código DOMAIN COD«,

(Ape-Paterno DOMAIN Ape.Pa,

Ape-Materno DOMAIN Ape.Ma,

Nombre DOMAIN Nombre,

Edad DOMAIN Ed,

Domicilio DOMAIN Distrito,

Sexo DOMAIN Sex)

Fig. 2.2 Declaraciones de un esquema

Es bueno notar también que una relación puede definirse con menos dominios que atributos. Por ejemplo la relación anterior donde cada alumno tendrá 2 ó mas exámenes y

para cada uno de ellos el dominio será NOTA.

De forma normal se trabajara con relaciones en donde cada valor en la relación o sea cada

valor de un atributo en cada instancia de la relación es atómica o no descomponible.

2.3 Mas sobre llaves.

Un aspecto importante es que no toda relación tiene un solo atributo como la llave primaria. Lo que si se tiene es que cada relación tiene alguna combinación de atributos que al tomarse en forma conjunta tendrán la propiedad de la identificación única. Una

(26)

candidato a ser llave. Por ejemplo en la relación alumno el Ape.Paterno puede constituir una llave siempre y cuando este no se repita.

Codigo Pract Nota

2000101 P01 13

2000101 P02 15

2000101 P03 12 2000102 P01 17

2000102 P03 19 2000104 P01 12

2000104 P02 15

Fig.2.3 Código y Pract forman llave única.

2.4 Algunos aspectos del algebra relaciona!. 2.4.1 Lenguajes de consulta

Un lenguaje de consulta (query language) es un lenguaje en el cual un usuario adquiere información de una base de datos. Estos lenguajes están generalmente a un nivel más alto que un lenguaje de programación estándar. Estos lenguajes pueden clasificarse como lenguajes de procedimientos y lenguajes de no procedimientos. En los lenguajes de procedimientos el usuario pide al sistema realizar una sucesión de operaciones en la base

de datos para computar el resultado final. En un lenguaje de no procedimientos el usuario describe la información deseada sin necesidad de dar un procedimiento especifico para hallar dicha información.

2.4.2 El algebra relaciona!

El algebra relacional es un lenguaje de consulta de procedimientos. Matemáticamente consiste de un conjunto de operaciones que toman una o dos relaciones como entrada y producen una nueva relación como su resultado. Por tanto las operaciones mas importantes son: selección, proyección, unión, diferencia de conjuntos, producto cartesiano y renombrar. También y en base a las operaciones básicas se deducen otras, tales como

(27)

Las operaciones fundamentales de selección, proyección y renombrar y son llamada

operaciones unarias porque operan sobre solo una relación. Las otras operaciones actúan sobre pares de relaciones y por tanto son llamadas operaciones binarias.

1. La operación selección

La operación de selección nos produce una nueva relación cuyo resultado son aquellas tupias que satisfacen una determinada condición. La nueva relación es construida tomando un subconjunto horizontal de la tabla existente, esto es todas las filas de una tabla existente que satisfacen una determinada condición. Usemos el ejemplo de la tabla 2.1 que se muestra aquí y usemos el símbolo r para denotar selección con un subíndice para el

predicado que enuncia la condición. La operación en general se denota con Tp(R) donde

p es un predicado y R la relación sobre la que actúa r .

^Dom¡c¡i¡o="M¡rafiores“(A lum no)viene a ser la relación con componentes como sigue:

2.4.3 Operaciones Fundamentales

Código Ape-Paterno Ape-Materno Nombre Edad Domicilio Sexo

2000103 Vega Paz Claudia 14 Miraflores F

2000105 Oropeza Rivera karla 17 Miraflores F

Fig. 2.4 Relación Alumnos que viven en Miraflores

En el predicado de selección se permiten comparadores tales como =, £ <,<=, >, >= en el predicado que especifica la condición. Más aun se pueden combinar diversos predicados en

uno más grande usando los símbolos de conectividad a ,v , -i .Por ejemplo para seleccionar

aquellos alumnos que viven en Miraflores y con edad mayor a 15 se usa la siguiente

expresión: r Domic¡l¡0=„Mjraflores„AEdad>15(A lum no)que nos da:

Código Ape-Paterno Ape-Materno Nombre Edad Domicilio Sexo

2000105 Oropeza Rivera karla 17 Miraflores F

(28)

La operación selección es una operación matemática sobre una relación en la que se tomen tupias como resultado. Esta operación impone una o más condiciones sobre los atributos y el dominio al que pertenecen. En muchos problemas matemáticos se usa la selección en forma natural, por ejemplo en problemas que involucran el tiempo, el dominio de la función considerara solo elementos que son mayores que cero. En la solución de

ecuaciones se consideran solo soluciones que no son extrañas al problema. También observamos que la relación que se obtiene tiene los mismos atributos que la relación original lo cual muchas veces luce como reiterativo. Esto se nota claramente en las figuras 2.4y 2.5.

2. Operación de proyección

La operación de proyección también genera una nueva relación pero forma o toma un subconjunto vertical de una tabla existente extrayendo columnas especificas y eliminando

las filas que ser repiten. El símbolo que se usa es n que se usa como n a^ i ian(R)en

donde a i ,a2,a3,....,a„ son un conjunto de nombres de atributos o dominios y R la relación de donde se extraen esos atributos. Como ejemplo y en tabla 2.1 tenemos.

n ( COd¡go,domiciiio)(Alumno) que nos da la siguiente relación.

Alumno-Domicilio Codigo Domicilio

2000101 San Miguel 2000102 Jesús María

2000103 Miraflores 2000104 Breña

2000105 Miraflores

2000106 Los Olivos 2000107 San isidro

Fig. 2.6 Resultado de una proyección

En matemáticas la función proyección proyecta sobre algunas de las componentes de su dominio. Por ejemplo P(x,y,z)=(x,z) es una función proyección de un espacio tridimencional a uno bi-dimensional. La idea es la misma y es una restricción a un

(29)

La operación de renombrar tiene como objetivo principal renombrar un atributo de una

relación o la relación misma. Utiliza el operador P y es usado como PA(B)que es la

relación B con nombre cambiado a A. También se usa como Pa,b(B)que da esencialmente

la misma relación B con el dominio o atributo b cambiado por a.

Tomando como base el ejemplo 2.1 la relación Pdistr¡t0/dom¡cii¡o (B) esta dada por:

3. Operación renombrar:

Codigo Ape-Paterno Ape-Materno Nombre Edad Distrito Sexo

2000101 Campos Pizarro Ricardo 16 San Miguel M

2000102 Palacios Robledo Jimena 15 Jesus Maria F

2000103 Vega Paz Claudia 14 Miraflores F

2000104 Garcia Calderon Luis Alfonso 17 Breña M

2000105 Oropeza Rivera karla 17 Miraflores F 2000106 Garcia Vega Cindy Rocía 16 Los Olivos F

2000107 Arevaio Rivero Eduardo 18 San isidro M

Fig.2.7 Resultado de la la operación de renombrar

En este ejemplo se observa que “Domicilio” ha cambiado por “Distrito”. En sistemas de base de datos los dominios constituyen la estructura de la base de datos y todo sistema provee con herramientas para poder cambiar la estructura.

2.4.4 Operaciones derivadas de las básicas

Las operaciones siguientes son consecuencia de las elementales o derivadas de principios matemáticos establecidos. Estas operaciones son posibles porque los resultados de las operaciones primarias, al ser también relaciones, se les puede aplicar operaciones basadas

en principios matemáticos.

I. Composición de operaciones relaciónales.

Es muy común tener consultas que resultan de la composición de una proyección con una

selección o de una selección con una proyección. Por ejemplo n ai ^ ^a (R)es una

proyección pero si R = T p(A) tenemos la composición n 3i ^a ( r p(A))que es otra

(30)

preguntar por los alumnos que tienen edad mayor o igual a 16 y del resultado solo queremos el apellido paterno y su domicilio.

^ (Ape.Paterno.domicilio) (r|Edad^i6)(Alu m n o )) = Composición nos produce la siguiente relación

Ape-Paterno Edad

Campos 16

Garcia 17

Oropeza 17

Garcia 16

Arevaio 18

Fig.2.8 Resultado de una composición

El resultado nos produce la respuesta a una pregunta o consulta que se hace a la relación misma.

2. La operación de unión

La operación de unión es un operador binario entre dos relaciones S y T y se escribe como S U T y cuyo objetivo es la relación cuyos componentes es el conjunto de todas las

combinaciones de tupias en S y T que son iguales en sus atributos comunes.

Ejemplo: En una Universidad se tiene las siguientes relaciones para alumnos y profesores.

Lo que se pide es los apellidos de todas las las personas que son ya sea alumnos o profesores. Para ello la figura

Alumno Profesor

Codigo Ape-Paterno Edad Domicilio Código Ape-Paterno Domicilio

2000101 Campos 16 San Miguel 101 Vega San Isidro

2000102 Palacios 15 Jesús Maria 102 Calderon Los Olivos

2000103 Vega 14 Miraflores 103 Vizcarra Pueblo Libre

2000104 Garcia 17 Breña 104 Garcia Pueblo Libre

2000105 Oropeza 17 Miraflores 105 Sandoval Los Olivos 2000106 Garcia 16 Los Olivos 106 Bedoya Los Olivos

2000107 Arevaio 18 San isidro 107 Palacios Miraflores

(31)

Se hace la operación n (ApePaterno)(A lu m n o )U n (ApePaterno)(Profesor) que nos produce:

Ape-Paterno

Campos

Palacios

Vega Garcia

Oropeza

Garcia Arevalo

Calderón

Vizcarra

Sandoval Bedoya

Fig. 2.10 Resultado de una unión

En este ejemplo el resultado son 11 registros aun cuando hay 7 alumnos y 7 profesores. De hecho como la relación es un conjunto, los registros repetidos no se consideran. Ello también significa que los repetidos constituyen (como Garcia) el apellido paterno tanto de un alumno como de un profesor.

3. La operación de diferencia

En forma análoga a la unión la diferencia constituye una relación donde los tupies están en una de ellas pero no en la otra. Por ejemplo y tomando las relaciones anteriores

n (Ape.Paterno|(A , u m n o ) - n Ape.Patemo|(P r o í e s o r ) constituye los apellidos paternos de

estudiantes que no son profesores. El resultado se ve en figura 2.13.

Ape-Paterno

Campos

Oropeza Arevalo

(32)

4. La operación producto cartesiano.

La operación de producto cartesiano, denotada con un X permite combinar información de

dos relaciones. Escribimos como R ,X R 2 la nueva relación que se forma y nos damos una

idea debido a que una relación por si misma es un subconjunto del producto cartesiano de sus dominios. Sin embargo en este caso el mismo nombre del atributo puede aparecer en ambas relaciones y por tanto necesitaremos un esquema de nombres para distinguir este atributo.En la práctica y cuando pueda haber confusión se adiciona el nombre del atributo a la relación. Daremos un ejemplo y para ello introducimos una versión simplificada de alumno y notas tal como se muestra en fig. 2.14

Alumno Código Ape-Paterno Notas Codigo Pract Nota

2000101 Campos 2000101 P01 13

2000102 Palacios 2000101 P02 15

2000103 Vega 2000101 P03 12

2000104 Garcia 2000102 P01 17

2000105 Oropeza 2000102 P03 19

2000106 Garcia 2000104 P01 12

2000107 Arevaio 2000104 P02 15

Fig.2.14 Relaciones Alumno y Notas

Alumno=(Código, Ape.Paterno) y Notas=(Código, Pract, Nota). Luego la relación

R = AlumnoXNotas es (Alumno.Codigo,Alumno.Ape-Paterno, Notas.codigo,

Notas.Pract, Notas.Nota). De esa forma de especificar el esquema conocemos el origen de cada atributo. Sin embargo podemos escribir la relación ignorando los nombres de atributos que no se repiten. Y asi R es (AlumnoCodigo,Ape-Paterno, Notas.codigo, .Pract, Nota) lo cual se entiende claramente y no tiene ninguna ambigüedad. La figura 2.15 muestra el resultado del producto cartesiano.

(33)

Alumno.codigo Ape-Paterno Notas.codigo Pract Nota

2000101 Campos 2000101 P01 13

2000101 Campos 2000101 P02 15

2000101 Campos 2000101 P03 12

2000101 Campos 2000102 POI 17

2000101 Campos 2000102 P03 19

2000101 Campos 2000104 POI 12

2000101 Campos 2000104 P02 15

2000102 Palacios 2000101 POI 13

2000102 Palacios 2000101 P02 15 2000102 Palacios 2000101 P03 12

2000102 Palacios 2000102 POI 17

2000102 Palacios 2000102 P03 19

2000102 Palacios 2000104 POI 12 2000102 Palacios 2000104 P02 15

2000107 Arevalo 2000101 POI 13

2000107 Arevalo 2000101 P02 15

2000107 Arevalo 2000101 P03 12

2000107 Arevalo 2000102 POI 17

2000107 Arevalo 2000102 P03 19

2000107 Arevalo 2000104 POI 12

2000107 Arevalo 2000104 P02 15

Fig.2.15 Resultado de AlumnoXNotas

En la figura 2.15 no se están exhibiendo todos los elementos pero si se da idea del total.

Es de notar que el producto cartesiano nos pueden dar muchos más elementos de los que se pueden requerir. Por ejemplo si deseamos hallar los Ape-Paterno de todos los alumnos que

han dado la práctica 2, es claro que necesitamos la información tanto de Alumno como de

Notas. Si escribimos r pract=..p02„(AlumnoXNotas) tendremos lo mostrado en la figura

2.16. En esta relación se nota que la columna Ape-Paterno puede contener algunos apellidos de personas que no han dado la práctica 02. Esto se debe a que el producto cartesiano toma todas los pares posibles sin hacer ninguna distinción.

Como la operación de producto cartesiano asocia cada fila de alumno con cada fila de

(34)

alumnoxnotas que contiene su nombre y alumno.codigo=notas.codigo. Luego, si ponemos

^Alumno.codigo=Notas.codígoí^pract=Mp02M(AlufflnoXNotdS)) obtenernos todas los registros que

han dado la practica 2 tal como se muetra en fig. 2.17.

Alumno.codigo Ape-Paterno Notas.codigo Pract Nota

2000101 Campos 2000101 P02 15

2000101 Campos 2000104 P02 15

2000102 Palacios 2000101 P02 15 2000102 Palacios 2000104 P02 15

2000103 Vega 2000101 P02 15

2000103 Vega 2000104 P02 15

2000104 Garda 2000101 P02 15

2000104 Garda 2000104 P02 15

2000105 Oropeza 2000101 P02 15

2000105 Oropeza 2000104 P02 15

2000106 Garda 2000101 P02 15

2000106 Garda 2000104 P02 15

2000107 Arevaio 2000101 P02 15 2000107 Arevaio 2000104 P02 15

Fig.2.16 Resultado de r pracU..p02..(AlumnoXNotas)

Alumno.codigo Ape-Paterno Notas.codigo Pract Nota

2000101 Campos 2000101 P02 15

2000104 Garda 2000104 P02 15

Fig.2.17 Resultado de r Alumno codlgo=Notascod¡go(r pract=„p02„(AlumnoXNotas))

La consulta inicial era por los Ape-Paterno y esto se muestra en la fig.2.18 ya que solo se

está interesado en los Ape-Paterno. Este es el resultado de la proyección siguiente:

n A p e _ p a te rn o (•^A Ium n o.cod ¡go=N ota s.cod¡go ( ^ p r a c t= " p 0 2 ” l U f f i n o X N O t a S ) ) )

Ape-Paterno

Campos

Garda

Fig.2.18 Respuesta final a Apellidos de alumnos que dieron la Pract P02

(35)

2.4.5 Operaciones Adicionales.

Una expresión general de álgebra relacional se construye de expresiones más pequeñas. Si Ei y E2 son expresiones del Algebra Relacional. Luego también las siguientes son expresiones válidas:

* E t u E j

*

• M E j

r p( E

) donde p es un predicado sobre atributos en E1.

• n S( E ) donde S es una lista consistente de algunos de los atributos en E1.

• Px (E!) donde x es el nuevo nombre para el resultado de E1.

Las operaciones mencionadas hasta el momento permiten dar respuesta a las consultas que se realicen usando el álgebra relacional. Sin embargo si nos restringimos a únicamente las operaciones fundamentales, ciertas consultas serán muy largas de especificar. Por tanto definimos operaciones adicionales que sin agregar ninguna potencia al algebra simiplifican algunas consultas comunes. Para cada nueva operación planteamos una expresión equivalente que usa solo las operaciones fundamentales.

1. Operación de intersección de conjuntos

Supongamos que introducimos una nueva relación a nuestros ejemplos ilustrada por fig.2.19 y que muestra las notas de un examen de los alumnos que lo rindieron;

Codigo Exa

2000101 15 2000102 13 2000103 17

2000104 14

2000105 12 2000107 19

(36)

Ahora en nuestras relaciones deseamos hallar los códigos de los alumno que rindieron tanto la práctica calificada como el examen. Esto corresponderá a la siguiente operación

n cod¡go(Examen) n

n codigo

(Notas) que nos da el resultado de fig. 2.20.

Codigo

2000101 2000102 2000104

Fig. 2.20 Resultado de intersección n codigo(Examen)n n codigo (Notas)

La operación de intersección se puede reemplazar con un par de operaciones de diferencias

de conjuntos como sigue r n s = r - (r- s).

2. Operación junta-natural

A menudo es deseable simplificar ciertas consultas que requieren un producto cartesiano. Usualmente una consulta que involucra un producto cartesiano incluye una operación de selección en el resultado del producto. Por ejemplo considere la consulta “Hallar los nombres de todos los alumnos conjuntamente con su código y la nota de su examen” . Para ello primero formamos el producto cartesiano de Alumno x Examen. Luego seleccionamos

aquellas tupias que tienen el mismo código, seguido por la proyección de el resultado sobre Ape_Paterno,código y Exa. La expresión relacional corresponde a:

^ A p e _Paterno,E xam en.cod ¡go,exa (^ A lu m n o .c o digo=Exam en.cod igo ( E X S f f l S n X A l U f f l n o ) )

La operación junta natural es una operación binaria que nos permite conbinar ciertas

selecciones y un producto cartesiano en una sola operación. Es denotada por el símbolo

x . La operación de Junta Natural forma un producto cartesiano de sus dos argumentos,

realiza una selección forzando la igualdad en los atributos que aparecen en los esquemas de ambas relaciones y finalmente no considera los atributos duplicados. Si consideramos la consulta anterior esta es expresada de la siguiente forma e ilustrada en la fig. 2.2 1.

(37)

Como los esquemas de Alumno y Examen tienen el atributo Codigo en común, la operación de junta natural solo considera los pares de tupies que tienen el mismo valor para código. En otras palabras combina cada par de tupies en uno solo sobre la unión de los dos esquemas. Luego realiza la operación de proyección.

Ape­

Paterno Código Exa

Campos 2000101 15

Palacios 2000102 13

Vega 2000103 17

Garcia 2000104 14

Oropeza 2000105 12

Arevaio 2000107 19

Fig. 2.21 Resultado de n Ape_PaternoExamen.codigoexa(Alumno|x|Examen)

Si consideramos dos relaciones r y s con sus esquemas R y S, que son en realidad listas de

atributos. Si consideramos los esquemas como conjuntos en lugar de listas, podemos considerar que los atributos que aparecen en ambos esquemas están en R n S y los que

aparecen en R, o en ambos como R u S . Análogamente los que aparecen en S pero no en

R son S - R , y también los que están en R pero no en S R - S . Todas estas operaciones son sobre conjuntos de atributos y no sobre relaciones.

Con ello podemos dar una definición formal de la junta natural. Considerando las relaciones r(R) y s(S) la junta natural es una relación sobre el esquema R u S definida

como sigue:

r x s —

n RuS(rri

v, v, . Vj * *, v, . V„,tiV rx s ) donde R r \ $ = V„}

3. La operación de asignación.

(38)

Esto es importante puesto que permite que esta relación pueda ser usada en operaciones

posteriores. Asi tenemos p <— r|x|s ; q ^

n cod¡go

(Examen) n

n cod¡go

(Notas) como

asignaciones a nuevas variables p y q.

2.5 Operaciones extendidas del algebra relaciona)

Las operaciones básicas del Algebra Relacional han sido extendidas de diversas formas. Una extensión simple consiste en permitir operaciones aritméticas como parte de la proyección. Asimismo permitir opraciones agregadas tales como calcular la suma de los

elementos de un conjunto o su promedio.

I. Proyección generalizada.

La proyección generalizada extiende la operación de proyección usual permitiendo que funciones aritméticas puedan ser usadas en la lista de proyección. La proyección

generalizada tiene la forma n FiF2 F (E) donde E es una expresión del algebra relacional y

cada uno de Fi, F2, F3,..., Fn, es una expresión aritmética que involucra constantes y atributos del esquema de E. Como caso especial, la expresión aritmética puede ser

simplemente una constante o un atributo.

En la relación alumno (repetimos la fig.2.1) hallaremos los que son mayores de 16 años y solo queremos el código y el Ape-paterno:

Código Ape-Paterno Ape-Materno Nombre Edad Domicilio Sexo

2000101 Campos Pizarro Ricardo 16 San Miguel M

2000102 Palacios Robledo Jimena 15 Jesús Maria F

2000103 Vega Paz Claudia 14 Miraflores F

2000104 Garcia Calderon Luis Alfonso 17 Breña M

2000105 Oropeza Rivera karla 17 Miraflores F

2000106 Garcia Vega Cindy Rocía 16 Los Olivos F 2000107 Arevaio Rivero Eduardo 18 San isidro M

El resultado estará dada por la expresión

n

Ape_PaternoEdad>16(Alumno) obteniendo lo

(39)

Ape.Paterno Edad

Campos 16

Garcia 17

Oropeza 17

Garcia 16

Arevalo 18

Fig. 2.22 Resultado de n Ape-Paterno,Edad>16(A l u m n 0 )

La figura 2.23 muestra la relación pensión y lo pagado y podemos estar interesados en la deuda lo cual hacemos como una proyección.

Codigo Ape.Paterno Ape.Materno Nombre Pensión Pagado

2000101 Campos Pizarro Ricardo 3000 2300

2000102 Palacios Robledo Jimena 2500 2000

2000103 Vega Paz Claudia 3200 1800

2000104 Garcia Calderon Luis Alfonso 2400 2100

2000105 Oropeza Rivera karla 3000 2300

2000106 Garcia Vega Cindy Roda 2800 2400

2000107 Arevalo Rivero Eduardo 2900 2600

Fig.2.23 Pagos de estudiantes

La proyección n Ape-patemo,Nombre>pens¡on-Pagado(Pago s ) nos da la deuda de cada alumno. Sin

embargo el atributo que resulta de Pension-Pagado no tiene un nombre. Podemos usar aqui la operación de rename al resultado de la proyección generalizada y decir lo siguiente

n Ape-Pa,erno,Nombre.Pension-Pagado as Deuda (P a g o s ) y el resultado se muestra en la figura

2.2.4.

Ape.Paterno Nombre Deuda

Campos Ricardo 700

Palacios Jimena 500

Vega Claudia 1400

Garcia Luis Alfonso 300

Oropeza karla 700

Garcia Cindy Roda 400

Arevalo Eduardo 300

(40)

Observe que se ha puesto de nombre Deudas a esta nueva relación. Es obvio que se puede realizar mas de una operación con los atributos de la relación. El atributo al que se hace la operación o permanece con su nombre o debe ser renombrado con objeto de tener una mayor claridad y el resultado final no se presente a segundas interpretaciones.

2. Funciones agregadas

Las funciones de agregación o agregadas toman una colección de valores y retorna un solo valor como resultado. Por ejemplo la función sum toma un conjunto de valores y retorna el valor de la suma total. Esta función aplicada a {11,19,13,13,16,12} retorna el valor de 80.

La función avg retorna el promedio de los valores. Cuando se aplica a la colección anterior retorna el valor 14. La función count nos da como resultado el total de elementos en la colección y en este caso retorna 6. Otras funciones agregadas incluyen min y max que en forma respectiva retornan el valor mínimo y el máximo de una colección. En el ejemplo que estamos estudiando nos daría 11 y 19 respectivamente.

La colección de datos sobre la que operan las funciones son llamadas multi-conjuntos debido a que pueden tener múltiples ocurrencias de un valor y el orden en que aparecen no

tiene mayor relevancia. Se les ha llamado multi-conjuntos a diferencia de los conjuntos donde solo hay una sola copia de cada elemento.

Nombre Distrito Exa-01 Exa-02

Campos Miradores 15 14

Palacios Miradores 16 13

Vega Breña 16 14

Garcia Lima 17 18

Oropeza La Molina 20 18

Garcia Lima 14 16

Arevalo Lima 13 14

Fig. 2.25

Para ilustrar el concepto de agregación usaremos la relación Est_Exam ilustrada en fig.

2.25. La expresión n Avg(Exa_01)(Est_Exam ) nos permite hallar el promedio de las notas

(41)

como una relación con un valor numérico correspondiente al promedio de todas las notas del Exa-01.

Las funciones de agregación permiten algunas modificaciones a su uso natural. Por ejemplo podemos eliminar duplicados introduciendo el modificador distinta la función. Si hacemos ficount-d¡st¡nt(D¡str¡to) ( ^ s t _ Ex a m ) nos permite la consulta para hallar el número de

distritos donde residen los alumnos. El resultado en este caso es la relación con un único elemento que es 4.

Asumamos ahora que deseamos hallar el promedio de Ex-01 de todos los alumno pero por

distrito. La expresión D¡str¡toQ Avg(Exa_01)(Est_Exam ) '° realiza. En esta expresión el

atributo Distrito, como subíndice a la izquierda del operador f i indica que la relación de entrada sera dividida de acuerdo al numero de distritos. La figura 2.26 muestra los cuatro gurpos que se forman.

Nombre Distrito Exa-01 Exa-02

Vega Breña 16 14

Oropeza La Molina 20 18

Garcia Lima 17 18

Garcia Lima 14 16

Arevalo Lima 13 14

Campos Miradores 15 14

Palacios Miradores 16 13

Fig.2.26

La función avg(Exa-Ol) como subíndice a la derecha de Q indica que para cada grupo de tupies se tiene que hallar el promedio. El resultrado es la relación de cuatro términos mostrada en fig. 2.27.

Distrito Exa-01

Breña 16

La Molina 20

Lima 14.66

Miradores 15.5

(42)

La expresión G)iGj.... G„ ° f, (a,),f2(a2).... Fm(A„ ,(E) constituye la de la operación de agregación. E

constituye una expresión o relación, Gi,G2,...,Gn constituyen una lista de atributos sobre

cuya base se hara la agrupación, cada F¡ es una función de agregación y cada A¡ es el nombre de un atributo.

El significado de la operación es que las tupias en el resultado de la expresión E están particionados en grupos de modo que:

1. Todos los tupies en un grupo tienen los mismos valores para Gi,G2,...,Gn .

2. Tupies en diferentes grupos tienen diferentes valor para Gi,G2,...,Gn .

Por tanto los grupos pueden identificarse por los valores de los atributos Gi,G2,...,Gn y para

cada grupo (gi,g2,...,gn ) el resultado es la tupia (gi,g2,...,gn, a ,,a2,...,an ) donde por cada i, a¡ es el resultado de aplicar la función F¡ en el multi-conjunto de valores para atributo A¡ en cada grupo.

Es de notar que como un caso especial de la operación de agregación la lista de atributos Gi,G2,...,Gn puede ser vacia en cuyo caso se tiene un solo grupo que corresponde a la

operación de agregación sin agrupación.

Distrito Pro-Exa-01 Max-Ex-01

Breña 16 16

La Molina 20 20

Lima 14.66 17

Miradores 15.5 16

FÍg.2.28 Resultado de Distrito °Avg(Exa-01)as Pro-Exa-01,max(Exa-01)as Max-Ex-01 ( ^ S t—EX3ffi)

De este modo se implementan operaciones adicionales. Por ejemplo para hallar la nota promedio de exa-Ol y la máxima nota de acuerdo al distrito se puede escribir la expresión

Distrito0 Avg(Exa-oi)>max(Exa-oi)(Est_Exam). Como en las proyecciones generalizadas el

(43)

3. Ju n ta externa.

La operación de junta externa es una extensión de la operación de junta natural discutida anteriormente. Suponga las dos relaciones mostradas en figura 2.29 y nuestro objetivo es generar una sola relación con toda la información.

Nombre Calle Distrito

Perez Habich P.Libre Palacios Lima Los Olivos

Vega H.Delgado Breña

Garcia Los Gatos Lima

Nombre Local ExAdmi

Perez Miraflores 450

Palacios Miraflores 670

Obregon Camacho 780

Garcia Camacho 620

Fig.2.29 Relaciones Alumno y A ljo c al

Una posible solución podría ser el hacer la junta natural Alumno x|AI_local cuyo

resultado se muestra en fig. 2.30.

Nombre Calle Distrito Local ExAdmi

Perez Habich P.Libre Miraflores 450

Palacios Lima Los Olivos Miraflores 670

Garcia Los Gatos Lima Camacho 620

Fig. 2.30 Resultado de Alumno|x|AI_local

Nótese en esto que hemos perdido la Calle y el Distrito Breña debido a que la tupia que lo describe no figura en la relación A ljo c a l de locales; y en forma similar perdemos Local y ExAdmi de Obregon ya que la tupia que describe a Obregon esta ausente de la relación Alumno.

La operación Junta externa nos permite evitar esta perdida de información. Existen tres

(44)

denotada por |x|| y junta externa total denotada por ||x ||. Todas las tres formas calculan la

junta natural, y adicionan los registros extras al resultado. Los resultados de cada una de ellas es mostrado en las figuras 2.31 a 2.33.

Nombre Calle Distrito Local ExAdmi

Perez Habich P.Libre Miraflores 450

Palacios Lima Los Olivos Miraflores 670

Garcia Los Gatos Lima Camacho 620

Vega H.Delgado Breña null null

Fig.2.31 Resultado de Alumno |||x|AI_local

Nombre Calle Distrito Local ExAdmi

Perez Habich P.Libre Miraflores 450

Palacios Lima Los Olivos Miraflores 670

Garcia Los Gatos Lima Camacho 620

Obregon nuil nuil Camacho 780

Fig.2.32 Resultado de Alumnox AI_local

Nombre Calle Distrito Local ExAdmi

Perez Habich P.Libre Miraflores 450

Palacios Lima Los Olivos Miraflores 670

Garcia Los Gatos Lima Camacho 620

Vega H.Delgado Breña null null

Obregon nuil nuil Camacho 780

Fig. 2.33 Resultado de Alumno x AI_local

(45)

4. Valores nulos.

En esta sección tiene como objetivo el indicar la forma como diversas operaciones relaciónales trabajan con los valores nulos y como lo tratan. Esta aclaración es debido a que existen diversas formas de tratarlas y como resultado nuestras definiciones pueden parecer algo arbitrarias. Lo ideal es tratar de evitar las operaciones con valores nulos.

El valor especial “nuil” nos indica valor desconocido o inexistente, lo que implica que diversas operaciones como que involucren valores nulos nos puede dar “nuil” también. En forma similar si usamos comparaciones como <,>,<=, =, etc que involucren un valor nulo nos dará también nuil. Aquí se puede decir que el resultado es el nuevo valor de nuil.

Comparaciones que involucran nuil pueden ocurrir dentro de expresiones booleanas que usan las operaciones “and”, “or”, y “not” . Definamos como estas operaciones tratan con el

“nuil”.

And: (true And desconocido) = desconocido; (false and desconocido)=false; (desconocido and desconocido)= desconocido.

Or: ((true Or desconocido) = true; (false and desconocido)=desconocido; (desconocido or desconocido)= desconocido

• Not: (Not desconocido) = desconocido.

Se describe a continuación la manera como las operaciones relaciónales tratan con los valores nulos. Estas definiciones están en concordancia con el lenguaje SQL.

Selección: La operación de selección evalúa el predicado P en

r p(E)

para cada tupia en E. Si el predicado retorna el valor true entonces es añadido al resultado y en caso que se retorne el valor falso o nuil no se añade al mismo.

(46)

• Proyección: La operación de proyección trata al nuil en la misma forma como otro valor cuando se eliminan duplicados. Luego si dos tupias en el resultado

proyectado son exactamente las mismas y ambas tienen nuil en los mismos campos, ellos son tratados como duplicados. La decisión es algo arbitrario ya que sin conocer los valores actualizados no conocemos si las dos instancias de nuil son duplicados o no.

• Unión, Intersección, diferencia: Estas operaciones tratan a nuil como la operación de proyección. Ellos tratan tupias que tienen los mismos valores en todos los campos como duplicados aun si algunos de ellos tienen valores nulos en ambos. Este comportamiento puede parecer arbitrario, especialmente en el caso de diferencia e intersección, ya que no se conoce si los valores actuales (si existen) representados por los nuil son los mismos.

• Proyección G eneralizada: Loas tupias duplicadas que contienen valores nulos son manejadas como en la operación de proyección.

2.6. Modificación de la base de datos

El desarrollo que se ha realizado hasta el momento está concentrado en la extracción de información de una base de datos y su relación con los operadores matemáticos. Ahora veremos que podemos hacer modificaciones en base a consultas y por tanto establecerlos como operadores matemáticos.

2.6.1 B orrado El objetivo fundamental es el de escoger tupias para mostrar, con la

diferencia que en lugar de ser mostrados serán borrados de la base de datos. El hecho es que se eliminan la tupia entera y no valores particulares. En el lenguaje relacional es

expresado como r ^ r - E donde r es la relación y E es una consulta en algebra relacional. Por ejemplo si deseamos eliminar todos los alumnos que viven en San Miguel los resultados son exhibidos en figuras 2.34 y 2.35.

Figure

Fig.  2.27  Resultado de  D¡str¡to^Avg(Exa-oi)(^s ^ —^ x a m )
Fig.  2.30  Resultado de  Alumno|x|AI_local
Fig.  2.33  Resultado de  Alumno  x  AI_local
Fig.  2.36  Resultado de
+7

Referencias

Documento similar