reglas de codd

10
Barrios Quiroz Luis Fernando LAS 12 REGLAS DE CODD En la década de los 80 comenzaron a aparecer numerosos SGBD que se anunciaban como "relacionales". Sin embargo estos sistemas carecían de muchas características que se consideran importantes en un sistema relacional, perdiendo muchas ventajas del modelo relacional. En 1985 en su artículo de Computerworld, Ted Codd Codd publicó 12 reglas que un verdadero sistema relacional debería de cumplir. En la práctica algunas de ellas son difíciles de realizar. REGLA 0 Para que un sistema se denomine sistema de gestión de bases de datos relacionales, este sistema debe usar (exclusivamente) sus capacidades relacionales para gestionar la base de datos. REGLA 1: REGLA DE LA INFORMACIÓN Toda la información en una base de datos relacional se representa explícitamente en el nivel lógico exactamente de una manera: con valores en tablas. - Por tanto los metadatos (diccionario, catálogo) se representan exactamente igual que los datos de usuario. - Y puede usarse el mismo lenguaje (ej. SQL) para acceder a los datos y a los metadatos (regla 4) - Un valor posible es el valor nulo, con sus dos interpretaciones: - Valor desconocido (ej. dirección desconocida) - Valor no aplicable (ej. empleado soltero no tiene esposa).

Upload: uniondiez-calixto-fernandez

Post on 14-Apr-2016

212 views

Category:

Documents


0 download

DESCRIPTION

Reglas de codd

TRANSCRIPT

Page 1: Reglas de Codd

Barrios Quiroz Luis Fernando

LAS 12 REGLAS DE CODD

En la década de los 80 comenzaron a aparecer numerosos SGBD que seanunciaban como "relacionales". Sin embargo estos sistemas carecían de muchascaracterísticas que se consideran importantes en un sistema relacional, perdiendomuchas ventajas del modelo relacional.

En 1985 en su artículo de Computerworld, Ted Codd Codd publicó 12 reglas queun verdadero sistema relacional debería de cumplir. En la práctica algunas deellas son difíciles de realizar.

REGLA 0

Para que un sistema se denomine sistema de gestión de bases de datosrelacionales, este sistema debe usar (exclusivamente) sus capacidadesrelacionales para gestionar la base de datos.

REGLA 1: REGLA DE LA INFORMACIÓN

Toda la información en una base de datos relacional se representa explícitamenteen el nivel lógico exactamente de una manera: con valores en tablas.

- Por tanto los metadatos (diccionario, catálogo) se representanexactamente igual que los datos de usuario.

- Y puede usarse el mismo lenguaje (ej. SQL) para acceder a losdatos y a los metadatos (regla 4)

- Un valor posible es el valor nulo, con sus dos interpretaciones:

- Valor desconocido (ej. dirección desconocida)

- Valor no aplicable (ej. empleado soltero no tieneesposa).

Page 2: Reglas de Codd

Barrios Quiroz Luis Fernando

REGLA 2: REGLA DEL ACCESO GARANTIZADO

Para todos y cada uno de los datos (valores atómicos) de una BDR se garantizaque son accesibles a nivel lógico utilizando una combinación de nombre de tabla,valor de clave primaria y nombre de columna.

- Cualquier dato almacenado en una BDR tiene que poder serdireccionado univocamente. Para ello hay que indicar en qué tablaestá, cuál es la columna y cuál es la fila (mediante la clave primaria).

- Por tanto se necesita el concepto de clave primaria, que no essoportado en muchas implementaciones. En estos casos, para lograrun efecto similar se puede hacer lo siguiente:

- Hacer que los atributos clave primaria no puedan sernulos (NOT NULL).

- Crear un índice único sobre la clave primaria.

- No eliminar nunca el índice.

REGLA 3: TRATAMIENTO SISTEMÁTICO DE VALORES NULOS

Los valores nulos (que son distintos de la cadena vacía, blancos, 0, ...) sesoportan en los SGBD totalmente relacionales para representar informacióndesconocida o no aplicable de manera sistemática, independientemente del tipode datos.

- Se reconoce la necesidad de la existencia de valores nulos, paraun tratamiento sistemático de los mismos.

- Hay problemas para soportar los valores nulos en las operacionesrelacionales, especialmente en las operaciones lógicas.

Page 3: Reglas de Codd

Barrios Quiroz Luis Fernando

ógica trivaluada. Es una posible solución. Existen tres(no dos) valores de verdad: Verdadero, Falso yDesconocido (null). Se crean tablas de verdad para lasoperaciones lógicas:

- null Y null = null

- Verdadero Y null = null

- Falso Y null = Falso

- Verdadero O null = Verdadero

- etc.

Un inconveniente es que de cara al usuario el manejode los lenguajes relacionales se complica pues es másdifícil de entender.

