Entender no es Aprender.... La Verdad es una Busqueda

2/24/2007

DESARROLLO GUIA No.1 y No.2

Modelamiento en Bases de Datos





MODELAMIENTO DE DATOS




FASES DEL DESARROLLO DE BD:

  • Modelado
  • Diseño Lógico
  • Diseño Físico
  • Construcción




El Modelado: Es donde identificamos y “dibujamos” los conjuntos de datos que el Usuario requiere en un Sistema de información.
El Diseño Lógico: Es la etapa donde transformamos ese modelo en un diseño relacional).
El Diseño Físico: Es aquel en donde especificamos características propias del DBMS elegido, como tipos de dato concretos, parámetros por cada tabla, campo, relación.
La construcción: Es en si el proceso de capturar los datos sobre datos para materializar el diseño relacional dentro de nuestro DBMS.


El modelo de Entidad-Relación se usa para:


· El modelado y diseño lógico de bases de datos, en donde a través del reconocimiento de entidades débiles, entidades fuertes, relaciones entre entidades y su semántica vamos armando la red de la base de datos, para después con algunas reglas, llegar en pocos pasos al diseño lógico.


MODELO ENTIDAD RELACION:

El Diagrama de entidad relación permite que un ingeniero del Software especifique los objetos de datos que:

Entran y salen de un sistema
Los atributos que diferencias las propiedades de estos objetos
Las relaciones entre los objetos


ENTIDAD:

Es donde se puede recolectar información. Representa un objeto o concepto del mundo real, ejemplo Empleado de una Empresa, los clientes de una empresa, las notas de los estudiantes en una universidad o institución, por lo tanto representa las TABLAS en una base de datos.

Ejemplo:


Las ENTIDADES se agrupan según sus características en común.



QUE ES UNA RELACION-PARTES DE UNA RELACION- TIPOS.


RELACION: Interrelación entre dos o mas entidades.

Las relaciones se clasifican en:

Uno a Uno (1:1)
Uno a Muchos (1:M)
Muchos a Muchos (M:M)


RELACION UNO A UNO

Una ENTIDAD puede estar relacionada solamente con otra ENTIDAD y viceversa.

Ejemplo Un Decano administra sòlo una escuela y una escuela sòlo puede tener un decano.

RELACION UNO A MUCHOS

Es la relación ideal y constituye el principal bloque de construcción de la base de datos relacional.



ATRIBUTOS:

Es la característica de cada ENTIDAD, donde encontraremos los atributos, para el ejemplo de la ENTIDAD NOTAS, tendríamos

Representa alguna propiedad de interés de una entidad, conocidos como CAMPOS.


Tipos de Datos para los campos.


INSTANCIA U OCURRENCIA

Son los datos que una Base de datos contiene en un determinado momento. “Estado de la base de datos”.


UID

Es el identificador de usuario real que coincide con el usuario que arranco el proceso, en otras palabras es el identificador del campo llave o clave.



Atributos:



Define las propiedades de un objeto de datos y toman una de las 3 caracteristicas diferentes.





  • Nombrar una ocurrencia del objeto de datos


  • Describir la ocurrencia


  • Hacer referencia a otra ocurrencia en otra tabla.


En otras palabras representa alguna propiedad de interes de una entidad.



Ejemplo: Nombre, Salario,



Tipo de datos: Numerico, Texto, Moneda, Si/No, Autonumerico




Relaciones:



Interacción entre dos o más entidades.



Los objetos de datos se conectan entre sí de muchas formas diferentes.



Las relaciones PIDE, MUESTRA, ALMACENA, VENDE, y DEVUELVE.




Ejemplo LIBRO Y LIBRERIA





Ocurrencia:



Datos que la BD contiene o estado de la BD en un determinado momento.





UID: (Llave)



Identificador de usuario real que coincide con el usuario que arranco el proceso.



Es uno de los atributos de un proceso que indica su propietario.







Modelo Entidad Relación:





Es el modelo conceptual mas utilizado para el diseño conceptual de bases de datos, formados por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones gráficas.



M.E.R. incluye:




  • Entidad, Relación, atributo, atributos compuestos y las jerarquias de generalización.


El diagrama de entidad relación permite que un Ingeniero del Software especifique los objetos de datos que entran y salen de un sistema .




  • Los atributos que definen las propuestas de estos objetos.


  • Las relaciones entre los objetos.

DESARROLLO EJERCICIO 3. ENTIDAD RELACION













