12 Reglas de Codd

12 reglas de Codd Las 12 reglas de Codd son un sistema de reglas propuestas por Edgar F. Codd, del modelo relacional par

Views 131 Downloads 0 File size 247KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

12 reglas de Codd Las 12 reglas de Codd son un sistema de reglas propuestas por Edgar F. Codd, del modelo relacional para las bases de datos, diseñado para definir qué requiere un sistema de administración de base de datos.1 Codd se percató de que existían bases de datos en el mercado las cuales decían ser relacionales, pero lo único que hacían era guardar la información en las tablas, sin estar estas tablas literalmente normalizadas; entonces éste publicó 12 reglas que un verdadero sistema relacional debería tener aunque en la práctica algunas de ellas son difíciles de realizar. Un sistema podrá considerarse "más relacional" cuanto más siga estas reglas.

[editar] Reglas 

Regla 0: el sistema debe ser relacional, base de datos y administrador de sistema. Ese sistema debe utilizar sus facilidades relacionales (exclusivamente) para manejar la base de datos.



Regla 1: la regla de la información, toda la información en la base de datos es representada unidireccionalmente, por valores en posiciones de las columnas dentro de filas de tablas. 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.



Regla 2: la regla del acceso garantizado, todos los datos deben ser accesibles sin ambigüedad. Esta regla es esencialmente una nueva exposición del requisito fundamental para las llaves primarias. Dice que cada valor escalar individual en la base de datos debe ser lógicamente direccionable especificando el nombre de la tabla, la columna que lo contiene y la llave primaria.



Regla 3: tratamiento sistemático de valores nulos, el sistema de gestión de base de datos debe permitir que haya campos nulos. Debe tener una representación de la "información que falta y de la información inaplicable" que es sistemática, distinto de todos los valores regulares.



Regla 4: catálogo dinámico en línea basado en el modelo relacional, el sistema debe soportar un catálogo en línea, el catálogo relacional debe ser accesible a los usuarios autorizados. Es decir, los usuarios deben poder tener acceso a la estructura de la base de datos (catálogo).



Regla 5: la regla comprensiva del sublenguaje de los datos, el sistema debe soportar por lo menos un lenguaje relacional que; 1. Tenga una sintaxis lineal. 2. Puede ser utilizado recíprocamente y dentro de programas de uso.

3. Soporte operaciones de definición de datos, operaciones de manipulación de datos (actualización así como la recuperación), seguridad e integridad y operaciones de administración de transacciones. 

Regla 6: regla de actualización, todas las vistas que son teóricamente actualizables deben ser actualizables por el sistema.



Regla 7: alto nivel de inserción, actualización, y cancelación, el sistema debe soportar suministrar datos en el mismo tiempo que se inserte, actualiza o esté borrando. Esto significa que los datos se pueden recuperar de una base de datos relacional en los sistemas construidos de datos de filas múltiples y/o de tablas múltiples.



Regla 8: independencia física de los datos, los programas de aplicación y actividades del terminal permanecen inalterados a nivel lógico cuandoquiera que se realicen cambios en las representaciones de almacenamiento o métodos de acceso.



Regla 9: independencia lógica de los datos, los cambios al nivel lógico (tablas, columnas, filas, etc.) no deben requerir un cambio a una solicitud basada en la estructura. La independencia de datos lógica es más difícil de lograr que la independencia física de datos.



Regla 10: independencia de la integridad, las limitaciones de la integridad se deben especificar por separado de los programas de la aplicación y se almacenan en la base de datos. Debe ser posible cambiar esas limitaciones sin afectar innecesariamente las aplicaciones existentes.



Regla 11: independencia de la distribución, la distribución de las porciones de la base de datos a las varias localizaciones debe ser invisible a los usuarios de la base de datos. Los usos existentes deben continuar funcionando con éxito: 1. cuando una versión distribuida del SGBD se introdujo por primera vez 2. cuando se distribuyen los datos existentes se redistribuyen en todo el sistema.



Regla 12: la regla del de la no subversión, si el sistema proporciona una interfaz de bajo nivel (de registro a la vez) y luego de que esa interfaz no se pueda utilizar para subvertir el sistema, por ejemplo: sin pasar por seguridad relacional o limitación de integridad.

Normalización de bases de datos Para otros usos de este término, véase Normalización (desambiguación). El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.

Las bases de datos relacionales se normalizan para: 

Evitar la redundancia de los datos.



Evitar problemas de actualización de los datos en las tablas.



Proteger la integridad de los datos.

En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones: 

Cada tabla debe tener su nombre único.



No puede haber dos filas iguales. No se permiten los duplicados.



Todos los datos en una columna deben ser del mismo tipo.

Principales características del modelo de datos relacional.

Los objetivos de este modelo son: 

Independencia física: el modo en el que se almacenan los datos no influyen en su manipulación lógica.



Independencia lógica: la modificación de cualquier elemento de la base de datos no debe influir en los programas y/o usuarios que accede a subconjuntos parciales de los mismos.



Flexibilidad: de forma que ofrezca a cada usuario los datos de la forma mas adecuada a la correspondiente aplicación



Uniformidad: Las estructuras lógicas de los datos presentan un aspecto uniforma tablas, lo que facialita la concepción y manipulación.



