SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
Universidad de San Carlos de Guatemala


Laboratorio: 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
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ñol
es Atomicidad, Consistencia, Aislamiento y Durabilidad; es un conjunto de características
necesarias para que un conjunto de instrucciones puedan ser consideradas como una transacción1
y por ende está pueda ser fiable. A continuación se da una breve definición de cada una de estas
cuatro 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 ser
considerado ACID Compliant.




1
    En el contexto de bases de datos, una transacción es una única operación sobre los datos.
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 de
muchas características que se consideran importantes en un sistema relacional, perdiendo las
muchas ventajas del modelo relacional. Los sistemas relacionales eran simplemente sistemas que
utilizaban tablas para almacenar la información, no disponiendo de elementos como claves
primarias y foráneas que las definieran como tales.

En 1984 Edgar F. Codd, creador de del Modelo Relacional, publicó las 12 Reglas que un verdadero
Sistema Relacional de Bases de Datos debería cumplir. En la práctica algunas de estas reglas son
difíciles de implementar, así que un sistema podrá considerarse “más relacional” cuanto más siga
estas 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.
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 Relacional

o   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 completo

o   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:
•    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:
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 primaria

o   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).
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 los
datos 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:
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.
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 bases
de 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
•   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 concurrencia
6. 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.

Más contenido relacionado

La actualidad más candente

Sem 8 Modelo De Analisis
Sem 8 Modelo De AnalisisSem 8 Modelo De Analisis
Sem 8 Modelo De Analisisguest0a6e49
 
Sistema de archivos distribuido o DFS
Sistema de archivos distribuido o DFSSistema de archivos distribuido o DFS
Sistema de archivos distribuido o DFSRosariio92
 
MODELO ENTIDAD RELACION
MODELO ENTIDAD RELACIONMODELO ENTIDAD RELACION
MODELO ENTIDAD RELACIONPamela Quinde
 
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...Marta Silvia Tabares
 
Modelado con erwin
Modelado con erwinModelado con erwin
Modelado con erwinLuis Jherry
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?Software Guru
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalizacióncintiap25
 
Algebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datosAlgebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datosJosepSalvadorSotoObregon
 
Segunda forma normal
Segunda forma normalSegunda forma normal
Segunda forma normalITCV
 
Ventajas y desventajas de las bdoo
Ventajas y desventajas de las bdooVentajas y desventajas de las bdoo
Ventajas y desventajas de las bdooNerhys Palacios
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositóriorehoscript
 
Elicitacion de requerimientos proyectos de desarrollo comunitario
Elicitacion de requerimientos proyectos de desarrollo comunitarioElicitacion de requerimientos proyectos de desarrollo comunitario
Elicitacion de requerimientos proyectos de desarrollo comunitarioFrancisco Martin Gonzalez
 
Arquitectura multicapa
Arquitectura multicapaArquitectura multicapa
Arquitectura multicapaHugo Herrera
 
12 reglas de codd
12 reglas de codd12 reglas de codd
12 reglas de coddenriquesyso
 
Modelo del dominio
Modelo del dominioModelo del dominio
Modelo del dominioSCMU AQP
 
Integridad
IntegridadIntegridad
Integridad99909
 

La actualidad más candente (20)

Bases de datos orientadas a objetos
Bases de datos orientadas a objetosBases de datos orientadas a objetos
Bases de datos orientadas a objetos
 
Sem 8 Modelo De Analisis
Sem 8 Modelo De AnalisisSem 8 Modelo De Analisis
Sem 8 Modelo De Analisis
 
Sistema de archivos distribuido o DFS
Sistema de archivos distribuido o DFSSistema de archivos distribuido o DFS
Sistema de archivos distribuido o DFS
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
MODELO ENTIDAD RELACION
MODELO ENTIDAD RELACIONMODELO ENTIDAD RELACION
MODELO ENTIDAD RELACION
 
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
 
Modelado con erwin
Modelado con erwinModelado con erwin
Modelado con erwin
 
Componentes de sgbd
Componentes de sgbdComponentes de sgbd
Componentes de sgbd
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
Reglas de transformación
Reglas de transformaciónReglas de transformación
Reglas de transformación
 
Algebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datosAlgebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datos
 
Segunda forma normal
Segunda forma normalSegunda forma normal
Segunda forma normal
 
Ventajas y desventajas de las bdoo
Ventajas y desventajas de las bdooVentajas y desventajas de las bdoo
Ventajas y desventajas de las bdoo
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositório
 
Elicitacion de requerimientos proyectos de desarrollo comunitario
Elicitacion de requerimientos proyectos de desarrollo comunitarioElicitacion de requerimientos proyectos de desarrollo comunitario
Elicitacion de requerimientos proyectos de desarrollo comunitario
 
Arquitectura multicapa
Arquitectura multicapaArquitectura multicapa
Arquitectura multicapa
 
12 reglas de codd
12 reglas de codd12 reglas de codd
12 reglas de codd
 
Modelo del dominio
Modelo del dominioModelo del dominio
Modelo del dominio
 
Integridad
IntegridadIntegridad
Integridad
 

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

Sistemas de gestion de base de datos 2º unidad
Sistemas de gestion de base de datos 2º unidadSistemas de gestion de base de datos 2º unidad
Sistemas de gestion de base de datos 2º unidadYoung Hyun
 
Criterios De Comparacion
Criterios De ComparacionCriterios De Comparacion
Criterios De ComparacionHéctor
 
Criterios De Comparacion
Criterios De ComparacionCriterios De Comparacion
Criterios De ComparacionHéctor
 