EXPLICACION DEL DIAGRAMA DE ENTIDAD RELACION



DIAGRAMA ENTIDAD RELACION:
















FASES:


FASE No. 1 RECOPILACIÓN Y ANÁLISIS DE REQUERIMIENTOS (EXPECTATIVAS DEL USUARIO SOBRE LA BD.)


Para ello se identifican:



  • Grupos de Usuarios (reales y posibles)

  • Areas de aplicación

  • Se revisa la documentación existente

  • Se analiza en entorno operativo

  • Requerimientos de procesado

  • Entrevistas y cuestionarios con los usuarios.

FASE No. 2 DISEÑO CONCEPTUAL DE LA BD.





  • Diseño del esquema conceptual

  • Esquma de especificación del modelo de datos a alto nivel.

FASE No. 3 ELECCIÓN DE UN SGBD


Se deben tener diferentes factores técnicos



  • Economicos

  • Beneficios

  • Servicio técnico

  • Formación de usuarios

FASE No. 4 TRANSFORMACION DEL MODELO DE DATOS O FASE DEL DISEÑO LOGICO


Se crea:



  • Esquema conceptual

  • Esquemas Externos

FASE No. 5 DISEÑO DE LA BASE DE DATOS FISICA


Se definen las estructuras de almacenamientos y de acceso.


FASE No. 6 IMPLEMENTACION DEL SISTEMA DE BD.



DESARROLLO GUIA No. 2








  1. Que tipos de arquitectura para sistemas de administración de bases de datos distribuidas existen y como son?
  2. Que información se requiere para determinar el tipo de fragmentación?
  3. Presente un ejemplo de cada caso de fragmentación.
  4. De un ejemplo de lo que entiende por: Atomicidad, Seriabilidad, Aislamiento.
  5. Que tipos de candados existen y como funcionan.
  6. Realice un macroalgoritmo del protocolo de dos fases
  7. Como se recupera la base de datos, Que tipos de Backups existen.
  8. Explique Que es un Raid y que tipos de Raid existen.
  9. Explique Que es un abrazo mortal y como se resuelve

SOLUCION.

Que tipos de arquitectura para sistemas de administración de bases de datos distribuidas existen y como son?


· Arquitectura ANSI
· Redundancia
· Integridad
· Terminología en la arquitectura de la Base de datos
· Uso de catalogos para almacenar el esquema de Bases de Datos
· Manejo de Mùltiples vistas para los usuarios
· La separaciòn entre los programas de aplicación y los datos.

En la arquitectura se presentas 3 niveles.

Nivel Físico o de Maquina
Nivel Externo o de usuario
Nivel Conceptual

NIVEL INTERNO: Describe la estructura físico de almacenamiento de la Base de datos.

Emplea:

Un modelo físico de datos y los únicos datos que existen se encuentran en este nivel.

NIVEL CONCEPTUAL: Describe la estructura de todas las bases para una comunidad de usuarios.

Oculta los detalles físicos de almacenamiento, trabaja con elementos lógicos como:

Entidades
Atributos
Relaciones

Es el nivel clave, contiene la descripción de las entidades, relaciòn y propiedad para la empresa.


NIVEL EXTERNO O DE VISITAS:

Vistas de usuarios, describe la visiòn que tiene de la base de datos a un grupo de usuarios ocultando el resto.


QUE INFORMACIÓN SE REQUIERE PARA DETERMINAR EL TIPO DE FRAGMENTACIÓN?

Diseño de la fragmentaciòn:

Se determina por la forma en que las relaciones globales se subdividen en fragmentos horizontales, verticales o mixtos.

Objetivo de la fragmentación:

Es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta la relación completas.


Diseño de la asignación de los fragmentos:

Es la forma en que los fragmentos:
Mapean a las imágenes físicas
Solicitud de fragmentos


Replicación de Fragmentos:

Es de utilidad cuando el nùmero de consultas de solo lectura es (mucho) mayor que el nùmero de consultas para actualizaciones.

Procesamiento de consultas:
Manejo de directorios
Control de concurrencia
Confiabilidad
Realidad.

TIPOS DE FRAGMENTACIÓN DE DATOS.

FRAGMENTACION HORIZONTAL

Particionamiento en tuplas de una relación global en subconjuntos, donde cada subconjunto puede contener datos con propiedades comunes.

“Cada fragmento como una operación de selección sobre la relación global”.

Ej: RELACION GLOBAL


SUPPLIER (SNUM, NAME, CITY)

