Álgebra relacional

19
ÁLGEBRA RELACIONAL El álgebra relacional es un conjunto de operaciones que describen paso a paso cómo computar una respuesta sobre las relaciones, tal y como éstas son definidas en el modelo relacional . Denominada de tipo procedimental, a diferencia del Cálculo relacional que es de tipo declarativo. Describe el aspecto de la manipulación de datos . Estas operaciones se usan como una representación intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versión más optimizada y eficiente de dicha consulta. Índice [ocultar ] 1 Tuplas 2 Unión compatible o 2.1 Grado (Aridad) 3 Las operaciones o 3.1 Básicas o 3.2 No básicas o Derivadas 3.2.1 Intersección (∩) 3.2.2 Unión natural (⋈) (Natural Join) 3.2.3 División (/) 3.2.4 Agrupación (Ģ) 4 Ejemplos o 4.1 Mostrar los nombres de los alumnos y su apoderado o 4.2 Mostrar el nombre de los alumnos inscritos y el nombre de los cursos que tomaron o 4.3 Mostrar los nombres y precios de los cursos inscritos con valor menor a 3.000 5 Véase también 6 Enlaces externos Tuplas[editar · editar código ] Una tupla se define como una función finita que asocia unívocamente los nombres de los atributos de una relación

Transcript of Álgebra relacional

LGEBRA RELACIONALEllgebra relacionales un conjunto de operaciones que describen paso a paso cmo computar una respuesta sobre las relaciones, tal y como stas son definidas en elmodelo relacional. Denominada de tipoprocedimental, a diferencia delClculo relacionalque es de tipo declarativo.Describe el aspecto de lamanipulacin de datos. Estas operaciones se usan como una representacin intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y eficiente de dicha consulta.ndice[ocultar] 1Tuplas 2Unin compatible 2.1Grado (Aridad) 3Las operaciones 3.1Bsicas 3.2No bsicas o Derivadas 3.2.1Interseccin () 3.2.2Unin natural () (Natural Join) 3.2.3Divisin (/) 3.2.4Agrupacin () 4Ejemplos 4.1Mostrar los nombres de los alumnos y su apoderado 4.2Mostrar el nombre de los alumnos inscritos y el nombre de los cursos que tomaron 4.3Mostrar los nombres y precios de los cursos inscritos con valor menor a 3.000 5Vase tambin 6Enlaces externosTuplas[editareditar cdigo]Unatuplase define como una funcin finita que asocia unvocamente los nombres de los atributos de una relacin con los valores de una instanciacin de la misma. En trminos simplistas, es una fila de una tabla relacional.Unin compatible[editareditar cdigo]Una unin es compatible entre dos relaciones R, S, si ellas poseen el mismogradoy eldominiodel i-simo elemento de la relacin R es el mismo que el i-simo elemento de la relacin S.Grado (Aridad)[editareditar cdigo]Nmero deatributos.Las operaciones[editareditar cdigo]Bsicas[editareditar cdigo]Cada operador del lgebra acepta una o dos relaciones y retorna una relacin como resultado. y son operadores unarios, el resto de los operadores son binarios. Las operaciones bsicas del lgebra relacional son: Seleccin ()Permite seleccionar unsubconjuntodetuplasde una relacin (R), todas aquellas que cumplan la(s) condicin(es)P, esto es:

Ejemplo:

Selecciona todas las tuplas que contengan Gmez como apellido en la relacin Alumnos.Una condicin puede ser una combinacin booleana, donde se pueden usar operadores como:,, combinndolos con operadores. Proyeccin ()Permite extraer columnas (atributos) de una relacin, dando como resultado unsubconjunto verticalde atributos de la relacin, esto es:

dondeson atributos de la relacinR.Ejemplo:

Selecciona los atributos Apellido, Semestre y NumeroControl de la relacin Alumnos, mostrados como un subconjunto de la relacin Alumnos Producto cartesiano (x)El producto cartesiano dedos relacionesse escribe como:

y entrega una relacin, cuyoesquemacorresponde a una combinacin de todas las tuplas deRcon cada una de las tuplas deS, y sus atributos corresponden a los deRseguidos por los deS.Ejemplo:

Muestra una nueva relacin, cuyo esquema contiene cada una de las tuplas de la relacin Alumnos junto con las tuplas de la relacin Maestros, mostrando primero los atributos de la relacin Alumnos seguidos por las tuplas de la relacin Maestros. Unin ()La operacin

retorna el conjunto de tuplas que estn en R, o en S, o en ambas. R y S deben seruniones compatibles. Diferencia (-)La diferencia de dos relaciones, R y S denotada por:

entrega todas aquellas tuplas que estn en R, peronoen S. R y S deben seruniones compatibles.

Estas operaciones son fundamentales en el sentido en que (1) todas las dems operaciones pueden ser expresadas como una combinacin de stas y (2) ninguna de estas operaciones pueden ser omitidas sin que con ello se pierda informacin.No bsicas o Derivadas[editareditar cdigo]Entre los operadores no bsicos tenemos:Interseccin ()[editareditar cdigo]La interseccin de dos relaciones se puede especificar en funcin de otros operadores bsicos:

La interseccin, como enTeora de conjuntos, corresponde al conjunto de todas lastuplasque estn en R y en S, siendo R y Suniones compatibles.Unin natural () (Natural Join)[editareditar cdigo]La operacin unin natural en el lgebra relacional es la que permite reconstruir las tablas originales previas al proceso de normalizacin. Consiste en combinar las proyeccin, seleccin y producto cartesiano en una sola operacin, donde la condicines la igualdad Clave Primaria = Clave Externa (o Foranea), y la proyeccin elimina la columna duplicada (clave externa).Expresada en las operaciones bsicas, queda

Una reunin theta ( -Join) de dos relaciones es equivalente a:

donde la condicines libre.Si la condicines una igualdad se denomina EquiJoin.Divisin (/)[editareditar cdigo]Supongamos que tenemos dos relaciones A(x, y) y B(y) donde el dominio deyen A y B, es el mismo.El operador divisinA / Bretorna todos los distintos valores dextales que para todo valoryen B existe una tuplaen A.Agrupacin ()[editareditar cdigo]Permite agrupar conjuntos de valores en funcin de un campo determinado y hacer operaciones con otros campos.Por ejemplo: sum(puntos) as Total Equipo(PARTIDOS).Ejemplos[editareditar cdigo]Suponga las relaciones o tablas:Alumno

IDNOMBRECIUDADEDAD

01PedroBogot14

11JuanCali18

21DiegoCartagena12

31RositaMedelln15

41ManuelCartagena17

Apoderado

IDNOMBREFONOID_ALUMNO

054Vctor65464421

457Jos45465411

354Mara99745531

444Paz74742301

Curso

CODNOMBREFECHA_INICIODURACIONVALOR

01142Sicologa13-01153.000

02145Biologa15-02122.500

03547Matemticas01-03304.000

04578Msica05-04101.500

05478Fsica20-04153.200

Inscrito

IDID_ALCOD

10105478

20102145

31103547

42102145

54103547

Mostrar los nombres de los alumnos y su apoderado[editareditar cdigo]Primero, realizaremos unacombinacinentre alumnos y apoderados (pues necesitamos saber a que alumno le corresponde tal apoderado). La combinacin realizar un producto cartesiano, es decir, para cada tupla de alumnos (todas las filas dealumnos) har una mezcla con cada una tupla de apoderados y seleccionar aquellas nuevas tuplas en que alumnos.id sea igual a apoderados.id_alumno, esto es:ID (alumno)NOMBRE (alumno)CIUDADEDADID (apoderado)NOMBRE (apoderado)FONOID_ALUMNO

01PedroSantiago14054Vctor65464421

01PedroSantiago14457Jos45465411

01PedroSantiago14354Mara99745531

01PedroSantiago14444Paz74742301