¿QUE ES UNA BASE DE DATOS? ¿COMO ES? ¿Y PARA QUE SIRVE?
¿QUE ES UNA BASE DE DATOS? ¿COMO ES? ¿Y PARA QUE SIRVE?¿QUE ES UNA BASE DE DATOS? ¿COMO ES? ¿Y PARA QUE SIRVE?
¿QUE ES UNA BASE DE DATOS? ¿COMO ES? ¿Y PARA QUE SIRVE?Gely Perez
 
Base de datos objeto
Base de datos objetoBase de datos objeto
Base de datos objetoRaul Quispe P
 
Sistemas de gestión de base de datos
Sistemas de gestión de base de datosSistemas de gestión de base de datos
Sistemas de gestión de base de datosCarlos Arturo
 
Base de Datos Grupo # 4.pptx
Base de Datos Grupo # 4.pptxBase de Datos Grupo # 4.pptx
Base de Datos Grupo # 4.pptxChrisMuoz7
 
Bases de datos Belén J
Bases de datos Belén JBases de datos Belén J
Bases de datos Belén JMBMBE201
 
Criterios De Comparacion
Criterios De ComparacionCriterios De Comparacion
Criterios De ComparacionHéctor
 
reglas de codd
reglas de coddreglas de codd
reglas de coddesthefany9
 
Instituto distrital evardo turizo palencia
Instituto distrital evardo turizo palenciaInstituto distrital evardo turizo palencia
Instituto distrital evardo turizo palenciaLeidyOsorioM
 
GESTOR DE BASE DE DATOS
GESTOR DE BASE DE DATOSGESTOR DE BASE DE DATOS
GESTOR DE BASE DE DATOSGEDIONI UJUKAM
 

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

Sistemas de gestion de base de datos 2º unidad
Sistemas de gestion de base de datos 2º unidadSistemas de gestion de base de datos 2º unidad
Sistemas de gestion de base de datos 2º unidad
 
Tabla comparativa
Tabla comparativaTabla comparativa
Tabla comparativa
 
Reglas de Codd
Reglas de CoddReglas de Codd
Reglas de Codd
 
Criterios De Comparacion
Criterios De ComparacionCriterios De Comparacion
Criterios De Comparacion
 
Criterios De Comparacion
Criterios De ComparacionCriterios De Comparacion
Criterios De Comparacion
 
Tema 1 base de datos
Tema 1   base de datosTema 1   base de datos
Tema 1 base de datos
 
¿QUE ES UNA BASE DE DATOS? ¿COMO ES? ¿Y PARA QUE SIRVE?
¿QUE ES UNA BASE DE DATOS? ¿COMO ES? ¿Y PARA QUE SIRVE?¿QUE ES UNA BASE DE DATOS? ¿COMO ES? ¿Y PARA QUE SIRVE?
¿QUE ES UNA BASE DE DATOS? ¿COMO ES? ¿Y PARA QUE SIRVE?
 
Base de datos objeto
Base de datos objetoBase de datos objeto
Base de datos objeto
 
Sistemas de gestión de base de datos
Sistemas de gestión de base de datosSistemas de gestión de base de datos
Sistemas de gestión de base de datos
 
Para el producto final de curso
Para el producto final de cursoPara el producto final de curso
Para el producto final de curso
 
Base de Datos Grupo # 4.pptx
Base de Datos Grupo # 4.pptxBase de Datos Grupo # 4.pptx
Base de Datos Grupo # 4.pptx
 
Reglas Cood
Reglas CoodReglas Cood
Reglas Cood
 
Bases de datos Belén J
Bases de datos Belén JBases de datos Belén J
Bases de datos Belén J
 
Criterios De Comparacion
Criterios De ComparacionCriterios De Comparacion
Criterios De Comparacion
 
Base de datos
Base de datos Base de datos
Base de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
reglas de codd
reglas de coddreglas de codd
reglas de codd
 
Instituto distrital evardo turizo palencia
Instituto distrital evardo turizo palenciaInstituto distrital evardo turizo palencia
Instituto distrital evardo turizo palencia
 
GESTOR DE BASE DE DATOS
GESTOR DE BASE DE DATOSGESTOR DE BASE DE DATOS
GESTOR DE BASE DE DATOS
 

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

  • 1. Universidad de San Carlos de Guatemala Laboratorio: 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. 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ñol es Atomicidad, Consistencia, Aislamiento y Durabilidad; es un conjunto de características necesarias para que un conjunto de instrucciones puedan ser consideradas como una transacción1 y por ende está pueda ser fiable. A continuación se da una breve definición de cada una de estas cuatro 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 ser considerado ACID Compliant. 1 En el contexto de bases de datos, una transacción es una única operación sobre los datos.
  • 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 de muchas características que se consideran importantes en un sistema relacional, perdiendo las muchas ventajas del modelo relacional. Los sistemas relacionales eran simplemente sistemas que utilizaban tablas para almacenar la información, no disponiendo de elementos como claves primarias y foráneas que las definieran como tales. En 1984 Edgar F. Codd, creador de del Modelo Relacional, publicó las 12 Reglas que un verdadero Sistema Relacional de Bases de Datos debería cumplir. En la práctica algunas de estas reglas son difíciles de implementar, así que un sistema podrá considerarse “más relacional” cuanto más siga estas 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. 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 Relacional o 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 completo o 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. 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. 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 primaria o 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. 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 los datos 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. 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. 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 bases de 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. 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 concurrencia 6. 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.