algebra relacional
DESCRIPTION
Algebra RelacionalTRANSCRIPT
![Page 1: Algebra Relacional](https://reader037.vdocuments.pub/reader037/viewer/2022100407/56d6bf521a28ab301695c6c7/html5/thumbnails/1.jpg)
ÁLGEBRA RELACIONAL
El aspecto de manipulación del modelo relacional, sedivide en dos partes:
1. Un conjunto de operadores que forman en conjuntola llamada álgebra relacional; y
2. Una operación de asignación que asigna el valor dealguna expresión arbitraria del álgebra a unarelación nombrada.
Ej: C := A JOIN B
ÁLGEBRA RELACIONALUn panorama general del álgebra: El álgebra relacional es un
lenguaje de manipulación de datos procedural, el cual consisteen un conjunto de operadores de alto nivel que operan sobrerelaciones. Cada uno de estos operadores toma una o dosrelaciones como entrada y produce una nueva relación comosalida. Codd definió un conjunto de ocho operadoresrelacionales, en dos grupos de cuatro cada uno:
1. Las operaciones tradicionales de conjuntos: unión,intersección, diferencia y producto cartesiano (todas ellas conligeras modificaciones debidas al hecho de tener relacionescomo operandos, y no conjuntos arbitrarios; dado que unarelación es un tipo especial de conjunto): y
2. Las operaciones relacionales especiales: selección(restricción), proyección, reunión y división.
Además de estos dos grupos, se han propuesto operacionesadicionales de naturaleza algebraica para añadirlos al conjunto(de ocho operaciones) original, tales como: renombrar,ampliación, resumen, división generalizada, reunión externa,unión externa, proyección generalizada, etc.
ÁLGEBRA RELACIONAL
Expresión en álgebra relacional: Una expresión básica consistede: una relación nombrada de la base de datos (Ej: Agencia) ouna relación constante (Ej:{(CodAgencia:“02”,Activo:3000000, Ciudad:”Arica”),...} ). Una expresión generalconsiste de subexpresiones menores.
Sean E1 y E2 expresiones del álgebra relacional.Selección: Es una operación 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 relación Empréstito en las cuales lacantidad prestada es mayor que 500 y el código de la agenciaes “02”
Empréstito WHERE CodAgencia = ‘02’ � Valor > 500
CodEmpt CodAgencia CodCliente Valor
110 03 101 700
120 02 305 200
115 03 406 300
111 02 115 1000
127 01 250 400
116 02 400 800
Resultado:CodEmpt CodAgencia CodCliente Valor111 02 115 1000116 02 400 800
![Page 2: Algebra Relacional](https://reader037.vdocuments.pub/reader037/viewer/2022100407/56d6bf521a28ab301695c6c7/html5/thumbnails/2.jpg)
ÁLGEBRA RELACIONAL
Proyección: Es una operación unaria que copia la relación, dejandoalgunas columnas de lado.
E1[S], S es una lista de atributos en E1Extrae los atributos especificados en S de E1.Ej: Obtener los códigos de los clientes y las agencias donde aquellos
clientes tienen algún empréstito.Empréstito[CodAgencia, CodCliente]
Resultado:CodAgencia CodCliente03 101
02 305
03 406
02 115
01 250
02 400
ÁLGEBRA RELACIONAL
Producto Cartesiano: Es una operación binaria, consiste de todoslos posibles pares de tuplas concatenadas de cada una de lasdos relaciones.
E1 TIMES E2Ej: (Empréstito RENAME CodAgencia AS EmptCodAg) TIMES
Agencia
Agencia
CodAgencia Activo Ciudad
01 5000000 Santiago
02 3000000 Arica
03 4000000 Santiago
Resultado de: (Empréstito RENAME CodAgencia AS EmptCodAg) TIMES Agencia
CodEmpt EmptCodAg CodCliente Valor CodAgencia Activo Ciudad
110 03 101 700 01 5000000 Santiago
110 03 101 700 02 3000000 Arica
110 03 101 700 03 4000000 Santiago
120 03 305 200 01 5000000 Santiago
120 03 305 200 02 3000000 Arica
120 03 305 200 03 4000000 Santiago
115 03 496 300 01 5000000 Santiago
115 03 496 300 02 3000000 Arica
115 03 496 300 03 4000000 Santiago
111 02 115 1000 01 5000000 Santiago
111 02 115 1000 02 3000000 Arica
111 02 115 1000 03 4000000 Santiago
127 01 250 400 01 5000000 Santiago
127 01 250 400 02 3000000 Arica
127 01 250 400 03 4000000 Santiago
116 02 400 800 01 5000000 Santiago
116 02 400 800 02 3000000 Arica
116 02 400 800 03 4000000 Santiago
ÁLGEBRA RELACIONAL
Unión: Es una operación binaria. E1 UNIÓN E2Es el conjunto de todas las tuplas que pertenecen ya sea a E1 o E2 o
a ambas.La operación de unión es hecha entre relaciones compatibles con la
unión. Para que sean compatibles con la unión son necesariasdos condiciones:
1. E1 y E2 deben ser del mismo orden o grado. Esto es debentener el mismo número de atributos.
2. Los dominios del i-ésimo atributo de E1 y el i-ésimo atributode E2 deben ser los mismos.
Ej: Obtener todos los códigos de los clientes que tienen depósitosy/o empréstitos.(Depósito[CodCliente]) UNIÓN (Empréstito[CodCliente])
![Page 3: Algebra Relacional](https://reader037.vdocuments.pub/reader037/viewer/2022100407/56d6bf521a28ab301695c6c7/html5/thumbnails/3.jpg)
ÁLGEBRA RELACIONAL
Depósito
CodDepósito CodAgencia CodCliente Saldo215 03 350 400102 02 115 900201 01 210 350310 03 190 750222 01 400 1000390 03 400 600340 02 370 500260 01 250 700295 03 250 400
Depósito[CodCliente] Empréstito[CodCliente] Resultado deDepósito[CodCliente])
UNIONEmpréstito[CodCliente]):
CodCliente350115210190400370250
CodCliente101305406115250400
CodCliente350115210190400370250101305406
ÁLGEBRA RELACIONALIntersección: Es una operación binaria. E1 INTERSECT E2Es el conjunto de tuplas que pertenecen a ambos E1 y E2.La operación de intersección es hecha entre relaciones compatibles
con la unión.La operación de intersección 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 códigos de los clientes que tienen depósito yempréstito.
(Depósito[CodCliente]) INTERSECT (Empréstito[CodCliente])Resultado:
CodCliente115400250
ÁLGEBRA RELACIONAL
Diferencia: Es una operación binaria. E1 MINUS E2Es el conjunto de tuplas que pertenecen a E1 y no a E2.La operación de diferencia es hecha entre relaciones compatibles
con la unión.Ej: Obtener los códigos de los clientes que tienen depósito pero no
tienen empréstito.
(Depósito[CodCliente]) MINUS (Empréstito[CodCliente])Resultado:
CodCliente350210190370
![Page 4: Algebra Relacional](https://reader037.vdocuments.pub/reader037/viewer/2022100407/56d6bf521a28ab301695c6c7/html5/thumbnails/4.jpg)
ÁLGEBRA RELACIONAL
Reunión Theta: Es una operación binaria que nos permite combinarla selección y el producto cartesiano en una sola operación,permite juntar dos relaciones con base en alguna condicióndiferente a la igualdad (es una extensión de la reunión natural).
(E1 TIMES E2) WHERE PEl operador forma el producto cartesiano de E1 y E2 y luego ejecuta
una selección usando el predicado P. La condición P dereunión tiene la forma <condición> y <condición> y … y<condición> donde <condición> tiene la forma Ai � Bi(donde Ai es atributo de E1 y Bi es atributo de E2, ambosatributos deben estar definidos sobre el mismo dominio, y laoperación de comparación � debe ser aplicable a ese dominio).
ÁLGEBRA RELACIONAL
Ej: Obtener la información de empréstitos junto con la informaciónde su agencia.
(Empréstito RENAME CodAgencia AS EmptCodAg) TIMESAgencia WHERE (EmptCodAg = CodAgencia)
Resultado:
CodEmpt EmptCodAg CodCliente Valor CodAgencia Activo Ciudad
110 03 101 700 03 4000000 Santiago
120 02 305 200 02 3000000 Arica
115 03 406 300 03 4000000 Santiago
111 02 115 1000 02 3000000 Arica
127 01 250 400 01 5000000 Santiago
116 02 400 800 02 3000000 Arica
ÁLGEBRA RELACIONAL
Reunión natural: Es una operación binaria. Une dos relacionespara formar una sola relación. La reunión natural se efectúacon respecto a una subtupla común a ambas relaciones.
E1 JOIN E2Dos tuplas de E1 y E2 se juntan para formar una tupla resultado, si
los valores de la subtupla común son iguales. La subtuplacomún 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 atributoscomunes a ambos están 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. Lareunión natural de E1 JOIN E2 es una relación con la cabecera(X, Y, Z) y un cuerpo formado por el conjunto de todas lastuplas (X:x, Y:y, Z:z) tales que una tupla a aparezca en E1 conel valor x en X y el valor y en Y, y una tupla b aparezca en E2con el valor y en Y y el valor z en Z.
ÁLGEBRA RELACIONAL
La reunión natural es asociativa, esto es las expresionesE1 JOIN E2 JOIN E3(E1 JOIN E2) JOIN E3E1 JOIN (E2 JOIN E3)
son equivalentesLa reunión natural es conmutativa, esto es las
expresionesE1 JOIN E2E2 JOIN E1 son equivalentes
De la misma manera las operaciones de unión,intersección y producto cartesiano son asociativas yconmutativas ( pero no la diferencia).
![Page 5: Algebra Relacional](https://reader037.vdocuments.pub/reader037/viewer/2022100407/56d6bf521a28ab301695c6c7/html5/thumbnails/5.jpg)
ÁLGEBRA RELACIONAL
Ejemplo: Empréstito JOIN Agencia
Resultado:CodEmpt CodAgencia CodCliente Valor Activo Ciudad
110 03 101 700 4000000 Santiago
120 02 305 200 3000000 Arica
115 03 406 300 4000000 Santiago
111 02 115 1000 3000000 Arica
127 01 250 400 5000000 Santiago
116 02 400 800 3000000 Arica
ÁLGEBRA RELACIONAL
División: Es una operación 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 están definidossobre el mismo dominio. Las relaciones E1 y E2 representan eldividendo y divisor respectivamente.
Consideremos a (X1, X2,..., Xm) y (Y1, Y2,..., Yn) comodos atributos compuestos X y Y. La división E1 DIVIDEBY E2 esuna relación con la cabecera (X) y un cuerpo formado por elconjunto 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 E1cuyos valores de Y correspondientes en E1 incluyen a todos losvalores de Y en E2)
ÁLGEBRA RELACIONAL
Ej: Encontrar todos los códigos de clientes que tengan una cuenta dedepósito en todas las agencias localizadas en Santiago.
Depósito[CodCliente, CodAgencia] DIVIDEBY(Agencia WHERE Ciudad = ‘Santiago’[CodAgencia])
Resultado:
CodCliente400250
ÁLGEBRA RELACIONAL
OPERACIONES ADICIONALESRenombrar: Tiene como propósito cambiar el nombre de losatributos dentro de una relación. Crea una nueva copia de larelación especificada en la cual se ha dado un nombrediferente a la lista de atributos especificada.Ej: (Depósito RENAME CodCliente AS DepoCodCliente,
CodAgencia AS DepoCodAg)
![Page 6: Algebra Relacional](https://reader037.vdocuments.pub/reader037/viewer/2022100407/56d6bf521a28ab301695c6c7/html5/thumbnails/6.jpg)
ÁLGEBRA RELACIONALOPERACIONES ADICIONALESAmpliación: La operación EXTEND (ampliar) crea una nueva relaciónsemejante a la especificada pero con uno (o más) atributo(s) adicionales,cuyos valores se obtienen evaluando alguna expresión de cálculo (escalar)especificada.Ej: EXTEND Depósito ADD ‘Saldo con Interés’AS Explicación,
(Saldo * 1.05) AS NuevoSaldoCodDepósito CodAgencia CodCliente Saldo Explicación Nuevo Saldo
215 03 350 400 Saldo con Interés 420
102 02 115 900 Saldo con Interés 945
201 01 210 350 Saldo con Interés 367.5
310 03 190 750 Saldo con Interés 787.5
222 01 400 1000 Saldo con Interés 1050
390 03 400 600 Saldo con Interés 630
340 02 370 500 Saldo con Interés 525
260 01 250 700 Saldo con Interés 735
295 03 250 400 Saldo con Interés 420
ÁLGEBRA RELACIONAL
OPERACIONES ADICIONALESResumen: La operación SUMMARIZE (resumen) crea unanueva relación a partir de una relación especificada, con uno omás cálculos de agregados (cuenta, suma, promedio, máximo,mínimo) especificados.Ej: SUMMARIZE Depósito GROUPBY (CodAgencia)
ADD SUM(Saldo) AS SaldoTotalAgProduce al evaluarse una relación con la cabecera(CodAgencia, SaldoTotalAg), en la cual hay una tupla porcada valor distinto de CodAgencia en Depósito, dando esevalor de CodAgencia y el Saldo Total para dicha agencia
CodAgencia SaldoTotalAg03 215002 140001 2050
ÁLGEBRA RELACIONAL
OPERACIONES ADICIONALESResumen:Si se omite la lista de atributos en la cláusula GROUPBY, serealiza el cálculo de agregados una sola vez para toda larelación.Ej: SUMMARIZE Depósito GROUPBY ( )
ADD SUM(Saldo) AS SaldoTotal
Resultado:
SaldoTotal5600
ÁLGEBRA RELACIONAL
OPERACIONES ADICIONALESDivisión generalizada: Dadas las relaciones E1(X, Y) yE2(Y, Z), la expresión
E1 DIVIDEBY E2Produce una relación con la cabecera (X, Z) y un cuerpoformado por todas las tuplas (X:x, Z:z) tales que aparece unatupla (X:x, Y:y) en E1 para todas las tuplas (Y:y, Z:z) queaparecen en E2.La división original de Codd es sólo un caso especial de ladivisión generalizada.Ej: Sean las relaciones SP(S#, P#) y PJ(P#, J#)
SP DIVIDEBY PJProducirá una relación con la cabecera (S#, J#) y un cuerpoformado por pares de número de proveedor y número deproyecto tales que el proveedor indicado suministra todas laspartes empleadas en el proyecto indicado.
![Page 7: Algebra Relacional](https://reader037.vdocuments.pub/reader037/viewer/2022100407/56d6bf521a28ab301695c6c7/html5/thumbnails/7.jpg)
ÁLGEBRA RELACIONAL
OPERACIONES ADICIONALESDivisión generalizada:Ej:SP PJ SP DIVIDEBY PJ
S# P#S1 P1S1 P2S1 P3S2 P1S2 P4S3 P2S3 P4
P# J#P1 J1P2 J1P2 J2P3 J2P2 J3P4 J3
S# J#S1 J1S1 J2S3 J3
ÁLGEBRA RELACIONAL
OPERACIONES ADICIONALESReunión Externa: Es una forma ampliada de la operación ordinaria(natural o interna) de reunión, en cuyo resultado además de lastuplas de la reunión ordinaria aparecen las tuplas de una relaciónque no tiene contraparte en la otra, con nulos en las posiciones delos demás atributos.
Reunión Externa Izquierda conserva en el resultado todaslas tuplas de la primera relación (o relación de la izquierda). Si no seencuentra una tupla coincidente en la segunda relación, los atributosde esta última se rellenan con valores nulos.
Reunión Externa Derecha conserva en el resultado todaslas tuplas de la segunda relación (o relación de la derecha). Si no seencuentra una tupla coincidente en la primera relación, los atributosde esta primera relación se rellenan con valores nulos.
Reunión Externa Completa conserva en el resultado todaslas tuplas de ambas relaciones, cuando no se encuentran tuplascoincidentes, las rellena con valores nulos.
ÁLGEBRA RELACIONALEjemplo de Reunión Externa Izquierda (LEFT OUTER JOIN):
Empleado Trabajo_a_tiempo_completo
Nombre Calle CiudadSegura Tebeo La LomaDomínguez Viaducto VillaAltaGómez Bailén AlcorcónValdivieso Fuentes Móstoles
Nombre Sucursal SueldoSegura S100 3000Domínguez S100 2000Barea S101 2800Valdivieso S101 2300
Nombre Calle Ciudad Sucursal SueldoSegura Tebeo La Loma S100 3000Domínguez Viaducto VillaAlta S100 2000Valdivieso Fuentes Móstoles S101 2300Gómez Bailén Alcorcón Nulo Nulo
Empleado LEFT OUTER JOIN Trabajo_a_tiempo_completo
ÁLGEBRA RELACIONALOPERACIONES ADICIONALESUnión Externa: Se creó para efectuar la unión de tuplas de dosrelaciones que no son compatibles con la unión. Esta operaciónefectuará la unión de tuplas de dos relaciones que son parcialmentecompatibles, lo que significa que solo algunos de sus atributos soncompatibles con la unión.En el resultado se conservan los atributos no compatibles decualquiera de las relaciones, y las tuplas que no tienen valores paradichos atributos se rellenan con valores nulos.Por ejemplo: Sean dos relaciones cuyos esquemas son:Estudiante(Nombre, NSS, Departamento, Asesor)Profesor(Nombre, NSS, Departamento, Categoría)El esquema de la relación resultante de
Estudiante UNIÓN EXTERNA Profesor es:R(Nombre, NSS, Departamento, Asesor, Categoría), y todas lastuplas de ambas relaciones se incluyen en el resultado. Las tuplas deEstudiante tendrán nulos en el atributo Categoría y las tuplas deProfesor tendrán nulos en el atributo Asesor. Una tupla que exista enambas tendrán valores para todos los atributos del esquemaresultante.
![Page 8: Algebra Relacional](https://reader037.vdocuments.pub/reader037/viewer/2022100407/56d6bf521a28ab301695c6c7/html5/thumbnails/8.jpg)
ÁLGEBRA RELACIONALOPERACIONES ADICIONALESProyección Generalizada: Amplia la operación de proyecciónpermitiendo que se utilicen funciones aritméticas en la lista deatributos. Tiene la forma:
E[F1 , F2 , ..., Fn ]Donde E es una expresión del álgebra relacional y F1 , F2 , ..., Fn sonexpresiones aritméticas que incluyen constantes y atributos en elesquema de E. Como caso especial, la expresión aritmética puedeser simplemente un atributo o una constante.Ej:
Información_préstamo[Cliente,Información_préstamo Limite-Saldo]
Cliente Limite SaldoSantos 1200000 140000Gómez 400000 80000López 300000 300000Pérez 400000 350000
Cliente Limite-SaldoSantos 1060000Gómez 320000López 0Pérez 50000
ÁLGEBRA RELACIONAL
APLICACIONES DE LAS EXPRESIONES DELÁLGEBRA RELACIONALEl objetivo fundamental del álgebra es escribir expresionesmejor que solo obtención de los datos.Algunas aplicaciones de tales expresiones son:• Definir el alcance de una recuperación; es decir, definir los
datos que se van a extraer como resultado de unarecuperación.
• Definir el alcance de una actualización; es decir, definir losdatos por insertar, modificar o eliminar como resultado deuna operación de actualización.
• Definir datos virtuales; es decir, definir los datos que sepodrán ver en forma de relación virtual o vista.
• Definir datos de instantánea; es decir, definir los datos quese han de mantener en forma de una relación tipo“instantánea”.
ÁLGEBRA RELACIONAL
APLICACIONES DE LAS EXPRESIONES DELÁLGEBRA RELACIONAL
• Definir derechos de acceso; es decir, definir los datosincluidos en algún tipo de autorización concedida.
• Definir requerimientos de estabilidad; es decir, definir losdatos que abarcará alguna operación de control deconcurrencia.
• Definir restricciones de integridad; es decir, definir algunaregla específica que debe satisfacer la base de datos ademásde las reglas generales del modelo relacional.
OPERACIONES DE ACTUALIZACIÓN CON RELACIONES
Podemos clasificar las operaciones del modelo relacional enconsultas (obtenciones) y actualizaciones. Con lasoperaciones del álgebra relacional podemos especificarconsultas.Son tres las operaciones de actualización básicas que seefectuar con relaciones:Insertar, Eliminar y Modificar. Siempre que se apliquenoperaciones de actualización, se debe cuidar de no violar lasrestricciones de integridad especificadas en el esquema de labase de datos relacional.Analizaremos únicamente las restricciones de integridadgenéricas y no las restricciones de integridad específicas.
![Page 9: Algebra Relacional](https://reader037.vdocuments.pub/reader037/viewer/2022100407/56d6bf521a28ab301695c6c7/html5/thumbnails/9.jpg)
OPERACIONES DE ACTUALIZACIÓN CON RELACIONES
Insertar: Sirve para insertar una o más tuplas nuevas en unarelación. La inserción puede violar las restricciones dedominio, de clave, de integridad de entidades y de integridadreferencial.Ej: INSERT INTO S VALUES (‘S6’, ‘Lara’, ‘A’, ‘Atenas’)
viola la restricción de Dominio del atributo Situación.INSERT INTO S VALUES (‘S3’, ‘Zapata’, 30, ‘Atenas’)viola la restricción de clave (no pueden existir dos tuplas
con el mismo valor de clave primaria, el número de proveedor‘S3’ ya existe en la relación S).
INSERT INTO S VALUES (nulo, ‘Zapata’, 30, ‘Paris’)viola la restricción de integridad de entidades.
En estos casos el sistema relacional puede rechazar lainserción o puede proporcionar al usuario una forma desolución, pidiéndole que proporcione un nuevo valor.
OPERACIONES DE ACTUALIZACIÓN CON RELACIONES
Eliminar: Sirve para eliminar tuplas. Sólo puede violar laintegridad referencial, si las claves ajenas de otras tuplas de labase de datos hacen referencia a la tupla objetivo que se ha deeliminar.Es necesario especificar una condición expresada en términosde los atributos de la relación que selecciona la tupla (otuplas) por eliminar.Ej: DELETE FROM S WHERE S# = ‘S3’Ej: DELETE FROM S WHERE Ciudad = ‘Londres’Si una operación de eliminación provoca una violación de laintegridad referencial disponemos de tres opciones:a) Rechazar la eliminación (restringida), b) propagar laeliminación (cascada) y c) modificar los valores del atributode referencia (clave ajena) que provocan la violación (convalores nulos o default).
OPERACIONES DE ACTUALIZACIÓN CON RELACIONES
Modificar: Sirve para modificar los valores de uno o más atributosen una tupla (o tuplas) de una relación. Es necesario especificar unacondición para los atributos de la relación a fin de especificar latupla (o tuplas) que se modificarán.
La modificación de un atributo que no es ni clave primaria, niclave ajena; casi nunca causan problemas; basta con que el sistemaconstate que el nuevo valor sea un valor legal (restricción dedominio).
Modificar un valor de clave primaria es similar a eliminar unatupla e insertar otra en su lugar. Por lo tanto se pueden presentar losproblemas vistos en la inserción y eliminación. Si la modificaciónviola la integridad referencial, el sistema dispone de tres opciones:a) Rechazar la modificación (restringida), b) propagar lamodificación (cascada) y c) modificar los valores del atributo dereferencia (de clave ajena con valores nulos o default).
Si se modifica un atributo de clave ajena, el sistema se encargade verificar si la integridad referencial no ha sido violada.
SISTEMA RELACIONAL
Según Codd un sistema es relacional s.s.s. por lo menoscumple con lo siguiente:
1. Bases de datos relacionales.Una base de datos relacional es una base de datospercibida por el usuario (en sus niveles externo yconceptual) como una colección de relaciones (otablas) normalizadas de diversos grados que varíacon el tiempo.
2. Soporta al menos las operaciones del álgebrarelacional siguientes: Selección, Proyección yReunión (o junta) natural, sin definiciones previas derutas de acceso físico para realizar estas operaciones.
![Page 10: Algebra Relacional](https://reader037.vdocuments.pub/reader037/viewer/2022100407/56d6bf521a28ab301695c6c7/html5/thumbnails/10.jpg)
CATEGORÍAS DE SISTEMAS RELACIONALES Y NO RELACIONALES SEGÚN CODD
1. Sistema tabular: maneja tablas solamente pero no losoperadores a nivel de conjuntos. No es relacional.
2. Sistema minimamente relacional: maneja tablassolamente y únicamente los operadores de selección,proyección y reunión natural.
3. Sistema relacionalmente completo: maneja tablassolamente y todos los operadores del álgebrarelacional (la funcionalidad de aquellos operadores).Ej: DB2, ORACLE, INFORMIX, etc.
4. Sistema totalmente relacional: maneja todos losaspectos del modelo relacional, incluyendo enparticular: dominios y las cuatro reglas generales deintegridad (de dominio, de clave, de entidades yreferencial).
LAS DOCE REGLAS DE CODD
Según Codd, un SGBD (DBMS) es totalmenterelacional sólo si cumplía con las doce reglassiguientes y las características estructurales, deintegridad y manipulativas del modelo relacional.
1. La regla de información.2. La regla de acceso garantizado.3. El manejo sistemático de los valores nulos.4. Un catálogo activo en línea basado en el modelo
relacional.5. La regla del sublenguaje completo.6. La regla de actualización de vistas.7. Inserción, modificación y eliminación de alto nivel.8. Independencia física de los datos.9. Independencia lógica de los datos.
LAS DOCE REGLAS DE CODD
10. Independencia de la integridad.11. Independencia de la distribución.12. La regla de la no subversión.
Todas estas reglas se derivan de una sola regla fundamental.La regla “Cero” siguiente:
Para que un sistema se califique como sistemaRELACIONAL, de ADMINISTRACIÓN DE BASES DEDATOS, debe utilizar sus recursos RELACIONALES(exclusivamente) para administrar la base de datos.
Dicho de otro modo, a finales de la década de 1980 nobastaba con ser relacional según la definición de Codd.Por el contrario, todo debe hacerse de manera relacional:debe existir un mecanismo relacional de vistas, uncatálogo relacional, operaciones relaciones deactualización (además de recuperación), etc.