11JuanBuenos Aires18054Vctor65464421

11JuanBuenos Aires18457Jos45465411

11JuanBuenos Aires18354Mara99745531

11JuanBuenos Aires18444Paz74742301

21DiegoLima12054Vctor65464421

21DiegoLima12457Jos45465411

21DiegoLima12354Mara99745531

21DiegoLima12444Paz74742301

31RositaConcepcin15054Vctor65464421

31RositaConcepcin15457Jos45465411

31RositaConcepcin15354Mara99745531

31RositaConcepcin15444Paz74742301

41ManuelLima17054Vctor65464421

41ManuelLima17457Jos45465411

41ManuelLima17354Mara99745531

41ManuelLima17444Paz74742301

Por tanto, el resultado final de la combinacin es:AlumnosApoderados

ID (alumno)NOMBRE (alumno)CIUDADEDADID (apoderado)NOMBRE (apoderado)FONOID_ALUMNO

01PedroSantiago14444Paz74742301

11JuanBuenos Aires18457Jos45465411

21DiegoLima12054Vctor65464421

31RositaConcepcin15354Mara99745531

Ahora, aqu debemos mostrar solo el nombre del alumno y el nombre del apoderado, esto lo hacemos con unProyecto Proyeccin, donde la tabla final sera:

NOMBRE (alumno)NOMBRE (apoderado)

PedroPaz

JuanJos

DiegoVctor

RositaMara

Resumiendo en un solo paso:AlumnosApoderadosSe lee: Proyecta los nombre de alumnos y nombre de apoderados de los alumnos cuyo ID sea el mismo que el ID_ALUMNO de los apoderados.Mostrar el nombre de los alumnos inscritos y el nombre de los cursos que tomaron[editareditar cdigo]Comenzaremos con una combinacin entre los inscritos y los cursos para obtener el nombre de los cursos:

Lo que nos da la tabla:Resultado 1

IDID_ALCOD (inscritos)COD (cursos)NOMBREFECHA_INICIODURACIONVALOR

1010547805478Fsica20-04153.200

2010214502145Biologa15-02122.500

3110354703547Matemticas01-03304.000

4210214502145Biologa15-02122.500

5410354703547Matemticas01-03304.000

Como podemos observar, lacombinacinsolo nos entrega las combinaciones entreInscritosyCursosen queCODsea igual entre los inscritos y el curso correspondiente.Ahora necesitamos los nombres de los alumnos inscritos. Al resultado anterior (Resultado 1) aplicaremos una nuevacombinacincomparando losIDde los alumnos para colocar el nombre adecuado con el estudiante adecuado:Resultado 1AlumnosO escrito todo junto:

InscritosCursosAlumnosLa tabla de este nuevo resultado sera:Resultado 2

ID (inscrito)ID_ALCOD (inscritos)COD (cursos)NOMBRE (curso)FECHA_INICIODURACIONVALORID (alumno)NOMBRE (alumno)CIUDADEDAD

1010547805478Fsica20-04153.20001PedroSantiago14

2010214502145Biologa15-02122.50001PedroSantiago14

3110354703547Matemticas01-03304.00011JuanBuenos Aires18

4210214502145Biologa15-02122.50021DiegoLima12

5410354703547Matemticas01-03304.00041ManuelLima17

Finalmente con unaProyeccinmostraremos el nombre del alumno y el curso inscrito:Resultado 2No se pudo entender(error desconocido): {\big )}

Donde la tabla final sera:Tabla final

NOMBRE (alumno)NOMBRE (curso)

PedroFsica

PedroBiologa

JuanMatemticas

DiegoBiologa

ManuelMatemticas

La expresin completa sera:InscritosCursosAlumnosMostrar los nombres y precios de los cursos inscritos con valor menor a 3.000[editareditar cdigo]Resultado 1Lo que nos entregara la tabla:Resultado final

NOMBREVALOR

Biologa2.500

Y la expresin completa sera:CursoInscrito