Sencillez: El modelo debe resultar fácil de comprender y utilizar por parte del usuario.

Estructuralmente, el elemento básico del modelo relacional es la relación y se representa en forma de tabla. Las tablas están formadas por: 

Atributos: Conjunto de columnas que representan las propiedades de las tablas.



Tuplas: Conjunto de filas que contienes los valores de cada uno de los atributos para cada elemento de la relación.



El dominio serian el conjunto de calores homogéneos y atómicos caracterizado por un nombre donde los atributos pueden tomar sus valores. Los dominios pueden definirse por intención o por extensión.



Dominio compuesto combinación de dominios simples a la que se pueden aplicar ciertas restricciones de integridad por ejemplo. Existen también atributos compuestos



Grado: Número de atributos.



Cardinalidad : número de tuplas.



La definición formal de relación definida sobre n dominios, no necesariamente distintos, es un subconjunto del producto cartesiano de esos dominios, donde cada elemento de la relación tupla es una serie de valores ordenados. Las clases de relación se pueden dividirse en nominadas y sin nombre: o

Las nominadas pueden ser: 



o

Persistentes: Son las relaciones cuya definición permanece en la base de datos, borrándose solamente por una acción explicita de un usuario. A su vez se dividen en: 

Relaciones de base: Existen por si mismas y no en función de otras relaciones, Se crean explícitamente su esquema de relación y sin extensiones y definición



Vistas: Son relaciones derivadas que se definen dando nombre a una expresión de consulta. Son relaciones virtuales.



Instantáneas. Son relaciones derivadas al igual que las vistas pero con datos propios almacenados, que son resultado de ejecutar la consulta especificada o de guardar una relación base. No se actualizan cada bez que cambian los datos pero se refrescan cada cierto tiempo.

Temporales: desaparecen de la base de datos en un cierto tímelo sin una acción especifica del usuario.

Relaciones sin nombre: son los resultados de las consultas que no se materializan sino que se entregan al usuario que ha realizado la consulta, y pueden ser tanta resultados intermedios como finales. Son siempre relaciones temporales

Además de las tuplas, el modelo define claves: 

Una clave candidata de una relación es un conjunto de atributos que identifican unívoca y minimamente cada tupla. En toda relación siempre hay al menos una clave candidata, pueden tener mas de una las cuales se deben distinguir:

o

Clave primaria: Identifica a las tuplas de la relación, la escoge el usuario por consideraciones ajenas al modelo relacional

o

El resto de las claves candidatos que no se han elegido como clave primaria se llaman Clave alternativas.

o

Clave ajena de una relación R2 es un conjunto no vacio de atributos cuyos valores han de coincidir con los valores de la clave de candidata o primaria de una relación R1. R1 y R2 no son necesariamente distintas.

El modelo distingue dos tipos de restricciones: inherentes y semánticas.

Claves

Una clave primaria es aquella columna (o conjunto de columnas) que identifica únicamente a una fila. La clave primaria es un identificador que va a ser siempre único para cada fila. Se acostumbra a poner la clave primaria como la primera columna de la tabla pero es más una conveniencia que una obligación. Muchas veces la clave primaria es numérica auto-incrementada, es decir, generada mediante una secuencia numérica incrementada automáticamente cada vez que se inserta una fila. En una tabla puede que tengamos más de una columna que puede ser clave primaria por sí misma. En ese caso se puede escoger una para ser la clave primaria y las demás claves serán claves candidatas. Una clave ajena (foreign key o clave foránea) es aquella columna que existiendo como dependiente en una tabla, es a su vez clave primaria en otra tabla. Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que también puede identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos el número de documento (id_cliente) como clave primaria, el número de seguro social de ese cliente podría ser una clave alternativa. En este caso no se usó como clave primaria porque es posible que no se conozca ese dato en todos los clientes. Una clave compuesta es una clave que está compuesta por más de una columna. La visualización de todas las posibles claves candidatas en una tabla ayudan a su optimización. Por ejemplo, en una tabla PERSONA podemos identificar como claves su DNI, o el conjunto de su nombre, apellidos, fecha de nacimiento y dirección. Podemos usar cualquiera de las dos opciones o incluso todas a la vez como clave primaria, pero es más óptimo en la mayoría de sistemas la elección del menor número de columnas como clave primaria.

SELECT : La sentencia SELECT forma el núcleo de base de datos de SQL esta sentencia sirve para seleccionar o recuperar la filas y columnas deseadas de las tablas de nuestra base de datos. La sintaxis de la sentencia SELECT consta de 5 cláusula construida normalmente de la siguiente manera: SELECT < LISTA DE CAMPOS> FROM (WHERE < Especificación de Selección de Filas>) (GROUP BY ) (HAVING) (ORDER BY ). WHERE: Para hacer una selección desde la misma tabla bajo ciertas condiciones o con alguna restricción, se debe usar la cláusula WHERE, que corresponde al operador del Álgebra Relacional llamado Restricción. Los operadores de combinación que pueden ser usados por el comando WHERE son los lógicos y los propios de SQL: OPERADORES LOGICOS: = IGUAL MAYOR >= MAYOR IGUAL < MENOR