Base de datos distribuida (BDD)
es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones, los cuales tienen la capacidad de procesamiento autónomo lo cual indica que puede realizar operaciones locales o distribuidas.
Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma que, un usuario en cualquier sitio puede acceder los datos en cualquier parte de la red exactamente como si los datos estuvieran siendo accedidos de forma local.
En un sistema distribuido de bases de datos se almacenan en varias computadoras.
Los principales factores que distinguen un SBDD de un sistema centralizado son los siguientes:
• Hay múltiples computadores, llamados sitios o nodos.
• Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios.
Componentes
Software
Sistema Manejador de Base de Datos Distribuida (DDBMS)
Este sistema está formado por las transacciones y los administradores de la base de datos distribuidos. Un DDBMS implica un conjunto de programas que operan en diversas computadoras, estos programas pueden ser subsistemas de un único DDBMS de un fabricante o podría consistir de una colección de programas de diferentes fuentes.
Administrador de transacciones distribuidas (DTM)
Este es un programa que recibe las solicitudes de procesamiento de los programas de consulta o transacciones y las traduce en acciones para los administradores de la base de datos. Los DTM se encargan de coordinar y controlar estas acciones. Este DTM puede ser propietario o desarrollado en casa.
Sistema Manejador de base de datos (DBMS)
Es un programa que procesa cierta porción de la base de datos distribuida. Se encarga de recuperar y actualizar datos del usuario y generales de acuerdo con los comandos recibidos de los DTM.
Nodo
Un nodo es una computadora que ejecuta un DTM o un DBM o ambos. Un nodo de transacción ejecuta un DTM y un nodo de base de datos ejecuta un DBM.
Calendarizador distribuido.
El calendarizador está encargado de ordenar un conjunto de transacciones u operaciones que se deseen realizar sobre una base de datos. Cualquier orden en el que se decidan hacer este conjunto de operaciones se denomina calendarización. Parte del trabajo del calendarizador es realizar estas operaciones de forma que sean serializables y recuperables.
Dos calendarizaciones son serializables (o equivalentes) si
• Cada operación de lectura lee valores de los datos que son producidos por la misma operación de escritura en ambas calendarizaciones (es decir son iguales)
• La operación final de escritura en cada elemento de la data es la misma en ambas calendarizaciones
Detección de bloqueos y Concurrencia
Bloqueos
Un bloqueo en general es cuando una acción que debe ser realizada está esperando a un evento. Para manejar los bloqueos hay distintos acercamientos: prevención, detección, y recuperación. También es necesario considerar factores como que hay sistemas en los que permitir un bloqueo es inaceptable y catastrófico, y sistemas en los que la detección del bloqueo es demasiado costosa.
En el caso específico de las bases de datos distribuidas usar bloqueo de recursos, peticiones para probar, establecer o liberar bloqueos requiere mensajes entre los manejadores de transacciones y el calendarizador. Para esto existen dos formas básicas:
• Autónoma: cada nodo es responsable por sus propios bloqueos de recursos.
o Una transacción sobre un elemento con n replicas requiere 5n mensajes
o Petición del recurso
o Aprobación de la petición
o Mensaje de la transacción
o Reconocimientos de transacción exitosa
o Peticiones de liberación de recursos
• Copia Primaria: un nodo primario es responsable para todos los bloqueos de recursos
o Una transacción sobre un elemento con n copias requiere 2n+3 mensajes
o Una petición del recurso
o Una aprobación de la petición
o n mensajes de la transacción
o n reconocimientos de transacción exitosa
o Una petición de liberación de recurso
Podemos definir que dos operaciones entran en conflicto que debe ser resuelto si ambas acceden a la misma data, y una de ellas es de escritura y si fueron realizadas por transacciones distintas.
Concurrencia
El ejemplo más común de un bloqueo mutuo es cuando un recurso A está siendo utilizado por una transacción A que a su vez solicita un recurso B que está siendo utilizado por una transacción B que solicita el recurso A. Entre los ejemplos específicos para las bases de datos distribuidas podemos destacar:
• Actualización perdida: cuando dos transacciones concurrentes borran el efecto una de la otra
• La extracción inconsistente: acceder a información modificada parcialmente por una transacción
Soluciones
El control de concurrencia y detección y manejo de bloqueos es un área de mucho estudio en las bases de datos distribuidas, a pesar de esto no hay ningún algoritmo aceptado para solucionar el problema.
Esto se debe a varios factores de los cuales se consideran a los siguientes tres los más determinantes:
1. La data puede estar duplicada en un BDD, por tanto, el manejador de la BDD es responsable de localizar y actualizar la data duplicada.
2. Si un nodo falla o la comunicación con un nodo falla mientras se realiza una actualización, el manejador debe asegurarse de que los efectos se reflejen una vez el nodo se recupere del fallo.
3. La sincronización de transacciones en sitios o nodos múltiples es difícil ya que los nodos no pueden obtener información inmediata de las acciones realizadas en otros nodos concurrentemente.
Para el control de bloqueos mutuos no se ha desarrollado ninguna solución viable y la forma más simple y que la mayoría de productos utilizan es la implementación de un tiempo máximo de espera en las peticiones de bloqueos.
Causa de estas dificultades más de 20 algoritmos de control de concurrencia se han propuesto en el pasado, y aun así siguen apareciendo nuevos.
Una revisión bibliográfica muestra que la mayoría de los algoritmos son variantes del 2PL (2-phase locking o bloqueo de dos fases) o el algoritmo de time-stamp. A continuación se explican estos dos algoritmos básicos.
Manejador de transacciones distribuido (DTM)
Definición de transacciones
Una transacción es una secuencia de una o más operaciones agrupadas como una unidad.
El inicio y el final de la transacción definen los puntos de consistencia de la base de datos. Si una acción de la transacción no se puede ejecutar, entonces ninguna acción dentro de la secuencia que conforma la transacción tendrá efecto
• Atomicidad: Una transacción es una unidad atómica de procesamiento, esta se realiza o no se realiza.
• Consistencia: Si se ejecuta una transacción sobre un estado consistente, el resultado será un nuevo estado consistente.
• Aislamiento: Una transacción no hara visibles sus modificaciones a otras transacciones hasta que termine de ejecutarse completamente. Es decir, una transacción desconoce si otras transacciones se estén ejecutando en el sistema.
• Durabilidad: Una vez una transacción se ejecuta exitosamente y realiza cambios sobre el sistema, estos cambios nunca se deben perder a causa de fallas en el sistema.
Una transacción puede clasificarse de diferentes maneras dependiendo básicamente de tres criterios:
1.Áreas de aplicación. En primer lugar, las transacciones se pueden ejecutar en aplicaciones no distribuidas. Las transacciones que operan en datos distribuidos se les conoce como transacciones distribuidas. Por otro lado, dado que los resultados de una transacción que realiza un commit son durables, la única forma de deshacer los efectos de una transacción con commit es mediante otra transacción.
A este tipo de transacciones se les conoce como transacciones compensatorias. Finalmente, en ambientes heterogéneos se presentan transacciones heterogéneas sobre los datos.
2.Tiempo de duración. Tomando en cuenta el tiempo que transcurre desde que se inicia una transacción hasta que se realiza un commit o se aborta, las transacciones pueden ser de tipo batch o en línea. Estas se pueden diferenciar también como transacciones de corta y larga vida. Las transacciones en línea se caracterizan por tiempos de respuesta muy cortos y por acceder un porción relativamente pequeña de la base de datos. Por otro lado, las transacciones de tipo batch toman tiempos relativamente largos y accedan grandes porciones de la base de datos.
3.Estructura. Considerando la estructura que puede tener una transacción se examinan dos aspectos: si una transacción puede contener a su vez subtransacciones o el orden de las acciones de lectura y escritura dentro de una transacción.
Función del manejador
El manejador de transacciones es el encargado de definir la estructura de las transacciones, mantener la consistencia en la base de datos cuando se ejecuta una transacción o se cancela la ejecución de una, mantener protocolos de fiabilidad, implementar algoritmos para el control de la concurrencia y sincronizar las transacciones que se ejecutan simultáneamente.
El manejador recibe solicitudes de procesamiento de transacciones y las traduce en acciones para el calendarizador.
La operación COMMIT señala el término exitoso de la transacción: le dice al manejador de transacciones que se ha finalizado con éxito una unidad lógica de trabajo, que la base de datos esta (o debería estar) de nuevo en un estado consistente, y que se pueden hacer permanentes todas las modificaciones efectuadas por esa unidad de trabajo.
La operación ROLLBACK, en cambio, señala e término no exitoso de la transacción: le dice al manejador de transacciones que algo salió mal, que la base de datos podría estar en un estado inconsistente y que todas las modificaciones efectuadas hasta el momento por la unidad lógica de trabajo deben retroceder o anularse.
Distribución de los datos
Una de las decisiones más importantes que el diseñador de bases de datos distribuidas debe tomar es el posicionamiento de la data en el sistema y el esquema bajo el cuál lo desea hacer. Para esto existen cuatro alternativas principales: centralizada, replicada, fragmentada, e híbrida.
La forma centralizada es muy similar al modelo de Cliente/Servidor en el sentido que la BDD está centralizada en un lugar y los usuarios están distribuidos. Este modelo solo brinda la ventaja de tener el procesamiento distribuido ya que en sentido de disponibilidad y fiabilidad de los datos no se gana nada.
Replicadas
El esquema de BDD de replicación consiste en que cada nodo debe tener su copia completa de la base de datos. Es fácil ver que este esquema tiene un alto costo en el almacenamiento de la información.
Debido a que la actualización de los datos debe ser realizada en todas las copias, también tiene un alto costo de escritura, pero todo esto vale la pena si tenemos un sistema en el que se va a escribir pocas veces y leer muchas, y dónde la disponibilidad y fiabilidad de los datos sea de máxima importancia.
Particionadas
Este modelo consiste en que solo hay una copia de cada elemento, pero la información está distribuida a través de los nodos. En cada nodo se aloja uno o más fragmentos disjuntos de la base de datos. Como los fragmentos no se replican esto disminuye el costo de almacenamiento, pero también sacrifica la disponibilidad y fiabilidad de los datos.
Algo que se debe tomar en cuenta cuando se desea implementar este modelo es la granularidad de la fragmentación.
La fragmentación se puede realizar también de tres formas:
•Horizontal:
Los fragmentos son subconjuntos de una tabla (análogo a un restringir)
•Vertical:
Los fragmentos son subconjuntos de los atributos con sus valores (análogo a un proyectar)
•Mixto:
Se almacenan fragmentos producto de restringir y proyectar una tabla.
Una ventaja significativa de este esquema es que las consultas (SQL) también se fragmentan por lo que su procesamiento es en paralelo y más eficiente, pero también se sacrifica con casos especiales como usar JUNTAR o PRODUCTO, en general casos que involucren varios fragmentos de la BDD.
Para que una fragmentación sea correcta esta debe cumplir con las siguientes reglas:
•Debe ser Completa: Si una relación R se fragmenta en R1,R2, ... , Rn, cada elemento de la data de R debe estar en algún Ri.
• Debe ser Reconstruible: Debe ser posible definir una operación relacional que a partir de los fragmentos obtenga la relación.
• Los fragmentos deben ser Disjuntos:
Si la fragmentación es horizontal entonces si un elemento e está en Ri este elemento no puede estar en ningún Rk (para k distinto a i). En el caso de fragmentación vertical es necesario que se repitan las llaves primarias y esta condición solo se debe cumplir para el conjunto de atributos que no son llave primaria.
Híbrida
Este esquema simplemente representa la combinación del esquema de partición y replicación. Se particiona la relación y a la vez los fragmentos están selectivamente replicados a través del sistema de BDD.
Criterios para escoger la distribución
•Localidad de la data: la data debería ser colocada donde ésta se accede más seguido. El diseñador debe analizar las aplicaciones y determinar como colocar la data de tal forma que se optimicen los accesos a la data locales.
•Fiabilidad de la data: Almacenando varias copias de la data en lugares geográficamente apartados se logra maximizar la probabilidad de que la data va a ser recuperable en caso de que ocurra daño físico en cualquier sitio.
•Disponibilidad de la data: como en la fiabilidad, almacenar varias copias asegura que los usuarios tengan a su disponibilidad los elementos de la data, aún si el nodo al que usualmente acceden no está disponible o falla.
•Capacidades y costos de almacenamiento: a pesar de que los costos de almacenamiento no son tan grandes como los de transmisión, los nodos pueden tener diferentes capacidades de almacenamiento y procesamiento. Esto se debe analizar cuidadosamente para determinar donde poner la data.
El costo de almacenamiento se disminuye significativamente minimizando la cantidad de copias de la data.
•Distribución de la carga de procesamiento: una de las razones por la cual se escoge un sistema de BDD es porque se desea poder distribuir la carga de procesamiento para hacer este más eficiente.
•Costo de comunicación: el diseñador debe considerar también el costo de usar las comunicaciones de la red para obtener data. Los costos de comunicación se minimizan cuando cada sitio tiene su propia copia de la data, por otro lado cuando la data es actualizada se debe actualizar en todos los nodos.
•Uso del sistema: debe tomarse en consideración cual será el tipo principal de uso del sistema de BDD. Factores como la importancia en la disponibilidad de la data, la velocidad de escritura y la capacidad de recuperación de daños físicos deben tomarse en cuenta para escoger el esquema correcto
Seguridad
Desde hace ya varios años las bases de datos son ampliamente utilizadas en departamentos de gobiernos, empresas comerciales, bancos, hospitales, etc. Actualmente se está cambiando el esquema bajo el cuál se utilizan las bases de datos, ya no son utilizadas únicamente de forma interna, sino que se tiene muchos accesos externos de tipos distintos. Estos cambios que se han introducido en el uso de las bases de datos ha creado la necesidad mejorar las prácticas de seguridad ya que el ambiente ya no es tan controlado como el esquema antiguo.
Tipos de arquitecturas/implementaciones
En un sistema de bases de datos distribuidas, existen varios factores que deben tomar en consideración que definen la arquitectura del sistema:
1. Distribución: Los componentes del sistema están localizados en la misma computadora o no.
2. Heterogeneidad: Un sistema es heterogéneo cuando existen en él componentes que se ejecutan en diversos sistemas operativos, de diferentes fuentes, etc.
3. Autonomía: Se puede presentar en diferentes niveles, los cuales se describen a continuación:
• Autonomía de diseño: Habilidad de un componente del sistema para decidir cuestiones relacionadas a su propio diseño.
• Autonomía de comunicación: Habilidad de un componente del sistema para decidir como y cuando comunicarse con otros SGBD (Sistema Gestor de Bases de Datos).
• Autonomía de ejecución: Habilidad de un componente del sistema para ejecutar operaciones locales como quiera.
Multi Base de Datos Distribuida
Cuando una base de datos distribuida es muy homogénea se dice que es multi base de datos distribuida.
Base de Datos Federada
Cuando una base de datos distribuida tiene mucha autonomía local se dice que es federada.
Objetivos de Implementación
Al implementar una base de datos distribuida se tienen ciertos objetivos comunes:
•Transparencia de ubicación. Permite a los usuarios tener acceso a los datos sin que tenga conocimiento de la ubicación de éstos. Se puede conseguir este nivel de transparencia al utilizar los administradores de transacciones distribuidas, los cuales son capaces de determinar la localización de los datos y de emitir acciones a los calendarizadores apropiados, lo cual puede ejecutarse cuando los administradores de transacciones distribuidas poseen acceso a los directorios de localizaciones de los datos.
•Transparencia de duplicación.
Para que la transparencia de duplicación sea posible, los administradores de transacciones deben traducir las solicitudes de procesamiento de transacción en acciones para el administrador de datos.
Para las lecturas el administrador de transacciones selecciona uno de los nodos que almacena los datos y ejecuta la lectura.
Para optimizar el proceso, el administrador de transacciones necesita información sobre el rendimiento de varios nodos respecto al sitio de consulta, así podrá seleccionar el nodo de mejor rendimiento.
La actualización y escritura de datos duplicados suelen ser más complicadas, ya que el manejador de transacciones debe emitir una acción de escritura para cada uno de los calendarizadores que almacena una copia de los datos.
•Transparencia de concurrencia.
Cuando varias transacciones se ejecuten al mismo tiempo, los resultados de las transacciones no deberán afectarse.
La trasparencia de concurrencia se logra si los resultados de todas las transacciones concurrentes son consistentes de manera lógica con los resultados que se habrían obtenido si las transacciones se hubieran ejecutado una por una, en cualquier orden secuencial.
•Transparencia de fallas.
Significa que a pesar de fallas las transacciones sean procesadas de un modo correcto. Frente a una falla, las transacciones deben ser atómicas, significa que se procesen todas o ninguna de ellas.
Para este tipo de problemas es importante tener resguardo de la base de datos, y así poder restaurarla cuando sea conveniente. El sistema debe detectar cuándo falla una localidad y tomar las medidas necesarias para recuperarse del fallo. El sistema no debe seguir utilizando la localidad que falló.
Por último, cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla al sistema con el mínimo de complicaciones.
•Localidad del procesamiento. Los datos se deben distribuir lo más cerca posible de las aplicaciones que los usan para maximizar la localidad del procesamiento, este principio responde a minimizar el acceso remoto a los datos.
Diseñar una distribución que maximice localidad del procesamiento puede hacerse añadiendo la cantidad de referencias locales y remotas correspondientes a cada fragmentación candidata y asignar la fragmentación eligiendo la mejor solución. Independencia de configuración.
La independencia de configuración permite añadir o reemplazar hardware sin tener que cambiar componentes de software existentes en el sistema de base de datos distribuida.
•Particionado de la Base de Datos. La base de datos se distribuye de modo que no haya solapamiento o duplicación de los datos mantenidos en las diferentes localidades, como no hay duplicaciones de los datos, se evitan los costos asociados con el almacenamiento y mantenimiento de datos redundantes.
Si un mismo segmento de datos se usa en más de una localidad se ve limitada la disponibilidad de los datos. La fiabilidad también puede verse limitada cuando se produce un fallo en el sistema de cálculo de una localidad se afecta la disponibilidad de los datos de esa localidad no estén disponible para los usuarios en cualquier parte del sistema.
•Fragmentación de datos. Consiste en subdividir las relaciones y distribuirlas entre los sitios de la red, tiene como objetivo buscar formas alternativas de dividir una las instancias (tablas) de relaciones en otras más pequeñas. La fragmentación se puede realizar por tuplas individuales (fragmentación horizontal), por atributos individuales fragmentación vertical) o una combinación de ambas (fragmentación híbrida). El principal problema de la fragmentación radica en encontrar la unidad apropiada de distribución. Una relación no es una buena unidad por muchas razones. Ventajas y Desventajas
Refleja una estructura organizacional - los fragmentos de la base de datos se ubican en los departamentos a los que tienen relación.
• Autonomía local - un departamento puede controlar los datos que le pertenecen.
• Disponibilidad - un fallo en una parte del sistema solo afectará a un fragmento, en lugar de a toda la base de datos.
• Rendimiento - los datos generalmente se ubican cerca del sitio con mayor demanda, también los sistemas trabajan en paralelo, lo cual permite balancear la carga en los servidores.
• Economía - es más barato crear una red de muchas computadoras pequeñas, que tener una sola computadora muy poderosa.
• Modularidad - se pueden modificar, agregar o quitar sistemas de la base de datos distribuida sin afectar a los demás sistemas (módulos).
Desventajas
• Complejidad - Se debe asegurar que la base de datos sea transparente, se debe lidiar con varios sistemas diferentes que puden presentar dificultades únicas. El diseño de la base de datos se tiene que trabajar tomando en cuenta su naturaleza distribuida, por lo cual no podemos pensar en hacer joins que afecten varios sistemas.
• Economía - la complejidad y la infraestructura necesaria implica que se necesitará una mayor mano de obra.
• Seguridad - se debe trabajar en la seguridad de la infraestructura así como cada uno de los sistemas.
• Integridad - Se vuelve difícil mantener la integridad, aplicar las reglas de integridad a través de la red puede ser muy caro en términos de transmisión de datos.
• Falta de experiencia - las bases de datos distribuidas son un campo relativamente nuevo y poco común por lo cual no existe mucho personal con experiencia o conocimientos adecuados.
• Carencia de estándares - aún no existen herramientas o metodologías que ayuden a los usuarios a convertir un DBMS centralizado en un DBMS distribuido.
• Diseño de la base de datos se vuelve más complejo - además de las dificultades que generalmente se encuentran al diseñar una base de datos, el diseño de una base de datos distribuida debe considerar la fragmentación, replicación y ubicación de los fragmentos en sitios específicos.
viernes, 25 de junio de 2010
Derecho informatico
los delitos aquí tratados utilizan la técnica de la norma penal en blanco, esto significa que el código no tiene redactado completamente el delito sino que se debe buscar otra norma del derecho administrativo para saber cual es el delito, por ejemplo ley de telecomunicaciones.
arto. 245 destrucción de registros informáticos.
dice quien borre, destruya o inutilice registros informáticos será penado. y se elevara la pena cuando se trate de informacion necesaria para la prestacionde un servicio publico o se trate de un registro oficial.
ahora cuales son esos registro oficial o los servicios prestados que tengan ese tipo de informacion??
que pasaria si por equivocacion yo borrara o destruya de manera involuntaria esos registros???
los servicios públicos si entras a la base de datos de unión fenosa, enacal, enitel son servicios públicos, los registros oficiales son los que tienen las instituciones de los poderes del estado
el derecho penal castiga los hechos dolosos (intencionales) e imprudentes (no intencionales, pero que pudo haber sido previsto) cuando la ley penal no señala si castiga dolo o imprudencia se entiende que castiga el dolo entonces si es por equivocación de seguro te corren pero no vas preso
arto. 246 uso de programas destructivos
quien con la intención de producir un daño adquiera, distribuya o ponga en circulación programas con instrucciones informáticas destructivas que puedan causar perjuicio a los registros, programas o a los equipos de computación será penado.
bien si yo como programador creo un programa no con la intencion no destructiva pero que como en algunos casos ya ha pasado este es modificado su codigo para destrucion y es distribuido bajo mi nombre o “firma” como podria yo defenderme.
esto ya es con carácter de prueba y la carga la tienen el que te acuse no por que lleve tu firma debe ser que vos lo hiciste, se buscan ip, registros informáticos o circunstancias que te vinculen para acusarte, si inclusive deviene de un equipo público la duda razonable te ayuda a ser absuelto
arto. 249 delitos contra señales satelitales protegidas
sera sancionado quien
a-retransmita o distribución de una señal portadora de programas por medios alambicas u otro medio o procedimiento similar.
b-decodifique una señal codificada portadora de programas
d-fabricación, ensamblaje , modificación, importación, exportación, venta, instalación, mantenimiento, arrendamiento, o cualquier otra forma de distribución o comercialización de dispositivos o sistemas que sirvan para decodificar una señal codificada portadora de programas
están muy sospechosas tus preguntas
bien si yo como administrador de redes ofresco un servivio de mantemineto o intalacion de redes y/o computadoras y soy contratado por x persona a realizarles mantenimientos a sus equipos de computos como me catalogarian o como me acusarian a mi como administrador y de mantenimiento y como podria defenderme???
en derecho existe lo que llamamos el dominio del hecho que permite saber si sos autor o no si a vos te contratan pero no podías saber que no se tenía la licencia por que eso es obligación de la empresa que te contrato se te considera un mero instrumento y por ende no tenes responsabilidad
o si por otra parte yo arriendo un apartamento o equipos de computos y las personas a quienes yo ofresco este servicio incurren en una de esas faltas, que papel juego yo????
en este caso en derecho para que exista delito debe haber una acción típica, antijurídica y culpable, cada uno es un elemento necesario si falta uno no se puede proseguir, en tal sentido si existe acción de dar equipos, en el tipo se mira primero si lo que vos hiciste fue necesario para el delito y en este caso así es pero luego se va a ver si esto es imputable a vos, para lo cual se determina si te saliste o no de tu rol en la sociedad y alquilar equipos es un acto normal por lo tanto actuaste dentro de los parámetros normales, además tu conducta no aumento el riesgo para que se cometiera el hecho en consecuencia si no se te puede imputar a vos no hay tipo y si no hay tipo no se puede seguir hasta llegar a la culpabilidad.
arto. 245 destrucción de registros informáticos.
dice quien borre, destruya o inutilice registros informáticos será penado. y se elevara la pena cuando se trate de informacion necesaria para la prestacionde un servicio publico o se trate de un registro oficial.
ahora cuales son esos registro oficial o los servicios prestados que tengan ese tipo de informacion??
que pasaria si por equivocacion yo borrara o destruya de manera involuntaria esos registros???
los servicios públicos si entras a la base de datos de unión fenosa, enacal, enitel son servicios públicos, los registros oficiales son los que tienen las instituciones de los poderes del estado
el derecho penal castiga los hechos dolosos (intencionales) e imprudentes (no intencionales, pero que pudo haber sido previsto) cuando la ley penal no señala si castiga dolo o imprudencia se entiende que castiga el dolo entonces si es por equivocación de seguro te corren pero no vas preso
arto. 246 uso de programas destructivos
quien con la intención de producir un daño adquiera, distribuya o ponga en circulación programas con instrucciones informáticas destructivas que puedan causar perjuicio a los registros, programas o a los equipos de computación será penado.
bien si yo como programador creo un programa no con la intencion no destructiva pero que como en algunos casos ya ha pasado este es modificado su codigo para destrucion y es distribuido bajo mi nombre o “firma” como podria yo defenderme.
esto ya es con carácter de prueba y la carga la tienen el que te acuse no por que lleve tu firma debe ser que vos lo hiciste, se buscan ip, registros informáticos o circunstancias que te vinculen para acusarte, si inclusive deviene de un equipo público la duda razonable te ayuda a ser absuelto
arto. 249 delitos contra señales satelitales protegidas
sera sancionado quien
a-retransmita o distribución de una señal portadora de programas por medios alambicas u otro medio o procedimiento similar.
b-decodifique una señal codificada portadora de programas
d-fabricación, ensamblaje , modificación, importación, exportación, venta, instalación, mantenimiento, arrendamiento, o cualquier otra forma de distribución o comercialización de dispositivos o sistemas que sirvan para decodificar una señal codificada portadora de programas
están muy sospechosas tus preguntas
bien si yo como administrador de redes ofresco un servivio de mantemineto o intalacion de redes y/o computadoras y soy contratado por x persona a realizarles mantenimientos a sus equipos de computos como me catalogarian o como me acusarian a mi como administrador y de mantenimiento y como podria defenderme???
en derecho existe lo que llamamos el dominio del hecho que permite saber si sos autor o no si a vos te contratan pero no podías saber que no se tenía la licencia por que eso es obligación de la empresa que te contrato se te considera un mero instrumento y por ende no tenes responsabilidad
o si por otra parte yo arriendo un apartamento o equipos de computos y las personas a quienes yo ofresco este servicio incurren en una de esas faltas, que papel juego yo????
en este caso en derecho para que exista delito debe haber una acción típica, antijurídica y culpable, cada uno es un elemento necesario si falta uno no se puede proseguir, en tal sentido si existe acción de dar equipos, en el tipo se mira primero si lo que vos hiciste fue necesario para el delito y en este caso así es pero luego se va a ver si esto es imputable a vos, para lo cual se determina si te saliste o no de tu rol en la sociedad y alquilar equipos es un acto normal por lo tanto actuaste dentro de los parámetros normales, además tu conducta no aumento el riesgo para que se cometiera el hecho en consecuencia si no se te puede imputar a vos no hay tipo y si no hay tipo no se puede seguir hasta llegar a la culpabilidad.
INTELIGENCIA DE NEGOCIOS
Se denomina inteligencia empresarial, inteligencia de negocios o BI (del inglés business intelligence) al conjunto de estrategias y herramientas enfocadas a la administración y creación de conocimiento mediante el análisis de datos existentes en una organización o empresa
El término inteligencia empresarial se refiere al uso de datos en una empresa para facilitar la toma de decisiones. Abarca la comprensión del funcionamiento actual de la empresa, bien como la anticipación de acontecimientos futuros, con el objetivo de ofrecer conocimientos para respaldar las decisiones empresariales.
Las herramientas de inteligencia se basan en la utilización de un sistema de información de inteligencia que se forma con distintos datos extraídos de los datos de producción, con información relacionada con la empresa o sus ámbitos y con datos económicos.
Mediante las herramientas y técnicas ELT (extraer, cargar y transformar), o actualmente ETL (extraer, transformar y cargar) se extraen los datos de distintas fuentes, se depuran y preparan (homogeneización de los datos) para luego cargarlos en un almacén de datos.
La vida o el periodo de éxito de un software de inteligencia de negocios dependerá únicamente del nivel de éxito del cual haga en beneficio de la empresa que lo usa, si esta empresa es capaz de incrementar su nivel financiero, administrativo y sus decisiones mejoran el accionar de la empresa, la inteligencia de negocios usada estará presente por mucho tiempo, de lo contrario sera sustituido por otro que aporte mejores resultados y mas precisos.
Por último, las herramientas de inteligencia analítica posibilitan el modelado de las representaciones con base en consultas para crear un cuadro de mando integral que sirve de base para la presentación de informes.
Este conjunto de herramientas y metodologías tienen en común las siguientes características:
• Accesibilidad a la información. Los datos son la fuente principal de este concepto. Lo primero que deben garantizar este tipo de herramientas y técnicas será el acceso de los usuarios a los datos con independencia de la procedencia de estos.
• Apoyo en la toma de decisiones. Se busca ir más allá en la presentación de la información, de manera que los usuarios tengan acceso a herramientas de análisis que les permitan seleccionar y manipular sólo aquellos datos que les interesen.
• Orientación al usuario final. Se busca independencia entre los conocimientos técnicos de los usuarios y su capacidad para utilizar estas herramientas.
De acuerdo a su nivel de complejidad se pueden clasificar las soluciones de Business Intelligence en:
• Consultas e informes simples (Querys and reports).
• Cubos OLAP (On-Line Analytic Processing).
• Data Mining o minería de datos.
• Sistemas de previsión empresarial; predicción mediante estudio de series temporales (ejemplo: Previsión de ventas).
El término inteligencia empresarial se refiere al uso de datos en una empresa para facilitar la toma de decisiones. Abarca la comprensión del funcionamiento actual de la empresa, bien como la anticipación de acontecimientos futuros, con el objetivo de ofrecer conocimientos para respaldar las decisiones empresariales.
Las herramientas de inteligencia se basan en la utilización de un sistema de información de inteligencia que se forma con distintos datos extraídos de los datos de producción, con información relacionada con la empresa o sus ámbitos y con datos económicos.
Mediante las herramientas y técnicas ELT (extraer, cargar y transformar), o actualmente ETL (extraer, transformar y cargar) se extraen los datos de distintas fuentes, se depuran y preparan (homogeneización de los datos) para luego cargarlos en un almacén de datos.
La vida o el periodo de éxito de un software de inteligencia de negocios dependerá únicamente del nivel de éxito del cual haga en beneficio de la empresa que lo usa, si esta empresa es capaz de incrementar su nivel financiero, administrativo y sus decisiones mejoran el accionar de la empresa, la inteligencia de negocios usada estará presente por mucho tiempo, de lo contrario sera sustituido por otro que aporte mejores resultados y mas precisos.
Por último, las herramientas de inteligencia analítica posibilitan el modelado de las representaciones con base en consultas para crear un cuadro de mando integral que sirve de base para la presentación de informes.
Este conjunto de herramientas y metodologías tienen en común las siguientes características:
• Accesibilidad a la información. Los datos son la fuente principal de este concepto. Lo primero que deben garantizar este tipo de herramientas y técnicas será el acceso de los usuarios a los datos con independencia de la procedencia de estos.
• Apoyo en la toma de decisiones. Se busca ir más allá en la presentación de la información, de manera que los usuarios tengan acceso a herramientas de análisis que les permitan seleccionar y manipular sólo aquellos datos que les interesen.
• Orientación al usuario final. Se busca independencia entre los conocimientos técnicos de los usuarios y su capacidad para utilizar estas herramientas.
De acuerdo a su nivel de complejidad se pueden clasificar las soluciones de Business Intelligence en:
• Consultas e informes simples (Querys and reports).
• Cubos OLAP (On-Line Analytic Processing).
• Data Mining o minería de datos.
• Sistemas de previsión empresarial; predicción mediante estudio de series temporales (ejemplo: Previsión de ventas).
virtualizacion
En informática, virtualización se refiere a la abstracción de los recursos de una computadora, llamada Hypervisor o VMM (Virtual Machine Monitor) que crea una capa de abstracción entre el hardware de la máquina física (host) y el sistema operativo de la máquina virtual (virtual machine, guest), siendo un medio para crear una versión virtual de un dispositivo o recurso, como un servidor, un dispositivo de almacenamiento, una red o incluso un sistema operativo, donde se divide el recurso en uno o más entornos de ejecución.
Esta capa de software (VMM) maneja, gestiona y arbitra los cuatro recursos principales de una computadora (CPU, Memoria, Red, Almacenamiento) y así podrá repartir dinámicamente dichos recursos entre todas las máquinas virtuales definidas en el computador central. De modo que nos permite tener varios ordenadores virtuales ejecutándose sobre el mismo ordenador físico.
Tal término es antiguo; se viene usando desde 1960, y ha sido aplicado a diferentes aspectos y ámbitos de la informática, desde sistemas computacionales completos, hasta capacidades o componentes individuales. Lo más importante en este tema de virtualización es la de ocultar detalles técnicos a través de la encapsulación.
La virtualización se encarga de crear un interfaz externo que esconde una implementación subyacente mediante la combinación de recursos en locaciones físicas diferentes, o por medio de la simplificación del sistema de control.
Un avanzado desarrollo de nuevas plataformas y tecnologías de virtualización han hecho que se vuelva a prestar atención a este importante concepto. De modo similar al uso de términos como “abstracción” y “orientación a objetos”, virtualización es usado en muchos contextos diferentes.
Este concepto que es realmente interesante y que se lleva desarrollando desde hace muchos años, parece que finalmente está encontrando sus caminos productivos y de desarrollo para profesionales.
La máquina virtual en general es un sistema operativo completo que corre como si estuviera instalado en una plataforma de hardware autónoma. Típicamente muchas máquinas virtuales son simuladas en un computador central. Para que el sistema operativo “guest” funcione, la simulación debe ser lo suficientemente grande (siempre dependiendo del tipo de virtualización).
Esta involucra la simulación de máquinas virtuales.
La virtualización de plataforma se lleva a cabo en una plataforma de hardware mediante un software "host" (en castellano “anfitrión”), que es un programa de control que simula un entorno computacional (máquina virtual) para su software "guest" (en castellano "invitado"). Este software “guest”, que generalmente es un sistema operativo completo, se ejecuta como si estuviera instalado en una plataforma de hardware autónoma.
Típicamente muchas máquinas virtuales son simuladas en una máquina física dada. Para que el sistema operativo “guest” funcione, la simulación debe ser lo suficientemente grande como para soportar todas las interfaces externas de los sistemas guest, las cuales se pueden incluir (todo esto dependiendo del tipo de virtualización) los drivers de hardware.
Tipos de Virtualización de plataforma
A continuación se enunciarán algunos tipos de virtualización.
Virtualización completa
Esta es en donde la máquina virtual simula un hardware suficiente para permitir un sistema operativo “guest” sin modificar (uno diseñado para la misma CPU) para correr de forma aislada. Típicamente, muchas instancias pueden correr al mismo tiempo.
Este enfoque fue el pionero en 1966 con CP-40 y CP[-67]/CMS, predecesores de la familia de máquinas virtuales de IBM.
Ejemplos
• VMware Workstation
• VMware Server
• VirtualBox
• Parallels Desktop
• Virtual Iron
• Adeos
• Mac-on-Linux
• Win4BSD
• Win4Lin Pro
• y z/VM
• openvz
• Oracle VM
• XenServer
• Microsoft Virtual PC 2007
• Hyper-V
Virtualización parcial
“Address Space Virtualization”.
La máquina virtual simula múltiples instancias de gran parte (pero no de todo) del entorno subyacente del hardware, particularmente address spaces.
Tal entorno acepta compartir recursos y alojar procesos, pero no permite instancias separadas de sistemas operativos “guest”. Aunque no es vista como dentro de la categoría de máquina virtual, históricamente éste fue un importante acercamiento, y lo usaron en sistemas como CTSS, el experimental IBM M44/44X, y podría mencionarse que en sistemas como OS/VS1, OS/VS2 y MVS.
Virtualización por S.O
Virtualizar significa instalar un sistema operativo dentro de otro al que se le llama guest (invitado), mediante el uso de una máquina virtual.
Frecuentemente denominada virtualización compartida del Sistema Operativo o virtualización del SO, la virtualización del Sistema Operativo virtualiza servidores en la capa del sistema operativo (kernel).
Este método de virtualización crea particiones aisladas o entornos virtuales (VEs) en un único servidor físico e instancia de SO para así maximizar los esfuerzos de administración del hardware, software y centro de datos.
La Virtualización de Hypervisor tiene una capa base (generalmente un kernel, Linux que se muestra aquí como un hypervisor o SO estándar) que se carga directamente en el servidor base. Para asignar hardware y recursos a las máquinas virtuales (VMs), es recomendable que todo el hardware del servidor esté virtualizado.
La siguiente capa superior muestra cada chip, placa, etc. que debe virtualizarse para que así pueda ser asignado a las VMs. Una vez en la VM, hay un copia completa de un sistema operativo y finalmente la aplicación o carga de trabajo.
La Virtualización de SO mejora el rendimiento, gestión y eficiencia.
En la base reside un sistema operativo huésped estándar, en el caso de Parallels Virtuozzo que incluye Windows y Linux. A continuación encontramos la capa de virtualización, con un sistema de archivos propietario y una capa de abstracción de servicio de kernel que garantiza el aislamiento y seguridad de los recursos entre distintos contenedores.
La capa de virtualización hace que cada uno de los contenedores aparezca como servidor autónomo. Finalmente, el contenedor aloja la aplicación o carga de trabajo.
Diferencias entre virtualizar un Sistema operativo e instalarlo.
Virtualizar el sistema operativo es una opción interesante si no queremos instalar dos sistemas operativos en el mismo ordenador, pero si por el contrario lo que hacemos es instalarlo, todos los sistemas operativos que tengamos instalados funcionaran de la misma manera que si estuvieran instalados en distintos ordenadores.
El único y pequeño inconveniente es que necesitamos un gestor de arranque que al encender nuestro ordenador nos de la opción de elegir que sistema operativo queremos utilizar, lo que conlleva a que si por ejemplo estamos en Windows y queremos cambiar a Linux deberíamos reiniciar nuestro ordenador.
La virtualización por el contrario permite cambiar de sistema operativo como si se tratase de cualquier otro programa, sin embargo, esta agilidad tiene la desventaja de que un sistema operativo virtualizado no es tan potente como uno que ya estuviera instalado.
Retos de la Virtualización
• Índices de utilización más altos — Antes de la virtualización, los índices de utilización del servidor y almacenamiento en los centros de datos de la empresa rondaban menos del 50% (de hecho, del 10% al 15% de los índices de utilización fueron los mas comunes). A través de la virtualización, las cargas de trabajo pueden ser encapsuladas y transferidas a los sistemas inactivos o sin uso — lo cual significa que los sistemas existentes pueden ser consolidados, así que las compras de capacidad adicional del servidor pueden ser retrasadas o evitadas.
• Consolidación de Recursos — La virtualización permite la consolidación de múltiples recursos de TI. Más allá de la consolidación de almacenamiento, la virtualización proporciona una oportunidad para consolidar la arquitectura de sistemas, infraestructura de aplicación, datos y base de datos, interfaces, redes, escritorios, e incluso procesos de negocios, resultando en ahorros de costo y mayor eficiencia.
• Uso/costo menor energía — La electricidad requerida para que funcionen los centros de datos de clase empresarial ya no está disponible en suministros ilimitados, y el costo está en una espiral ascendente. Por cada dólar gastado en un servidor hardware, un dólar adicional es gastado en energía (incluyendo el costo de los servidores en función y los enfriadores). Utilizando virtualización para consolidar hace posible cortar el consumo total de energía y ahorrar dinero de una manera significativa.
• Ahorros de espacio — La extensión del servidor permanece como un serio problema en la mayoría de los centros de datos empresariales, pero la expansión del centro de datos no es siempre una opción, con los costos de construcción promediando miles de dólares por pie cuadrado. La virtualización puede aliviar la tensión mediante la consolidación de muchos sistemas virtuales en menos sistemas físicos.
• Recuperación de desastre/continuidad del negocio — La virtualización puede incrementar la disponibilidad de los índices del nivel de servicio en general y proporcionar nuevas opciones de soluciones para la recuperación de desastre.
• Costos de operación reducidos — La empresa promedio gasta $8 dólares en mantenimiento por cada $1 dólar invertido en nueva infraestructura.
La virtualización puede cambiar el radio de servicio-a administración reducir la total carga de trabajo administrativo, y cortar el total de costos de operación.
Ventajas de la Virtualización
• Rápida incorporación de nuevos recursos para los servidores virtualizados.
• Reducción de los costes de espacio y consumo necesario de forma proporcional al índice de consolidación logrado (Estimación media 10:1).
• Administración global centralizada y simplificada.
• Nos permite gestionar nuestro CPD como un pool de recursos o agrupación de toda la capacidad de procesamiento, memoria, red y almacenamiento disponible en nuestra infraestructura
• Mejora en los procesos de clonación y copia de sistemas: Mayor facilidad para la creación de entornos de test que permiten poner en marcha nuevas aplicaciones sin impactar a la producción, agilizando el proceso de las pruebas.
• Aislamiento : un fallo general de sistema de una máquina virtual no afecta al resto de máquinas virtuales.
• Mejora de TCO y ROI.
• No sólo aporta el beneficio directo en la reducción del hardware necesario, sino también los costes asociados.
• Reduce los tiempos de parada.
• Migración en caliente de máquinas virtuales (sin pérdida de servicio) de un servidor físico a otro, eliminando la necesidad de paradas planificadas por mantenimiento de los servidores físicos.
• Balanceo dinámico de máquinas virtuales entre los servidores físicos que componen el pool de recursos, garantizando que cada máquina virtual ejecute en el servidor físico más adecuado y proporcionando un consumo de recursos homogéneo y óptimo en toda la infraestructura.
Programas útiles para virtualizar sistemas operativos
Como todos conocemos existen dos tipos de programas:
los que son de pago y los que no. Dentro de los programas pagos encontramos uno de los más famosos: el VMware, que es uno de los referentes en el mercado.
A pesar de ser pago también existe una versión más básica que es gratuita, VMware Player, que permite virtualizar a través de una máquina virtual ya configurada. También existen webs que nos permiten rellenar un formulario y descargarnos nuestra máquina virtual a nuestro gusto como EasyVMX! Parallels Virtuozzo Containers, es otro de los programas pagos más famosos, que permite la virtualización a nivel de sistema operativo o hardware Parallels Bare Metal.
Típicamente suele emplearse para virtualizar Windows y, en menor medida, GNU/Linux. Dentro de los programas gratuitos tenemos el Virtual PC de Microsoft, que es un producto de Windows, compatible con versiones avanzadas de XP y Vista.
Dentro de los programas de código libre están el Xen, OpenVZ y VirtualBox, que funcionan tanto en Mac OS, en Windows como en GNU/Linux y todos permiten virtualizar los tres sistemas operativos más famosos.
Tipos de virtualización
La virtualización se puede hacer desde un sistema operativo Windows, ya sea XP, Vista u otra versión que sea compatible con el programa que utilicemos, en el que virtualizamos otro sistema operativo como Linux o viceversa, que tengamos instalado Linux y queramos virtualizar una versión de Windows.
Virtualización por HW (Hardware)
Virtualización asistida por Hardware son extensiones introducidas en la arquitectura de procesador x86 para facilitar las tareas de virtualización al software corriendo sobre el sistema.
Si cuatro son los niveles de privilegio o "anillos" de ejecución en esta arquitectura, desde el cero o de mayor privilegio, que se destina a las operaciones del kernel de SO, al tres, con privilegios menores que es el utilizado por los procesos de usuario, en esta nueva arquitectura se introduce un anillo interior o ring -1 que será el que un hypervisor o Virtual Machine Monitor usará para aislar todas las capas superiores de software de las operaciones de virtualización.
La virtualización de almacenamiento
Se refiere al proceso de abstraer el almacenamiento lógico del almacenamiento físico, y es comúnmente usado en SANs ("Storage Area Network" Red de área de almacenamiento).
Los recursos de almacenamiento físicos son agregados al "storage pool" (almacén de almacenamiento) , del cual es creado el almacenamiento lógico.
Particionamiento
Es la división de un solo recurso (casi siempre grande), como en espacio de disco o ancho de banda de la red, en un número más pequeño y con recursos del mismo tipo que son más fáciles de utilizar. Esto es muchas veces llamado “zoning”, especialmente en almacenamiento de red.
Máquina virtual
La entenderemos básicamente como un sistema de virtualización, denominado "virtualización de servidores" , que dependiendo de la función que esta deba de desempeñar en la organización, todas ellas dependen del hardware y dispositivos físicos, pero casi siempre trabajan como modelos totalmente independientes de este. Cada una de ellas con sus propias CPUs virtuales, tarjetas de red, discos etc. Lo cual podría especificarse como una compartición de recursos locales físicos entre varios dispositivos virtuales.
Virtualización relacionada con el Green IT
En estudios realizados1 se han basado sobre el ahorro de energía que genera la empresa para sus clientes, muestra que las soluciones de virtualización reducen los costos económicos y emisiones de CO2.
Esto se puede llevar acabo fusionando varias máquinas en un solo servidor, con lo que disminuyendo el consumo energético y los costos; ahorrando 7.000 kilovatios hora o cuatro toneladas de emisiones de CO2 al año.
Los PCs virtualizados pueden reducir el consumo de energía y los costos en un 35 por ciento. hoy en día, la mayor parte consumen entre un 70 y un 80% de su energía estimada. Otra medida es la desconexión de los servidores y desktops durante los períodos de inactividad, como por la noche o los fines de semana, con lo que se puede ahorrar aproximadamente un 25 por ciento en su consumo energético. Las empresas hoy en día son las más interesadas en el tema de la virtualización, ya que para ellas es muy importante reducir costos y energía principalmente.
La virtualización es un término amplio que se refiere a la abstracción de los recursos de un computador.
El objetivo de virtualización es la de implementar un interfaz ocultando muchas veces los detalles técnicos, a través de la encapsulación y la abstracción.
Por tanto, la virtualización crea un interfaz externo que esconde una implementación subyacente, que puede ser mediante la fragmentación de un recurso, por ejemplo, un procesador de tiempo compartido o un espacio de direcciones de memoria virtual, o sino también mediante la combinación de varios recursos físicos diferentes para ser usados como si fueran uno solo.
• Virtualización de plataformas:
consiste en separar un sistema operativo de los recursos de la plataforma subyacente
• Virtualización de recursos:
consiste en la virtualización de recursos específicos del sistema, como la memoria virtual, el almacenamiento virtual comúnmente usado en redes de almacenamiento (Storage Area Networks, SAN), las interfaces de red virtuales o las redes virtuales.
En 1996 se utilizo el primer computador que utilizó virtualización completa. Era capaz de ejecutar 14 entornos virtuales, cada uno con un tamaño de memoria virtual de 256 K.
En la virtualización completa se simula un hardware suficiente para permitir un sistema operativo huesped sin modificar,para correr de forma aislada.
En la para-virtualización no se simula necesariamente un hardware, sino que se ofrece un API especial que sólo puede usarse mediante la modificación del sistema operativo huesped.
La virtualización a nivel de sistema operativo consiste en virtualizar un servidor físico a nivel del sistema operativo permitiendo múltiples servidores virtuales aislados y seguros en un solo servidor físico.
Con la virtualización de aplicaciones, las aplicaciones virtuales se ejecutan en un pequeño entorno virtual que actúa como una capa entre la aplicación y el sistema operativo, eliminando los conflictos entre aplicaciones y entre aplicaciones y el sistema operativo. La virtualización permite no solo el ahorro del consumo de energía, sino que también la disminución en la emisión de carbono.
Infraestructura Virtual
Una infraestructura virtual consiste en el mapping dinámico de recursos físicos en función de las necesidades de la empresa. Una máquina virtual representa los recursos físicos de un único ordenador, mientras que una infraestructura virtual representa los recursos físicos de la totalidad del entorno de TI, aglutinando ordenadores x86, así como su red y almacenamiento asociados, en un pool unificado de recursos de TI.
Estructuralmente, una infraestructura virtual consta de los siguientes componentes:
• Hipervisor de un solo nodo para hacer posible la virtualización de todos los ordenadores x86.
• Un conjunto de servicios de infraestructura de sistemas distribuida basada en la virtualización, como gestión de recursos, para optimizar los recursos disponibles entre las máquinas virtuales.
• Soluciones de automatización que proporcionen capacidades especiales para optimizar un proceso de TI concreto, como provisioning o recuperación ante desastres.
Mediante la separación de la totalidad del entorno de software de su infraestructura de hardware subyacente, la virtualización hace posible la reunión de varios servidores, estructuras de almacenamiento y redes en pools compartidos de recursos que se pueden asignar de forma dinámica, segura y fiable a las aplicaciones según sea necesario.
Este enfoque innovador permite a las organizaciones crear una infraestructura informática con altos niveles de utilización, disponibilidad, automatización y flexibilidad utilizando componentes básicos de servidores económicos y estándar del sector.
Ventajas de la Infraestructura Virtual
Las soluciones de infraestructura virtual son ideales para entornos de producción en parte debido a que se ejecutan en servidores y escritorios estándar de la industria y son compatibles con una amplia gama de sistemas operativos y entornos de aplicación, así como de infraestructuras de red y almacenamiento. Se han diseñado las soluciones para que funcionen de manera independiente del hardware y del sistema operativo y poder brindar a los clientes amplias posibilidades de elección de plataforma.
Como resultado, son soluciones que proporcionan un punto de integración clave para los proveedores de hardware y gestión de infraestructuras de cara a ofrecer un valor único y aplicable por igual en todos los entornos de aplicación y sistemas operativos.
Las empresas que han adoptado estas soluciones de infraestructura virtual nos han comunicado unos clarísimos resultados positivos, entre ellos:
• Índices de utilización del 60 al 80% para servidores x86 (frente al 5 a 15% en hardware no virtualizado)
• Capacidad para el provisioning de nuevas aplicaciones en cuestión de minutos, en lugar de días o semanas
• 85% de mejora en tiempo de recuperación de paradas imprevistas
Esta capa de software (VMM) maneja, gestiona y arbitra los cuatro recursos principales de una computadora (CPU, Memoria, Red, Almacenamiento) y así podrá repartir dinámicamente dichos recursos entre todas las máquinas virtuales definidas en el computador central. De modo que nos permite tener varios ordenadores virtuales ejecutándose sobre el mismo ordenador físico.
Tal término es antiguo; se viene usando desde 1960, y ha sido aplicado a diferentes aspectos y ámbitos de la informática, desde sistemas computacionales completos, hasta capacidades o componentes individuales. Lo más importante en este tema de virtualización es la de ocultar detalles técnicos a través de la encapsulación.
La virtualización se encarga de crear un interfaz externo que esconde una implementación subyacente mediante la combinación de recursos en locaciones físicas diferentes, o por medio de la simplificación del sistema de control.
Un avanzado desarrollo de nuevas plataformas y tecnologías de virtualización han hecho que se vuelva a prestar atención a este importante concepto. De modo similar al uso de términos como “abstracción” y “orientación a objetos”, virtualización es usado en muchos contextos diferentes.
Este concepto que es realmente interesante y que se lleva desarrollando desde hace muchos años, parece que finalmente está encontrando sus caminos productivos y de desarrollo para profesionales.
La máquina virtual en general es un sistema operativo completo que corre como si estuviera instalado en una plataforma de hardware autónoma. Típicamente muchas máquinas virtuales son simuladas en un computador central. Para que el sistema operativo “guest” funcione, la simulación debe ser lo suficientemente grande (siempre dependiendo del tipo de virtualización).
Esta involucra la simulación de máquinas virtuales.
La virtualización de plataforma se lleva a cabo en una plataforma de hardware mediante un software "host" (en castellano “anfitrión”), que es un programa de control que simula un entorno computacional (máquina virtual) para su software "guest" (en castellano "invitado"). Este software “guest”, que generalmente es un sistema operativo completo, se ejecuta como si estuviera instalado en una plataforma de hardware autónoma.
Típicamente muchas máquinas virtuales son simuladas en una máquina física dada. Para que el sistema operativo “guest” funcione, la simulación debe ser lo suficientemente grande como para soportar todas las interfaces externas de los sistemas guest, las cuales se pueden incluir (todo esto dependiendo del tipo de virtualización) los drivers de hardware.
Tipos de Virtualización de plataforma
A continuación se enunciarán algunos tipos de virtualización.
Virtualización completa
Esta es en donde la máquina virtual simula un hardware suficiente para permitir un sistema operativo “guest” sin modificar (uno diseñado para la misma CPU) para correr de forma aislada. Típicamente, muchas instancias pueden correr al mismo tiempo.
Este enfoque fue el pionero en 1966 con CP-40 y CP[-67]/CMS, predecesores de la familia de máquinas virtuales de IBM.
Ejemplos
• VMware Workstation
• VMware Server
• VirtualBox
• Parallels Desktop
• Virtual Iron
• Adeos
• Mac-on-Linux
• Win4BSD
• Win4Lin Pro
• y z/VM
• openvz
• Oracle VM
• XenServer
• Microsoft Virtual PC 2007
• Hyper-V
Virtualización parcial
“Address Space Virtualization”.
La máquina virtual simula múltiples instancias de gran parte (pero no de todo) del entorno subyacente del hardware, particularmente address spaces.
Tal entorno acepta compartir recursos y alojar procesos, pero no permite instancias separadas de sistemas operativos “guest”. Aunque no es vista como dentro de la categoría de máquina virtual, históricamente éste fue un importante acercamiento, y lo usaron en sistemas como CTSS, el experimental IBM M44/44X, y podría mencionarse que en sistemas como OS/VS1, OS/VS2 y MVS.
Virtualización por S.O
Virtualizar significa instalar un sistema operativo dentro de otro al que se le llama guest (invitado), mediante el uso de una máquina virtual.
Frecuentemente denominada virtualización compartida del Sistema Operativo o virtualización del SO, la virtualización del Sistema Operativo virtualiza servidores en la capa del sistema operativo (kernel).
Este método de virtualización crea particiones aisladas o entornos virtuales (VEs) en un único servidor físico e instancia de SO para así maximizar los esfuerzos de administración del hardware, software y centro de datos.
La Virtualización de Hypervisor tiene una capa base (generalmente un kernel, Linux que se muestra aquí como un hypervisor o SO estándar) que se carga directamente en el servidor base. Para asignar hardware y recursos a las máquinas virtuales (VMs), es recomendable que todo el hardware del servidor esté virtualizado.
La siguiente capa superior muestra cada chip, placa, etc. que debe virtualizarse para que así pueda ser asignado a las VMs. Una vez en la VM, hay un copia completa de un sistema operativo y finalmente la aplicación o carga de trabajo.
La Virtualización de SO mejora el rendimiento, gestión y eficiencia.
En la base reside un sistema operativo huésped estándar, en el caso de Parallels Virtuozzo que incluye Windows y Linux. A continuación encontramos la capa de virtualización, con un sistema de archivos propietario y una capa de abstracción de servicio de kernel que garantiza el aislamiento y seguridad de los recursos entre distintos contenedores.
La capa de virtualización hace que cada uno de los contenedores aparezca como servidor autónomo. Finalmente, el contenedor aloja la aplicación o carga de trabajo.
Diferencias entre virtualizar un Sistema operativo e instalarlo.
Virtualizar el sistema operativo es una opción interesante si no queremos instalar dos sistemas operativos en el mismo ordenador, pero si por el contrario lo que hacemos es instalarlo, todos los sistemas operativos que tengamos instalados funcionaran de la misma manera que si estuvieran instalados en distintos ordenadores.
El único y pequeño inconveniente es que necesitamos un gestor de arranque que al encender nuestro ordenador nos de la opción de elegir que sistema operativo queremos utilizar, lo que conlleva a que si por ejemplo estamos en Windows y queremos cambiar a Linux deberíamos reiniciar nuestro ordenador.
La virtualización por el contrario permite cambiar de sistema operativo como si se tratase de cualquier otro programa, sin embargo, esta agilidad tiene la desventaja de que un sistema operativo virtualizado no es tan potente como uno que ya estuviera instalado.
Retos de la Virtualización
• Índices de utilización más altos — Antes de la virtualización, los índices de utilización del servidor y almacenamiento en los centros de datos de la empresa rondaban menos del 50% (de hecho, del 10% al 15% de los índices de utilización fueron los mas comunes). A través de la virtualización, las cargas de trabajo pueden ser encapsuladas y transferidas a los sistemas inactivos o sin uso — lo cual significa que los sistemas existentes pueden ser consolidados, así que las compras de capacidad adicional del servidor pueden ser retrasadas o evitadas.
• Consolidación de Recursos — La virtualización permite la consolidación de múltiples recursos de TI. Más allá de la consolidación de almacenamiento, la virtualización proporciona una oportunidad para consolidar la arquitectura de sistemas, infraestructura de aplicación, datos y base de datos, interfaces, redes, escritorios, e incluso procesos de negocios, resultando en ahorros de costo y mayor eficiencia.
• Uso/costo menor energía — La electricidad requerida para que funcionen los centros de datos de clase empresarial ya no está disponible en suministros ilimitados, y el costo está en una espiral ascendente. Por cada dólar gastado en un servidor hardware, un dólar adicional es gastado en energía (incluyendo el costo de los servidores en función y los enfriadores). Utilizando virtualización para consolidar hace posible cortar el consumo total de energía y ahorrar dinero de una manera significativa.
• Ahorros de espacio — La extensión del servidor permanece como un serio problema en la mayoría de los centros de datos empresariales, pero la expansión del centro de datos no es siempre una opción, con los costos de construcción promediando miles de dólares por pie cuadrado. La virtualización puede aliviar la tensión mediante la consolidación de muchos sistemas virtuales en menos sistemas físicos.
• Recuperación de desastre/continuidad del negocio — La virtualización puede incrementar la disponibilidad de los índices del nivel de servicio en general y proporcionar nuevas opciones de soluciones para la recuperación de desastre.
• Costos de operación reducidos — La empresa promedio gasta $8 dólares en mantenimiento por cada $1 dólar invertido en nueva infraestructura.
La virtualización puede cambiar el radio de servicio-a administración reducir la total carga de trabajo administrativo, y cortar el total de costos de operación.
Ventajas de la Virtualización
• Rápida incorporación de nuevos recursos para los servidores virtualizados.
• Reducción de los costes de espacio y consumo necesario de forma proporcional al índice de consolidación logrado (Estimación media 10:1).
• Administración global centralizada y simplificada.
• Nos permite gestionar nuestro CPD como un pool de recursos o agrupación de toda la capacidad de procesamiento, memoria, red y almacenamiento disponible en nuestra infraestructura
• Mejora en los procesos de clonación y copia de sistemas: Mayor facilidad para la creación de entornos de test que permiten poner en marcha nuevas aplicaciones sin impactar a la producción, agilizando el proceso de las pruebas.
• Aislamiento : un fallo general de sistema de una máquina virtual no afecta al resto de máquinas virtuales.
• Mejora de TCO y ROI.
• No sólo aporta el beneficio directo en la reducción del hardware necesario, sino también los costes asociados.
• Reduce los tiempos de parada.
• Migración en caliente de máquinas virtuales (sin pérdida de servicio) de un servidor físico a otro, eliminando la necesidad de paradas planificadas por mantenimiento de los servidores físicos.
• Balanceo dinámico de máquinas virtuales entre los servidores físicos que componen el pool de recursos, garantizando que cada máquina virtual ejecute en el servidor físico más adecuado y proporcionando un consumo de recursos homogéneo y óptimo en toda la infraestructura.
Programas útiles para virtualizar sistemas operativos
Como todos conocemos existen dos tipos de programas:
los que son de pago y los que no. Dentro de los programas pagos encontramos uno de los más famosos: el VMware, que es uno de los referentes en el mercado.
A pesar de ser pago también existe una versión más básica que es gratuita, VMware Player, que permite virtualizar a través de una máquina virtual ya configurada. También existen webs que nos permiten rellenar un formulario y descargarnos nuestra máquina virtual a nuestro gusto como EasyVMX! Parallels Virtuozzo Containers, es otro de los programas pagos más famosos, que permite la virtualización a nivel de sistema operativo o hardware Parallels Bare Metal.
Típicamente suele emplearse para virtualizar Windows y, en menor medida, GNU/Linux. Dentro de los programas gratuitos tenemos el Virtual PC de Microsoft, que es un producto de Windows, compatible con versiones avanzadas de XP y Vista.
Dentro de los programas de código libre están el Xen, OpenVZ y VirtualBox, que funcionan tanto en Mac OS, en Windows como en GNU/Linux y todos permiten virtualizar los tres sistemas operativos más famosos.
Tipos de virtualización
La virtualización se puede hacer desde un sistema operativo Windows, ya sea XP, Vista u otra versión que sea compatible con el programa que utilicemos, en el que virtualizamos otro sistema operativo como Linux o viceversa, que tengamos instalado Linux y queramos virtualizar una versión de Windows.
Virtualización por HW (Hardware)
Virtualización asistida por Hardware son extensiones introducidas en la arquitectura de procesador x86 para facilitar las tareas de virtualización al software corriendo sobre el sistema.
Si cuatro son los niveles de privilegio o "anillos" de ejecución en esta arquitectura, desde el cero o de mayor privilegio, que se destina a las operaciones del kernel de SO, al tres, con privilegios menores que es el utilizado por los procesos de usuario, en esta nueva arquitectura se introduce un anillo interior o ring -1 que será el que un hypervisor o Virtual Machine Monitor usará para aislar todas las capas superiores de software de las operaciones de virtualización.
La virtualización de almacenamiento
Se refiere al proceso de abstraer el almacenamiento lógico del almacenamiento físico, y es comúnmente usado en SANs ("Storage Area Network" Red de área de almacenamiento).
Los recursos de almacenamiento físicos son agregados al "storage pool" (almacén de almacenamiento) , del cual es creado el almacenamiento lógico.
Particionamiento
Es la división de un solo recurso (casi siempre grande), como en espacio de disco o ancho de banda de la red, en un número más pequeño y con recursos del mismo tipo que son más fáciles de utilizar. Esto es muchas veces llamado “zoning”, especialmente en almacenamiento de red.
Máquina virtual
La entenderemos básicamente como un sistema de virtualización, denominado "virtualización de servidores" , que dependiendo de la función que esta deba de desempeñar en la organización, todas ellas dependen del hardware y dispositivos físicos, pero casi siempre trabajan como modelos totalmente independientes de este. Cada una de ellas con sus propias CPUs virtuales, tarjetas de red, discos etc. Lo cual podría especificarse como una compartición de recursos locales físicos entre varios dispositivos virtuales.
Virtualización relacionada con el Green IT
En estudios realizados1 se han basado sobre el ahorro de energía que genera la empresa para sus clientes, muestra que las soluciones de virtualización reducen los costos económicos y emisiones de CO2.
Esto se puede llevar acabo fusionando varias máquinas en un solo servidor, con lo que disminuyendo el consumo energético y los costos; ahorrando 7.000 kilovatios hora o cuatro toneladas de emisiones de CO2 al año.
Los PCs virtualizados pueden reducir el consumo de energía y los costos en un 35 por ciento. hoy en día, la mayor parte consumen entre un 70 y un 80% de su energía estimada. Otra medida es la desconexión de los servidores y desktops durante los períodos de inactividad, como por la noche o los fines de semana, con lo que se puede ahorrar aproximadamente un 25 por ciento en su consumo energético. Las empresas hoy en día son las más interesadas en el tema de la virtualización, ya que para ellas es muy importante reducir costos y energía principalmente.
La virtualización es un término amplio que se refiere a la abstracción de los recursos de un computador.
El objetivo de virtualización es la de implementar un interfaz ocultando muchas veces los detalles técnicos, a través de la encapsulación y la abstracción.
Por tanto, la virtualización crea un interfaz externo que esconde una implementación subyacente, que puede ser mediante la fragmentación de un recurso, por ejemplo, un procesador de tiempo compartido o un espacio de direcciones de memoria virtual, o sino también mediante la combinación de varios recursos físicos diferentes para ser usados como si fueran uno solo.
• Virtualización de plataformas:
consiste en separar un sistema operativo de los recursos de la plataforma subyacente
• Virtualización de recursos:
consiste en la virtualización de recursos específicos del sistema, como la memoria virtual, el almacenamiento virtual comúnmente usado en redes de almacenamiento (Storage Area Networks, SAN), las interfaces de red virtuales o las redes virtuales.
En 1996 se utilizo el primer computador que utilizó virtualización completa. Era capaz de ejecutar 14 entornos virtuales, cada uno con un tamaño de memoria virtual de 256 K.
En la virtualización completa se simula un hardware suficiente para permitir un sistema operativo huesped sin modificar,para correr de forma aislada.
En la para-virtualización no se simula necesariamente un hardware, sino que se ofrece un API especial que sólo puede usarse mediante la modificación del sistema operativo huesped.
La virtualización a nivel de sistema operativo consiste en virtualizar un servidor físico a nivel del sistema operativo permitiendo múltiples servidores virtuales aislados y seguros en un solo servidor físico.
Con la virtualización de aplicaciones, las aplicaciones virtuales se ejecutan en un pequeño entorno virtual que actúa como una capa entre la aplicación y el sistema operativo, eliminando los conflictos entre aplicaciones y entre aplicaciones y el sistema operativo. La virtualización permite no solo el ahorro del consumo de energía, sino que también la disminución en la emisión de carbono.
Infraestructura Virtual
Una infraestructura virtual consiste en el mapping dinámico de recursos físicos en función de las necesidades de la empresa. Una máquina virtual representa los recursos físicos de un único ordenador, mientras que una infraestructura virtual representa los recursos físicos de la totalidad del entorno de TI, aglutinando ordenadores x86, así como su red y almacenamiento asociados, en un pool unificado de recursos de TI.
Estructuralmente, una infraestructura virtual consta de los siguientes componentes:
• Hipervisor de un solo nodo para hacer posible la virtualización de todos los ordenadores x86.
• Un conjunto de servicios de infraestructura de sistemas distribuida basada en la virtualización, como gestión de recursos, para optimizar los recursos disponibles entre las máquinas virtuales.
• Soluciones de automatización que proporcionen capacidades especiales para optimizar un proceso de TI concreto, como provisioning o recuperación ante desastres.
Mediante la separación de la totalidad del entorno de software de su infraestructura de hardware subyacente, la virtualización hace posible la reunión de varios servidores, estructuras de almacenamiento y redes en pools compartidos de recursos que se pueden asignar de forma dinámica, segura y fiable a las aplicaciones según sea necesario.
Este enfoque innovador permite a las organizaciones crear una infraestructura informática con altos niveles de utilización, disponibilidad, automatización y flexibilidad utilizando componentes básicos de servidores económicos y estándar del sector.
Ventajas de la Infraestructura Virtual
Las soluciones de infraestructura virtual son ideales para entornos de producción en parte debido a que se ejecutan en servidores y escritorios estándar de la industria y son compatibles con una amplia gama de sistemas operativos y entornos de aplicación, así como de infraestructuras de red y almacenamiento. Se han diseñado las soluciones para que funcionen de manera independiente del hardware y del sistema operativo y poder brindar a los clientes amplias posibilidades de elección de plataforma.
Como resultado, son soluciones que proporcionan un punto de integración clave para los proveedores de hardware y gestión de infraestructuras de cara a ofrecer un valor único y aplicable por igual en todos los entornos de aplicación y sistemas operativos.
Las empresas que han adoptado estas soluciones de infraestructura virtual nos han comunicado unos clarísimos resultados positivos, entre ellos:
• Índices de utilización del 60 al 80% para servidores x86 (frente al 5 a 15% en hardware no virtualizado)
• Capacidad para el provisioning de nuevas aplicaciones en cuestión de minutos, en lugar de días o semanas
• 85% de mejora en tiempo de recuperación de paradas imprevistas
Firma electronica
Firma electrónica
La firma electrónica es un concepto directamente relacionado con la firma digital, sin embargo no son la misma cosa a pesar del extendido uso indistinto y de una utilización léxica y práctica muy similar de estos dos conceptos.
A pesar del uso indistinto que se le suele dar a los dos términos, cada vez más, entre los profesionales y expertos del tema se hace una clara diferenciación entre estos.
Una firma electrónica es una firma digital que se ha almacenado en un soporte de hardware; mientras que la firma digital se puede almacenar tanto en soportes de hardware como de software. La firma electrónica reconocida tiene el mismo valor legal que la firma manuscrita.
De hecho se podría decir que una firma electrónica es una firma digital contenida o almacenada en un contenedor electrónico, normalmente un chip de ROM. Su principal característica diferenciadora con la firma digital es su cualidad de ser inmodificable (que no inviolable). No se debe confundir el almacenamiento en hardware, como por ejemplo, en un chip, con el almacenamiento de la firma digital en soportes físicos; es posible almacenar una firma digital en una memoria flash, pero al ser esta del tipo RAM y no ROM, no se consideraría una firma electrónica si no una firma digital contenida en un soporte físico.
Ejemplos de Firma Electrónica
La firma digital contenida en soportes de tipo ROM tiene ya hoy en día un uso muy extendido y se utiliza en gran cantidad de tarjetas de acceso, tarjetas de telefonía, RFID o cualquier otra actividad en la que es preciso identificar inequivocamente una persona u objeto.
Una de las aplicaciones mas destacadas a nivel mundial es El DNI electrónico español, también conocido como eDNI que, al ser de uso obligado, ya dispone de varios millones de usuario
La firma electrónica es un concepto directamente relacionado con la firma digital, sin embargo no son la misma cosa a pesar del extendido uso indistinto y de una utilización léxica y práctica muy similar de estos dos conceptos.
A pesar del uso indistinto que se le suele dar a los dos términos, cada vez más, entre los profesionales y expertos del tema se hace una clara diferenciación entre estos.
Una firma electrónica es una firma digital que se ha almacenado en un soporte de hardware; mientras que la firma digital se puede almacenar tanto en soportes de hardware como de software. La firma electrónica reconocida tiene el mismo valor legal que la firma manuscrita.
De hecho se podría decir que una firma electrónica es una firma digital contenida o almacenada en un contenedor electrónico, normalmente un chip de ROM. Su principal característica diferenciadora con la firma digital es su cualidad de ser inmodificable (que no inviolable). No se debe confundir el almacenamiento en hardware, como por ejemplo, en un chip, con el almacenamiento de la firma digital en soportes físicos; es posible almacenar una firma digital en una memoria flash, pero al ser esta del tipo RAM y no ROM, no se consideraría una firma electrónica si no una firma digital contenida en un soporte físico.
Ejemplos de Firma Electrónica
La firma digital contenida en soportes de tipo ROM tiene ya hoy en día un uso muy extendido y se utiliza en gran cantidad de tarjetas de acceso, tarjetas de telefonía, RFID o cualquier otra actividad en la que es preciso identificar inequivocamente una persona u objeto.
Una de las aplicaciones mas destacadas a nivel mundial es El DNI electrónico español, también conocido como eDNI que, al ser de uso obligado, ya dispone de varios millones de usuario
Analisis de procesos
Análisis de Procesos
El Kaizen se enfoca pues en la mejora continua de los estándares en materia de calidad, productividad, costos, seguridad, y entrega. Para ello da primacía a la calidad como componente central que permite y facilita a través de su concreción el cumplimiento de los demás objetivos.
El Kaizen volcado en el plano de la informática implica tanto la aplicación de la filosofía y estrategias, como de los diversos instrumentos, métodos y herramientas de análisis y gestión que le son propias a la mejora continua de las actividades y procesos informáticos.
Las actividades y procesos informáticos para una empresa productora de bienes y servicios no informáticos constituyen actividades con valor agregado para la empresa, pero sin valor agregado para el consumidor. Por tal motivo el tamaño y costos relativos de estas actividades para la organización deben ser reducidos convenientemente. Así pues cada subactividad o subproceso que la componen deberán ser sometido a un análisis tendiente a verificar su utilidad y/o necesidad, como así también al nivel de eficiencia con el cual tienen lugar las mismas. Para ello se hace uso de los conceptos y herramientas del Kaizen.
En el actual orden de cosas los procesos informáticos y la información que estos brindan constituyen un elemento crítico a la hora tanto de prestar los servicios, como de organizar y controlar los procesos productivos, como de tomar decisiones acertadas en tiempo y forma. Por tal motivo aplicar un sistema que como el Kaizen permiten mejorar a un bajo costo y de manera continua los procesos, y los resultados que de ello se deriva, resulta fundamental tanto operativa como estratégicamente para la empresa.
Para cada uno de estos tipos fundamentales el personal del área informática, como así también los clientes del sistema, deberán identificar los desperdicios existentes, analizando su eliminación y aplicando medidas para evitar su reaparición.
De tal forma y sólo a título de ejemplo podemos mencionar los siguientes casos:
2.1. Sobreproducción
Impresión de informes en cantidades superiores a las necesarias, ya sea porque se efectúan con mayor frecuencia de la necesaria, porque se imprimen una cantidad de datos superiores a los requeridos, porque se imprime para sectores que no hacen uso de ellos o que haciendo uso de los mismos podrían compartir dichos impresos con otros sectores. La otra posibilidad es que se imprima información que pudiera ser fácilmente consultada por pantalla.
2.2. Inventario
Exceso de insumos y repuestos. Entre los insumos se tienen las resmas de papel, los monitores de repuestos entre muchos otros.
2.3. Procesamiento
Comprende tanto los diseños de información, procesamiento y carga de datos, como los procesamientos en si.
Así tenemos la duplicación de procesos, que lleva en algunos casos a cargar más de una vez los datos, exceso de datos o mala distribución de éstos en los impresos o pantallas, dejar de lado las necesidades de los usuarios o clientes. Diseños en función a la visión o punto de vista de los programadores.
Es menester subrayar que los errores motivados por una planificación y diseños inapropiados terminan elevando de manera significativa el funcionamiento del sistema, debido entre otros aspectos a los costosos arreglos y en algunas ocasiones severos perjuicios que los errores puedan ocasionar a los clientes de la empresa, a los usuarios internos y los provocados al adoptar decisiones incorrectas.
2.4 Esperas
Provocadas estas por un lado por los cuellos de botella, sean éstos generados por escasez de impresoras, problemas con las velocidades del software o del hardware, velocidades de impresión, o bien provocados dichos cuellos de botella por la existencia de funcionarios que haciendo las veces de filtro concentran poder y lentifican los procesos, haciendo depender al resto de personal y sectores de sus decisiones.
Entre otros motivos de espera se tienen las provocadas por reparaciones debidas a la falta de mantenimiento, y las que tienen lugar por ausencia de capacitación a nuevo personal, las acontecidas por falta de elementos u ordenes para los programadores o personal encargado de grabar datos.
2.5. Movimientos
Los distintos componentes tecnológicos utilizados para mejorar o reducir los movimientos en la carga de datos. Ejemplo: las lectoras de códigos de barras utilizadas en las cajas de los supermercados aceleran enormemente el proceso de facturación, al tiempo de que permiten actualizar de forma continua el estado de los inventarios y generar los pedidos de mercaderías. La utilización de teclados especiales que eviten la aparición de la enfermedad del túnel carpiano a los operadores, permitiendo así mayor descanso, aumento de la productividad y menor ausencia por enfermedad.
2.6. Transporte
Podemos disminuir la cantidad de personal, si en lugar de transportar impresos desde el sector cómputos, los mismos son impresos en cada sector.
De igual forma en lugar de imprimir normativas internas, las mismas tendrían que ser objeto de consulta por monitor vía Intranet. De tal forma se evita gastos de impresión, o de fotocopiado, tiempo de ensobrados, costos de envíos y posteriores tiempos de archivo, lo que a su vez implica costos de espacio, y al momento de la consulta el costo del tiempo de búsqueda de la información en los archivos de carpetas.
2.7. Reparaciones / Rechazos de productos defectuosos
Entre las reparaciones se tienen las de hardware y/o base de datos, provocadas por una falta de política de prevención en materia de protección (Ejemplo: la falta de uso de baterías de energía lleva a daños en los archivos o en los dispositivos internos, debido a los problemas de corte de suministro de energía).
Entre los rechazos de productos defectuosos se tienen desde la falta de calidad en los programas, a los problemas de defectos en las impresiones (por falta de mecanismos automáticos de control –autonomatización-).
Los casos dados anteriormente han sido mencionados tan sólo a título de ejemplo, pudiendo ser ampliados mediante la labor de los Círculos de Calidad o los Equipos de Mejoras de Procesos, haciendo para ello uso de las más diversas herramientas tales como la Tormenta de Ideas, el Diagrama de Ishikawa, el Diagrama de Pareto, los fluxogramas y las estratificaciones entre otros.
QFD
La calidad introducida en las etapas de planificación y diseño permite obtener una mayor eficiencia en base a una calidad elevada a bajo coste.
Al igual que en los procesos de desarrollo de productos, los procesos de desarrollo de software comienzan con las expectativas del cliente y concluyen con la salida del programa terminado. El papel del proceso de desarrollo consiste en traducir las expectativas del cliente interno (o externo) en especificaciones internas, transmitiendo fielmente dichas especificaciones a las distintas funciones implicadas.
Para una mejor concreción de los objetivos de diseño se hace uso del QFD (Despliegue Funcional de la Calidad). La característica esencial del QFD es la de ser una herramienta de la calidad que actúa en la etapa de diseño del producto y su desarrollo.
El Despliegue Funcional de la Calidad es un método para desarrollar una calidad de diseño enfocada a satisfacer al consumidor (cliente interno o externo), de forma que se conviertan los requerimientos del mismo en objetivos de diseño y elementos esenciales de aseguramiento de la calidad a través de la fase de producción (de bienes o servicios –software en éste caso), por lo que podemos afirmar que el despliegue de funciones de calidad es un modo de asegurar la calidad mientras el producto o servicio está en fase de diseño.
Entre los beneficios derivados de la aplicación del QFD tenemos:
1. Integración de la calidad demandada y las características de calidad en un gráfico de calidad básico.
2. Fijación de las metas basadas en la cuantificación de las evaluaciones por parte de los usuarios.
3. Conversión de requerimientos de calidad demandados en elementos medibles de diseño e ingeniería.
4. La planificación del nuevo software resulta más específica.
5. Las actividades de planificación y desarrollo están más ligadas a las expectativas.
6. Jerarquiza las acciones de manera objetiva.
7. Reduce costes.
8. Mayor satisfacción del cliente (interno o externo).
9. Mayor transparencia en los procesos de desarrollo.
10. Mejora de la calidad y fiabilidad del producto.
Entre los resultados concretos cuantificables en las empresas que han hecho uso de esta herramienta se tienen:
• El ciclo de desarrollo se reduce entre un 30% y un 60%.
• Las modificaciones del producto y del proceso se reducen entre un 30% y un 50%.
• Los costes de lanzamiento se reducen entre un 20% y un 60%.
• Las reclamaciones de los clientes se reducen hasta en un 50%.
Análisis Modal de Fallos y Efectos (AMFE)
Conocida también como AMFE, es una metodología que permite analizar la calidad, seguridad y/o fiabilidad del funcionamiento de un sistema, tratando de identificar los fallos potenciales que presenta su diseño y, por tanto, tratando de prevenir problemas futuros de calidad. Se aplica por medio del estudio sistemático de los fallos.
El estudio tendrá como objetivo la corrección de los diseños para evitar la aparición de los fallos, estableciendo en lo necesario, un plan de control dimensional, como resultado del estudio de los fallos y su corrección en lo que sea necesario para evitar la aparición de los mencionados fallos.
Se trata pues de una herramienta de predicción y prevención.
La aplicación de la misma la podemos enmarcar dentro del proceso de diseño, siendo además aplicable a la mejora de productos o procesos existentes.
Autonomatización
Con la autonomatización, las propias máquinas se encargan de no producir fallos. Ejemplo de utilización de este sistema es su aplicación a las impresoras, evitando de tal modo la pérdida de material, y tiempo de proceso, como así también tener que disponer de personas para observar el proceso de impresión.
Los problemas informáticos
El coste de pasar por alto los problemas informáticos puede ser desastroso. El dicho "puede costarle esto ahora y el doble más tarde" resulta tan aplicable a un problema informático como a un problema de transmisión en un automóvil.
La mayoría de los problemas informáticos pueden ser reducidos a cinco causas fundamentales, siendo éstas las siguientes:
1.Planificación insuficiente.
La causa principal de la mayoría de los fallos en los sistemas informáticos es la insuficiencia de los recursos y esfuerzos que se dedicaron a la planificación. A menudo los ordenadores se adquieren por impulso y más para satisfacer un capricho que para cubrir una necesidad de proceso de información. Los sistemas se desarrollan sin planificar su interconexión con los sistemas manuales. La asignación de personal se basa en limitaciones presupuestarias, y no en la capacitación y el número de empleados que se requieren para llevar a efecto de forma eficaz las aplicaciones del ordenador.
La planificación es una función gestora que los técnicos frecuentemente prefieren ignorar, o que la llevan a cabo con el único fin de satisfacer lo que consideran una manía superior pero no para establecer unas pautas que deban seguirse en la automatización de la empresa.
2.Incapacidad de integrar el ordenador en la estructura empresarial.
El principal objetivo de los ordenadores es satisfacer las necesidades de proceso de información de la empresa. Los datos pueden ser el recurso primordial de una organización: no son propiedad del departamento de proceso de datos, ni de los usuarios individuales que crean y utilizan los datos. Mientras que los datos no se administren como un recurso más de la empresa, no recibirán la atención adecuada por parte de la dirección y quedarán relegados a un nivel en el que su utilización puede estar mal planificada y peor dirigida. Es una verdadera pena que no se obtenga provecho de los datos, tratándolos como cualquier otra inversión de la empresa.
A la dirección tal vez no le preocupe que los datos se deterioren, pero no permitirá nunca que le ocurra lo mismo a la maquinaria y las instalaciones.
3.Negligencia en conseguir la necesaria formación del personal de proceso de datos.
Es responsabilidad de la dirección asegurarse de que el personal esté debidamente formado. Ello supone contratar a las personas adecuadas, proporcionarles la formación adicional necesaria para desarrollar o mejorar sus aptitudes, y evaluar su actuación a fin de asegurarse de que el personal está llevando a cabo su trabajo tal como es debido.
Dada la naturaleza técnica del proceso de datos, la dirección puede sentirse insegura a la hora de evaluar las aptitudes necesarias, viéndose obligada a apoyarse en terceras personas para contratar nuevo personal y a considerar la experiencia previa como signo de competencia. Los usuarios necesitan también una formación técnica.
4.Incapacidad para determinar las auténticas necesidades del usuario.
Los técnicos no suelen opinar que la determinación de las necesidades reales del usuario sea una función productiva.
El diseño, la programación y las pruebas del sistema son trabajos cuyos resultados resultan visibles. Ahora bien, un gran número de sistemas se construyen antes de que su proyecto se haya estructurado por completo, y son muchos los usuarios que aprueban un sistema antes de saber exactamente qué es lo que se les está ofreciendo.
Materializar lo que otros dicen que desean o aquello a lo que dan su aprobación, no tiene ninguna utilidad, si luego no sirve para el trabajo que hay que hacer.
5.Negligencia en el establecimiento de los controles informáticos adecuados.
En un entorno ideal, en el que todo funciona a la perfección, los controles son innecesarios. Por desgracia, los sistemas informáticos rara vez son ideales y requieren, por tanto, un control.
Como ya se explicó con anterioridad, los controles manuales pueden no ser eficaces en un sistema automatizado. Los controles diseñados para una sistema automatizado deben complementar las características del ordenador. Ello implica una reestructuración de los controles por parte de una persona que conozca a fondo la empresa y el ordenador.
Estas causas fundamentales de los problemas informáticos pueden exponerse a través de las siguientes cinco reglas esenciales:
Primera regla: "Desarrollar planes informáticos tanto a largo como a corto plazo, ateniéndose luego a ellos".
Segunda regla: "Nombrar un directivo que se haga responsable de los datos y de integrar la utilización del ordenador en la estructura empresarial"
Tercera regla: "Contratar a los mejores técnicos disponibles, desarrollando de forma continua sus aptitudes y evaluando sus capacidades para desempeñar de forma adecuada sus cometidos. Sustituyendo a quienes no lleguen a alcanzar las aptitudes necesarias".
Cuarta regla: "No adquirir ni poner en funcionamiento una aplicación informática hasta que todas las necesidades se hayan definido correctamente y todas las partes interesadas hayan dado su conformidad".
Quinta regla: "Diseñar y mantener un sistema adecuado de controles de ordenador que aseguren un proceso de datos exactos, completo, profesional y a tiempo".
Instrumentos de diagnóstico
La Matriz de Diagnóstico y Resolución de Problemas puede y debe complementarse con otros instrumentos siendo éstos los siguientes:
• Test de intuición: consistentes en prueba para saber si el ordenador se está o no utilizando correctamente.
• Test analítico: consiste en una evaluación matemática para poner de manifiesto con datos numéricos los buenos y malos aspectos de la función de proceso de datos.
• Test de exploración: conformado por cuestionarios estructurados cuyo fin es descubrir los defectos de las aplicaciones del proceso de datos propuestas o implantadas.
• Plan de actuación para erradicar los problemas informáticos
• Para erradicar un problema informático es necesario que la alta dirección dé el primer paso. La información es un recurso de la empresa y, por consiguiente, ha de ser gestionado como cualquier otro. La alta dirección debe establecer las directrices requeridas para esa gestión.
A continuación se enumeran las cuatro etapas del plan de actuación:
• Etapa 1: establecer directrices de calidad en el proceso de datos. En esta etapa, la dirección debe especificar el nivel de calidad que espera del proceso de la información.
• Etapa 2: nombrar a una persona que asuma la responsabilidad. Las directrices sólo funcionan cuando se asigna a una sola persona la responsabilidad de su cumplimiento.
• Etapa 3: establecer una función de garantía de calidad. Es la que se hace cargo del adecuado funcionamiento del proceso de tratamiento de la información.
• Etapa 4: establecer una función de control de calidad.
El control de calidad ha de efectuarse durante el desarrollo y ejecución de cada uno de los sistemas de aplicaciones. Esta función se encarga de garantizar que los productos elaborados por la función de proceso de datos cumplan las normas establecidas por la dirección en sus directrices de calidad.
• Principales síntomas de problemas informáticos
• A los efectos de su detección, posterior análisis y resolución del problema de acuerdo a los patrones antes expuestos, se despliega a continuación una lista de 43 síntomas que manifiestas algún tipo de problema en el sistema informático.
Se aconseja a los responsables encarar dicho análisis como tarea grupal o bien realizar dicho test de manera individual, reuniéndose posteriormente dichas personas para evaluar sus respuestas. Es conveniente para cada punto manifestar si se da o no tal problema, ejemplificando con posterioridad el mismo. Si muchos puntos son coincidentes en cuando a respuesta y si a ello se agregan los mismos ejemplos tendremos ante nosotros puntos bien precisos de mejora a realizar.
Base de datos distribuida
es una colección de datos que pertenecen lógicamente a un sólo sistema, pero se encuentra físicamente esparcido en varios "sitios" de la red.
Un sistema de base de datos distribuidas se compone de un conjunto de sitios, conectados entre sí mediante algún tipo de red de comunicaciones, en el cual :
• Cada sitio es un sistema de base de datos en sí mismo, pero,
• Los sitios han convenido en trabajar juntos ( si es necesario ) con el fin de que un usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal como si todos los datos estuvieran almacenados en el sitio propio del usuario.
El sistema de administración de Base de Datos Distribuida (DDBMS), esta formado por las transacciones y los administradores de base de datos distribuidos de todas las computadoras. Tal DDBMS en un esquema genérico implica un conjunto de programas que operan en diversas computadoras. Estos programas pueden ser subsistemas de un producto único DDBMS, concesionado por un sólo fabricante, o también pudiera resultar de una colección de programas de fuentes dispares : algunos considerados por fabricantes y algunos otros escritos en casa.
Un administrador de base de datos (DTM) es un programa que recibe solicitudes de procesamiento de los programas de consulta o de transacciones y a su vez las traduce en acciones para los administradores de la base de datos . Una función importante del DTM es coordinar y controlar dichas acciones.
Cada sitio tiene sus propias bases de datos "reales" locales, sus propios usuarios locales, sus propios DBMS y programas para administración de transacciones y su propio administrador local de comunicación de datos. La diferencia principal entre los sistemas de bases de datos centralizados y los distribuidos es que en los primeros, los datos residen en una sola localidad, mientras que, en lo últimos, se encuentran en varias localidades. Cada localidad puede procesar transacciones locales , es decir, aquellas que sólo acceden a datos que residen en esa localidad. Además, una localidad puede participar en la ejecución de transacciones globales , es decir, aquellas que acceden a datos de varias localidades, ésta requiere comunicación entre las localidades.
Una transacción local es la que accede a cuentas en la localidad individual donde se inicio. En cambio, una transacción global accede a cuentas de una localidad distinta a la localidad donde se inicio o a cuentas de varias localidades diferentes.
Por qué son deseables las bases de datos distribuidas?
La respuesta básica a esta pregunta es que por lo regular las empresas ya están distribuidas, por lo menos desde el punto de vista lógico ( en divisiones, departamentos, proyectos, etc ) y muy probablemente en el sentido físico también ( en plantas, talleres, laboratorios, y demás ), de lo cual se desprende que en general la información ya está también distribuida, porque cada unidad de organización dentro de la empresa mantendrá por fuerza los datos pertinentes a su propio funcionamiento. Así pues, un sistema distribuido permite que la estructura de la base de datos refleje la estructura de la empresa : los datos locales se pueden mantener en forma local, donde por lógica deben estar, pero al mismo tiempo es posible obtener acceso a datos remotos en caso necesario.
• principio fundamental de las bases de datos distribuidas :
Desde el punto de vista del usuario, un sistema distribuido deberá ser idéntico un sistema no distribuido. En otras palabras, los usuarios de un sistema distribuido deberán comportarse exactamente como si el sistema no estuviera distribuido. Todos los problemas de los sistemas distribuidos son (o deberían ser ) internos o a nivel de realización, no externos o a nivel del usuario. Llamaremos al principio fundamental recién identificado la "regla cero" de los sistemas distribuidos.
La regla cero conduce a varios objetivos o reglas secundarios - doce en realidad- siguientes :
• Autonomía local.
• No dependencia de un sitio central.
• Operación continua.
• Independencia con respecto a la localización.
• Independencia con respecto a la fragmentación.
• Independencia de réplica.
• Procesamiento distribuido de consultas.
• Manejo distribuido de transacciones.
• Independencia con respecto al equipo.
• Independencia con respecto al sistema operativo.
• Independencia con respecto a la red.
• Independencia con respecto al DBMS.
Ventajas
Existen cuatro ventajas del procesamiento de bases de datos distribuidas.
La primera , puede dar como resultado un mejor rendimiento que el que se obtiene por un procesamiento centralizado. Los datos pueden colocarse cerca del punto de su utilización, de forma que el tiempo de comunicación sea más mas corto. Varias computadoras operando en forma simultánea pueden entregar más volumen de procesamiento que una sola computadora.
Segundo , los datos duplicados aumentan su confiabilidad. Cuando falla una computadora, se pueden obtener los datos extraídos de otras computadoras. Los usuarios no dependen de la disponibilidad de una sola fuente para sus datos .
Una tercera ventaja , es que los sistemas distribuidos pueden variar su tamaño de un modo más sencillo. Se pueden agregar computadoras adicionales a la red conforme aumentan el número de usuarios y su carga de procesamiento. A menudo es más fácil y más barato agregar una nueva computadora más pequeña que actualizar una computadora única y centralizada. Después, si la carga de trabajo se reduce, el tamaño de la red también puede reducirse.
Por último , los sistemas distribuidos se puede adecuar de una manera más sencilla a las estructuras de la organización de los usuarios.
Desventajas
Las primeras dos desventajas de las bases de datos distribuidas son las mismas que las dos primeras ventajas.
Primero,
el rendimiento puede ser peor para el procesamiento distribuido que para el procesamiento centralizado. Depende de la naturaleza de la carga de trabajo, la red, el DDBMS y las estrategias utilizadas de concurrencia y de falla, así como las ventajas del acceso local a los datos y de los procesadores múltiples, ya que éstos pueden ser abrumados por las tareas de coordinación y de control requeridas. Tal situación es probable cuando la carga de trabajo necesita un gran número de actualizaciones concurrentes sobre datos duplicados, y que deben estar muy distribuidos.
Segundo ,
el procesamiento de base de datos distribuida puede resultar menos confiable que el procesamiento centralizado. De nuevo, depende de la confiabilidad de las computadoras de procesamiento, de la red, del DDBMS, de las transacciones y de las tasas de error en la carga de trabajo. Un sistema distribuido puede estar menos disponible que uno centralizado. Estas dos desventajas indican que un procesamiento distribuido no es ninguna panacea. A pesar de que tiene la promesa de un mejor rendimiento y de una mayor confiabilidad, tal promesa no está garantizada.
Una tercera desventaja es su mayor complejidad, a menudo se traduce en altos gastos de construcción y mantenimiento. Ya que existen más componentes de hardware, hay más cantidad de cosas por aprender y más interfaces susceptibles de fallar. El control de concurrencia y recuperación de fallas puede convertirse en algo complicado y difícil de implementar, puede empujar a una mayor carga sobre programadores y personal de operaciones y quizá se requiera de personal más experimentado y más costoso.
El procesamiento de bases de datos distribuido es difícil de controlar.
Una computadora centralizada reside en un entorno controlado, con personal de operaciones que supervisa muy de cerca, y las actividades de procesamiento pueden ser vigiladas, aunque a veces con dificultad. En un sistema distribuido, las computadoras de proceso, residen muchas veces en las áreas de trabajo de los usuarios. En ocasiones el acceso físico no está controlado, y los procedimientos operativos son demasiado suaves y efectuados por personas que tienen escasa apreciación o comprensión sobre su importancia. En sistemas centralizados, en caso de un desastre o catástrofe, la recuperación puede ser más difícil de sincronizar.
• Propagación de Actualizaciones
El problema básico con la réplica de datos, es la necesidad de propagar cualquier modificación de un objeto lógico dado a todas las copias almacenadas de ese objeto. Un problema que surge es que algún sitio donde se mantiene una copia del objeto puede NO estar disponible, y fracasaría; la modificación si cualquiera de las copias no esta disponible.
Para tratar este problema se habla de " una copia primaria " y funciona así :
• Una de las copias del objeto se designa como copia primaria, y las otras serán secundarias.
• Las copias primarias de los distintos objetos están en sitios diferentes.
• Las operaciones de actualización se consideran completas después de que se ha modificado la copia primaria.
. El sitio donde se encuentra esa copia se encarga entonces de propagar la actualización a las copias secundarias.
Recuperación
Basado en el protocolo de compromiso de dos fases.
El compromiso de dos fases es obligatorio en cualquier ambiente en el cual una sola transacción puede interactuar con varios manejadores de recursos autónomos, pero tiene especial importancia en un sistema distribuido porque los manejadores de recursos en cuestión ( o sea los DBMS locales ) operan en sitios distintos y por tanto son muy autónomos.
En particular, son vulnerables a fallas dependientes. Surgen los siguientes puntos :
• El objetivo de "no dependencia de un sitio central" dicta que la función de coordinador no debe asignarse a un sitio específico de la red, sino que deben realizarla diferentes sitios para diferentes transacciones. Por lo regular se encarga de ella el sitio en el cual se inicia la transacción en cuestión.
• El proceso de compromiso en dos fases requiere una comunicación entre el coordinador y todos los sitios participantes, lo cual implica más mensajes y mayor costo extra.
• Si el sitio Y actúa como participante en un proceso de compromiso en dos fases coordinado por el sitio X, el sitio Y deberá hacer lo ordenado pro el sitio X ( compromiso o retroceso, según se aplique ), lo cual implica otra pérdida de autonomía local.
• En condiciones ideales, nos gustaría que el proceso de compromiso en dos fases funcionara aun en caso de presentarse fallas de sitios o de la red en cualquier punto. Idealmente, el proceso debería ser capaz de soportar cualquier tipo concebible de falla. Por desgracia es fácil ver que este problema es en esencia imposible de resolver; es decir, no existe un protocolo finito que garantice el compromiso al unísono de una transacción exitosa por parte de todos los agentes, o el retroceso al unísono de una transacción no exitosa en caso de fallas arbitrarias.
Concurrencia
Este concepto tiene que ver con la definición de un agente.
El manejo de transacciones tiene dos aspectos principales, el control de recuperación y el control de concurrencia. En un sistema distribuido, una sola transacción puede implicar la ejecución de código en varios sitios ( puede implicar actualizaciones en varios sitios ), entonces se dice que una transacción esta compuesta por varios agentes, donde un agente es el proceso ejecutado en nombre de una transacción dada en determinado sitio. Y el sistema necesita saber cuando dos agentes son parte de la misma transacción.
Un Panorama de las Bases de Datos Orientadas a Objetos
Como cualquier base de datos programable, una base de datos orientada a objetos (BDOO) da un ambiente para el desarrollo de aplicaciones con un depósito persistente listo para su explotación. Una BDOO almacena y manipula información que puede ser digitalizada (representada) como objetos, proporciona una estructura flexible con acceso ágil, rápido, con gran capacidad de modificación. Además combina las mejores cualidades de los archivos planos, las bases jerárquicas y relaciónales.
Actualmente, el creciente uso de las metodologías de programación orientadas a objetos está promoviendo la aparición de manejadores de BDOO en el mercado. Esto tiene sentido, puesto que la tecnología de objetos proviene del desarrollo de metodologías avanzadas de programación. Más aún, la comunidad internacional está convencida de que los manejadores de BDOO tienen la flexibilidad tanto en la definición del modelo de datos como en el desempeño tan anhelado por muchos desarrolladores de aplicaciones, lo que es imposible encontrar en los modelos jerárquicos de red o relaciónales.
Los objetos pueden estar compuestos por cualquier tipo de información que, eventual mente, puede almacenarse en forma digital; por ejemplo, imágenes barridas, voz, sonido, dibujos, planos arquitectónicos complejos, esquemas electrónicos y diagramas desarrollados por ingenieros, así como los tradicionales tipos de datos alfanuméricos. Comúnmente, las aplicaciones que producen este tipo de objetos complejos, al terminar, los guardan en archivos de datos en distintos formatos. Cuando el programa es reactivado, los objetos, se cargan nuevamente. En estos ambientes, los objetos son accesibles sólo a un usuario en cada momento, no existen mecanismos de seguridad, no hay manera de protegerse ante la eliminación accidental de un objeto complejo. Las BDOO superan todas estas dificultades porque permiten que múltiples usuarios compartan objetos complejos para manipularlos en ambiente seguro y estructurado.
Una base de datos relacional tiene una estructura más flexible, pero no puede manejar tipos de datos complejos. Para sobreponerse a estas limitaciones, algunos proveedores han desarrollado las bases de datos orientadas a objetos, las cuales son diseñadas para manipular los objetos con los conceptos de la programación orientada a objetos, proporcionando un concepto persistente en un ambiente multiusuario seguro.
Existen niveles en los cuales las bases de datos incorporan los conceptos alrededor de la metodología de objetos. La primera clase, puede denominarse BDOO pasivas o "estructuralmente orientadas a objetos", que permiten manejar objetos compuestos. Una base de datos pasiva puede almacenar objetos complejos pero no puede definir comportamientos. Este tipo de bases de datos se utiliza para almacenar objetos de otras aplicaciones. Una BDOO pasiva incluye conceptos como "jerarquía parte de", pero no incluye mecanismos para tipos definidos por el usuario o aspectos que definen comportamientos. Una BDOO es activa u "orientada a objetos por comportamiento" si permite definir y ejecutar comportamiento de los objetos dentro de la base de datos, incorpora conceptos como la "herencia" y permite el manejo de tipos definidos por el usuario. Si se incorporan todos los aspectos se denomina "plenamente orientada a objetos". En bases de datos activas, es sencillo programar una señal de alerta en un objeto inventario cuando se llega a un nivel mínimo.
Ventajas en BDOOs
Entre las ventajas más ilustrativas de las BDOOs está su flexibilidad, soporte para el manejo de tipos de datos complejos. Por ejemplo, en una base de datos convencional, si una empresa adquiere varios clientes por referencia de clientes servicio, pero la base de datos existente, que mantiene la información de clientes y sus compras, no tiene un campo para registrar quién proporcionó la referencia, de qué manera fue dicho contacto, o si debe compensarse con una comisión, sería necesario reestructurar la base de datos para añadir este tipo de modificaciones. Por el contrario, en una BDOO, el usuario puede añadir una "subclase" de la clase de clientes para manejar las modificaciones que representan los clientes por referencia.
La subclase heredará todos los atributos, características de la definición original, además se especializará en especificar los nuevos campos que se requieren así como los métodos para manipular solamente estos campos. Naturalmente se generan los espacios para almacenar la información adicional de los nuevos campos.
Esto presenta la ventaja adicional que una BDOO puede ajustarse a usar siempre el espacio de los campos que son necesarios, eliminando espacio desperdiciado en registros con campos que nunca usan.
La segunda ventaja de una BDOO, es que manipula datos complejos en forma rápida y ágilmente.
La estructura de la base de datos está dada por referencias (o apuntadores lógicos) entre objetos.
No se requieren búsquedas en tablas o uniones para crear relaciones. Esta capacidad resulta atractiva en aplicaciones de la ingeniería, donde las relaciones entre componentes dependen de factores diversos.
Por ejemplo, considérese una aplicación en el diseño de vehículos automotores.
El fabricante que quiere determinar una lista de partes necesarias para un auto, para un modelo particular requiere de diferentes decisiones subsecuentes para elaborarla, Si el modelo es automático o estándar, se necesita de un chasis particular como de la caja de velocidades correspondientes.
Escoger un tipo de motor obliga a decidir sobre otras partes requeridas, todo esto hasta el nivel de componentes y piezas individuales. Armar esta lista de componentes resulta más ágil en una BDOO que en una base de datos relacional. En un modelo relacional las tablas deben ser barridas, buscadas cada vez que se indica una condición, resultando, posiblemente, en miles de direccionamientos.
Posibles Problemas
Al considerar la adopción de la tecnología orientada a objetos, la inmadurez del mercado de BDOO constituye una posible fuente de problemas por lo que debe analizarse con detalle la presencia en el mercado del proveedor para adoptar su producto en una línea de producción sustantiva. Por eso, en este artículo proponemos que se explore esta tecnología en un proyecto piloto.
El segundo problema es la falta de estándares en la industria orientada a objetos. Sin embargo, el "Object Managenent Group" (OMG), es una organización Internacional de proveedores de sistemas de información y usuarios dedicada a promover estándares para el desarrollo de aplicaciones y sistemas orientados a objetos en ambientes de cómputo en red.
La implantación de una nueva tecnología requiere que los usuarios iniciales acepten cierto riesgo. Aquellos que esperan resultados a corto plazo y con un costo reducido quedarán desilusionados. Sin embargo, para aquellos usuarios que planean a un futuro intermedio con una visión tecnológica de avanzada, el uso de tecnología de avanzada, el uso de tecnología orientada a objetos, paulatinamente compensará todos los riesgos.
La tecnología de bases de datos orientadas a objetos está en su infancia, sin embargo, establece amplios signos de madurez. Ante la disyuntiva de tomar una decisión estratégica, recalcamos que las empresas e industrias que desean conformar un liderazgo tecnológico están en la posibilidad de explorar los productos comercialmente disponibles o los prototipos de los centros de investigación para iniciar la experimentación y desarrollo de proyectos pilotos.
La asociación de proyectos piloto con instituciones de investigación, permitirá establecer el vínculo entre tecnología, estrategia empresarial y mercado. Las empresas que inicien ahora la exploración de la BDOO podrán apropiarse de esta tecnología y consolidar una ventaja competitiva determinante cuando dominen e incorporen las BDOO en sus procesos productivos.
EL MODELO RELACIONAL
Al utilizar una base de datos se está tratando de modelar los datos y sus conexiones en un problema del mundo real. Para definir el modelo relacional se inicia con una definición de lo que es un modelo de datos en general.
Un modelo de datos es un sistema formal y abstracto que permite describir los datos de acuerdo con reglas y convenios predefinidos. Es formal pues los objetos del sistema se manipulan siguiendo reglas perfectamente definidas y utilizando exclusivamente los operadores definidos en el sistema, independientemente de lo que estos objetos y operadores puedan significar [Rivero].
Según el mismo autor, un modelo de datos tiene tres componentes que son:
Componentes:
Estructuras de datos:
es la colección de objetos abstractos formados por los datos.
Operadores entre las estructuras: el conjunto de operadores con reglas bien definidas que permiten manipular a dichas estructuras.
Definiciones de integridad:
es una colección de conceptos y reglas.
Que permite expresar que valores de datos pueden aparecer válidamente en el modelo.
En el manejo de bases de datos hay tres modelos de datos principales que son el jerárquico, permite modelar los datos en base a una jerarquización; el de red, donde los datos forman retículas; y el relacional basado en el concepto matemático de relación.
Como modelo de datos el modelo relacional tiene las siguientes componentes:
Estructuras de datos: son los conceptos de relación, entidades, atributos y dominios.
Operadores: sus operadores incluyen los de actualización y la llamada álgebra relacional.
Definiciones de integridad: está dada por el concepto de llave, posibilidades de valores nulos y dos reglas de integridad.
ESTRUCTURAS DE DATOS DEL MODELO RELACIONAL
En el modelo relacional las estructuras de datos son los conceptos de relación, dominio, atributo y entidad
.
Relación: denota una colección ó conexión entre objetos que tienen los mismos tipos de características o atributos.
Entidad: es un elemento de datos con un conjunto finito de atributos. También se le llama eneada por consistir de n valores, uno para cada atributo.
Atributo o característica, cada atributo tiene un dominio asociado.
Dominio es el conjunto de valores que puede tomar un atributo.
Las relaciones se representan por tablas donde las columnas son los atributos o características. En los renglones se almacenan los elementos de datos con sus valores para cada atributo. En el modelo relacional no se consideran ordenados los renglones. Una representación de una relación es indicar su nombre y entre llaves el conjunto de atributos.
A esta representación también se le llama esquema de la relación.
DEFINICIONES DE INTEGRIDAD EN EL MODELO RELACIONAL
Los conceptos de definiciones de integridad para el modelo relacional son llave primaria y foránea, los valores nulos y dos reglas de integridad que se enuncian a continuación.
Dentro de los atributos debe haber uno o varios que sirvan para distinguir cada entidad en la relación. Es a lo que se llama llave primaria.
Ejemplo:
En la relación Alumnos anterior la llave primaria es
No.Cta.; en la relación Materias la llave es Clave-mat
y en Evaluaciones es la unión de No.Cta y Clave-mat.
Llave Foránea: hace referencia a una llave primaria en
otra relación. Una relación puede tener una o varias
llaves foráneas.
Ejemplo:
Los atributos No.Cta y Clave-mat son llaves foráneas
en la relación Evaluaciones.
Una relación puede tener varias llaves. La que se elige para
identificar a una relación se le llama llave primaria. En el modelo
relacional es el concepto de llave la única forma de encontrar una
entidad.
Un valor nulo denotado por ``?'', proporciona la posibilidad de manejar situaciones como las siguientes:
1.- Se crea una eneada y no se conocen los valores de los atributos.
2.- Se agrega un atributo a una relación ya existente.
3.- Se usan para no introducir valores numéricos al hacer cálculos.
A fin de mantener la integridad a lo largo del tiempo en una base de datos relacional, se debe cumplir con algunas restricciones en cuanto a los valores de las llaves primarias.
Integridad de Relaciones : Ningún componente de la llave primaria puede tener valores nulos.
Integridad Referencial: Si se tiene una relación q con una llave primaria A de dominio D, y r otra relación con atributo A no llave. Entonces cualquier valor del campo de A en r debe ser:
i) nulo o,
ii) el valor de una llave primaria de la otra relación q donde se tiene la llave primaria sobre D.
OPERADORES DEL MODELO RELACIONAL
Los operadores del modelo relacional son de dos tipos: operadores de actualización de entidades y operadores del álgebra relacional.
Operadores de actualización
Para actualizar los valores de los atributos en las entidades se pueden efectuar las operaciones de agregar, borrar o modificar.
El manejo de llaves foráneas hace necesario establecer reglas que determinan como manejar las operaciones de actualización de relaciones para no introducir inconsistencias, a continuación se indican dichas reglas :
Reglas:
Reglas para agregar. Al insertar una entidad en una relación, el valor de un atributo que es llave foránea puede ser nulo, o algún valor del dominio de la llave primaria.
Reglas para borrar. Si se va a borrar una entidad en una relación r1 con cierta llave primaria y otra relación r2 tiene ese campo como llave foránea, hay 3 casos:
Casos de Borrado:
Borrado restringido.
No se puede borrar una entidad en r1 que tenga entidades en r2 con el mismo valor como llave foránea.
Borrado encascada.
Al borrar una entidad en r1 se borrarán todas las entidades en r2 con ese valor.
Borrado con nulificación. Al borrar la entidad en r1,a todas las entidades con igual valor en r2 se les pone el valor nulo.
Regla para Modificar.
i) Modificación en cascada :
Al modificar una llave primaria en r1 se le cambian los valores correspondientes en r2.
ii)Modificación con nulificación :
Al cambiar los valores de la llave primaria en r1 a los correspondientes en r2 se les pone el valor nulo.
Estructura de Base de Datos Distribuidas
Un sistema distribuido de base de datos consiste en un conjunto de localidades, cada una de las cuales mantiene un sistema de base de datos local. Cada localidad puede procesar transacciones locales, o bien transacciones globales entre varias localidades, requiriendo para ello comunicación entre ellas.
Las localidades pueden conectarse físicamente de diversas formas, las principales son:
Red totalmente conectada
Red prácticamente conectada
Red con estructura de árbol
Red de estrella
Red de anillo
Las diferencias principales entre estas configuraciones son:
Coste de instalación: El coste de conectar físicamente las localidades del sistema
Coste de comunicación: El coste en tiempo y dinero que implica enviar un mensaje desde la localidad A a la B.
Fiabilidad: La frecuencia con que falla una línea de comunicación o una localidad.
Disponibilidad: La posibilidad de acceder a información a pesar de fallos en algunas localidades o líneas de comunicación.
Las localidades pueden estar dispersas, ya sea por un área geográfica extensa (a lo largo de un país), llamadas redes de larga distancia; o en un área reducida (en un mismo edificio), llamadas redes de área local. Para las primeras se utilizan en la comunicación líneas telefónicas, conexiones de microondas y canales de satélites; mientras que para las segundas se utiliza cables coaxiales de banda base o banda ancha y fibra óptica.
Consideraciones al distribuir la base de datos
Existen varias razones para construir sistemas distribuidos de bases de datos que incluyen compartir la información, fiabilidad y disponibilidad y agilizar el procesamiento de las consultas. Pero también tiene sus desventajas, como desarrollos de software más costosos, mayor posibilidad de errores y costos extras de procesamiento.
Ventajas de la distribución de datos
La principal ventaja de los sistemas distribuidos es la capacidad de compartir y acceder a la información de una forma fiable y eficaz.
Utilización compartida de los datos y distribución del control
La ventaja principal de compartir los datos por medio de la distribución es que cada localidad pueda controlar hasta cierto punto los datos almacenados localmente. En un sistema centralizado, el administrador de base de datos de la localidad central controla la base de datos. En un sistema distribuido existe un administrador global de la base de datos que se encarga de todo el sistema. Parte de esta responsabilidad se delega al administrador de base de datos de cada localidad. Dependiendo del diseño del sistema distribuido, cada administrador local podrá tener un grado de autonomía diferente, que se conoce como autonomía local.
La posibilidad de contar con autonomía local es en muchos casos una ventaja importante de las bases de datos distribuidas.
Fiabilidad y disponibilidad
Si se produce un fallo en una localidad de un sistema distribuido, es posible que las demás localidades puedan seguir trabajando. En particular, si los datos se repiten en varias localidades, una transacción que requiere un dato específico puede encontrarlo en más de una localidad. Así, el fallo de una localidad no implica necesariamente la desactivación del sistema.
El sistema debe detectar cuando falla una localidad y tomar las medidas necesarias para recuperarse del fallo. El sistema no debe seguir utilizando la localidad que falló. Por último, cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla al sistema con el mínimo de complicaciones.
La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en aplicaciones de tiempo real. Por ejemplo, si una línea aérea no puede tener acceso a la información, es posible que pierda clientes a favor de la competencia.
Agilización del procesamiento de consultas
Si una consulta comprende datos de varias localidades, puede ser posible dividir la consulta en varias subconsultas que se ejecuten en paralelo en distintas localidades. Sin embargo, en un sistema distribuido no se comparte la memoria principal, así que no todas las estrategias de intersección se pueden aplicar en estos sistemas. En los casos en que hay repetición de los datos, el sistema puede pasar la consulta a las localidades más ligeras de carga.
Desventajas de la distribución de los datos
La desventaja principal de los sistemas distribuidos es la mayor complejidad que se requiere para garantizar una coordinación adecuada entre localidades.
El aumento de la complejidad se refleja en:
Coste del desarrollo de software: es más difícil estructura un sistema de bases de datos distribuidos y por tanto su coste es menor
Mayor posibilidad de errores: puesto que las localidades del sistema distribuido operan en paralelo, es más difícil garantizar que los algoritmos sean correctos.
Mayor tiempo extra de procesamiento: el intercambio de mensajes y los cálculos adicionales son una forma de tiempo extra que no existe en los sistemas centralizados.
Transparencia y Autonomía
En la sección anterior se vio que una relación r puede almacenarse de varias formas en un sistema de base de datos distribuida. Es esencial que el sistema reduzca al mínimo la necesidad de que el usuario se dé cuenta de cómo está almacenada una relación. Como veremos. un sistema puede ocultar los detalles de la distribución de la información en la red. Esto se denomina transparencia de la red.
La transparencia de la red se relaciona, en algún modo, a la autonomía local. La transparencia de la red es el grado hasta el cual los usuarios del sistema pueden ignorar los detalles del diseño distribuido. La autonomía local es el grado hasta el cual el diseñador o administrador de una localidad pueden ser independientes del resto del sistema distribuido . Los temas de transparencia y autonomía serán considerados desde los siguientes puntos de vista:
Nombre de los datos.
Repetición de los datos.
Fragmentación de los datos.
Localización de los fragmentos y copias.
Asignación de nombres y autonomía local
Todo elemento de información de una base de datos debe tener un nombre único. Esta propiedad se asegura fácilmente en una base de datos que no esté distribuida. Sin embargo, en una base de dalos distribuida, las distintas localidades deben asegurarse no utilizar el mismo nombre para dos datos diferentes.
Una solución para este problema es requerir que se registren todos los nombres en un asignador central de nombres. Sin embargo, este enfoque tiene varias desventajas:
Es posible que el asignador de nombres se convierta en un cuello de botella.
Si el asignador de nombres se cae, es posible que ninguna de las localidades del sistema distribuido pueda seguir trabajando.
Se reduce la autonomía local, ya que la asignación de nombres se controla de forma centralizada.
Un enfoque diferente que origina una mayor autonomía local es exigir que cada localidad ponga como prefijo un identificador de localidad a cualquier nombre que genere. Esto garantiza que dos localidades nunca generarán el mismo nombre (ya que cada localidad tiene un identificador único). Además, no se requiere un control central.
Esta solución al problema de asignación de nombres, logra autonomía local, pero no transparencia de la red, ya que se agregan identificadores de localidad a los nombres. Así, la relación depósito podría llamarse localidad17.depósito en vez de depósito simplemente.
Cada copia y fragmento de un elemento de información deben tener un nombre único. Es importante que el sistema pueda determinar qué copias son copias del mismo elemento de información y qué fragmentos son fragmentos del mismo elemento de información.
Transparencia de la repetición y la fragmentación
No es conveniente requerir que los usuarios hagan referencia a una copia específica de un elemento de información. El sistema debe ser el que determine a qué copia debe acceder cuando se le solicite su lectura, y debe modificar todas las copias cuando se produzca una petición de escritura.
Cuando se solicita un dato, no es necesario especificar la copia. El sistema utiliza una tabla-catálogo para determinar cuáles son todas las copias de ese dato.
De manera similar, no debe exigirse a los usuarios que sepan cómo está fragmentado un elemento de información. Es posible que los fragmentos verticales contengan id-tuplas, que representan direcciones de tuplas. Los fragmentos horizontales pueden haberse obtenido por predicados de selección complejos. Por tanto, un sistema de bases de datos distribuido debe permitir las consultas que se hagan en términos de elementos de información sin fragmentar. Esto no presenta problemas graves, ya que siempre es posible reconstruir el elemento de información original a partir de sus fragmentos. Sin embargo, este proceso puede ser ineficiente.
Transparencia y actualizaciones
De alguna forma es más difícil hacer transparente la base de datos para usuarios que la actualizan que para aquellos que sólo leen datos. El problema principal es asegurarse de que se actualizan todas las copias de un dato y también los fragmentos afectados.
En el caso más general, el problema de actualización de información repetida y fragmentada está relacionado con el problema de actualización de vistas.
Conclusiones y consideraciones:
A lo largo de este documento se ha intentado dar una visión global y genérica de los problemas y características que contiene el diseño de una base de datos. Se ha hecho especial hincapié en las técnicas de fragmentación horizontal y vertical a través de métodos y algoritmos muy frecuentes en la literatura referida al tema.
Se espera que el lector no haya tenido demasiados problemas para su comprensión, las técnicas son sencillas y se ha procurado incluir distintos ejemplos para facilitar el entendimiento. Igualmente, la puesta en práctica de los algoritmos, es decir, su codificación, no es un proceso complicado si se poseen nociones en el desarrollo de algoritmos. Piense, por ejemplo, que los dos algoritmos de partición vertical presentados, no hacen más que manipular matrices.
El Kaizen se enfoca pues en la mejora continua de los estándares en materia de calidad, productividad, costos, seguridad, y entrega. Para ello da primacía a la calidad como componente central que permite y facilita a través de su concreción el cumplimiento de los demás objetivos.
El Kaizen volcado en el plano de la informática implica tanto la aplicación de la filosofía y estrategias, como de los diversos instrumentos, métodos y herramientas de análisis y gestión que le son propias a la mejora continua de las actividades y procesos informáticos.
Las actividades y procesos informáticos para una empresa productora de bienes y servicios no informáticos constituyen actividades con valor agregado para la empresa, pero sin valor agregado para el consumidor. Por tal motivo el tamaño y costos relativos de estas actividades para la organización deben ser reducidos convenientemente. Así pues cada subactividad o subproceso que la componen deberán ser sometido a un análisis tendiente a verificar su utilidad y/o necesidad, como así también al nivel de eficiencia con el cual tienen lugar las mismas. Para ello se hace uso de los conceptos y herramientas del Kaizen.
En el actual orden de cosas los procesos informáticos y la información que estos brindan constituyen un elemento crítico a la hora tanto de prestar los servicios, como de organizar y controlar los procesos productivos, como de tomar decisiones acertadas en tiempo y forma. Por tal motivo aplicar un sistema que como el Kaizen permiten mejorar a un bajo costo y de manera continua los procesos, y los resultados que de ello se deriva, resulta fundamental tanto operativa como estratégicamente para la empresa.
Para cada uno de estos tipos fundamentales el personal del área informática, como así también los clientes del sistema, deberán identificar los desperdicios existentes, analizando su eliminación y aplicando medidas para evitar su reaparición.
De tal forma y sólo a título de ejemplo podemos mencionar los siguientes casos:
2.1. Sobreproducción
Impresión de informes en cantidades superiores a las necesarias, ya sea porque se efectúan con mayor frecuencia de la necesaria, porque se imprimen una cantidad de datos superiores a los requeridos, porque se imprime para sectores que no hacen uso de ellos o que haciendo uso de los mismos podrían compartir dichos impresos con otros sectores. La otra posibilidad es que se imprima información que pudiera ser fácilmente consultada por pantalla.
2.2. Inventario
Exceso de insumos y repuestos. Entre los insumos se tienen las resmas de papel, los monitores de repuestos entre muchos otros.
2.3. Procesamiento
Comprende tanto los diseños de información, procesamiento y carga de datos, como los procesamientos en si.
Así tenemos la duplicación de procesos, que lleva en algunos casos a cargar más de una vez los datos, exceso de datos o mala distribución de éstos en los impresos o pantallas, dejar de lado las necesidades de los usuarios o clientes. Diseños en función a la visión o punto de vista de los programadores.
Es menester subrayar que los errores motivados por una planificación y diseños inapropiados terminan elevando de manera significativa el funcionamiento del sistema, debido entre otros aspectos a los costosos arreglos y en algunas ocasiones severos perjuicios que los errores puedan ocasionar a los clientes de la empresa, a los usuarios internos y los provocados al adoptar decisiones incorrectas.
2.4 Esperas
Provocadas estas por un lado por los cuellos de botella, sean éstos generados por escasez de impresoras, problemas con las velocidades del software o del hardware, velocidades de impresión, o bien provocados dichos cuellos de botella por la existencia de funcionarios que haciendo las veces de filtro concentran poder y lentifican los procesos, haciendo depender al resto de personal y sectores de sus decisiones.
Entre otros motivos de espera se tienen las provocadas por reparaciones debidas a la falta de mantenimiento, y las que tienen lugar por ausencia de capacitación a nuevo personal, las acontecidas por falta de elementos u ordenes para los programadores o personal encargado de grabar datos.
2.5. Movimientos
Los distintos componentes tecnológicos utilizados para mejorar o reducir los movimientos en la carga de datos. Ejemplo: las lectoras de códigos de barras utilizadas en las cajas de los supermercados aceleran enormemente el proceso de facturación, al tiempo de que permiten actualizar de forma continua el estado de los inventarios y generar los pedidos de mercaderías. La utilización de teclados especiales que eviten la aparición de la enfermedad del túnel carpiano a los operadores, permitiendo así mayor descanso, aumento de la productividad y menor ausencia por enfermedad.
2.6. Transporte
Podemos disminuir la cantidad de personal, si en lugar de transportar impresos desde el sector cómputos, los mismos son impresos en cada sector.
De igual forma en lugar de imprimir normativas internas, las mismas tendrían que ser objeto de consulta por monitor vía Intranet. De tal forma se evita gastos de impresión, o de fotocopiado, tiempo de ensobrados, costos de envíos y posteriores tiempos de archivo, lo que a su vez implica costos de espacio, y al momento de la consulta el costo del tiempo de búsqueda de la información en los archivos de carpetas.
2.7. Reparaciones / Rechazos de productos defectuosos
Entre las reparaciones se tienen las de hardware y/o base de datos, provocadas por una falta de política de prevención en materia de protección (Ejemplo: la falta de uso de baterías de energía lleva a daños en los archivos o en los dispositivos internos, debido a los problemas de corte de suministro de energía).
Entre los rechazos de productos defectuosos se tienen desde la falta de calidad en los programas, a los problemas de defectos en las impresiones (por falta de mecanismos automáticos de control –autonomatización-).
Los casos dados anteriormente han sido mencionados tan sólo a título de ejemplo, pudiendo ser ampliados mediante la labor de los Círculos de Calidad o los Equipos de Mejoras de Procesos, haciendo para ello uso de las más diversas herramientas tales como la Tormenta de Ideas, el Diagrama de Ishikawa, el Diagrama de Pareto, los fluxogramas y las estratificaciones entre otros.
QFD
La calidad introducida en las etapas de planificación y diseño permite obtener una mayor eficiencia en base a una calidad elevada a bajo coste.
Al igual que en los procesos de desarrollo de productos, los procesos de desarrollo de software comienzan con las expectativas del cliente y concluyen con la salida del programa terminado. El papel del proceso de desarrollo consiste en traducir las expectativas del cliente interno (o externo) en especificaciones internas, transmitiendo fielmente dichas especificaciones a las distintas funciones implicadas.
Para una mejor concreción de los objetivos de diseño se hace uso del QFD (Despliegue Funcional de la Calidad). La característica esencial del QFD es la de ser una herramienta de la calidad que actúa en la etapa de diseño del producto y su desarrollo.
El Despliegue Funcional de la Calidad es un método para desarrollar una calidad de diseño enfocada a satisfacer al consumidor (cliente interno o externo), de forma que se conviertan los requerimientos del mismo en objetivos de diseño y elementos esenciales de aseguramiento de la calidad a través de la fase de producción (de bienes o servicios –software en éste caso), por lo que podemos afirmar que el despliegue de funciones de calidad es un modo de asegurar la calidad mientras el producto o servicio está en fase de diseño.
Entre los beneficios derivados de la aplicación del QFD tenemos:
1. Integración de la calidad demandada y las características de calidad en un gráfico de calidad básico.
2. Fijación de las metas basadas en la cuantificación de las evaluaciones por parte de los usuarios.
3. Conversión de requerimientos de calidad demandados en elementos medibles de diseño e ingeniería.
4. La planificación del nuevo software resulta más específica.
5. Las actividades de planificación y desarrollo están más ligadas a las expectativas.
6. Jerarquiza las acciones de manera objetiva.
7. Reduce costes.
8. Mayor satisfacción del cliente (interno o externo).
9. Mayor transparencia en los procesos de desarrollo.
10. Mejora de la calidad y fiabilidad del producto.
Entre los resultados concretos cuantificables en las empresas que han hecho uso de esta herramienta se tienen:
• El ciclo de desarrollo se reduce entre un 30% y un 60%.
• Las modificaciones del producto y del proceso se reducen entre un 30% y un 50%.
• Los costes de lanzamiento se reducen entre un 20% y un 60%.
• Las reclamaciones de los clientes se reducen hasta en un 50%.
Análisis Modal de Fallos y Efectos (AMFE)
Conocida también como AMFE, es una metodología que permite analizar la calidad, seguridad y/o fiabilidad del funcionamiento de un sistema, tratando de identificar los fallos potenciales que presenta su diseño y, por tanto, tratando de prevenir problemas futuros de calidad. Se aplica por medio del estudio sistemático de los fallos.
El estudio tendrá como objetivo la corrección de los diseños para evitar la aparición de los fallos, estableciendo en lo necesario, un plan de control dimensional, como resultado del estudio de los fallos y su corrección en lo que sea necesario para evitar la aparición de los mencionados fallos.
Se trata pues de una herramienta de predicción y prevención.
La aplicación de la misma la podemos enmarcar dentro del proceso de diseño, siendo además aplicable a la mejora de productos o procesos existentes.
Autonomatización
Con la autonomatización, las propias máquinas se encargan de no producir fallos. Ejemplo de utilización de este sistema es su aplicación a las impresoras, evitando de tal modo la pérdida de material, y tiempo de proceso, como así también tener que disponer de personas para observar el proceso de impresión.
Los problemas informáticos
El coste de pasar por alto los problemas informáticos puede ser desastroso. El dicho "puede costarle esto ahora y el doble más tarde" resulta tan aplicable a un problema informático como a un problema de transmisión en un automóvil.
La mayoría de los problemas informáticos pueden ser reducidos a cinco causas fundamentales, siendo éstas las siguientes:
1.Planificación insuficiente.
La causa principal de la mayoría de los fallos en los sistemas informáticos es la insuficiencia de los recursos y esfuerzos que se dedicaron a la planificación. A menudo los ordenadores se adquieren por impulso y más para satisfacer un capricho que para cubrir una necesidad de proceso de información. Los sistemas se desarrollan sin planificar su interconexión con los sistemas manuales. La asignación de personal se basa en limitaciones presupuestarias, y no en la capacitación y el número de empleados que se requieren para llevar a efecto de forma eficaz las aplicaciones del ordenador.
La planificación es una función gestora que los técnicos frecuentemente prefieren ignorar, o que la llevan a cabo con el único fin de satisfacer lo que consideran una manía superior pero no para establecer unas pautas que deban seguirse en la automatización de la empresa.
2.Incapacidad de integrar el ordenador en la estructura empresarial.
El principal objetivo de los ordenadores es satisfacer las necesidades de proceso de información de la empresa. Los datos pueden ser el recurso primordial de una organización: no son propiedad del departamento de proceso de datos, ni de los usuarios individuales que crean y utilizan los datos. Mientras que los datos no se administren como un recurso más de la empresa, no recibirán la atención adecuada por parte de la dirección y quedarán relegados a un nivel en el que su utilización puede estar mal planificada y peor dirigida. Es una verdadera pena que no se obtenga provecho de los datos, tratándolos como cualquier otra inversión de la empresa.
A la dirección tal vez no le preocupe que los datos se deterioren, pero no permitirá nunca que le ocurra lo mismo a la maquinaria y las instalaciones.
3.Negligencia en conseguir la necesaria formación del personal de proceso de datos.
Es responsabilidad de la dirección asegurarse de que el personal esté debidamente formado. Ello supone contratar a las personas adecuadas, proporcionarles la formación adicional necesaria para desarrollar o mejorar sus aptitudes, y evaluar su actuación a fin de asegurarse de que el personal está llevando a cabo su trabajo tal como es debido.
Dada la naturaleza técnica del proceso de datos, la dirección puede sentirse insegura a la hora de evaluar las aptitudes necesarias, viéndose obligada a apoyarse en terceras personas para contratar nuevo personal y a considerar la experiencia previa como signo de competencia. Los usuarios necesitan también una formación técnica.
4.Incapacidad para determinar las auténticas necesidades del usuario.
Los técnicos no suelen opinar que la determinación de las necesidades reales del usuario sea una función productiva.
El diseño, la programación y las pruebas del sistema son trabajos cuyos resultados resultan visibles. Ahora bien, un gran número de sistemas se construyen antes de que su proyecto se haya estructurado por completo, y son muchos los usuarios que aprueban un sistema antes de saber exactamente qué es lo que se les está ofreciendo.
Materializar lo que otros dicen que desean o aquello a lo que dan su aprobación, no tiene ninguna utilidad, si luego no sirve para el trabajo que hay que hacer.
5.Negligencia en el establecimiento de los controles informáticos adecuados.
En un entorno ideal, en el que todo funciona a la perfección, los controles son innecesarios. Por desgracia, los sistemas informáticos rara vez son ideales y requieren, por tanto, un control.
Como ya se explicó con anterioridad, los controles manuales pueden no ser eficaces en un sistema automatizado. Los controles diseñados para una sistema automatizado deben complementar las características del ordenador. Ello implica una reestructuración de los controles por parte de una persona que conozca a fondo la empresa y el ordenador.
Estas causas fundamentales de los problemas informáticos pueden exponerse a través de las siguientes cinco reglas esenciales:
Primera regla: "Desarrollar planes informáticos tanto a largo como a corto plazo, ateniéndose luego a ellos".
Segunda regla: "Nombrar un directivo que se haga responsable de los datos y de integrar la utilización del ordenador en la estructura empresarial"
Tercera regla: "Contratar a los mejores técnicos disponibles, desarrollando de forma continua sus aptitudes y evaluando sus capacidades para desempeñar de forma adecuada sus cometidos. Sustituyendo a quienes no lleguen a alcanzar las aptitudes necesarias".
Cuarta regla: "No adquirir ni poner en funcionamiento una aplicación informática hasta que todas las necesidades se hayan definido correctamente y todas las partes interesadas hayan dado su conformidad".
Quinta regla: "Diseñar y mantener un sistema adecuado de controles de ordenador que aseguren un proceso de datos exactos, completo, profesional y a tiempo".
Instrumentos de diagnóstico
La Matriz de Diagnóstico y Resolución de Problemas puede y debe complementarse con otros instrumentos siendo éstos los siguientes:
• Test de intuición: consistentes en prueba para saber si el ordenador se está o no utilizando correctamente.
• Test analítico: consiste en una evaluación matemática para poner de manifiesto con datos numéricos los buenos y malos aspectos de la función de proceso de datos.
• Test de exploración: conformado por cuestionarios estructurados cuyo fin es descubrir los defectos de las aplicaciones del proceso de datos propuestas o implantadas.
• Plan de actuación para erradicar los problemas informáticos
• Para erradicar un problema informático es necesario que la alta dirección dé el primer paso. La información es un recurso de la empresa y, por consiguiente, ha de ser gestionado como cualquier otro. La alta dirección debe establecer las directrices requeridas para esa gestión.
A continuación se enumeran las cuatro etapas del plan de actuación:
• Etapa 1: establecer directrices de calidad en el proceso de datos. En esta etapa, la dirección debe especificar el nivel de calidad que espera del proceso de la información.
• Etapa 2: nombrar a una persona que asuma la responsabilidad. Las directrices sólo funcionan cuando se asigna a una sola persona la responsabilidad de su cumplimiento.
• Etapa 3: establecer una función de garantía de calidad. Es la que se hace cargo del adecuado funcionamiento del proceso de tratamiento de la información.
• Etapa 4: establecer una función de control de calidad.
El control de calidad ha de efectuarse durante el desarrollo y ejecución de cada uno de los sistemas de aplicaciones. Esta función se encarga de garantizar que los productos elaborados por la función de proceso de datos cumplan las normas establecidas por la dirección en sus directrices de calidad.
• Principales síntomas de problemas informáticos
• A los efectos de su detección, posterior análisis y resolución del problema de acuerdo a los patrones antes expuestos, se despliega a continuación una lista de 43 síntomas que manifiestas algún tipo de problema en el sistema informático.
Se aconseja a los responsables encarar dicho análisis como tarea grupal o bien realizar dicho test de manera individual, reuniéndose posteriormente dichas personas para evaluar sus respuestas. Es conveniente para cada punto manifestar si se da o no tal problema, ejemplificando con posterioridad el mismo. Si muchos puntos son coincidentes en cuando a respuesta y si a ello se agregan los mismos ejemplos tendremos ante nosotros puntos bien precisos de mejora a realizar.
Base de datos distribuida
es una colección de datos que pertenecen lógicamente a un sólo sistema, pero se encuentra físicamente esparcido en varios "sitios" de la red.
Un sistema de base de datos distribuidas se compone de un conjunto de sitios, conectados entre sí mediante algún tipo de red de comunicaciones, en el cual :
• Cada sitio es un sistema de base de datos en sí mismo, pero,
• Los sitios han convenido en trabajar juntos ( si es necesario ) con el fin de que un usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal como si todos los datos estuvieran almacenados en el sitio propio del usuario.
El sistema de administración de Base de Datos Distribuida (DDBMS), esta formado por las transacciones y los administradores de base de datos distribuidos de todas las computadoras. Tal DDBMS en un esquema genérico implica un conjunto de programas que operan en diversas computadoras. Estos programas pueden ser subsistemas de un producto único DDBMS, concesionado por un sólo fabricante, o también pudiera resultar de una colección de programas de fuentes dispares : algunos considerados por fabricantes y algunos otros escritos en casa.
Un administrador de base de datos (DTM) es un programa que recibe solicitudes de procesamiento de los programas de consulta o de transacciones y a su vez las traduce en acciones para los administradores de la base de datos . Una función importante del DTM es coordinar y controlar dichas acciones.
Cada sitio tiene sus propias bases de datos "reales" locales, sus propios usuarios locales, sus propios DBMS y programas para administración de transacciones y su propio administrador local de comunicación de datos. La diferencia principal entre los sistemas de bases de datos centralizados y los distribuidos es que en los primeros, los datos residen en una sola localidad, mientras que, en lo últimos, se encuentran en varias localidades. Cada localidad puede procesar transacciones locales , es decir, aquellas que sólo acceden a datos que residen en esa localidad. Además, una localidad puede participar en la ejecución de transacciones globales , es decir, aquellas que acceden a datos de varias localidades, ésta requiere comunicación entre las localidades.
Una transacción local es la que accede a cuentas en la localidad individual donde se inicio. En cambio, una transacción global accede a cuentas de una localidad distinta a la localidad donde se inicio o a cuentas de varias localidades diferentes.
Por qué son deseables las bases de datos distribuidas?
La respuesta básica a esta pregunta es que por lo regular las empresas ya están distribuidas, por lo menos desde el punto de vista lógico ( en divisiones, departamentos, proyectos, etc ) y muy probablemente en el sentido físico también ( en plantas, talleres, laboratorios, y demás ), de lo cual se desprende que en general la información ya está también distribuida, porque cada unidad de organización dentro de la empresa mantendrá por fuerza los datos pertinentes a su propio funcionamiento. Así pues, un sistema distribuido permite que la estructura de la base de datos refleje la estructura de la empresa : los datos locales se pueden mantener en forma local, donde por lógica deben estar, pero al mismo tiempo es posible obtener acceso a datos remotos en caso necesario.
• principio fundamental de las bases de datos distribuidas :
Desde el punto de vista del usuario, un sistema distribuido deberá ser idéntico un sistema no distribuido. En otras palabras, los usuarios de un sistema distribuido deberán comportarse exactamente como si el sistema no estuviera distribuido. Todos los problemas de los sistemas distribuidos son (o deberían ser ) internos o a nivel de realización, no externos o a nivel del usuario. Llamaremos al principio fundamental recién identificado la "regla cero" de los sistemas distribuidos.
La regla cero conduce a varios objetivos o reglas secundarios - doce en realidad- siguientes :
• Autonomía local.
• No dependencia de un sitio central.
• Operación continua.
• Independencia con respecto a la localización.
• Independencia con respecto a la fragmentación.
• Independencia de réplica.
• Procesamiento distribuido de consultas.
• Manejo distribuido de transacciones.
• Independencia con respecto al equipo.
• Independencia con respecto al sistema operativo.
• Independencia con respecto a la red.
• Independencia con respecto al DBMS.
Ventajas
Existen cuatro ventajas del procesamiento de bases de datos distribuidas.
La primera , puede dar como resultado un mejor rendimiento que el que se obtiene por un procesamiento centralizado. Los datos pueden colocarse cerca del punto de su utilización, de forma que el tiempo de comunicación sea más mas corto. Varias computadoras operando en forma simultánea pueden entregar más volumen de procesamiento que una sola computadora.
Segundo , los datos duplicados aumentan su confiabilidad. Cuando falla una computadora, se pueden obtener los datos extraídos de otras computadoras. Los usuarios no dependen de la disponibilidad de una sola fuente para sus datos .
Una tercera ventaja , es que los sistemas distribuidos pueden variar su tamaño de un modo más sencillo. Se pueden agregar computadoras adicionales a la red conforme aumentan el número de usuarios y su carga de procesamiento. A menudo es más fácil y más barato agregar una nueva computadora más pequeña que actualizar una computadora única y centralizada. Después, si la carga de trabajo se reduce, el tamaño de la red también puede reducirse.
Por último , los sistemas distribuidos se puede adecuar de una manera más sencilla a las estructuras de la organización de los usuarios.
Desventajas
Las primeras dos desventajas de las bases de datos distribuidas son las mismas que las dos primeras ventajas.
Primero,
el rendimiento puede ser peor para el procesamiento distribuido que para el procesamiento centralizado. Depende de la naturaleza de la carga de trabajo, la red, el DDBMS y las estrategias utilizadas de concurrencia y de falla, así como las ventajas del acceso local a los datos y de los procesadores múltiples, ya que éstos pueden ser abrumados por las tareas de coordinación y de control requeridas. Tal situación es probable cuando la carga de trabajo necesita un gran número de actualizaciones concurrentes sobre datos duplicados, y que deben estar muy distribuidos.
Segundo ,
el procesamiento de base de datos distribuida puede resultar menos confiable que el procesamiento centralizado. De nuevo, depende de la confiabilidad de las computadoras de procesamiento, de la red, del DDBMS, de las transacciones y de las tasas de error en la carga de trabajo. Un sistema distribuido puede estar menos disponible que uno centralizado. Estas dos desventajas indican que un procesamiento distribuido no es ninguna panacea. A pesar de que tiene la promesa de un mejor rendimiento y de una mayor confiabilidad, tal promesa no está garantizada.
Una tercera desventaja es su mayor complejidad, a menudo se traduce en altos gastos de construcción y mantenimiento. Ya que existen más componentes de hardware, hay más cantidad de cosas por aprender y más interfaces susceptibles de fallar. El control de concurrencia y recuperación de fallas puede convertirse en algo complicado y difícil de implementar, puede empujar a una mayor carga sobre programadores y personal de operaciones y quizá se requiera de personal más experimentado y más costoso.
El procesamiento de bases de datos distribuido es difícil de controlar.
Una computadora centralizada reside en un entorno controlado, con personal de operaciones que supervisa muy de cerca, y las actividades de procesamiento pueden ser vigiladas, aunque a veces con dificultad. En un sistema distribuido, las computadoras de proceso, residen muchas veces en las áreas de trabajo de los usuarios. En ocasiones el acceso físico no está controlado, y los procedimientos operativos son demasiado suaves y efectuados por personas que tienen escasa apreciación o comprensión sobre su importancia. En sistemas centralizados, en caso de un desastre o catástrofe, la recuperación puede ser más difícil de sincronizar.
• Propagación de Actualizaciones
El problema básico con la réplica de datos, es la necesidad de propagar cualquier modificación de un objeto lógico dado a todas las copias almacenadas de ese objeto. Un problema que surge es que algún sitio donde se mantiene una copia del objeto puede NO estar disponible, y fracasaría; la modificación si cualquiera de las copias no esta disponible.
Para tratar este problema se habla de " una copia primaria " y funciona así :
• Una de las copias del objeto se designa como copia primaria, y las otras serán secundarias.
• Las copias primarias de los distintos objetos están en sitios diferentes.
• Las operaciones de actualización se consideran completas después de que se ha modificado la copia primaria.
. El sitio donde se encuentra esa copia se encarga entonces de propagar la actualización a las copias secundarias.
Recuperación
Basado en el protocolo de compromiso de dos fases.
El compromiso de dos fases es obligatorio en cualquier ambiente en el cual una sola transacción puede interactuar con varios manejadores de recursos autónomos, pero tiene especial importancia en un sistema distribuido porque los manejadores de recursos en cuestión ( o sea los DBMS locales ) operan en sitios distintos y por tanto son muy autónomos.
En particular, son vulnerables a fallas dependientes. Surgen los siguientes puntos :
• El objetivo de "no dependencia de un sitio central" dicta que la función de coordinador no debe asignarse a un sitio específico de la red, sino que deben realizarla diferentes sitios para diferentes transacciones. Por lo regular se encarga de ella el sitio en el cual se inicia la transacción en cuestión.
• El proceso de compromiso en dos fases requiere una comunicación entre el coordinador y todos los sitios participantes, lo cual implica más mensajes y mayor costo extra.
• Si el sitio Y actúa como participante en un proceso de compromiso en dos fases coordinado por el sitio X, el sitio Y deberá hacer lo ordenado pro el sitio X ( compromiso o retroceso, según se aplique ), lo cual implica otra pérdida de autonomía local.
• En condiciones ideales, nos gustaría que el proceso de compromiso en dos fases funcionara aun en caso de presentarse fallas de sitios o de la red en cualquier punto. Idealmente, el proceso debería ser capaz de soportar cualquier tipo concebible de falla. Por desgracia es fácil ver que este problema es en esencia imposible de resolver; es decir, no existe un protocolo finito que garantice el compromiso al unísono de una transacción exitosa por parte de todos los agentes, o el retroceso al unísono de una transacción no exitosa en caso de fallas arbitrarias.
Concurrencia
Este concepto tiene que ver con la definición de un agente.
El manejo de transacciones tiene dos aspectos principales, el control de recuperación y el control de concurrencia. En un sistema distribuido, una sola transacción puede implicar la ejecución de código en varios sitios ( puede implicar actualizaciones en varios sitios ), entonces se dice que una transacción esta compuesta por varios agentes, donde un agente es el proceso ejecutado en nombre de una transacción dada en determinado sitio. Y el sistema necesita saber cuando dos agentes son parte de la misma transacción.
Un Panorama de las Bases de Datos Orientadas a Objetos
Como cualquier base de datos programable, una base de datos orientada a objetos (BDOO) da un ambiente para el desarrollo de aplicaciones con un depósito persistente listo para su explotación. Una BDOO almacena y manipula información que puede ser digitalizada (representada) como objetos, proporciona una estructura flexible con acceso ágil, rápido, con gran capacidad de modificación. Además combina las mejores cualidades de los archivos planos, las bases jerárquicas y relaciónales.
Actualmente, el creciente uso de las metodologías de programación orientadas a objetos está promoviendo la aparición de manejadores de BDOO en el mercado. Esto tiene sentido, puesto que la tecnología de objetos proviene del desarrollo de metodologías avanzadas de programación. Más aún, la comunidad internacional está convencida de que los manejadores de BDOO tienen la flexibilidad tanto en la definición del modelo de datos como en el desempeño tan anhelado por muchos desarrolladores de aplicaciones, lo que es imposible encontrar en los modelos jerárquicos de red o relaciónales.
Los objetos pueden estar compuestos por cualquier tipo de información que, eventual mente, puede almacenarse en forma digital; por ejemplo, imágenes barridas, voz, sonido, dibujos, planos arquitectónicos complejos, esquemas electrónicos y diagramas desarrollados por ingenieros, así como los tradicionales tipos de datos alfanuméricos. Comúnmente, las aplicaciones que producen este tipo de objetos complejos, al terminar, los guardan en archivos de datos en distintos formatos. Cuando el programa es reactivado, los objetos, se cargan nuevamente. En estos ambientes, los objetos son accesibles sólo a un usuario en cada momento, no existen mecanismos de seguridad, no hay manera de protegerse ante la eliminación accidental de un objeto complejo. Las BDOO superan todas estas dificultades porque permiten que múltiples usuarios compartan objetos complejos para manipularlos en ambiente seguro y estructurado.
Una base de datos relacional tiene una estructura más flexible, pero no puede manejar tipos de datos complejos. Para sobreponerse a estas limitaciones, algunos proveedores han desarrollado las bases de datos orientadas a objetos, las cuales son diseñadas para manipular los objetos con los conceptos de la programación orientada a objetos, proporcionando un concepto persistente en un ambiente multiusuario seguro.
Existen niveles en los cuales las bases de datos incorporan los conceptos alrededor de la metodología de objetos. La primera clase, puede denominarse BDOO pasivas o "estructuralmente orientadas a objetos", que permiten manejar objetos compuestos. Una base de datos pasiva puede almacenar objetos complejos pero no puede definir comportamientos. Este tipo de bases de datos se utiliza para almacenar objetos de otras aplicaciones. Una BDOO pasiva incluye conceptos como "jerarquía parte de", pero no incluye mecanismos para tipos definidos por el usuario o aspectos que definen comportamientos. Una BDOO es activa u "orientada a objetos por comportamiento" si permite definir y ejecutar comportamiento de los objetos dentro de la base de datos, incorpora conceptos como la "herencia" y permite el manejo de tipos definidos por el usuario. Si se incorporan todos los aspectos se denomina "plenamente orientada a objetos". En bases de datos activas, es sencillo programar una señal de alerta en un objeto inventario cuando se llega a un nivel mínimo.
Ventajas en BDOOs
Entre las ventajas más ilustrativas de las BDOOs está su flexibilidad, soporte para el manejo de tipos de datos complejos. Por ejemplo, en una base de datos convencional, si una empresa adquiere varios clientes por referencia de clientes servicio, pero la base de datos existente, que mantiene la información de clientes y sus compras, no tiene un campo para registrar quién proporcionó la referencia, de qué manera fue dicho contacto, o si debe compensarse con una comisión, sería necesario reestructurar la base de datos para añadir este tipo de modificaciones. Por el contrario, en una BDOO, el usuario puede añadir una "subclase" de la clase de clientes para manejar las modificaciones que representan los clientes por referencia.
La subclase heredará todos los atributos, características de la definición original, además se especializará en especificar los nuevos campos que se requieren así como los métodos para manipular solamente estos campos. Naturalmente se generan los espacios para almacenar la información adicional de los nuevos campos.
Esto presenta la ventaja adicional que una BDOO puede ajustarse a usar siempre el espacio de los campos que son necesarios, eliminando espacio desperdiciado en registros con campos que nunca usan.
La segunda ventaja de una BDOO, es que manipula datos complejos en forma rápida y ágilmente.
La estructura de la base de datos está dada por referencias (o apuntadores lógicos) entre objetos.
No se requieren búsquedas en tablas o uniones para crear relaciones. Esta capacidad resulta atractiva en aplicaciones de la ingeniería, donde las relaciones entre componentes dependen de factores diversos.
Por ejemplo, considérese una aplicación en el diseño de vehículos automotores.
El fabricante que quiere determinar una lista de partes necesarias para un auto, para un modelo particular requiere de diferentes decisiones subsecuentes para elaborarla, Si el modelo es automático o estándar, se necesita de un chasis particular como de la caja de velocidades correspondientes.
Escoger un tipo de motor obliga a decidir sobre otras partes requeridas, todo esto hasta el nivel de componentes y piezas individuales. Armar esta lista de componentes resulta más ágil en una BDOO que en una base de datos relacional. En un modelo relacional las tablas deben ser barridas, buscadas cada vez que se indica una condición, resultando, posiblemente, en miles de direccionamientos.
Posibles Problemas
Al considerar la adopción de la tecnología orientada a objetos, la inmadurez del mercado de BDOO constituye una posible fuente de problemas por lo que debe analizarse con detalle la presencia en el mercado del proveedor para adoptar su producto en una línea de producción sustantiva. Por eso, en este artículo proponemos que se explore esta tecnología en un proyecto piloto.
El segundo problema es la falta de estándares en la industria orientada a objetos. Sin embargo, el "Object Managenent Group" (OMG), es una organización Internacional de proveedores de sistemas de información y usuarios dedicada a promover estándares para el desarrollo de aplicaciones y sistemas orientados a objetos en ambientes de cómputo en red.
La implantación de una nueva tecnología requiere que los usuarios iniciales acepten cierto riesgo. Aquellos que esperan resultados a corto plazo y con un costo reducido quedarán desilusionados. Sin embargo, para aquellos usuarios que planean a un futuro intermedio con una visión tecnológica de avanzada, el uso de tecnología de avanzada, el uso de tecnología orientada a objetos, paulatinamente compensará todos los riesgos.
La tecnología de bases de datos orientadas a objetos está en su infancia, sin embargo, establece amplios signos de madurez. Ante la disyuntiva de tomar una decisión estratégica, recalcamos que las empresas e industrias que desean conformar un liderazgo tecnológico están en la posibilidad de explorar los productos comercialmente disponibles o los prototipos de los centros de investigación para iniciar la experimentación y desarrollo de proyectos pilotos.
La asociación de proyectos piloto con instituciones de investigación, permitirá establecer el vínculo entre tecnología, estrategia empresarial y mercado. Las empresas que inicien ahora la exploración de la BDOO podrán apropiarse de esta tecnología y consolidar una ventaja competitiva determinante cuando dominen e incorporen las BDOO en sus procesos productivos.
EL MODELO RELACIONAL
Al utilizar una base de datos se está tratando de modelar los datos y sus conexiones en un problema del mundo real. Para definir el modelo relacional se inicia con una definición de lo que es un modelo de datos en general.
Un modelo de datos es un sistema formal y abstracto que permite describir los datos de acuerdo con reglas y convenios predefinidos. Es formal pues los objetos del sistema se manipulan siguiendo reglas perfectamente definidas y utilizando exclusivamente los operadores definidos en el sistema, independientemente de lo que estos objetos y operadores puedan significar [Rivero].
Según el mismo autor, un modelo de datos tiene tres componentes que son:
Componentes:
Estructuras de datos:
es la colección de objetos abstractos formados por los datos.
Operadores entre las estructuras: el conjunto de operadores con reglas bien definidas que permiten manipular a dichas estructuras.
Definiciones de integridad:
es una colección de conceptos y reglas.
Que permite expresar que valores de datos pueden aparecer válidamente en el modelo.
En el manejo de bases de datos hay tres modelos de datos principales que son el jerárquico, permite modelar los datos en base a una jerarquización; el de red, donde los datos forman retículas; y el relacional basado en el concepto matemático de relación.
Como modelo de datos el modelo relacional tiene las siguientes componentes:
Estructuras de datos: son los conceptos de relación, entidades, atributos y dominios.
Operadores: sus operadores incluyen los de actualización y la llamada álgebra relacional.
Definiciones de integridad: está dada por el concepto de llave, posibilidades de valores nulos y dos reglas de integridad.
ESTRUCTURAS DE DATOS DEL MODELO RELACIONAL
En el modelo relacional las estructuras de datos son los conceptos de relación, dominio, atributo y entidad
.
Relación: denota una colección ó conexión entre objetos que tienen los mismos tipos de características o atributos.
Entidad: es un elemento de datos con un conjunto finito de atributos. También se le llama eneada por consistir de n valores, uno para cada atributo.
Atributo o característica, cada atributo tiene un dominio asociado.
Dominio es el conjunto de valores que puede tomar un atributo.
Las relaciones se representan por tablas donde las columnas son los atributos o características. En los renglones se almacenan los elementos de datos con sus valores para cada atributo. En el modelo relacional no se consideran ordenados los renglones. Una representación de una relación es indicar su nombre y entre llaves el conjunto de atributos.
A esta representación también se le llama esquema de la relación.
DEFINICIONES DE INTEGRIDAD EN EL MODELO RELACIONAL
Los conceptos de definiciones de integridad para el modelo relacional son llave primaria y foránea, los valores nulos y dos reglas de integridad que se enuncian a continuación.
Dentro de los atributos debe haber uno o varios que sirvan para distinguir cada entidad en la relación. Es a lo que se llama llave primaria.
Ejemplo:
En la relación Alumnos anterior la llave primaria es
No.Cta.; en la relación Materias la llave es Clave-mat
y en Evaluaciones es la unión de No.Cta y Clave-mat.
Llave Foránea: hace referencia a una llave primaria en
otra relación. Una relación puede tener una o varias
llaves foráneas.
Ejemplo:
Los atributos No.Cta y Clave-mat son llaves foráneas
en la relación Evaluaciones.
Una relación puede tener varias llaves. La que se elige para
identificar a una relación se le llama llave primaria. En el modelo
relacional es el concepto de llave la única forma de encontrar una
entidad.
Un valor nulo denotado por ``?'', proporciona la posibilidad de manejar situaciones como las siguientes:
1.- Se crea una eneada y no se conocen los valores de los atributos.
2.- Se agrega un atributo a una relación ya existente.
3.- Se usan para no introducir valores numéricos al hacer cálculos.
A fin de mantener la integridad a lo largo del tiempo en una base de datos relacional, se debe cumplir con algunas restricciones en cuanto a los valores de las llaves primarias.
Integridad de Relaciones : Ningún componente de la llave primaria puede tener valores nulos.
Integridad Referencial: Si se tiene una relación q con una llave primaria A de dominio D, y r otra relación con atributo A no llave. Entonces cualquier valor del campo de A en r debe ser:
i) nulo o,
ii) el valor de una llave primaria de la otra relación q donde se tiene la llave primaria sobre D.
OPERADORES DEL MODELO RELACIONAL
Los operadores del modelo relacional son de dos tipos: operadores de actualización de entidades y operadores del álgebra relacional.
Operadores de actualización
Para actualizar los valores de los atributos en las entidades se pueden efectuar las operaciones de agregar, borrar o modificar.
El manejo de llaves foráneas hace necesario establecer reglas que determinan como manejar las operaciones de actualización de relaciones para no introducir inconsistencias, a continuación se indican dichas reglas :
Reglas:
Reglas para agregar. Al insertar una entidad en una relación, el valor de un atributo que es llave foránea puede ser nulo, o algún valor del dominio de la llave primaria.
Reglas para borrar. Si se va a borrar una entidad en una relación r1 con cierta llave primaria y otra relación r2 tiene ese campo como llave foránea, hay 3 casos:
Casos de Borrado:
Borrado restringido.
No se puede borrar una entidad en r1 que tenga entidades en r2 con el mismo valor como llave foránea.
Borrado encascada.
Al borrar una entidad en r1 se borrarán todas las entidades en r2 con ese valor.
Borrado con nulificación. Al borrar la entidad en r1,a todas las entidades con igual valor en r2 se les pone el valor nulo.
Regla para Modificar.
i) Modificación en cascada :
Al modificar una llave primaria en r1 se le cambian los valores correspondientes en r2.
ii)Modificación con nulificación :
Al cambiar los valores de la llave primaria en r1 a los correspondientes en r2 se les pone el valor nulo.
Estructura de Base de Datos Distribuidas
Un sistema distribuido de base de datos consiste en un conjunto de localidades, cada una de las cuales mantiene un sistema de base de datos local. Cada localidad puede procesar transacciones locales, o bien transacciones globales entre varias localidades, requiriendo para ello comunicación entre ellas.
Las localidades pueden conectarse físicamente de diversas formas, las principales son:
Red totalmente conectada
Red prácticamente conectada
Red con estructura de árbol
Red de estrella
Red de anillo
Las diferencias principales entre estas configuraciones son:
Coste de instalación: El coste de conectar físicamente las localidades del sistema
Coste de comunicación: El coste en tiempo y dinero que implica enviar un mensaje desde la localidad A a la B.
Fiabilidad: La frecuencia con que falla una línea de comunicación o una localidad.
Disponibilidad: La posibilidad de acceder a información a pesar de fallos en algunas localidades o líneas de comunicación.
Las localidades pueden estar dispersas, ya sea por un área geográfica extensa (a lo largo de un país), llamadas redes de larga distancia; o en un área reducida (en un mismo edificio), llamadas redes de área local. Para las primeras se utilizan en la comunicación líneas telefónicas, conexiones de microondas y canales de satélites; mientras que para las segundas se utiliza cables coaxiales de banda base o banda ancha y fibra óptica.
Consideraciones al distribuir la base de datos
Existen varias razones para construir sistemas distribuidos de bases de datos que incluyen compartir la información, fiabilidad y disponibilidad y agilizar el procesamiento de las consultas. Pero también tiene sus desventajas, como desarrollos de software más costosos, mayor posibilidad de errores y costos extras de procesamiento.
Ventajas de la distribución de datos
La principal ventaja de los sistemas distribuidos es la capacidad de compartir y acceder a la información de una forma fiable y eficaz.
Utilización compartida de los datos y distribución del control
La ventaja principal de compartir los datos por medio de la distribución es que cada localidad pueda controlar hasta cierto punto los datos almacenados localmente. En un sistema centralizado, el administrador de base de datos de la localidad central controla la base de datos. En un sistema distribuido existe un administrador global de la base de datos que se encarga de todo el sistema. Parte de esta responsabilidad se delega al administrador de base de datos de cada localidad. Dependiendo del diseño del sistema distribuido, cada administrador local podrá tener un grado de autonomía diferente, que se conoce como autonomía local.
La posibilidad de contar con autonomía local es en muchos casos una ventaja importante de las bases de datos distribuidas.
Fiabilidad y disponibilidad
Si se produce un fallo en una localidad de un sistema distribuido, es posible que las demás localidades puedan seguir trabajando. En particular, si los datos se repiten en varias localidades, una transacción que requiere un dato específico puede encontrarlo en más de una localidad. Así, el fallo de una localidad no implica necesariamente la desactivación del sistema.
El sistema debe detectar cuando falla una localidad y tomar las medidas necesarias para recuperarse del fallo. El sistema no debe seguir utilizando la localidad que falló. Por último, cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla al sistema con el mínimo de complicaciones.
La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en aplicaciones de tiempo real. Por ejemplo, si una línea aérea no puede tener acceso a la información, es posible que pierda clientes a favor de la competencia.
Agilización del procesamiento de consultas
Si una consulta comprende datos de varias localidades, puede ser posible dividir la consulta en varias subconsultas que se ejecuten en paralelo en distintas localidades. Sin embargo, en un sistema distribuido no se comparte la memoria principal, así que no todas las estrategias de intersección se pueden aplicar en estos sistemas. En los casos en que hay repetición de los datos, el sistema puede pasar la consulta a las localidades más ligeras de carga.
Desventajas de la distribución de los datos
La desventaja principal de los sistemas distribuidos es la mayor complejidad que se requiere para garantizar una coordinación adecuada entre localidades.
El aumento de la complejidad se refleja en:
Coste del desarrollo de software: es más difícil estructura un sistema de bases de datos distribuidos y por tanto su coste es menor
Mayor posibilidad de errores: puesto que las localidades del sistema distribuido operan en paralelo, es más difícil garantizar que los algoritmos sean correctos.
Mayor tiempo extra de procesamiento: el intercambio de mensajes y los cálculos adicionales son una forma de tiempo extra que no existe en los sistemas centralizados.
Transparencia y Autonomía
En la sección anterior se vio que una relación r puede almacenarse de varias formas en un sistema de base de datos distribuida. Es esencial que el sistema reduzca al mínimo la necesidad de que el usuario se dé cuenta de cómo está almacenada una relación. Como veremos. un sistema puede ocultar los detalles de la distribución de la información en la red. Esto se denomina transparencia de la red.
La transparencia de la red se relaciona, en algún modo, a la autonomía local. La transparencia de la red es el grado hasta el cual los usuarios del sistema pueden ignorar los detalles del diseño distribuido. La autonomía local es el grado hasta el cual el diseñador o administrador de una localidad pueden ser independientes del resto del sistema distribuido . Los temas de transparencia y autonomía serán considerados desde los siguientes puntos de vista:
Nombre de los datos.
Repetición de los datos.
Fragmentación de los datos.
Localización de los fragmentos y copias.
Asignación de nombres y autonomía local
Todo elemento de información de una base de datos debe tener un nombre único. Esta propiedad se asegura fácilmente en una base de datos que no esté distribuida. Sin embargo, en una base de dalos distribuida, las distintas localidades deben asegurarse no utilizar el mismo nombre para dos datos diferentes.
Una solución para este problema es requerir que se registren todos los nombres en un asignador central de nombres. Sin embargo, este enfoque tiene varias desventajas:
Es posible que el asignador de nombres se convierta en un cuello de botella.
Si el asignador de nombres se cae, es posible que ninguna de las localidades del sistema distribuido pueda seguir trabajando.
Se reduce la autonomía local, ya que la asignación de nombres se controla de forma centralizada.
Un enfoque diferente que origina una mayor autonomía local es exigir que cada localidad ponga como prefijo un identificador de localidad a cualquier nombre que genere. Esto garantiza que dos localidades nunca generarán el mismo nombre (ya que cada localidad tiene un identificador único). Además, no se requiere un control central.
Esta solución al problema de asignación de nombres, logra autonomía local, pero no transparencia de la red, ya que se agregan identificadores de localidad a los nombres. Así, la relación depósito podría llamarse localidad17.depósito en vez de depósito simplemente.
Cada copia y fragmento de un elemento de información deben tener un nombre único. Es importante que el sistema pueda determinar qué copias son copias del mismo elemento de información y qué fragmentos son fragmentos del mismo elemento de información.
Transparencia de la repetición y la fragmentación
No es conveniente requerir que los usuarios hagan referencia a una copia específica de un elemento de información. El sistema debe ser el que determine a qué copia debe acceder cuando se le solicite su lectura, y debe modificar todas las copias cuando se produzca una petición de escritura.
Cuando se solicita un dato, no es necesario especificar la copia. El sistema utiliza una tabla-catálogo para determinar cuáles son todas las copias de ese dato.
De manera similar, no debe exigirse a los usuarios que sepan cómo está fragmentado un elemento de información. Es posible que los fragmentos verticales contengan id-tuplas, que representan direcciones de tuplas. Los fragmentos horizontales pueden haberse obtenido por predicados de selección complejos. Por tanto, un sistema de bases de datos distribuido debe permitir las consultas que se hagan en términos de elementos de información sin fragmentar. Esto no presenta problemas graves, ya que siempre es posible reconstruir el elemento de información original a partir de sus fragmentos. Sin embargo, este proceso puede ser ineficiente.
Transparencia y actualizaciones
De alguna forma es más difícil hacer transparente la base de datos para usuarios que la actualizan que para aquellos que sólo leen datos. El problema principal es asegurarse de que se actualizan todas las copias de un dato y también los fragmentos afectados.
En el caso más general, el problema de actualización de información repetida y fragmentada está relacionado con el problema de actualización de vistas.
Conclusiones y consideraciones:
A lo largo de este documento se ha intentado dar una visión global y genérica de los problemas y características que contiene el diseño de una base de datos. Se ha hecho especial hincapié en las técnicas de fragmentación horizontal y vertical a través de métodos y algoritmos muy frecuentes en la literatura referida al tema.
Se espera que el lector no haya tenido demasiados problemas para su comprensión, las técnicas son sencillas y se ha procurado incluir distintos ejemplos para facilitar el entendimiento. Igualmente, la puesta en práctica de los algoritmos, es decir, su codificación, no es un proceso complicado si se poseen nociones en el desarrollo de algoritmos. Piense, por ejemplo, que los dos algoritmos de partición vertical presentados, no hacen más que manipular matrices.
Suscribirse a:
Comentarios (Atom)