Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El aspecto de manipulacin del modelo relacional, se divide en dos partes: 1. Un conjunto de operadores que forman en conjunto la llamada lgebra relacional; y 2. Una operacin de asignacin que asigna el valor de alguna expresin arbitraria del lgebra a una relacin nombrada. Ej: C := A JOIN B
LGEBRA RELACIONAL
Un panorama general del lgebra: El lgebra relacional es un lenguaje de manipulacin de datos procedural, el cual consiste en un conjunto de operadores de alto nivel que operan sobre relaciones. Cada uno de estos operadores toma una o dos relaciones como entrada y produce una nueva relacin como salida. Codd defini un conjunto de ocho operadores relacionales, en dos grupos de cuatro cada uno: 1. Las operaciones tradicionales de conjuntos: unin, interseccin, diferencia y producto cartesiano (todas ellas con ligeras modificaciones debidas al hecho de tener relaciones como operandos, y no conjuntos arbitrarios; dado que una relacin es un tipo especial de conjunto): y 2. Las operaciones relacionales especiales: seleccin (restriccin), proyeccin, reunin y divisin. Adems de estos dos grupos, se han propuesto operaciones adicionales de naturaleza algebraica para aadirlos al conjunto (de ocho operaciones) original, tales como: renombrar, ampliacin, resumen, divisin generalizada, reunin externa, unin externa, proyeccin generalizada, etc.
LGEBRA RELACIONAL
Expresin en lgebra relacional: Una expresin bsica consiste de: una relacin nombrada de la base de datos (Ej: Agencia) o una relacin constante (Ej:{(CodAgencia:02, Activo:3000000, Ciudad:Arica),...} ). Una expresin general consiste de subexpresiones menores. Sean E1 y E2 expresiones del lgebra relacional. Seleccin: Es una operacin unaria, selecciona tuplas que satisfacen un predicado dado. E1 WHERE P, P es un predicado de atributos en E1 Selecciona las tuplas de E1 que satisfacen el predicado P. En el predicado P se permiten comparaciones: =, < >, <, <=, >, >= y el uso de conectivos: AND( ), OR( ).
Ej: Obtener las tuplas de la relacin Emprstito en las cuales la cantidad prestada es mayor que 500 y el cdigo de la agencia es 02 Emprstito WHERE CodAgencia = 02 Valor > 500
CodEmpt 110 120 115 111 127 116 Resultado: CodEmpt 111 116 CodAgencia 02 02 CodCliente 115 400 Valor 1000 800 CodAgencia 03 02 03 02 01 02 CodCliente 101 305 406 115 250 400 Valor 700 200 300 1000 400 800
LGEBRA RELACIONAL
Proyeccin: Es una operacin unaria que copia la relacin, dejando algunas columnas de lado. E1[S], S es una lista de atributos en E1 Extrae los atributos especificados en S de E1. Ej: Obtener los cdigos de los clientes y las agencias donde aquellos clientes tienen algn emprstito. Emprstito[CodAgencia, CodCliente] Resultado:
CodAgencia 03 CodCliente 101
02
03 02 01 02
305
406 115 250 400
LGEBRA RELACIONAL
Producto Cartesiano: Es una operacin binaria, consiste de todos los posibles pares de tuplas concatenadas de cada una de las dos relaciones. E1 TIMES E2 Ej: (Emprstito RENAME CodAgencia AS EmptCodAg) TIMES Agencia
Agencia
CodAgencia 01 02 03 Activo 5000000 3000000 4000000 Ciudad Santiago Arica Santiago
Resultado de: (Emprstito RENAME CodAgencia AS EmptCodAg) TIMES Agencia CodEmpt EmptCodAg CodCliente Valor CodAgencia Activo Ciudad
110
110 110 120
03
03 03 03
101
101 101 305
700
700 700 200
01
02 03 01
5000000
3000000 4000000 5000000
Santiago
Arica Santiago Santiago
120
120 115 115 115 111 111
03
03 03 03 03 02 02
305
305 496 496 496 115 115
200
200 300 300 300 1000 1000
02
03 01 02 03 01 02
3000000
4000000 5000000 3000000 4000000 5000000 3000000
Arica
Santiago Santiago Arica Santiago Santiago Arica
111
127 127 127
02
01 01 01
115
250 250 250
1000
400 400 400
03
01 02 03
4000000
5000000 3000000 4000000
Santiago
Santiago Arica Santiago
116
116 116
02
02 02
400
400 400
800
800 800
01
02 03
5000000
3000000 4000000
Santiago
Arica Santiago
LGEBRA RELACIONAL
Unin: Es una operacin binaria. E1 UNIN E2 Es el conjunto de todas las tuplas que pertenecen ya sea a E1 o E2 o a ambas. La operacin de unin es hecha entre relaciones compatibles con la unin. Para que sean compatibles con la unin son necesarias dos condiciones: 1. E1 y E2 deben ser del mismo orden o grado. Esto es deben tener el mismo nmero de atributos. 2. Los dominios del i-simo atributo de E1 y el i-simo atributo de E2 deben ser los mismos. Ej: Obtener todos los cdigos de los clientes que tienen depsitos y/o emprstitos. (Depsito[CodCliente]) UNIN (Emprstito[CodCliente])
LGEBRA RELACIONAL
Depsito CodDepsito CodAgencia CodCliente 215 102 201 310 222 390 340 260 295 03 02 01 03 01 03 02 01 03 350 115 210 190 400 400 370 250 250 Saldo 400 900 350 750 1000 600 500 700 400
Depsito[CodCliente]
Emprstito[CodCliente] Resultado de Depsito[CodCliente]) UNION Emprstito[CodCliente]): CodCliente CodCliente 101 305 406 115 250 400 350 115 210 190 400 370 250 101 305 406
LGEBRA RELACIONAL
Interseccin: Es una operacin binaria. E1 INTERSECT E2 Es el conjunto de tuplas que pertenecen a ambos E1 y E2. La operacin de interseccin es hecha entre relaciones compatibles con la unin. La operacin de interseccin puede ser substituida por un par de operadores de diferencia: E1 INTERSECT E2 = E1 MINUS (E1 MINUS E2) E1 INTERSECT E2 = E2 MINUS (E2 MINUS E1) Ej: Obtener los cdigos de los clientes que tienen depsito y emprstito. (Depsito[CodCliente]) INTERSECT (Emprstito[CodCliente]) Resultado:
CodCliente 115
400
250
LGEBRA RELACIONAL
Diferencia: Es una operacin binaria. E1 MINUS E2 Es el conjunto de tuplas que pertenecen a E1 y no a E2. La operacin de diferencia es hecha entre relaciones compatibles con la unin. Ej: Obtener los cdigos de los clientes que tienen depsito pero no tienen emprstito. (Depsito[CodCliente]) MINUS (Emprstito[CodCliente]) Resultado: CodCliente
350
210 190
370
LGEBRA RELACIONAL
Reunin Theta: Es una operacin binaria que nos permite combinar la seleccin y el producto cartesiano en una sola operacin, permite juntar dos relaciones con base en alguna condicin diferente a la igualdad (es una extensin de la reunin natural). (E1 TIMES E2) WHERE P El operador forma el producto cartesiano de E1 y E2 y luego ejecuta una seleccin usando el predicado P. La condicin P de reunin tiene la forma <condicin> y <condicin> y y <condicin> donde <condicin> tiene la forma Ai Bi (donde Ai es atributo de E1 y Bi es atributo de E2, ambos atributos deben estar definidos sobre el mismo dominio, y la operacin de comparacin debe ser aplicable a ese dominio).
LGEBRA RELACIONAL
Ej: Obtener la informacin de emprstitos junto con la informacin de su agencia. (Emprstito RENAME CodAgencia AS EmptCodAg) TIMES Agencia WHERE (EmptCodAg = CodAgencia) Resultado:
CodEmpt EmptCodAg CodCliente Valor CodAgencia Activo Ciudad
110
120
03
02
101
305
700
200
03
02
4000000 Santiago
3000000 Arica
115
111 127 116
03
02 01 02
406
115 250 400
300
1000 400 800
03
02 01 02
4000000 Santiago
3000000 Arica 5000000 Santiago 3000000 Arica
LGEBRA RELACIONAL
Reunin natural: Es una operacin binaria. Une dos relaciones para formar una sola relacin. La reunin natural se efecta con respecto a una subtupla comn a ambas relaciones. E1 JOIN E2 Dos tuplas de E1 y E2 se juntan para formar una tupla resultado, si los valores de la subtupla comn son iguales. La subtupla comn aparece una sola vez en el resultado. Formalmente, sean las cabeceras de E1 y E2 (X1, X2,..., Xm, Y1, Y2,..., Yn) y (Y1, Y2,..., Yn, Z1, Z2,..., Zp) respectivamente; los atributos comunes a ambos estn definidos sobre el mismo dominio. Consideremos a (X1, X2,..., Xm), (Y1, Y2,..., Yn) y (Z1, Z2,..., Zp) como tres atributos compuestos X, Y y Z. La reunin natural de E1 JOIN E2 es una relacin con la cabecera (X, Y, Z) y un cuerpo formado por el conjunto de todas las tuplas (X:x, Y:y, Z:z) tales que una tupla a aparezca en E1 con el valor x en X y el valor y en Y, y una tupla b aparezca en E2 con el valor y en Y y el valor z en Z.
LGEBRA RELACIONAL
La reunin natural es asociativa, esto es las expresiones E1 JOIN E2 JOIN E3 (E1 JOIN E2) JOIN E3 E1 JOIN (E2 JOIN E3) son equivalentes La reunin natural es conmutativa, esto es las expresiones E1 JOIN E2 E2 JOIN E1 son equivalentes De la misma manera las operaciones de unin, interseccin y producto cartesiano son asociativas y conmutativas ( pero no la diferencia).
LGEBRA RELACIONAL
Ejemplo: Emprstito JOIN Agencia Resultado:
CodEmpt 110 120 115 111 CodAgencia 03 02 03 02 CodCliente 101 305 406 115 Valor 700 200 300 1000 Activo Ciudad
127
116
01
02
250
400
400
800
5000000 Santiago
3000000 Arica
LGEBRA RELACIONAL
Divisin: Es una operacin binaria. E1 DIVIDEBY E2 Sean las cabeceras de E1 y E2 (X1, X2,..., Xm, Y1, Y2,..., Yn) y (Y1, Y2,..., Yn) respectivamente; los atributos Y1, Y2,..., Yn son comunes a ambos. Los atributos comunes estn definidos sobre el mismo dominio. Las relaciones E1 y E2 representan el dividendo y divisor respectivamente. Consideremos a (X1, X2,..., Xm) y (Y1, Y2,..., Yn) como dos atributos compuestos X y Y. La divisin E1 DIVIDEBY E2 es una relacin con la cabecera (X) y un cuerpo formado por el conjunto de todas las tuplas (X:x) tales que aparece una tupla (X:x, Y:y) en E1 para todas las tuplas (Y:y) presentes en E2. (Informalmente, el resultado contiene todos los valores de X en E1 cuyos valores de Y correspondientes en E1 incluyen a todos los valores de Y en E2)
LGEBRA RELACIONAL
Ej: Encontrar todos los cdigos de clientes que tengan una cuenta de depsito en todas las agencias localizadas en Santiago.
LGEBRA RELACIONAL
OPERACIONES ADICIONALES Renombrar: Tiene como propsito cambiar el nombre de los atributos dentro de una relacin. Crea una nueva copia de la relacin especificada en la cual se ha dado un nombre diferente a la lista de atributos especificada. Ej: (Depsito RENAME CodCliente AS DepoCodCliente, CodAgencia AS DepoCodAg)
LGEBRA RELACIONAL
OPERACIONES ADICIONALES Ampliacin: La operacin EXTEND (ampliar) crea una nueva relacin semejante a la especificada pero con uno (o ms) atributo(s) adicionales, cuyos valores se obtienen evaluando alguna expresin de clculo (escalar) especificada. Ej: EXTEND Depsito ADD Saldo con Inters AS Explicacin, (Saldo * 1.05) AS NuevoSaldo
CodDepsito CodAgencia CodCliente Saldo Explicacin Nuevo Saldo
215
102 201 310 222 390
03
02 01 03 01 03
350
115 210 190 400 400
400
900 350 750 1000 600
420
945 367.5 787.5 1050 630
340
260 295
02
01 03
370
250 250
500
700 400
525
735 420
LGEBRA RELACIONAL
OPERACIONES ADICIONALES Resumen: La operacin SUMMARIZE (resumen) crea una nueva relacin a partir de una relacin especificada, con uno o ms clculos de agregados (cuenta, suma, promedio, mximo, mnimo) especificados. Ej: SUMMARIZE Depsito GROUPBY (CodAgencia) ADD SUM(Saldo) AS SaldoTotalAg Produce al evaluarse una relacin con la cabecera (CodAgencia, SaldoTotalAg), en la cual hay una tupla por cada valor distinto de CodAgencia en Depsito, dando ese valor de CodAgencia y el Saldo Total para dicha agencia
CodAgencia 03 02 SaldoTotalAg 2150 1400
01
2050
LGEBRA RELACIONAL
OPERACIONES ADICIONALES Resumen: Si se omite la lista de atributos en la clusula GROUPBY, se realiza el clculo de agregados una sola vez para toda la relacin. Ej: SUMMARIZE Depsito GROUPBY ( ) ADD SUM(Saldo) AS SaldoTotal Resultado:
SaldoTotal 5600
LGEBRA RELACIONAL
OPERACIONES ADICIONALES Divisin generalizada: Dadas las relaciones E1(X, Y) y E2(Y, Z), la expresin E1 DIVIDEBY E2 Produce una relacin con la cabecera (X, Z) y un cuerpo formado por todas las tuplas (X:x, Z:z) tales que aparece una tupla (X:x, Y:y) en E1 para todas las tuplas (Y:y, Z:z) que aparecen en E2. La divisin original de Codd es slo un caso especial de la divisin generalizada. Ej: Sean las relaciones SP(S#, P#) y PJ(P#, J#) SP DIVIDEBY PJ Producir una relacin con la cabecera (S#, J#) y un cuerpo formado por pares de nmero de proveedor y nmero de proyecto tales que el proveedor indicado suministra todas las partes empleadas en el proyecto indicado.
LGEBRA RELACIONAL
OPERACIONES ADICIONALES Divisin generalizada: Ej:
SP S# P# PJ P# J# SP DIVIDEBY PJ S# J#
S1
S1 S1
P1
P2 P3
P1
P2 P2
J1
J1 J2
S1
S1 S3
J1
J2 J3
S2
S2 S3 S3
P1
P4 P2 P4
P3
P2 P4
J2
J3 J3
LGEBRA RELACIONAL
OPERACIONES ADICIONALES Reunin Externa: Es una forma ampliada de la operacin ordinaria (natural o interna) de reunin, en cuyo resultado adems de las tuplas de la reunin ordinaria aparecen las tuplas de una relacin que no tiene contraparte en la otra, con nulos en las posiciones de los dems atributos. Reunin Externa Izquierda conserva en el resultado todas las tuplas de la primera relacin (o relacin de la izquierda). Si no se encuentra una tupla coincidente en la segunda relacin, los atributos de esta ltima se rellenan con valores nulos. Reunin Externa Derecha conserva en el resultado todas las tuplas de la segunda relacin (o relacin de la derecha). Si no se encuentra una tupla coincidente en la primera relacin, los atributos de esta primera relacin se rellenan con valores nulos. Reunin Externa Completa conserva en el resultado todas las tuplas de ambas relaciones, cuando no se encuentran tuplas coincidentes, las rellena con valores nulos.
LGEBRA RELACIONAL
Ejemplo de Reunin Externa Izquierda (LEFT OUTER JOIN):
Empleado
Nombre Segura Domnguez Gmez Valdivieso Calle Tebeo Viaducto Bailn Fuentes Ciudad La Loma VillaAlta Alcorcn Mstoles
Trabajo_a_tiempo_completo
Nombre Segura Domnguez Barea Valdivieso Sucursal S100 S100 S101 S101 Sueldo 3000 2000 2800 2300
Segura
Domnguez Valdivieso Gmez
Tebeo
Viaducto Fuentes Bailn
La Loma
VillaAlta Mstoles
S100
S100 S101
3000
2000 2300 Nulo
Alcorcn Nulo
LGEBRA RELACIONAL
OPERACIONES ADICIONALES Unin Externa: Se cre para efectuar la unin de tuplas de dos relaciones que no son compatibles con la unin. Esta operacin efectuar la unin de tuplas de dos relaciones que son parcialmente compatibles, lo que significa que solo algunos de sus atributos son compatibles con la unin. En el resultado se conservan los atributos no compatibles de cualquiera de las relaciones, y las tuplas que no tienen valores para dichos atributos se rellenan con valores nulos. Por ejemplo: Sean dos relaciones cuyos esquemas son: Estudiante(Nombre, NSS, Departamento, Asesor) Profesor(Nombre, NSS, Departamento, Categora) El esquema de la relacin resultante de Estudiante UNIN EXTERNA Profesor es: R(Nombre, NSS, Departamento, Asesor, Categora), y todas las tuplas de ambas relaciones se incluyen en el resultado. Las tuplas de Estudiante tendrn nulos en el atributo Categora y las tuplas de Profesor tendrn nulos en el atributo Asesor. Una tupla que exista en ambas tendrn valores para todos los atributos del esquema resultante.
LGEBRA RELACIONAL
OPERACIONES ADICIONALES Proyeccin Generalizada: Amplia la operacin de proyeccin permitiendo que se utilicen funciones aritmticas en la lista de atributos. Tiene la forma: E[F1 , F2 , ..., Fn ] Donde E es una expresin del lgebra relacional y F1 , F2 , ..., Fn son expresiones aritmticas que incluyen constantes y atributos en el esquema de E. Como caso especial, la expresin aritmtica puede ser simplemente un atributo o una constante. Ej: Informacin_prstamo[Cliente, Informacin_prstamo Limite-Saldo]
Cliente Santos Gmez Lpez Prez Limite 1200000 400000 300000 400000 Saldo 140000 80000 300000 350000 Cliente Santos Gmez Lpez Prez Limite-Saldo 1060000 320000 0 50000
LGEBRA RELACIONAL
APLICACIONES DE LAS EXPRESIONES DEL LGEBRA RELACIONAL El objetivo fundamental del lgebra es escribir expresiones mejor que solo obtencin de los datos. Algunas aplicaciones de tales expresiones son: Definir el alcance de una recuperacin; es decir, definir los datos que se van a extraer como resultado de una recuperacin. Definir el alcance de una actualizacin; es decir, definir los datos por insertar, modificar o eliminar como resultado de una operacin de actualizacin. Definir datos virtuales; es decir, definir los datos que se podrn ver en forma de relacin virtual o vista. Definir datos de instantnea; es decir, definir los datos que se han de mantener en forma de una relacin tipo instantnea.
LGEBRA RELACIONAL
APLICACIONES DE LAS LGEBRA RELACIONAL EXPRESIONES DEL
Definir derechos de acceso; es decir, definir los datos incluidos en algn tipo de autorizacin concedida. Definir requerimientos de estabilidad; es decir, definir los datos que abarcar alguna operacin de control de concurrencia. Definir restricciones de integridad; es decir, definir alguna regla especfica que debe satisfacer la base de datos adems de las reglas generales del modelo relacional.
SISTEMA RELACIONAL Segn Codd un sistema es relacional s.s.s. por lo menos cumple con lo siguiente: 1. Bases de datos relacionales. Una base de datos relacional es una base de datos percibida por el usuario (en sus niveles externo y conceptual) como una coleccin de relaciones (o tablas) normalizadas de diversos grados que vara con el tiempo. 2. Soporta al menos las operaciones del lgebra relacional siguientes: Seleccin, Proyeccin y Reunin (o junta) natural, sin definiciones previas de rutas de acceso fsico para realizar estas operaciones.
CATEGORAS DE SISTEMAS RELACIONALES Y NO RELACIONALES SEGN CODD 1. Sistema tabular: maneja tablas solamente pero no los operadores a nivel de conjuntos. No es relacional. 2. Sistema minimamente relacional: maneja tablas solamente y nicamente los operadores de seleccin, proyeccin y reunin natural. 3. Sistema relacionalmente completo: maneja tablas solamente y todos los operadores del lgebra relacional (la funcionalidad de aquellos operadores). Ej: DB2, ORACLE, INFORMIX, etc. 4. Sistema totalmente relacional: maneja todos los aspectos del modelo relacional, incluyendo en particular: dominios y las cuatro reglas generales de integridad (de dominio, de clave, de entidades y referencial).
LAS DOCE REGLAS DE CODD Segn Codd, un SGBD (DBMS) es totalmente relacional slo si cumpla con las doce reglas siguientes y las caractersticas estructurales, de integridad y manipulativas del modelo relacional. 1. La regla de informacin. 2. La regla de acceso garantizado. 3. El manejo sistemtico de los valores nulos. 4. Un catlogo activo en lnea basado en el modelo relacional. 5. La regla del sublenguaje completo. 6. La regla de actualizacin de vistas. 7. Insercin, modificacin y eliminacin de alto nivel. 8. Independencia fsica de los datos. 9. Independencia lgica de los datos.