REGLA 4: CATÁLOGO DINÁMICO EN LÍNEA BASADO EN EL MODELO RELACIONAL

La descripción de la base de datos se representa a nivel lógico de la mismamanera que los datos normales, de modo que los usuarios autorizados puedenaplicar el mismo lenguaje relacional a su consulta, igual que lo aplican a los datosnormales.

- Es una consecuencia de la regla 1 que se destaca por suimportancia. Los metadatos se almacenan usando el modelorelacional, con todas las consecuencias.

REGLA 5: REGLA DEL SUBLENGUAJE DE DATOS COMPLETO

Un sistema relacional debe soportar varios lenguajes y varios modos de uso determinal (ej: rellenar formularios, etc.). Sin embargo, debe existir al menos unlenguaje cuyas sentencias sean expresables, mediante una sintaxis bien definida,como cadenas de caracteres y que sea completo, soportando:

Page 4: Reglas de Codd

Barrios Quiroz Luis Fernando

- Definición de datos

- Definición de vistas

- Manipulación de datos (interactiva y por programa)

- Limitantes de integridad

- Limitantes de transacción (iniciar, realizar, deshacer) (Begin,commit, rollback).

- Además de poder tener interfaces más amigables para hacerconsultas, etc. siempre debe de haber una manera de hacerlo todode manera textual, que es tanto como decir que pueda serincorporada en un programa tradicional.

- Un lenguaje que cumple esto en gran medida es SQL.

REGLA 6: REGLA DE ACTUALIZACIÓN DE VISTAS

Todas las vistas que son teóricamente actualizables se pueden actualizar por elsistema.

- El problema es determinar cuáles son las vistas teóricamenteactualizables, ya que no está muy claro.

- Cada sistema puede hacer unas suposiciones particulares sobrelas vistas que son actualizables.

REGLA 7: INSERCIÓN, ACTUALIZACIÓN Y BORRADO DE ALTO NIVEL

La capacidad de manejar una relación base o derivada como un solo operando seaplica no sólo a la recuperación de los datos (consultas), si no también a lainserción, actualización y borrado de datos.

Page 5: Reglas de Codd

Barrios Quiroz Luis Fernando

- Esto es, el lenguaje de manejo de datos también debe ser de altonivel (de conjuntos). Algunas bases de datos inicialmente sólopodian modificar las tuplas de la base de datos de una en una (unregistro de cada vez).

REGLA 8: INDEPENDENCIA FÍSICA DE DATOS

Los programas de aplicación y actividades del terminal permanecen inalterados anivel lógico cuandoquiera que se realicen cambios en las representaciones dealmacenamiento o métodos de acceso.

- El modelo relacional es un modelo lógico de datos, y oculta lascaracterísticas de su representación física.

REGLA 9: INDEPENDENCIA LÓGICA DE DATOS

Los programas de aplicación y actividades del terminal permanecen inalterados anivel lógico cuandoquiera que se realicen cambios a las tablas base quepreserven la información.

- Cuando se modifica el esquema lógico preservando información(no valdría p.ej. eliminar un atributo) no es necesario modificar nadaen niveles superiores.

- Ejemplos de cambios que preservan la información:

- Añadir un atributo a una tabla base.

– Sustituir dos tablas base por la unión de las mismas.Usando vistas de la unión puedo recrear las tablasanteriores...

Page 6: Reglas de Codd

Barrios Quiroz Luis Fernando

REGLA 10: INDEPENDENCIA DE INTEGRIDAD

Los limitantes de integridad específicos para una determinada base de datosrelacional deben poder ser definidos en el sublenguaje de datos relacional, yalmacenables en el catálogo, no en los programas de aplicación.

- El objetivo de las bases de datos no es sólo almacenar los datos, sino también sus relaciones y evitar que estas (limitantes) secodifiquen en los programas. Por tanto en una BDR se deben poderdefinir limitantes de integridad.

- Cada vez se van ampliando más los tipos de limitantes deintegridad que se pueden utilizar en los SGBDR, aunque hasta hacepoco eran muy escasos.

- Como parte de los limitantes inherentes al modelo relacional(forman parte de su definición) están:

- Una BDR tiene integridad de entidad. Es decir, todatabla debe tener una clave primaria.

- Una BDR tiene integridad referencial. Es decir, todaclave externa no nula debe existir en la relación dondees primaria.

REGLA 11: INDEPENDENCIA DE DISTRIBUCIÓN

Una BDR tiene independencia de distribución.

- Las mismas órdenes y programas se ejecutan igual en una BDcentralizada que en una distribuida.

- Las BDR son fácilmente distribuibles:

Page 7: Reglas de Codd

Barrios Quiroz Luis Fernando