Puede ser definido:

Supplier1 = Sleity =”SF” Supplier
Supplier1 = Sleity = “LA” Supplier

Complete SI “SF” y “LA” son solamente los únicos valores posibles del atributo CITY.

La condición de reconstrucción se logra con:

Supplier = Supplier1 uniòn Supplier2


FRAGMENTACION HORIZONTAL DERIVADA

Se define partiendo de una fragmentaciòn horizontal

En esta operaciòn se requiere de (semi-Join) el cual nos sirve para derivar las tuplas o registros de las relaciones.

Ej: Relaciòn SUPPLY

SUPPLY1 = SUPPLYSJsnum = Snum Supplier1
SUPPLY2 = SUPPLYSJsnum = Snum Supplier2

FRAGMENTACION VERTICAL


Es la subdivisión de atributos en grupos las fragmentos se obtienen proyectando la relación global sobre cada grupo.


La fragmentación es correcta si cada atributo se mapean en al menos un atributo del fragmento.

Ej: Relación Global

EMP (empnum, name, sal, tax, mgmum, depnum)

Un fragmentación vertical de esta relación puede ser definida como:


EMP1 = PJempnum, Name, Mgmun, depnum EMP

EMP2 = PJempnum, sal, tax EMP

Reconstrucciòn de la relaciòn EMP puede ser obtenida como:

EMP = EMP1 (JN empnum) EMP2

Porque empnum es una clave de EMP.

TRANSACION:

Es un conjunto de actividades de lectura y escritura de datos que aseguran pasar a la base de datos de un estado valido a otro.
“una o mas actividades”

Una transacción se logra, sì cumple con las propiedades.

ATOMICIDAD: Todas las actividades de la transacción se realizan o de lo contrario no se hace ninguna. “Se deben cumplir todas las transacciones”.


SERIABILIDAD: Gran cantidad de transacciones desarrollándose al mismo tiempo, (concurrencia), el orden de ejecución de las diferentes actividades de lectura – escritura el resultado al final es el mismo. “No Importa el orden”.

AISLAMIENTO: La transacción se ejecuta en secuencia

DURABILIDAD: Al término una transacción se actualiza para ser grabado en algún tipo de medio de almacenamiento. (disco), bitácora (Log).

La transacción garantiza que los cambios al estado de un sistema se aplique Atomicidad, dejando al sistema consistente, estén aislados una de otra en progreso y seràn durables aun en caso de una falla catastrófica.


RAID Y TIPOS DE RAID:


RAID es un método de combinación de varios discos duros para formar una única unidad lógica en la que se almacenan los datos de forma redundante. Ofrece mayor tolerancia a fallos y más altos niveles de rendimiento que un sólo disco duro o un grupo de discos duros independientes.

Una matriz consta de dos o más discos duros que ante el sistema principal funcionan como un único dispositivo. Un RAID, para el sistema operativo, aparenta ser un sólo disco duro lógico (LUN). Los datos se desglosan en fragmentos que se escriben en varias unidades de forma simultánea. En este método, la información se reparte entre varios discos, usando técnicas como:
· El entrelazado de bloques (RAID nivel 0)
· La duplicación de discos (RAID nivel 1)


Para proporcionar:



· Redundancia
· Reducir el tiempo de acceso, y/o obtener mayor ancho de banda para leer y/o escribir.
· La posibilidad de recuperar un sistema tras la avería de uno de los discos.
· Mayor tolerancia a fallos
· Más altos niveles de rendimiento
La tecnología RAID protege los datos contra:

· El fallo de una unidad de disco duro. Si se produce un fallo, RAID mantiene el servidor activo y en funcionamiento hasta que se sustituya la unidad defectuosa.
· Con mucha frecuencia se utiliza para mejorar el rendimiento de servidores y estaciones de trabajo.
· protección de datos y mejora del rendimiento.


NIVELES DEL RAID

Los niveles del RAID proporciona un equilibrio distinto entre tolerancia a fallas, rendimiento y coste.

