viernes, 9 de marzo de 2007
Guia Sistemas Distribuidos
El modelado entidad-relación es una técnica para el modelado de datos utilizando diagramas entidad relación. Consiste en los siguientes pasos:
1. Se parte de una descripción textual del problema o sistema de información a automatizar (requisitos).
2. Se hace una lista de los sustantivos y verbos que aparecen.
3. Los sustantivos son posibles entidades o atributos.
4. Los verbos son posibles relaciones.
5. Analizando las frases se determina la cardinalidad de las relaciones y otros detalles.
6. Se elabora el diagrama (o diagramas) entidad-relación.
7. Se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en el diagrama.
Los diagramas entidad-relación (E-R) son una herramienta para el modelado de datos de un sistema de información. Estos diagramas expresan entidades relevantes para un sistema de información, sus inter-relaciones y propiedades. Es el modelo conceptual más utilizado para el diseño conceptual de bases de datos. El modelo entidad-relación está formado por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones gráficas y lingüísticas.
Los diagramas E-R son un lenguaje gráfico para describir conceptos. Son dibujos o gráficos que describen la información que trata un sistema de información y el software que lo automatiza.
Entidades
Una entidad es cualquier "objeto" sobre el que se tiene información; cosa, persona, concepto abstracto o suceso. Se representa gráficamente mediante un rectángulo o "caja" etiquetada en su interior mediante un nombre. Ejemplos de entidades en los sistemas de información son: factura, persona, empleado, coches, casas, empleados, clientes, empresas, oficios, diseños de productos, conciertos, excursiones, etc.
Relación
Una relación describe cierta interdependencia (de cualquier tipo) entre una o más entidades. Es una correspondencia o asociación entre dos o más entidades. Se representa mediante un rombo etiquetado en su interior mediante un verbo. Además, dicho rombo debe unirse mediante líneas con las entidades que relaciona.
Ejemplos:
• Una persona (entidad) trabaja (relación) para un departamento (entidad).
• Una factura (entidad) se emite (relación) a un cliente (entidad).
Las relaciones entre dos entidades se denominan binarias, las relaciones entre tres entidades se denominan ternarias, y las relaciones entre cuatro o más entidades se denominan múltiples. Las relaciones múltiples son poco frecuentes, mientras que las relaciones binarias son habituales en cualquier problema.
Atributos
Los atributos representan las propiedades básicas de las entidades y de las relaciones. Toda la información extensiva es portada por los atributos. Los atributos son los datos que definen el objeto (para la entidad persona serían DNI, nombre, apellidos, dirección,...)
Gráficamente, se representan mediante bolitas que cuelgan de las entidades o relaciones a las que pertenecen, etiquetado mediante un nombre en su interior.
Los atributos pueden ser simples o compuestos. Un atributo simple es un atributo que tiene un solo componente, que no se puede dividir en partes más pequeñas, que tengan un significado propio. Un atributo compuesto es un atributo con varios componentes, cada uno con un significado por sí mismo. Un grupo de atributos se representa mediante un atributo compuesto cuando tienen afinidad en cuanto a su significado, o en cuanto a su uso. Un atributo compuesto se representa gráficamente mediante un óvalo.
Los atributos describen información útil sobre las entidades. En particular, los atributos identificativos son aquellos que permiten diferenciar a una instancia de la entidad de otra distinta. Como por ejemplo, el atributo identificativo que distingue a un empleado de otro es su número de la Seguridad Social.
Ejemplos de atributos de la entidad "persona":
• Documento de Identidad (identificativo)
• Nombre
• Apellidos
• Dirección
• Código postal
Las relaciones pueden ser:
- 1 a 1
- 1 a muchos
- Muchos a 1
- Muchos a muchos
• Relaciones 1-1.- Las entidades que intervienen en la relación se asocian una a una (Ej: la entidad HOMBRE, la entidad MUJER y entre ellos la relación MATRIMONIO).
• Relaciones 1-n.- Una ocurrencia de una entidad está asociada con muchas (n) de otra (Ej: la entidad EMPRESA, la entidad TRABAJADOR y entre ellos la relación TRABAJAR-EN).
• Relaciones n-n.-Cada ocurrencia, en cualquiera de las dos entidades de la relación, puede estar asociada con muchas (n) de la otra y viceversa (Ej: la entidad ALUMNO, la entidad EMPRESA y entre ellos la relación MATRÍCULA).
NORMALIZACIÓN DE DATOS
La normalización es el proceso que permite distribuir todos los campos de la base de datos en tablas relacionadas entre sí, de forma que cumplan con el funcionamiento esperado de la base de datos. Para evitar la inconsistencia y duplicidad de datos emplearemos la técnica de normalización para organizar los campos de datos en cada tabla. La normalización es un proceso que clasifica relaciones, objetos, formas de relación y demás elementos en grupos, en base a las características que cada uno posee.
Normalización es un conjunto de reglas que sirven para ayudar a los diseñadores a desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada en la que le antecede. La normalización se adoptó porque el viejo estilo de poner todos los datos en un solo lugar, como un archivo o una tabla de la base de datos, era ineficiente y conducía a errores de lógica cuando se trataba de manipular los datos. La normalización es una técnica que se utiliza para crear relaciones lógicas apropiadas entre tablas de una base de datos.
Ayuda a prevenir errores lógicos en la manipulación de datos. La normalización facilita también agregar nuevas columnas sin romper el esquema actual ni las relaciones.
El proceso de normalización de una base de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo E-R (entidad-relación) al modelo relacional.
Las bases de datos relacionales se normalizan para:
• Evitar la redundancia de los datos.
• Evitar problemas de actualización de los datos en las tablas.
• Proteger la integridad de los datos.
Una base de datos normalizada puede ocupar menos espacio en disco que una no normalizada. Hay menos repetición de datos, lo que tiene como consecuencia un mucho menor uso de espacio en disco.
Grados de normalización
Existen varios niveles de normalización, entre las que se encuentran: Primera Forma Normal (1FN), Segunda Forma Normal (2FN), Tercera Forma Normal (3FN), Cuarta Forma Normal (4FN).
- Primera forma normal (1FN)
Una tabla está en 1FN si el valor que contiene un atributo de un registro, un campo, es único y elemental. En cada uno de los atributos sólo se puede incluir un dato, aunque sea compuesto, pero no se pueden incluir una lista de datos. Por ejemplo, no se pueden incluir en el atributo Dirección el domicilio habitual y el de vacaciones; habría que crear dos registros que se diferenciarán por el atributo Dirección:
Tabla de una base de datos
NIF Ape Nom Dir CPost Pobl Prov
1 García Francisco C/Marín 16 33698 Oviedo Asturias
2 Sanchez Luisa C/Tenerías 34
C/Ramorta 65 85458
54585 Cigales
Bueu Valladolid
Pontevedra
Esta tabla no está en 1FN, ya que el cliente con Id 2 tiene dos direcciones. Para poder tener esta tabla en 1FN se hace el siguiente cambio:
Tabla de una base de datos
NIF Ape Nom Dir CPost Pobl Prov
1 García Francisco C/Marín 16 33698 Oviedo Asturias
2 Sanchez Luisa C/Tenerías 34 85458 Cigales Valladolid
2 Sanchez Luisa C/Ramorta 65 54585 Bueu Pontevedra
La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse y colocarse en tablas separadas.
Ejemplo: la Relación:
• cursos: nombre, código, vacantes, horario, bibliografía
Después de aplicar la primera Forma Normal quedaría de la siguiente manera:
• cursos1: nombre, código, vacantes
• horario1: código, día, módulo
• bibliografia1: código, nombre, autor
- Segunda Forma Normal (2FN)
Una tabla está en Segunda Forma Normal o 2FN cuando está en 1FN y todo atributo que no pertenece a la clave primaria tiene una dependencia funcional de la clave completa y no de parte de ella. Luego, si la clave principal está formada por un solo atributo y ya está en 1FN, ya estará en 2FN.
Para transformar una tabla con dependencias funcionales, cuya clave está formada por más de un campo, en una tabla en 2FN se necesitan crear tablas nuevas para eliminar las dependencias funcionales, las tablas nuevas tendrán los atributos que dependen funcionalmente de la clave y los que forman la parte de la clave de la que dependen. Una vez creadas las nuevas tablas, se eliminan de la tabla primera los atributos que tenían dependencias funcionales.
En el ejemplo anterior, tanto el nombre como los apellidos dependen del NIF. Se crea una nueva tabla que contiene los atributos: NIF, nombre y apellidos, eliminándose de la tabla cliente los atributos nombre y apellidos, quedando las siguientes tablas:
Tabla en segunda forma normal
NIF Dir CPost Pobl Prov
1 C/ Marín nº16 33698 Oviedo Asturias
2 C/ Tenerías nº34 85458 Cigales Valladolid
2 C/ Ramorta nº65 54585 Bueu Pontevedra
Tabla en segunda forma normal
NIF Ape Nom
1 García Francisco
2 Sanchez Luisa
Establece que todas las dependencias parciales se deben eliminar y separar dentro de sus propias tablas. Una dependencia parcial es un término que describe a aquellos datos que no dependen de la clave de la tabla para identificarlos.
Una vez que ha alcanzado el nivel de la Segunda Forma Normal, se han controlado la mayoría de los problemas de lógica. Puede insertar un registro sin un exceso de datos en la mayoría de las tablas.
- Tercera Forma Normal (3FN)
Se dice que hay dependencia funcional transitiva entre dos atributos cuando un atributo que no pertenece a la clave primaria permite conocer el valor de otro atributo.
Por ejemplo: dada la tabla clientes, entre los atributos provincia y prefijo telefónico hay una dependencia funcional transitiva, ya que el primero permite conocer el valor del segundo.
Una tabla está en Tercera Forma Normal o 3FN si está en 2FN y no existen atributos que no pertenezcan a la clave primaria que puedan ser conocidos mediante otro atributo que no forma parte de la clave primaria, es decir, no hay dependencias funcionales transitivas.
Siguiendo con el ejemplo anterior, cuando hay dependencias funcionales transitivas, se crea una nueva tabla con los atributos que tienen dependencia funcional transitiva, eliminándose el atributo dependiente de la tabla original.
Si nos fijamos en esta tabla:
Tabla en segunda forma normal
NIF Dir CPost Pobl Prov
1 C/ Marín nº16 33698 Oviedo Asturias
2 C/ Tenerías nº34 85458 Cigales Valladolid
2 C/ Ramorta nº65 54585 Bueu Pontevedra
La dirección, la población y la provincia dependen del código postal, que no forma parte de la clave primaria. Descomponiendo sin perdida una vez más, obtenemos estas dos tablas:
Tabla en tercera forma normal
NIF Dir
1 C/ Marín nº16
2 C/ Tenerías nº34
2 C/ Ramorta nº65
Tabla en tercera forma normal
CPost Dir Pobl Prov
33698 C/ Marín nº16 Oviedo Asturias
85458 C/ Tenerías nº34 Cigales Valladolid
54585 C/ Ramorta nº65 Bueu Pontevedra
La regla de la Tercera Forma Normal señala que hay que eliminar y separar cualquier dato que no sea clave. El valor de esta columna debe depender de la clave. Todos los valores deben identificarse únicamente por la clave.
- Cuarta Formal Normal (4FN)
Existe dependencia funcional multivalorada o de múltiples valores si, dados tres atributos de una tabla, si para cada valor del primer atributo existen múltiples valores en el segundo atributo y no hay ninguna relación entre el tercer atributo y el primero, a no ser a través del segundo atributo.
Una tabla está en Cuarta Forma Normal o 4FN si está en FNBC y las únicas dependencias funcionales multivaloradas que existen son las dependencias funcionales de la clave con los atributos que no forman parte de la misma. Estas dependencias multievaluadas de la clave con los atributos que no forman parte de la misma son dependencias triviales, por lo que algunos autores dicen que no existen dependencias multievaluadas en 4FN.
Supongamos que los atributos de la tabla transporte son conductor, tipo de vehículo y tipo de carga, formando los tres campos la clave primaria. A cada conductor se le puede asignar un vehículo u otro y cada vehículo puede transportar varios tipos de carga.
Tabla que no esta en cuarta forma normal
Transporte
Conductor Tipo Vehículo Tipo Carga
Juan Furgoneta Perecederos
Marcos Furgoneta Perecederos
Juan Furgoneta Muebles
Marcos Furgoneta Muebles
Juan Camión Mudanza
Marcos Camión Mudanza
Con estas condiciones, los conductores son independientes de la carga; el tipo de vehículos depende del conductor y el tipo de vehículo depende de la carga. En este caso hay dependencias funcionales multivaloradas, ya que algunos atributos que forman la clave dependen de otro atributo que también la forman.
Para conseguir que esta tabla esté en 4FN se necesita crear dos nuevas tablas en lugar de la tabla actual, manteniendose en cada una de ellas una dependencia múltiple. La primera tabla tendrá los atributos conductor y tipo de vehículo y la segunda, tipo de vehículo y tipo de carga. De este modo la tabla en 4FN debido a que la clave primaria de ambas tablas son todos los campos que la forman. Resultado:
Tabla en cuarta forma normal
Tipo Vehículo Tipo Carga
Furgoneta Perecederos
Furgoneta Perecederos
Furgoneta Muebles
Furgoneta Muebles
Camión Mudanza
Camión Mudanza
Tabla en cuarta forma normal
Conductor Tipo Vehículo
Juan Furgoneta
Marcos Furgoneta
Juan Furgoneta
Marcos Furgoneta
Juan Camión
Marcos Camión
Forma Normal de Boyce-Codd o FNBC:
Una tabla está en Forma Normal de Boyce-Codd o FNBC si solo existen dependencias funcionales elementales que dependan de la clave primaria o de cualquier clave alternativa. Si la clave primaria está formada por un solo atributo y está en 3FN, ya está en FNBC.
Un ejemplo típico para mostrar una tabla que, estando en 3FN, mantiene dependencias funcionales, sin relación con el ejemplo seguido hasta este momento, es una tabla que posee los atributos dirección, código postal y población, suponiendo que a poblaciones diferentes le corresponden códigos postales distintos.
Tabla en tercera forma normal
CPost Dir Pobl
30009 C/ Pantano Camarillas nº16 Murcia
48596 Av. Buenos Aires nº12 Madrid
En este caso hay dependencia entre el código postal y la población, ya que, conocido el código postal se puede conocer la población, y conocida la dirección y la población, se conoce el código postal. Para transformar la tabla en una tabla en FNBC se crea una tabla de códigos postales y poblaciones, eliminando de la tabla original la población, obteniéndose dos tablas, una con los atributos dirección y código postal y otra con el código postal y la población:
Tabla en forma normal de Boyce-Codd
CPost Dir
30009 C/ Pantano Camarillas nº16
48596 Av. Buenos Aires nº12
Tabla en forma normal de Boyce-Codd
CPost Pobl
30009 Murcia
48596 Madrid
Quinta Forma Normal o 5FN:
Se dice que hay dependencia de JOIN, de unión o de producto si una tabla tiene dependencia de *unión con varias de sus *proyecciones y se puede obtener la tabla por medio de la unión de dichas proyecciones.
Proyeccion
*Proyección:
Creación de una tabla cuyos elementos forman un subconjunto de una tabla dada. Se incluyen todas las filas y algunas columnas.
Union
*Unión:
Formar, a partir de dos tablas, una nueva con todos los campos de una de ellas y los registros de ambas, excepto los repetidos. Ambas tablas han de tener el mismo grado y las mismas columnas.
Una tabla esta en Quinta Forma Normal (5FN) o Forma Normal de Proyección-Unión si está en 4FN y las únicas dependencias que existen son las dependencias de unión de una tabla con sus proyecciones relacionándose entre las distintas proyecciones mediante la clave primaria o cualquier clave alternativa. La 5FN se emplea cuando en una misma tabla tenemos mucha información redundante, con pocos atributos o cuando una tabla posee una gran cantidad de atributos y se hace por ello inmanejable.
Para conseguir que una tabla 4FN con gran cantidad de atributos esté en 5FN, se parte la tabla original en tantas tablas como se desee, teniendo cada una de ellas en común con las demás los campos que forman la clave primaria en la tabla original.
Ejemplo para el caso de una tabla que posee una gran cantidad de atributos:
Tabla
Id Datos Familiares Datos Profesionales Datos Personales Datos Clínicos
1 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12
En este caso tenemos una empresa donde se guardan los datos personales, familiares, profesionales y clínicos de cada empleado en una única tabla llamada Empleados. Si esta tabla está ya en 4FN, se puede partir en las tablas empleados-personal, empleados-familia, empleados-profesional, empleados-clínicos; de este modo, la velocidad de acceso y la gestión de datos por cada departamento de la empresa se simplifica, al no tenerse que crear ningún tipo de restricción sobre determinados atributos que no han de ser vistos por el personal que no los necesite.
El resultado sería:
Tabla en quinta forma normal
Id Datos Familiares
1 D1 D2 D3
Tabla en quinta forma normal
Id Datos Profesionales
1 D4 D5 D6
Tabla en quinta forma normal
Id Datos Personales
1 D7 D8 D9
Tabla en quinta forma normal
Id Datos Clínicos
1 D10 D11 D12
Ejemplo para el caso de una tabla que posee mucha información redundante, con pocos atributos:
Tabla que no esta en quinta forma normal
Biblioteca
Título Fecha Socio
T1 FT S1
T2 FU S2
T3 FV S1
T4 FG S4
T1 FH S3
T2 FT S4
T3 FV S3
Si se tiene una tabla de préstamo de libros de una biblioteca, con los atributos título, fecha de préstamo y número de socios que ha tomado prestado el libro, existen multitud de registros que se crean diariamente en esa tabla, pero para cada libro o para cada socio habrá pocos registros, con lo que una consulta para esa tabla como: ¿Cuáles son los libros leídos por un determinado socio?, puede tener una velocidad de respuesta elevada. Si esta tabla se parte en las tablas título-fecha, título-socio y socio-fecha, cualquier consulta similar a la anterior tendrá un tiempo de respuesta tolerable, y cuando sea necesario, se podrán realizar consultas que impliquen los datos de las tres tablas.
El resultado sería pues:
Tabla en quinta forma normal
Título-Fecha
Título Fecha
T1 FT
T2 FU
T3 FV
T4 FG
T1 FH
T2 FT
T3 FV
Tabla en quinta forma normal
Título-Socio
Título Socio
T1 S1
T2 S2
T3 S1
T4 S4
T1 S3
T2 S4
T3 S3
Tabla en quinta forma normal
Fecha-Socio
Fecha Socio
FT S1
FU S2
FV S1
FG S4
FH S3
FT S4
FV S3
http://www.scourdesign.com/articulos/BD-FN.php
sábado, 24 de febrero de 2007
guia bases de datos
TRANSACCIÓN
Una transacción es la ejecución de ciertas instrucciones que accesan a una base de datos. En un sistema de gestión de bases de datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica, preservando la consistencia del sistema. Una transacción es también la invocación a un procedimiento remoto que ejecuta un conjunto de operaciones sobre una base de datos bajo el principio de todo o nada. Esta abstracción de una ejecución atómica y confiable de una aplicación se conoce como una transacción.
Un SGBD se dice transaccional si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado.
El traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se decrementa el saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta destino. Para garantizar la consistencia del sistema (es decir, para que no aparezca o desaparezca dinero), los dos operaciones deben ser atómicas, es decir, el sistema debe garantizar que, bajo cualquier circunstancia (inclusive una caída del sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.
Tipos de transacciones- Atomicidad: La atomicidad de una transacción garantiza que todas sus acciones sean realizadas o ninguna sea ejecutada, en el procesamiento de transacciones no se aceptan resultados parciales. En el caso de la transacción bancaria o se ejecuta tanto el "deposito-deducción" o ninguna acción será realizada. La atomicidad nos dice que la transacción se hizo entera o no se hizo, conservando así la coherencia de los datos.
- Aislamiento: Una transacción en ejecución no puede revelar sus resultados a otras transacciones concurrentes antes de finalizar. Más aún, si varias transacciones se ejecutan concurrentemente, los resultados deben ser los mismos que si ellas se hubieran ejecutado de manera secuencial. Esto garantiza que las transacciones que se estén realizando en el sistema sean invisibles a todos los usuarios hasta que estas hayan sido declaradas finales. Este aislamiento garantiza que los usuarios del sistema no observen estos cambios intermedios hasta que sea finalizada la última acción de actualización.
- Seriabilidad: Si varias transacciones se ejecutan concurrentemente, los resultados deben ser los mismos que si ellas se hubieran ejecutado de manera secuencial. Se define sobre un conjunto de transacciones y especifica un orden entrelazado de la ejecución de las operaciones de las transacciones. define el orden de ejecución de todas las operaciones.
- Durabilidad: La durabilidad de una transacción garantiza que al instante en el que se finaliza la transacción esta perdure a pesar de otras consecuencias, esto es, si el disco duro falla, el sistema aún será capaz de recordar todas la transacciones que han sido realizadas en el sistema.
BITÁCORA
Mecanismo que guarda copia de todas las actualizaciones que una transacción realiza. El DBMS (Sistema Manejador de Bases de Datos) mantiene una bitácora o diario en cinta o en disco, en el cual se registran los detalles de todas las operaciones de actualización, en particular, los valores inicial y final del objeto modificado. Por tanto, si resulta necesario anular alguna modificación específica, el sistema puede utilizar la entrada correspondiente de la bitácora para restaurar el valor original del objeto restaurado.
La bitácora es la estructura que guarda las modificaciones a la base de datos. Cada registro describe una única escritura. Contiene los datos: nombre de la transacción, nombre del dato, valor antiguo y el valor nuevo. Cuando ocurre un fallo se consulta la bitácora para determinar que transacciones necesitan volver a hacerse y cuales necesitan deshacerse.
Si una transacción termina de manera exitosa se dice que la transacción hace un commit. Si la transacción se detiene sin terminar su tarea, se dice que la transacción aborta. Cuando la transacción es abortada, su ejecución es detenida y todas sus acciones ejecutadas hasta el momento son deshechas regresando a la base de datos al estado antes de su ejecución; a esta operación también se le conoce como rollback.
CANDADOS
En los algoritmos basados en candados, las transacciones indican sus intenciones solicitando candados al despachador (el administrador de candados). Los candados son de lectura (rl), también llamados compartidos, o de escritura (wl), también llamados exclusivos.
En los candados de dos fases una transacción le pone un candado a un objeto antes de usarlo. Cuando un objeto es bloqueado con un candado por otra transacción, la transacción solicitante debe esperar. Cuando una transacción libera un candado, ya no puede solicitar más candados. Así una transacción que utiliza candados de dos fases, en la primera fase solicita y adquiere todos los candados sobre los elementos que va a utilizar y en la segunda fase libera los candados obtenidos uno por uno.
La importancia de los candados de dos fases es que se ha demostrado de manera teórica que todos las calendarizaciones generadas por algoritmos de control de concurrencia que obedecen a los candados de dos fases son serializables.
Puede suceder que si una transacción aborta después de liberar un candado, otras transacciones que hayan accesado el mismo elemento de datos aborten también provocando lo que se conoce como abortos en cascada. Para evitar lo anterior, los despachadores para candados de dos fases implementan lo que se conoce como los candados estrictos de dos fases en los cuales se liberan todos los candados juntos cuando la transacción termina (con commit o aborta).
ABRAZO MORTAL
El abrazo mortal son procesos en un estado de espera tal que ninguno de ellos tiene suficientes criterios para continuar su ejecución. El abrazo mortal ocurre si dos o más clientes, accidentalmente o no, deciden acceder al mismo archivo al mismo tiempo pueden producirse conflictos. En un abrazo mortal, los procesos nunca terminan de ejecutarse y los recursos del sistema están amarrados, evitando que otros procesos puedan siquiera empezar.
Este problema se presenta cuando se han bloqueado en una secuencia tal que un grupo de transacciones no pueden ser despachadas porque hay transacciones que se esperan mutuamente. Como ejemplo, si un cliente necesita acceder a varios archivos, como ocurre de forma común cuando se efectúan transferencias de dinero en aplicaciones bancarias, hay una posibilidad de abrazo mortal.
La solución utilizada es permitir a los usuarios el uso de bloqueos sobre los archivos de trabajo. La idea es sencilla, mientras un usuario esta trabajando sobre una parte de los datos, otros no podrán hacerlo de manera que las distintas actualizaciones se efectuaran en forma sucesiva y ordenada sin interferencias. Se utilizan dos clases de bloqueos: Los bloqueos compartidos que por lo general se usan para lectura, y los bloqueos exclusivos que normalmente se usan para escritura. Un conjunto de procesos está en un abrazo mortal cuando todos los procesos en ese conjunto están esperando un evento que sólo puede ser causado por otro proceso en el conjunto. Los eventos a los cuales nos estamos refiriendo son concernientes con la asignación y liberación de recursos principalmente.
La sincronización entre procesos es necesaria para prevenir y corregir errores debido al acceso concurrente de recursos compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos contendientes. La sincronización entre procesos también permite intercambiar señales de tiempo entre procesos cooperantes para garantizar las relaciones específicas de precedencia impuestas por el problema que se resuelva.
Sin una sincronización adecuada entre procesos, la actualización entre variables compartidas puede inducir a errores de tiempo relacionadas con la concurrencia que son con frecuencia difíciles de depurar. Una de las causas principales de este problema es que procesos concurrentes puedan tener valores temporalmente inconsistentes de una variable compartida mientras se actualizan.
Los semáforos son un mecanismo sencillo pero poderoso de sincronización entre procesos. Los semáforos satisfacen la mayoría de los requerimientos que hemos especificado para un buen mecanismo de control de concurrencia, sin incluir suposiciones sobre las velocidades y prioridades relativas de los procesos contendientes y sin saber nada sobre los otros contendientes excepto que existen probablemente. Mediante el uso de semáforos se pueden resolver algunos problemas bien conocidos de sincronización, como los de PRODUCTOR/CONSUMIDOR y LECTORES/ESCRITORES. Los procesos cooperantes deben sincronizarse siempre que intenten usar recursos compartidos por varios de ellos, tales como estructuras de datos o dispositivos físicos comunes. Existen dos métodos. El de prevención de abrazos mortales y el de evasión de abrazos mortales.
PROTOCOLO DE DOS FASESEs un protocolo que asegura la atomicidad de las transacciones distribuidas. Extiende los efectos de una operación local de commit a transacciones distribuidas poniendo de acuerdo a todos los nodos involucrados en la ejecución de una transacción antes de que los cambios hechos por la transacción sean permanentes.
Las fases del protocolo son las siguientes:
• Fase 1: el coordinador hace que todos los participantes estén listos para escribir los resultados en la base de datos.
• Fase 2: Todos escriben los resultados en la base de datos.
La terminación de una transacción se hace mediante la regla del compromiso global:
• El coordinador aborta una transacción si y solamente si al menos un participante vota por que se aborte.
• El coordinador hace un commit de la transacción si y solo si todos los participantes votan por que se haga el commit.
La operación del compromiso de dos fases entre un coordinador y un participante en ausencia de fallas, en donde los círculos indican los estados y las líneas entrecortadas indican mensajes entre el coordinador y los participantes. Las etiquetas en las líneas entrecortadas especifican la naturaleza del mensaje.
RAIDS
RAID "arreglo de discos", ‘conjunto redundante de discos’, también se le llama ‘conjunto redundante de discos independientes’. Es un sistema de almacenamiento informático que usa múltiples discos duros entre los que distribuye o replica los datos. Dependiendo de su configuración, los beneficios de un RAID respecto a un único disco son uno o varios de los siguientes: mayor integridad, mejor tolerancia a fallos, más rendimiento y más capacidad. En sus implementaciones originales, su ventaja clave era la habilidad de combinar varios dispositivos de bajo costo y tecnología más antigua en un conjunto que ofrecía mayor capacidad, fiabilidad, velocidad o una combinación de éstas que un solo dispositivo de última generación y costo más alto.
En el nivel más simple, RAID combina múltiples discos en una sola unidad lógica. En lugar de ver diferentes discos, el sistema operativo solo ve uno. Con el descenso en precios de los discos duros y la amplia variedad de opciones RAID, se encuentran también como opción en los ordenadores personales más avanzados. Esto es especialmente frecuente en los computadores dedicados a tareas intensivas de almacenamiento, como edición de audio y vídeo.
La especificación RAID original sugería cierto número de «niveles RAID» o combinaciones diferentes de discos. Cada una tenía ventajas y desventajas teóricas. Con el paso de los años, han aparecido diferentes implementaciones del concepto RAID. La mayoría difieren sustancialmente de los niveles RAID idealizados originales, pero se ha conservado la costumbre de llamarlas con números.
La misma definición de RAID ha estado en disputa durante años. El uso de término «redundante» hace que muchos objeten sobre que el RAID 0 sea realmente un RAID. De igual forma, el cambio de «barato» a «independiente» confunde a muchos sobre el pretendido propósito del RAID. Incluso hay algunas implementaciones del concepto RAID que usan un solo disco.
Los niveles RAID más comúnmente usados son:
• RAID 0: Conjunto dividido
• RAID 1: Conjunto en espejo
• RAID 5: Conjunto dividido con paridad distribuida
• Un RAID 0 (también llamado conjunto dividido o volumen dividido) distribuye los datos equitativamente entre dos o más discos sin información de paridad para proporcionar redundancia, es decir, no ofrece tolerancia al fallo (si ocurriese alguno, la información de los discos se perdería y debería restaurarse desde una copia de seguridad). Es importante señalar que el RAID 0 no era uno de los niveles RAID originales y que no es redundante.
El RAID 0 se usa normalmente para incrementar el rendimiento, aunque también puede utilizarse como forma de crear un pequeño número de grandes discos virtuales a partir de un gran número de pequeños discos físicos. Un RAID 0 puede ser creado con discos de diferentes tamaños, pero el espacio de almacenamiento añadido al conjunto estará limitado al tamaño del disco más pequeño (por ejemplo, si un disco de 120 GB se divide con uno de 100 GB, el tamaño del conjunto resultante será 200 GB).
El RAID 0 es útil para configuraciones tales como servidores NFS de solo lectura en las que montar muchos discos es un proceso costoso en tiempo y la redundancia es irrelevante. Otro uso es cuando el número de discos está limitado por el sistema operativo: por ejemplo, en Microsoft Windows el número de unidades lógicas está limitado a 24, por lo que el RAID 0 es una forma de usar más discos (en Windows 2000 Professional y posteriores es posible montar particiones en directorios, de forma parecida a Unix, eliminando así la necesidad de asignar una letra a cada unidad). El RAID 0 es también una opción popular para sistemas destinados a juegos en los que se desea un buen rendimiento y la integridad no es muy importante, si bien el costo es una preocupación para la mayoría de los usuarios.
• Un RAID 1 crea una copia exacta (o espejo) de un conjunto de datos en dos o más discos (array). Esto resulta útil cuando el rendimiento en lectura es más importante que la capacidad y también desde el punto de vista de la seguridad, pues un RAID 0 por ejemplo no es tolerante al fallo de uno de los discos, mientras que un RAID 1 sí, al disponer de la misma información en cada disco.
Un RAID 1 clásico consiste en dos discos en espejo, lo que incrementa la fiabilidad respecto a un solo disco; es decir, la probabilidad de fallo del conjunto es igual al producto de las probabilidades de fallo de cada uno de los discos (pues para que el conjunto falle es necesario que lo hagan todos sus discos).
Adicionalmente, dado que todos los datos están en dos o más discos, con hardware habitualmente independiente, el rendimiento de lectura se incrementa, es decir, un RAID 1 puede estar leyendo simultáneamente dos datos diferentes en dos discos diferentes, por lo que su rendimiento se duplica. Para maximizar los beneficios sobre el rendimiento del RAID 1 se recomienda el uso de controladoras de disco independientes, una para cada disco. El RAID 1 es un sistema apropiado en entornos donde la disponibilidad es crítica 24 horas al día.
• Un RAID 5: usa división de datos a nivel de bloques distribuyendo la información de paridad entre todos los discos miembros del conjunto. El RAID 5 ha logrado popularidad gracias a su bajo costo de redundancia. Generalmente, el RAID 5 se implementa con soporte hardware para el cálculo de la paridad.
Este tipo incluye un grupo rotatorio de paridad, con lo que resuelve las limitaciones de escritura en RAID-4. Así, todas las operaciones de lectura y escritura pueden superponerse. El Raid 5 almacena información de paridad pero no datos redundantes (aunque la información de paridad puede usarse para reconstruir datos). El RAID-5 exige al menos tres y usualmente cinco discos en el conjunto. Es mejor para los sistemas multiusuario en los cuales el rendimiento no es crítico, o que realizan pocas operaciones de escritura.
Existen otros tipos de RAID, aunque menos usados.
• RAID-3. Este tipo usa bandeado y dedica un disco al almacenamiento de información de paridad. La información de verificación de errores (ECC) incrustada 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. Dado que una operación I/O accede a todos los discos al mismo tiempo, el RAID-3 no puede traslapar I/O. Por esta razón, el RAID-3 es mejor para sistemas de un solo usuario con aplicaciones que contengan grandes registros.
• RAID-4. Este tipo usa grandes bandas, lo cual significa que podemos leer registros de cualquier disco individual. Esto nos permite aprovechar la I/O traslapada para las operaciones de lectura. Dado que todas las operaciones de escritura tienen que actualizar el disco de paridad, no es posible la superposición I/O para ellas. El RAID-4 no ofrece ninguna ventaja sobre el RAID-5.
• RAID-6. Este tipo es 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 las caídas de disco. Hay pocos ejemplos comerciales en la actualidad.
• RAID-7. Este tipo incluye un sistema operativo incrustado de tiempo real como controlador, haciendo las operaciones de caché a través de un bus de alta velocidad y otras características de un ordenador sencillo. Un vendedor ofrece este sistema.
• RAID-10. Este tipo ofrece un conjunto de bandas en el que cada banda es un grupo de discos RAID-1. Esto proporciona mejor rendimiento que el RAID-1, pero a un costo mucho mayor.
• RAID-53. Este tipo ofrece un conjunto de bandas en el cual cada banda es un conjunto de discos RAID-3. Esto proporciona mejor rendimiento que el RAID-3, pero a un costo mucho mayor.
TIPOS DE BASES DE DATOS
Clasificación de acuerdo a los datos almacenados:
• Bases de datos estáticas:
- De sólo lectura
- Utilizados para almacenar datos históricos,
- Estudiarlos posteriormente para la toma de decisiones
• Bases de datos dinámicas:
- La información se modifica con el tiempo
- Permite la actualización, adición y consulta de datos
Clasificación según el contenido:
• Bases de datos bibliográficas:
- Contienen parte de la base de datos
- Contiene información sobre el autor, fecha de publicación, título
- Contiene un resumen del texto original
• Bases de datos de texto completo:
- Almacenan las fuentes primarias
- Colección de revistas
• Directorios:
- Información como guías telefónicas
• Banco de imágenes:
- Almacena información como Audio, video, multimedia
• Bases de datos de información biológica:
- Almacena información concerniente a la medicina y la vida
Modelos de bases de datos
Se clasifican según como se administren los datos:
• Bases de datos jerárquicas:
- Son útiles cuando se manejan grandes volúmenes de información y que se necesite gran rendimiento en el flujo de los datos
- Los datos se organizan en forma similar a un árbol (al revés)
- Cada nodo puede tener varios hijos
• Bases de datos de red:
- Ofrece solución a la redundancia de datos
- Muy utilizado por programadores
• Bases de datos relacional:
- Administra datos dinámicamente, se fundamente en el uso de “relaciones”
- Fácil de entender y de utilizar para usuarios esporádicos
• Bases de datos orientadas a objetos:
- Incorpora el paradigma de los objetos como encapsulamiento, herencia, polimorfismo
• Bases de datos documentales:
- Permite indexar información completa, para realizar búsquedas más potentes
• Bases de datos deductivas:
- Se llaman bases de datos lógicas, porque se basan en la lógica matemática
Sistema de base de datos distribuidos homogéneos
- Tiene múltiples colecciones de datos
- Integra múltiples recursos de datos
- Los datos se distribuyen en varios sitios comunicados por la red
- No existen usuarios locales y todos accesan a la base de datos a través de una interfaz
Sistema de base de datos distribuidos heterogéneos
- Se caracteriza por manejar diferentes bases de datos en nodos locales
- Un sistema multi-bases de datos, que pueden ser de tipos diferentes
- La integración se realiza mediante subsistemas de software
- Existen usuario locales y globales
ARQUITECTURA DE UNA BASE DE DATOSUna base de datos se puede clasificar como:
- Nivel físico: En este nivel se almacenan los datos en registros, lleva una representación de los datos y a esto se le llama esquema físico.
- Nivel conceptual: Se tiene la visión de los datos en el mundo real, es decir tratamos la entidad sin importar como está almacenado
- Nivel visión: Aquí se tiene acceso a pequeñas parte de la información, la que realmente se necesita
FRAGMENTACIÓN
La fragmentación se refiere al particionamiento de la información para distribuir cada parte a los diferentes sitios de la red. Existen tres tipos de fragmentación de datos:
- Fragmentación horizontal
- Fragmentación vertical
- Fragmentación híbrida
- Fragmentación horizontal: Consiste del particionamiento en tuplas (atributos) de una relación global en subconjuntos, donde cada subconjunto puede contener datos que tienen propiedades comunes y se puede definir expresando cada fragmento como una operación de selección sobre la relación global.
- Fragmentación vertical: La fragmentación vertical es la subdivisión de atributos en grupos. Los fragmentos se obtienen proyectando la relación global sobre cada grupo. La fragmentación es correcta si cada atributo se mapea en al menos un atributo del fragmento.
El objetivo de la fragmentación vertical es particionar una relación en un conjunto de relaciones más pequeñas de manera que varias de las aplicaciones de usuario se ejecutarán sobre un fragmento. En este contexto, una fragmentación "óptima" es aquella que produce un esquema de fragmentación que minimiza el tiempo de ejecución de las consultas de usuario.
- Fragmentación híbrida: La fragmentación híbrida consiste en aplicar la fragmentación vertical seguida de la fragmentación horizontal o viceversa.
miércoles, 21 de febrero de 2007
martes, 13 de febrero de 2007
Taller Base de Datos
1. Fases del desarrollo de base de datos El diseño de la base de datos contempla las siguientes fases:
- Diseño Conceptual
- Diseño lógico
- Diseño Fisico
2. Actividades y finalidad en el modelamiento conceptual de datos, diseño de bases de datos, construcción de bases de datos
Diseño Conceptual
Parte de los requerimientos y su resultado es el esquema conceptual de la base de datos. Un esquema conceptual es una descripción de alto nivel de la estructura de la base de datos, independiente del software de manejador de bases de datos que se llegue a utilizar.
Los diagramas de datos más ampliamente usados para del diseño conceptual de base de datos son los diagramas entidad-relación (ER), UML (Unified Modeling Language) o OMT (object modeling tecniques).
Diagrama Entidad-Relación (E-R) El diagrama entidad-relación se basa en "una percepción del mundo real que consiste en una colección de objetos básicos llamados entidades y relaciones entre estos objetos".
El diagrama entidad-relación es el modelo más ampliamente usado para el diseño conceptual de bases de datos y fue introducido por Peter Chen en 1976.
Elementos Básicos
Los elementos básicos son entidades, interrelaciones y atributos.
Entidades. Las entidades se definen como: "Una entidad es un objeto que se distingue de otros objetos por medio de un conjunto específico de atributos" Las entidades representan clases de objetos de la realidad. PERSONA, MUNICIPIO, PAÍS.
Las entidades se representan gráficamente por rectángulos Relaciones. Es una asociación entre varias entidades. Se representan por rombos Atributos. Representan las propiedades básicas de las entidades. Se representan por elipses.
El Diagrama E-R, muestra además propiedades de opcionalidad y cardinalidad. Opcionalidad u obligatoriedad. Una entidad puede tener o no relaciones de pertenencia u ocurrencia con relación a otra entidad. Cardinalidad. Indica el grado de relación de entre las entidades, que puede ser: Uno a Uno, Uno a muchos, o muchos a muchos.
Diseño Lógico Parte del esquema conceptual y da como resultado un esquema lógico. Un esquema lógico es una descripción de la estructura de una base de datos que puede procesar el software de SGBD. Diseño Físico Parte del esquema lógico y da como resultado un esquema físico.
Un esquema físico es una descripción de la implantación de la base de datos en la memoria secundaria; describe las estructuras de almacenamiento y los métodos usados para tener un acceso efectivo a los datos, por lo anterior el esquema físico se adapta al SGBD específico
4 Que es una entidad: "Una entidad es un objeto que se distingue de otros objetos por medio de un conjunto específico de atributos" Las entidades representan clases de objetos de la realidad. PERSONA, MUNICIPIO, PAÍS. Las entidades se representan gráficamente por rectángulos
5 Que es una Relacion. Es una asociación entre varias entidades. Se representan por rombos Relacion Uno a uno, Uno a muchos y muchos a uno.
6. Que es Atributos. Representan las propiedades básicas de las entidades. Se representan por elipses. El Diagrama E-R, muestra además propiedades de opcionalidad y cardinalidad. Opcionalidad u obligatoriedad. Una entidad puede tener o no relaciones de pertenencia u ocurrencia con relación a otra entidad. Un atributo es un Identificador que permite manipular en forma individual las características de un objeto (entidades); representan las propiedades básicas de las entidades y de las relaciones.
Tipos de atributos:
- Atributo simple: Este atributo tiene un solo componente, que no se puede dividir en partes mas pequeñas que tengan un significado propio.
- Atributo Compuesto: Es un atributo con varios componentes, cada uno con un significado por sí mismo. Un grupo de atributos se representa mediante un atributo compuesto cuando tienen afinidad en cuanto a su significado, o en cuanto a su uso. Se representa gráficamente mediante un óvalo.
- Atributo Monovalente: Atributo que tiene un solo valor para cada ocurrencia de la entidad o relación a la que pertenece.
- Atributo Polivalente: Atributo que tiene varios valores para cada ocurrencia de la entidad o relación a la que pertenece. también se les denomina multivaluados, y pueden tener un número máximo y un número mínimo de valores dada por la cardinalidad.
8. Que es un UID. El parámetro UID indica el login para acceder al servidor SQL Server. Este ejemplo utiliza el login sa, sin embargo, es comveniente utilizar otro login, por cuestiones de seguridad.


