Universidad de San Carlos de GuatemalaLaboratorio: Sistemas de Administraciónde Bases de Datos 1.       Aux.: Christoper S...
Bases	de	Datos	(ACID,	Reglas	de	Codd	e	Integridad	de	datos)	ACID:        Por sus siglas en ingles Atomicity Consistency Is...
REGLAS DE CODD: MODELO RELACIONAL         En los años 80’s comenzaron a surgir numerosos Sistemas de Gestión de Bases de D...
o   No eliminar nunca el índice.o   Regla - Tratamientos Sistemáticos de Valores Nulos:    Los valores nulos (que son dist...
•    Definición de datos            •    Definición de vistas            •    Manipulación de datos (interactiva y por pro...
o   Añadir un atributo a una tabla base.               o   Sustituir dos tablas base por la unión de las mismas. Usando vi...
o   Transparencia de replicación. El usuario no se da cuenta de que pueden                        existir copias (réplicas...
o   NULL      o   NOT NULL      o   CHECK      o   FOREIGN KEY      o   DEFAULT                                   Codigo N...
Ejemplo: En un banco, cuando el cuentahabiente no tenga segundo nombre, la base de      datos le coloque por default N/A.M...
•   Problema que resuelve: el optimizador realiza búsqueda secuencial a nivel           exponencial, provocando problemas ...
Upcoming SlideShare
Loading in...5
×

Bases de Datos (ACID, Reglas de Codd e Integridad de datos)

7,639

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,639
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
229
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Bases de Datos (ACID, Reglas de Codd e Integridad de datos)

  1. 1. Universidad de San Carlos de GuatemalaLaboratorio: Sistemas de Administraciónde Bases de Datos 1. Aux.: Christoper Santisteban. Sección: “A+” Nombre: Carnet: Walter Roberto Herrera Gutiérrez. 2003-12758 Andrea Adriana Grimaldi Santos. 2006-11206 Oscar Eduardo Vásquez Requena. 2009-15252 Guatemala #/08/2012
  2. 2. Bases de Datos (ACID, Reglas de Codd e Integridad de datos) ACID: Por sus siglas en ingles Atomicity Consistency Isolation Durability, que traducido al españoles Atomicidad, Consistencia, Aislamiento y Durabilidad; es un conjunto de característicasnecesarias para que un conjunto de instrucciones puedan ser consideradas como una transacción1y por ende está pueda ser fiable. A continuación se da una breve definición de cada una de estascuatro propiedades: 1. Atomicidad: Cualquier cambio de estado que produce una transacción es atómico, es decir, ocurren todos o no ocurre ninguno. En otras palabras, esta propiedad asegura que todas las acciones de la transacción se realizan o ninguna de ellas se lleva a cabo; la atomicidad requiere que si una transacción se interrumpe por una falla, sus resultados parciales deben ser deshechos. 2. Consistencia: Esta propiedad establece que solo los valores o datos válidos serán escritos en la base de datos; si por algún motivo una transacción que es ejecutada viola esta propiedad, se aplicara un roll back a toda la transacción dejando a la bases de datos en su estado de consistencia anterior. En caso de que la transacción sea ejecutada con éxito, la base de datos pasara de su estado de consistencia anterior a un nuevo estado de consistencia. 3. Aislamiento: Está propiedad asegura que no sean afectadas entre sí las transacciones, en otras palabras esto asegura que la realización de dos o mas transacciones sobre la misma información sean independientes y no generen ningún tipo de error. 4. Durabilidad: Es la propiedad de las transacciones que asegura que una vez finalizada su ejecución, sus resultados son permanentes a pesar de otras consecuencias, como por ejemplo, si falla el disco duro el sistema aún será capaz de recordar todas las transacciones que han sido realizadas en el sistema.Cumpliendo con estas 4 propiedades o requisitos un sistema gestor de bases de datos puede serconsiderado ACID Compliant.1 En el contexto de bases de datos, una transacción es una única operación sobre los datos.
  3. 3. REGLAS DE CODD: MODELO RELACIONAL En los años 80’s comenzaron a surgir numerosos Sistemas de Gestión de Bases de Datos(en adelante SGBD) que se anunciaban como relacionales. Sin embargo estos sistemas carecían demuchas características que se consideran importantes en un sistema relacional, perdiendo lasmuchas ventajas del modelo relacional. Los sistemas relacionales eran simplemente sistemas queutilizaban tablas para almacenar la información, no disponiendo de elementos como clavesprimarias y foráneas que las definieran como tales.En 1984 Edgar F. Codd, creador de del Modelo Relacional, publicó las 12 Reglas que un verdaderoSistema Relacional de Bases de Datos debería cumplir. En la práctica algunas de estas reglas sondifíciles de implementar, así que un sistema podrá considerarse “más relacional” cuanto más sigaestas reglas. o 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. o 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 mediante tablas y sólo mediante tablas. • Por tanto los metadatos (diccionario, catálogo) se representan y se manipulan exactamente igual que los datos de usuario, pudiéndose usar el mismo lenguaje (por ejemplo, SQL. • Un valor posible es el valor nulo, con sus dos interpretaciones: o Valor desconocido (ej. dirección desconocida) o Valor no aplicable (ej. empleado soltero no tiene esposa). o Regla 2 – Regla del Acceso Garantizado: Para todos y cada uno de los datos (valores atómicos) de una Base de Datos Relacional (en adelante BDR) se garantiza que 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 ser direccionado unívocamente. Para ello hay que indicar en qué tabla está, 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 es soportado en muchas implementaciones. En estos casos, para lograr un efecto similar se puede hacer lo siguiente: o Hacer que los atributos clave primaria no puedan ser nulos (NOT NULL). o Crear un índice único sobre la clave primaria.
  4. 4. o No eliminar nunca el índice.o Regla - Tratamientos Sistemáticos de Valores Nulos: Los valores nulos (que son distintos de la cadena vacía, blancos, 0,...) se soportan en los SGBD totalmente relacionales para representar información desconocida o no aplicable de manera sistemática, independientemente del tipo de datos. • Se reconoce la necesidad de la existencia de valores nulos, para un tratamiento sistemático de los mismos. • Hay problemas para soportar los valores nulos en las operaciones relacionales, especialmente en las operaciones lógicas. o Lógica trivaluada. Es una posible solución. Existen tres (no dos) valores de verdad: Verdadero, Falso y Desconocido (null). Se crean tablas de verdad para las operaciones lógicas: NULL AND NULL = NULL TRUE AND NULL = NULL FALSE AND NULL = FALSE TRUE OR NULL = TRUE … Un inconveniente es que, del lado del usuario, el manejo de los lenguajes relacionales se complica debido a que es más difícil de entender. Catálogo Dinámico en Línea basado en el Modelo Relacionalo 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 misma manera que los datos normales, de modo que los usuarios autorizados pueden aplicar el mismo lenguaje relacional a su consulta, igual que lo aplican a los datos normales. • Es una consecuencia de la regla 1 que se destaca por su importancia. Los metadatos se almacenan usando el modelo relacional, con todas las consecuencias. Regla del sublenguaje de datos completoo Regla 5 - Regla del Sub-leguaje de Datos Completo Un sistema relacional debe soportar varios lenguajes y varios modos de uso de terminal (ejemplo: rellenar formularios). Sin embargo, debe existir al menos un lenguaje cuyas sentencias sean expresables, mediante una sintaxis bien definida, como cadenas de caracteres y que sea completo, soportando:
  5. 5. • Definición de datos • Definición de vistas • Manipulación de datos (interactiva y por programa) • Restricciones de integridad • Restricciones de transacciones (begin, commit, rollback) Además de poder tener interfaces más amigables para hacer consultas, entre otras cosas, siempre debe haber una manera de hacerlo todo de manera textual, que es tanto como decir que pueda ser incorporada en un programa tradicional. Un lenguaje que cumple esto en gran medida es SQL.o Regla 6 – Regla de Actualización de Vistas: Todas las vistas que son teóricamente actualizables se pueden actualizar también por el sistema. • El problema es determinar cuáles son las vistas teóricamente actualizables, ya que no está muy claro. • Cada sistema puede hacer unas suposiciones particulares sobre las vistas que son actualizables.o 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 se aplica no sólo a la recuperación de los datos (consultas), sino también a la inserción, actualización y borrado de datos. • El lenguaje de manejo de datos también debe ser de alto nivel (de conjuntos). Algunas bases de datos inicialmente sólo podían modificar las tuplas de la base de datos de una en una (un registro de cada vez).o Regla 8 – Independencia Física de Datos: Los programas de aplicación y actividades del terminal permanecen inalterados a nivel lógico cualesquiera sean los cambios efectuados, tanto en la representación del almacenamiento, como en los métodos de acceso. • El modelo relacional es un modelo lógico de datos, y oculta las características de su representación física.o Regla 9 – Independencia Lógica de Datos: Los programas de aplicación y actividades del terminal permanecen inalterados a nivel lógico cuando quiera que se realicen cambios a las tablas base que preserven 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 nada en niveles superiores. • Ejemplos de cambios que preservan la información:
  6. 6. o Añadir un atributo a una tabla base. o Sustituir dos tablas base por la unión de las mismas. Usando vistas de la unión es posible recrear las tablas anteriores.o Regla 10 – Independencia de Integridad: Las restricciones de integridad específicas para una determinada base de datos relacional deben poder ser definidos en el sub-lenguaje de datos relacional, y almacenables 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 restricciones se codifiquen en los programas. Por tanto en una base de datos relacional se deben poder definir restricciones de integridad. • Cada vez se van ampliando más los tipos de restricciones de integridad que se pueden utilizar en los Sistemas de Gestión de Bases de Datos Relacionales, aunque hasta hace poco eran muy escasos. • Como parte de las restricciones inherentes al modelo relacional (forman parte de su definición) están: o Integridad de Entidad: Toda tabla debe tener una clave primaria. o Integridad de Dominio: Toda columna de una tabla contendrá valores exclusivamente de un determinado dominio (conjunto de valores válidos) o Integridad Referencial: Toda clave foránea no nula debe existir en la relación donde es clave primariao Regla 11 – Independencia de Distribución: Una BDR tiene independencia de distribución. • Las mismas órdenes y programas se ejecutan igual en una BD centralizada que en una distribuida. • Las BDR son fácilmente distribuibles: o Se parten las tablas en fragmentos que se distribuyen. o Cuando se necesitan las tablas completas se recombinan usando operaciones relacionales con los fragmentos. o Sin embargo se complica más la gestión interna de la integridad, etc. • Esta regla es responsable de tres tipos de transparencia de distribución: o Transparencia de localización. El usuario tiene la impresión de que trabaja con una BD local. (aspecto de la regla de independencia física). o Transparencia de fragmentación. El usuario no se da cuenta de que la relación con que trabaja está fragmentada. (aspecto de la regla de independencia lógica de datos).
  7. 7. o Transparencia de replicación. El usuario no se da cuenta de que pueden existir copias (réplicas) de una misma relación en diferentes lugares. o Regla 12 – Regla de la No Sub-Versió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 de integridad y los limitantes expresados en los lenguajes relacionales de más alto nivel (una relación -conjunto de registros- de cada vez) • Algunos problemas no se pueden solucionar directamente con el lenguaje de alto nivel. • Normalmente se usa SQL inmerso en un lenguaje anfitrión para solucionar estos problemas. Se utiliza el concepto de cursor para tratar individualmente las tuplas de una relación. En cualquier caso no debe ser posible saltarse los limitantes de integridad impuestos al tratar las tuplas a ese nivel.Integridad de Datos La integridad de datos es el conjunto de reglas y restricciones, que garantizan que losdatos sean precisos y coherentes.Existen dos pasos importantes para el diseño de tablas en una base de datos: 1. La identificación de los valores válidos de una columna. 2. La determinación de como forzar la integridad de los datos en la columna.A continuación, se describen las categorías en las que se divide la integridad de datos: • Integridad de entidad: La integridad de entidad pretende que todas las filas de una tabla cuenten con un único identificador, el cual se el conoce como clave principal. Está regla de integridad, resuelve los problemas de redundancia de datos. Carnet Nombre E-mail 200915252 Oscar Correo1@gmail.com 200915252 Oscar Correo2@hotmail.com 123 xxx xx@hotmal.com 124 yyy yy@gmail.com 123 xxx xx@yahoo.com • Integridad de dominio: La integridad de dominio pretende validar el conjunto de valores posibles permitidos en una columna específica dentro de una tabla. Está se define mediante los tipos de datos que se le asignan a los campos, también se define mediante los siguientes constraints:
  8. 8. o NULL o NOT NULL o CHECK o FOREIGN KEY o DEFAULT Codigo Nombre Sueldo 123 Oscar 7000.5 321 xxx 5000 Donde: o Código – Se define con el tipo de dato ENTERO y el constraint NOT NULL. o Nombre – Se define con el tipo de dato VARCHAR y el constraint NOT NULL. o Sueldo – Se define con el tipo de dato DECIMAL y el constraint CHECK > 0, NOT NULL.• Integridad referencial: La integridad referencial es aquella que se da específicamente con las llaves extranjeras; La llave foránea (o extranjera) es como tal, si y solo si, dicha llave en la tabla hija existe como llave primaria en la tabla padre y si no existe está es null. La integridad referencial se da entre dos tablas o más; o en la misma tabla como una referencia circular. Ejemplo:• Integridad definida por el usuario: Este tipo de integridad, son las definidas por el usuario; permite definir reglas que no se encuentran en ninguna de las tres categorías anteriores.
  9. 9. Ejemplo: En un banco, cuando el cuentahabiente no tenga segundo nombre, la base de datos le coloque por default N/A.Mejores prácticas en el análisis, diseño e implementación de basesde datos.Análisis y diseño 1. Estandarización de términos • Problema que resuelve: Confusión y pérdida de semántica de los objetos a crear. • Beneficio: Mantenimiento de sistemas mas rápido. 2. Análisis de requerimientos y utilización de índices • Problema que resuelve: Acceso secuencial en lugar de acceso por índices. • Beneficio: Mejora el tiempo de respuesta al obtener información. 3. Normalización y rendimiento • Problema que resuelve: Incongruencia entre el esquema de la base de datos y el modelo de datos. • Beneficio: Mejor tiempo de respuesta y congruencia del modelo físico. 4. Uso de diccionarios de datos • Problema que resuelve: problemas de integridad e inconsistencia. • Beneficio: Optimización y estandarización del dominio de datos al utilizarse en los atributos. 5. Manejo de textos y BLOB • Problema que resuelve: tiempo de acceso inaceptable y limitada o nula manipulación de datos. • Beneficio: Reducción de tiempo de respuesta. 6. Manejo de valores nulos • Problema que resuelve: información incompleta, malinterpretación de la información ausente, tiempo de acceso al convertir un campo inexistente a nulo al desplegarse. • Beneficio: Captura mas completa de la información.Implementación 1. Documentación de objetos SQL • Problema que resuelve: dada la ilegibilidad de programas, se presenta lentitud y confusión en el mantenimiento de programas. • Beneficio: tiempo de mantenimiento reducido. 2. Detalle de atributos en la inserción, consulta o actualización • Problema que resuelve: contención en disco. • Beneficio: reducción de acceso a disco, mejor tiempo de respuesta. 3. Uso de cursores como simulación de programación estructurada
  10. 10. • Problema que resuelve: el optimizador realiza búsqueda secuencial a nivel exponencial, provocando problemas de concurrencia y tiempos de respuesta muy lentos. • Beneficio: se aprovecha el manejo de conjuntos en el manejador y por tanto el optimizador puede proporcionar vías de acceso con menor costo.4. Uso de constraints para chequeo de integridad referencial • Problema que resuelve: la programación por triggers envuelve procedimiento procedural, por tanto es más lenta su respuesta. • Beneficio: mejora de rendimiento al usar teoría de conjuntos.5. Manejo de transacciones • Problema que resuelve: bloqueo de recursos por tiempo prolongado, afectando los demás procesos que utilizan esos recursos • Beneficio: mayor concurrencia6. Centralización de tareas sencillas en el front-end • Problema que resuelve: poca concurrencia. • Beneficio: liberación de carga innecesaria al manejador de bases de datos.

×