- Se parten las tablas en fragmentos que sedistribuyen.

- Cuando se necesitan las tablas completas serecombinan usando operaciones relacionales con losfragmentos.

- Sin embargo se complica más la gestión interna de laintegridad, etc.

- Esta regla es responsable de tres tipos de transparencia dedistribución:

- Transparencia de localización. El usuario tiene laimpresión de que trabaja con una BD local. (aspecto dela regla de independencia física)

- Transparencia de fragmentación. El usuario no se dacuenta de que la relación con que trabaja estáfragmentada. (aspecto de la regla de independencialógica de datos).

- Transparencia de replicación. El usuario no se dacuenta de que pueden existir copias (réplicas) de unamisma relación en diferentes lugares.

REGLA 12: REGLA DE LA NO SUBVERSIÓN

Si un sistema relacional tiene un lenguaje de bajo nivel (un registro de cada vez),ese bajo nivel no puede ser usado para saltarse (subvertir) las reglas deintegridad y los limitantes expresados en los lenguajes relacionales de más altonivel (una relación (conjunto de registros) de cada vez).

- Algunos problemas no se pueden solucionar directamente con ellenguaje de alto nivel.

Page 8: Reglas de Codd

Barrios Quiroz Luis Fernando

- Normalmente se usa SQL inmerso en un lenguaje anfitrión parasolucionar estos problemas. Se utiliza el concepto de cursor paratratar individualmente las tuplas de una relación. En cualquier casono debe ser posible saltarse los limitantes de integridad impuestos altratar las tuplas a ese nivel.

Page 9: Reglas de Codd

Barrios Quiroz Luis Fernando

Edgar F. Codd (1923-2003)

Edgar Frank Codd nació en Portland Bill,un remoto pueblo de Dorset, Inglaterra, hijo de uncurtidor y una profesora, siendo el menor de sietehermanos. Estudió becado matemáticas yquímica en Oxford. Aunque podría haber evitadoparticipar en la segunda guerra mundial por serestudiante, se alistó en la Real Fuerza Aérea. Alos 25 años viajó a los Estados Unidos yconsiguió trabajo en IBM como programadormatemático usando un prototipo de computadorque ocupaba dos pisos completos de un edificiode oficinas en Manhattan. En 1953 emigró aOttawa, Canadá, frustrado por la políticaMcCarthy de persecución a los comunistas. Unos años más tarde volvió a EstadosUnidos y obtuvó la ciudadanía, aunque nunca perdió su acento británico. En 1965terminó un doctorado en computación de la Univ. de Michigan en Ann Arbor. Unaevaluación negativa de su supervisor en Nueva York significó un traslado a loslaboratorios de IBM en San José en 1967. Sería aquí que Codd conocería elmundo de las bases de datos, al que se dedicaría en los años siguientes.

En 1978 Codd se divorció de su primera esposa, Elizabeth. En 1981 obtuvóel premio Turing de la ACM, el más importante en computación. La vida de Coddcambió en 1983, cuando sufrió una seria caída. Luego de recuperarse, jubiló deIBM y abandonó su diversión favorita: volar. Sin embargo siguió trabajando hasta1999, en la consultora que formó con Chris Date y Sharon Weinberg, dos excolaboradores de IBM. Sharon, después de doce años de cortejo, pasaría a ser susegunda esposa en 1990. En 1996 obtuvó el premio de la IEEE a pioneros de lacomputación. Los últimos años vivió en Williams Island, Florida. Codd tuvó cuatrohijos y tenía seis nietos.

Sus Contribuciones

En 1969 Edgar Codd inventó el modelo relacional, el modelo de bases dedatos más usado hoy en día y para muchas personas, el único que conocen.Desde el sistema R de IBM a Oracle han pasado 30 años y aún es el modelodominante. Inicialmente el apoyo de IBM a los sistemas de bases de datostradicionales (de redes) era mayoritario, poderoso y agresivo. Sólo años mástarde, en 1978, durante una reunión técnica de alto nivel el modelo relacionalllamó la atención del presidente de IBM, Frank Cary. Más tarde IBM anuncióSQL/DS, su primer producto relacional comercial en 1981, seguido de DB2 en1983. Sin embargo esta tardanza en adoptar el modelo relacional significó perder

Page 10: Reglas de Codd

Barrios Quiroz Luis Fernando

un mercado que tomaron otros. El trabajo inicial de Codd fue publicado enCommunications of the ACM en 1970. Su trabajo sobre normalización de basesde datos fue publicado como un informe técnico de IBM en 1971. Ocho años mástarde, en ACM Transactions of Database Systems, publicó varias extensiones almodelo relacional. En 1985 postuló una lista de 13 reglas que debía cumplir unproducto de bases de datos para ser llamado relacional