RAID 0: Disk Striping "La más alta transferencia, pero sin tolerancia a fallos".
"Separación ó fraccionamiento/ Striping". Los datos se desglosan en pequeños segmentos y se distribuyen entre varias unidades. Este nivel de "array" o matriz no ofrece tolerancia al fallo. Al no existir redundancia, RAID 0 no ofrece ninguna protección de los datos. El fallo de cualquier disco de la matriz tendría como resultado la pérdida de los datos y sería necesario restaurarlos desde una copia de seguridad. Por lo tanto, RAID 0 no se ajusta realmente al acrónimo RAID. Consiste en una serie de unidades de disco conectadas en paralelo que permiten una transferencia simultánea de datos a todos ellos, con lo que se obtiene una gran velocidad en las operaciones de lectura y escritura. La velocidad de transferencia de datos aumenta en relación al número de discos que forman el conjunto. Esto representa una gran ventaja en operaciones secuenciales con ficheros de gran tamaño. Por lo tanto, este array es aconsejable en aplicaciones de tratamiento de imágenes, audio, video o CAD/CAM, es decir, es una buena solución para cualquier aplicación que necesite un almacenamiento a gran velocidad pero que no requiera tolerancia a fallos. Se necesita un mínimo de dos unidades de disco para implementar una solución RAID 0.
RAID 1: Mirroring "Redundancia. Más rápido que un disco y más seguro"
"Mirroring" o "Duplicación" (Creación de discos en espejo). Se basa en la utilización de discos adicionales sobre los que se realiza una copia en todo momento de los datos que se están modificando. RAID 1 ofrece una excelente disponibilidad de los datos mediante la redundancia total de los mismos. Para ello, se duplican todos los datos de una unidad o matriz en otra. De esta manera se asegura la integridad de los datos y la tolerancia al fallo, pues en caso de avería, la controladora sigue trabajando con los discos no dañados sin detener el sistema. Los datos se pueden leer desde la unidad o matriz duplicada sin que se produzcan interrupciones. RAID 1 es una alternativa costosa para los grandes sistemas, ya que las unidades se deben añadir en pares para aumentar la capacidad de almacenamiento. Sin embargo, RAID 1 es una buena solución para las aplicaciones que requieren redundancia cuando hay sólo dos unidades disponibles. Los servidores de archivos pequeños son un buen ejemplo. Se necesita un mínimo de dos unidades para implementar una solución RAID 1.
RAID 0+1/ RAID 0/1 ó RAID 10: "Ambos mundos"
Combinación de los arrays anteriores que proporciona velocidad y tolerancia al fallo simultáneamente. El nivel de RAID 0+1 fracciona los datos para mejorar el rendimiento, pero también utiliza un conjunto de discos duplicados para conseguir redundancia de datos. Al ser una variedad de RAID híbrida, RAID 0+1 combina las ventajas de rendimiento de RAID 0 con la redundancia que aporta RAID 1. Sin embargo, la principal desventaja es que requiere un mínimo de cuatro unidades y sólo dos de ellas se utilizan para el almacenamiento de datos. Las unidades se deben añadir en pares cuando se aumenta la capacidad, lo que multiplica por dos los costes de almacenamiento. El RAID 0+1 tiene un rendimiento similar al RAID 0 y puede tolerar el fallo de varias unidades de disco. Una configuración RAID 0+1 utiliza un número par de discos (4, 6, 8) creando dos bloques. Cada bloque es una copia exacta del otro, de ahí RAID 1, y dentro de cada bloque la escritura de datos se realiza en modo de bloques alternos, el sistema RAID 0. RAID 0+1 es una excelente solución para cualquier uso que requiera gran rendimiento y tolerancia a fallos, pero no una gran capacidad. Se utiliza normalmente en entornos como servidores de aplicaciones, que permiten a los usuarios acceder a una aplicación en el servidor y almacenar datos en sus discos duros locales, o como los servidores web, que permiten a los usuarios entrar en el sistema para localizar y consultar información. Este nivel de RAID es el más rápido, el más seguro, pero por contra el más costoso de implementar.
RAID 2: "Acceso paralelo con discos especializados. Redundancia a través del código Hamming"
El RAID nivel 2 adapta la técnica comúnmente usada para detectar y corregir errores en memorias de estado sólido. En un RAID de nivel 2, el código ECC (Error Correction Code) se intercala a través de varios discos a nivel de bit. El método empleado es el Hamming. Puesto que el código Hamming se usa tanto para detección como para corrección de errores (Error Detection and Correction), RAID 2 no hace uso completo de las amplias capacidades de detección de errores contenidas en los discos. Las propiedades del código Hamming también restringen las configuraciones posibles de matrices para RAID 2, particularmente el cálculo de paridad de los discos. Por lo tanto, RAID 2 no ha sido apenas implementado en productos comerciales, lo que también es debido a que requiere características especiales en los discos y no usa discos estándares.Debido a que es esencialmente una tecnología de acceso paralelo, RAID 2 está más indicado para aplicaciones que requieran una alta tasa de transferencia y menos conveniente para aquellas otras que requieran una alta tasa de demanda I/O.
RAID 3: "Acceso síncrono con un disco dedicado a paridad"
Dedica un único disco al almacenamiento de información de paridad. La información de ECC (Error Checking and Correction) se usa para detectar errores. La recuperación de datos se consigue calculando el O exclusivo (XOR) de la información registrada en los otros discos. La operación I/O accede a todos los discos al mismo tiempo, por lo cual el RAID 3 es mejor para sistemas de un sólo usuario con aplicaciones que contengan grandes registros.RAID 3 ofrece altas tasas de transferencia, alta fiabilidad y alta disponibilidad, a un coste intrínsicamente inferior que un Mirroring (RAID 1). Sin embargo, su rendimiento de transacción es pobre porque todos los discos del conjunto operan al unísono.Se necesita un mínimo de tres unidades para implementar una solución RAID 3.
RAID 4: "Acceso Independiente con un disco dedicado a paridad."
Basa su tolerancia al fallo en la utilización de un disco dedicado a guardar la información de paridad calculada a partir de los datos guardados en los otros discos. En caso de avería de cualquiera de las unidades de disco, la información se puede reconstruir en tiempo real mediante la realización de una operación lógica de O exclusivo. Debido a su organización interna, este RAID es especialmente indicado para el almacenamiento de ficheros de gran tamaño, lo cual lo hace ideal para aplicaciones gráficas donde se requiera, además, fiabilidad de los datos. Se necesita un mínimo de tres unidades para implementar una solución RAID 4. La ventaja con el RAID 3 está en que se puede acceder a los discos de forma individual.
RAID 5: "Acceso independiente con paridad distribuida."
Este array ofrece tolerancia al fallo, pero además, optimiza la capacidad del sistema permitiendo una utilización de hasta el 80% de la capacidad del conjunto de discos. Esto lo consigue mediante el cálculo de información de paridad y su almacenamiento alternativo por bloques en todos los discos del conjunto. La información del usuario se graba por bloques y de forma alternativa en todos ellos. De esta manera, si cualquiera de las unidades de disco falla, se puede recuperar la información en tiempo real, sobre la marcha, mediante una simple operación de lógica de O exclusivo, sin que el servidor deje de funcionar. Así pues, para evitar el problema de cuello de botella que plantea el RAID 4 con el disco de comprobación, el RAID 5 no asigna un disco específico a esta misión sino que asigna un bloque alternativo de cada disco a esta misión de escritura. Al distribuir la función de comprobación entre todos los discos, se disminuye el cuello de botella y con una cantidad suficiente de discos puede llegar a eliminarse completamente, proporcionando una velocidad equivalente a un RAID 0.
RAID 5 es el nivel de RAID más eficaz y el de uso preferente para las aplicaciones de servidor básicas para la empresa. Comparado con otros niveles RAID con tolerancia a fallos, RAID 5 ofrece la mejor relación rendimiento-coste en un entorno con varias unidades. Gracias a la combinación del fraccionamiento de datos y la paridad como método para recuperar los datos en caso de fallo, constituye una solución ideal para los entornos de servidores en los que gran parte del E/S es aleatoria, la protección y disponibilidad de los datos es fundamental y el coste es un factor importante. Este nivel de array es especialmente indicado para trabajar con sistemas operativos multiusuarios.
Se necesita un mínimo de tres unidades para implementar una solución RAID 5.
Los niveles 4 y 5 de RAID pueden utilizarse si se disponen de tres o más unidades de disco en la configuración, aunque su resultado óptimo de capacidad se obtiene con siete o más unidades. RAID 5 es la solución más económica por megabyte, que ofrece la mejor relación de precio, rendimiento y disponibilidad para la mayoría de los servidores.
RAID 6: "Acceso independiente con doble paridad"
Similar al RAID 5, pero incluye un segundo esquema de paridad distribuido por los distintos discos y por tanto ofrece tolerancia extremadamente alta a los fallos y a las caídas de disco, ofreciendo dos niveles de redundancia. Hay pocos ejemplos comerciales en la actualidad, ya que su coste de implementación es mayor al de otros niveles RAID, ya que las controladoras requeridas que soporten esta doble paridad son más complejas y caras que las de otros niveles RAID. Así pues, comercialmente no se implementa.