12 reglas de codd

23
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

Upload: richard-rodriguez

Post on 27-Sep-2015

9 views

Category:

Documents


1 download

DESCRIPTION

Reglas de codd 12

TRANSCRIPT

12 reglas de CoddLas 12 reglas de Codd son un sistema de reglas propuestas por Edgar F. Codd, del modelo relacional para las bases de datos, diseado para definir qu requiere un sistema de administracin de base de datos.1Codd se percat de que existan bases de datos en el mercado las cuales decan ser relacionales, pero lo nico que hacan era guardar la informacin en las tablas, sin estar estas tablas literalmente normalizadas; entonces ste public 12 reglas que un verdadero sistema relacional debera tener aunque en la prctica algunas de ellas son difciles de realizar. Un sistema podr considerarse "ms relacional" cuanto ms 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 informacin, toda la informacin en la base de datos es representada unidireccionalmente, por valores en posiciones de las columnas dentro de filas de tablas. Toda la informacin en una base de datos relacional se representa explcitamente en el nivel lgico exactamente de una manera: con valores en tablas. Regla 2: la regla del acceso garantizado, todos los datos deben ser accesibles sin ambigedad. Esta regla es esencialmente una nueva exposicin del requisito fundamental para las llaves primarias. Dice que cada valor escalar individual en la base de datos debe ser lgicamente direccionable especificando el nombre de la tabla, la columna que lo contiene y la llave primaria. Regla 3: tratamiento sistemtico de valores nulos, el sistema de gestin de base de datos debe permitir que haya campos nulos. Debe tener una representacin de la "informacin que falta y de la informacin inaplicable" que es sistemtica, distinto de todos los valores regulares. Regla 4: catlogo dinmico en lnea basado en el modelo relacional, el sistema debe soportar un catlogo en lnea, el catlogo relacional debe ser accesible a los usuarios autorizados. Es decir, los usuarios deben poder tener acceso a la estructura de la base de datos (catlogo). 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 recprocamente y dentro de programas de uso.3. Soporte operaciones de definicin de datos, operaciones de manipulacin de datos (actualizacin as como la recuperacin), seguridad e integridad y operaciones de administracin de transacciones. Regla 6: regla de actualizacin, todas las vistas que son tericamente actualizables deben ser actualizables por el sistema. Regla 7: alto nivel de insercin, actualizacin, y cancelacin, 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 mltiples y/o de tablas mltiples. Regla 8: independencia fsica de los datos, los programas de aplicacin y actividades del terminal permanecen inalterados a nivel lgico cuandoquiera que se realicen cambios en las representaciones de almacenamiento o mtodos de acceso. Regla 9: independencia lgica de los datos, los cambios al nivel lgico (tablas, columnas, filas, etc.) no deben requerir un cambio a una solicitud basada en la estructura. La independencia de datos lgica es ms difcil de lograr que la independencia fsica de datos. Regla 10: independencia de la integridad, las limitaciones de la integridad se deben especificar por separado de los programas de la aplicacin 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 distribucin, la distribucin 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 versin distribuida del SGBD se introdujo por primera vez2. cuando se distribuyen los datos existentes se redistribuyen en todo el sistema. Regla 12: la regla del de la no subversin, 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 limitacin de integridad.Normalizacin de bases de datosPara otros usos de este trmino, vase Normalizacin (desambiguacin).El proceso de normalizacin de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relacin al modelo relacional.Las bases de datos relacionales se normalizan para: Evitar la redundancia de los datos. Evitar problemas de actualizacin de los datos en las tablas. Proteger la integridad de los datos.En el modelo relacional es frecuente llamar tabla a una relacin, aunque para que una tabla sea considerada como una relacin 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 caractersticas del modelo de datos relacional.Los objetivos de este modelo son: Independencia fsica: el modo en el que se almacenan los datos no influyen en su manipulacin lgica. Independencia lgica: la modificacin 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 aplicacin Uniformidad: Las estructuras lgicas de los datos presentan un aspecto uniforma tablas, lo que facialita la concepcin y manipulacin. Sencillez: El modelo debe resultar fcil de comprender y utilizar por parte del usuario.Estructuralmente, el elemento bsico del modelo relacional es la relacin y se representa en forma de tabla. Las tablas estn 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 relacin. El dominio serian el conjunto de calores homogneos y atmicos caracterizado por un nombre donde los atributos pueden tomar sus valores. Los dominios pueden definirse por intencin o por extensin. Dominio compuesto combinacin de dominios simples a la que se pueden aplicar ciertas restricciones de integridad por ejemplo. Existen tambin atributos compuestos Grado: Nmero de atributos. Cardinalidad : nmero de tuplas. La definicin formal de relacin definida sobre n dominios, no necesariamente distintos, es un subconjunto del producto cartesiano de esos dominios, donde cada elemento de la relacin tupla es una serie de valores ordenados. Las clases de relacin se pueden dividirse en nominadas y sin nombre: Las nominadas pueden ser: Persistentes: Son las relaciones cuya definicin permanece en la base de datos, borrndose solamente por una accin explicita de un usuario. A su vez se dividen en: Relaciones de base: Existen por si mismas y no en funcin de otras relaciones, Se crean explcitamente su esquema de relacin y sin extensiones y definicin Vistas: Son relaciones derivadas que se definen dando nombre a una expresin de consulta. Son relaciones virtuales. Instantneas. 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 relacin 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 tmelo sin una accin 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 temporalesAdems de las tuplas, el modelo define claves: Una clave candidata de una relacin es un conjunto de atributos que identifican unvoca y minimamente cada tupla. En toda relacin siempre hay al menos una clave candidata, pueden tener mas de una las cuales se deben distinguir: Clave primaria: Identifica a las tuplas de la relacin, la escoge el usuario por consideraciones ajenas al modelo relacional El resto de las claves candidatos que no se han elegido como clave primaria se llaman Clave alternativas. Clave ajena de una relacin 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 relacin R1. R1 y R2 no son necesariamente distintas.El modelo distingue dos tipos de restricciones: inherentes y semnticas.

ClavesUna 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 ms una conveniencia que una obligacin. Muchas veces la clave primaria es numrica auto-incrementada, es decir, generada mediante una secuencia numrica incrementada automticamente cada vez que se inserta una fila.En una tabla puede que tengamos ms 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 dems claves sern claves candidatas.Una clave ajena (foreign key o clave fornea) 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 tambin puede identificar de forma nica a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos el nmero de documento (id_cliente) como clave primaria, el nmero de seguro social de ese cliente podra 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 ms de una columna.La visualizacin de todas las posibles claves candidatas en una tabla ayudan a su optimizacin. Por ejemplo, en una tabla PERSONA podemos identificar como claves su DNI, o el conjunto de su nombre, apellidos, fecha de nacimiento y direccin. Podemos usar cualquiera de las dos opciones o incluso todas a la vez como clave primaria, pero es ms ptimo en la mayora de sistemas la eleccin del menor nmero de columnas como clave primaria.SELECT : La sentencia SELECT forma el ncleo 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 clusula construida normalmente de la siguiente manera:SELECT < LISTA DE CAMPOS>FROM(WHERE < Especificacin de Seleccin de Filas>)(GROUP BY )(HAVING)(ORDER BY ).WHERE: Para hacer una seleccin desde la misma tabla bajo ciertas condiciones o con alguna restriccin, se debe usar la clusula WHERE, que corresponde al operador del lgebra Relacional llamado Restriccin.Los operadores de combinacin que pueden ser usados por el comando WHERE son los lgicos y los propios de SQL:OPERADORES LOGICOS:= IGUALMAYOR>= MAYOR IGUAL< MENOR