algebra relacional

10

Click here to load reader

Upload: aero356

Post on 14-Apr-2016

11 views

Category:

Documents


5 download

DESCRIPTION

Algebra Relacional

TRANSCRIPT

Page 1: Algebra Relacional

Á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

Á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

Á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

Á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

Á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

Á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

Á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

Á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

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

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.