Proceso (INFORMÁTICA)
¿Qué
es un proceso? (INFORMÁTICA)
Un proceso puede
informalmente entenderse como un programa en
ejecución. Formalmente un proceso es "Una unidad de actividad que se
caracteriza por la ejecución de una secuencia de instrucciones, un estado
actual, y un conjunto de recursos del sistemas asociados".
Para
entender la diferencia entre un programa y un proceso, A. S. Tanenbaum propone
la analogía "Un científico computacional con mente culinaria hornea un
pastel de cumpleaños para su hija; tiene la receta para un pastel de cumpleaños
y una cocina bien equipada con todos los ingredientes necesarios, harina, huevo
azúcar, leche, etcétera." Situando cada parte de la analogía se puede
decir que la receta representa el programa (el algoritmo), el científico
computacional es el procesador y los ingredientes son las entradas del
programa. El proceso es la actividad que consiste en que el científico
computacional vaya leyendo la receta, obteniendo los ingredientes y horneando
el pastel.
Cada
proceso tiene su contador de programa, registros y
variables, aislados de otros procesos, incluso siendo el mismo programa en
ejecución 2 veces. Cuándo este último caso sucede, el sistema operativo usa la
misma región de memoria de código, debido a que dicho código no cambiará, a
menos que se ejecute una versión distinta del programa.
Los
procesos son gestionados por el sistema
operativo y están
formados por:
§
Las instrucciones de un programa destinadas a ser
ejecutadas por el microprocesador.
§
Su estado de ejecución en un momento dado, esto es, los valores
de los registros de la unidad central de procesamiento para dicho programa.
§
Su memoria de trabajo (memoria crítica), es decir, la memoria
que ha reservado y sus contenidos.
§
Otra información que permite al sistema operativo su planificación.
Un
proceso se erige en pequeñas porciones, conocidas como páginas,
y cada proceso tiene su propia tabla de paginación, fungiendo como una
optimización del sistema operativo ante los fallo de página.
Esta
definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno
o más hilos, la memoria de
trabajo (compartida por todos los hilos) y la información de planificación.
Cada hilo consta
de instrucciones y estado de ejecución.
II. Base de datos
Una base de datos o banco de datos (en ocasiones abreviada con la sigla BD o con la abreviatura b. d.) es un conjunto de datos
pertenecientes a un mismo contexto y almacenados sistemáticamente para su
posterior uso. En este sentido, una biblioteca puede considerarse una base de
datos compuesta en su mayoría por documentos y textos impresos en papel e
indexados para su consulta. Actualmente, y debido al desarrollo tecnológico de
campos como la informática y la electrónica,
la mayoría de las bases de datos están en formato digital (electrónico), que
ofrece un amplio rango de soluciones al problema de almacenar datos.
Existen programas denominados sistemas gestores de bases de datos,
abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de
forma rápida y estructurada. Las propiedades de estos SGBD, así como su
utilización y administración, se estudian dentro del ámbito de la informática.
Las
aplicaciones más usuales son para la gestión de empresas e instituciones
públicas. También son ampliamente utilizadas en entornos científicos con el
objeto de almacenar la información experimental.
Aunque las
bases de datos pueden contener muchos tipos de datos, algunos de ellos se
encuentran protegidos por las leyes de varios países. Por ejemplo, en España
los datos personales se encuentran protegidos por la Ley Orgánica de
Protección de Datos de Carácter Personal (LOPD).
III.Tipos de base
de datos
Las bases de datos pueden clasificarse de
varias maneras, de acuerdo al contexto que se esté manejando, la utilidad de
las mismas o las necesidades que satisfagan.
Según la variabilidad de los
datos almacenados
Bases de datos estáticas
Son bases de datos de sólo lectura, utilizadas
primordialmente para almacenar datos históricos que posteriormente se pueden
utilizar para estudiar el comportamiento de un conjunto de datos a través del
tiempo, realizar proyecciones, tomar decisiones y realizar análisis de datos para inteligencia empresarial.
Bases de datos dinámicas
Éstas son bases de datos donde la información
almacenada se modifica con el tiempo, permitiendo operaciones como
actualización, borrado y adición de datos, además de las operaciones
fundamentales de consulta. Un ejemplo de esto puede ser la base de datos
utilizada en un sistema de información de un supermercado, una farmacia, un
videoclub o una empresa.
Según el contenido
Bases de datos bibliográficas
Sólo contienen un subrogante (representante)
de la fuente primaria, que permite localizarla. Un registro típico de una base
de datos bibliográfica contiene información sobre el autor, fecha de
publicación, editorial, título, edición, de una determinada publicación, etc.
Puede contener un resumen o extracto de la publicación original, pero nunca el
texto completo, porque si no, estaríamos en presencia de una base de datos a
texto completo (o de fuentes primarias —ver más abajo). Como su nombre lo
indica, el contenido son cifras o números. Por ejemplo, una colección de
resultados de análisis de laboratorio, entre otras.
Bases de datos de texto completo
Almacenan las fuentes primarias, como por
ejemplo, todo el contenido de todas las ediciones de una colección de revistas
científicas.
Directorios
Un ejemplo son las guías telefónicas en formato electrónico.
Bases de datos o "bibliotecas"
de información química o biológica
Son bases de datos que almacenan diferentes
tipos de información proveniente de la química,
las ciencias de la vida o médicas.
Se pueden considerar en varios subtipos:- Las que almacenan secuencias de
nucleótidos o proteínas.
- Las bases de datos de rutas
metabólicas.
- Bases de datos de estructura,
comprende los registros de datos experimentales sobre estructuras 3D de
biomoléculas-
- Bases de datos clínicas.
- Bases de datos bibliográficas
(biológicas, químicas, médicas y de otros campos): PubChem, Medline, EBSCOhost.
Modelos de bases de datos
Además de la clasificación por la función de
las bases de datos, éstas también se pueden clasificar de acuerdo a su modelo
de administración de datos.Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.
Algunos modelos con frecuencia utilizados en las bases de datos:
Bases de datos jerárquicas
En este
modelo los datos se organizan en una forma similar a un árbol (visto al revés),
en donde un nodo padre de información puede tener varios hijos.
El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen
hijos se los conoce como hojas.
Las bases de datos jerárquicas son
especialmente útiles en el caso de aplicaciones que manejan un gran volumen de
información y datos muy compartidos permitiendo crear estructuras estables y de
gran rendimiento.
Una de las principales limitaciones de este
modelo es su incapacidad de representar eficientemente la redundancia de datos.
Base de datos de red
Éste es un
modelo ligeramente distinto del jerárquico; su diferencia fundamental es la
modificación del concepto de nodo: se permite que un mismo nodo
tenga varios padres (posibilidad no permitida en el modelo jerárquico).Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.
Bases de datos transaccionales
Son bases de datos cuyo único fin es el envío
y recepción de datos a grandes velocidades, estas bases son muy poco comunes y
están dirigidas por lo general al entorno de análisis de calidad, datos de
producción e industrial, es importante entender que su fin único es recolectar
y recuperar los datos a la mayor velocidad posible, por lo tanto la redundancia
y duplicación de información no es un problema como con las demás bases de
datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de
conectividad a bases de datos relacionales.Un ejemplo habitual de transacción es el traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se decrementa el saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta destino. Para garantizar la atomicidad del sistema (es decir, para que no aparezca o desaparezca dinero), las dos operaciones deben ser atómicas, es decir, el sistema debe garantizar que, bajo cualquier circunstancia (incluso una caída del sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.
Bases de datos relacionales
En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información.
El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales.
Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalización de una base de datos.
Durante los años 80 la aparición de dBASE produjo una revolución en los lenguajes de programación y sistemas de administración de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su gestión.
Bases de datos multidimensionales
Son bases de
datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP.
Básicamente no se diferencian demasiado de las bases de datos relacionales (una
tabla en una base de datos relacional podría serlo también en una base de datos
multidimensional), la diferencia está más bien a nivel conceptual; en las bases
de datos multidimensionales los campos o atributos de una tabla pueden ser de
dos tipos, o bien representan dimensiones de la tabla, o bien representan
métricas que se desean estudiar.
Bases de datos orientadas a objetos
Este modelo,
bastante reciente, y propio de los modelos informáticos orientados a objetos,
trata de almacenar en la base de datos los objetos completos (estado y comportamiento).Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos:
- Encapsulación - Propiedad que permite ocultar
la información al resto de los objetos, impidiendo así accesos incorrectos
o conflictos.
- Herencia - Propiedad a través de la cual
los objetos heredan comportamiento dentro de una jerarquía de clases.
- Polimorfismo - Propiedad de una operación
mediante la cual puede ser aplicada a distintos tipos de objetos.
SQL:2003, es el estándar de SQL92 ampliado, soporta los conceptos orientados a objetos y mantiene la compatibilidad con SQL92.
Bases de datos documentales
Permiten la indexación a texto completo, y en
líneas generales realizar búsquedas más potentes. Tesaurus es un sistema de
índices optimizado para este tipo de bases de datos.
Bases de datos deductivas
Un sistema de base de datos deductiva, es un
sistema de base de datos pero con la diferencia de que permite hacer
deducciones a través de inferencias. Se basa principalmente en reglas y hechos
que son almacenados en la base de datos. Las bases de datos deductivas son
también llamadas bases de datos lógicas, a raíz de que se basa en lógica
matemática. Este tipo de base de datos surge debido a las limitaciones de
Lenguaje
Utiliza un subconjunto del lenguaje Prolog
llamado Datalog el cual es declarativo y permite al ordenador hacer deducciones
para contestar a consultas basándose en los hechos y reglas almacenados.
Ventajas
- Uso de reglas lógicas para
expresar las consultas.
- Permite responder consultas
recursivas.
- Cuenta con negaciones
estratificadas
- Capacidad de obtener nueva
información a través de la ya almacenada en la base de datos mediante
inferencia.
- Uso de algoritmos de
optimización de consultas.
- Soporta objetos y conjuntos
complejos.
Desventajas
- Crear procedimientos eficaces
de deducción para evitar caer en bucles infinitos.
- Encontrar criterios que decidan
la utilización de una ley como regla de deducción.
- Replantear las convenciones
habituales de la base de datos.
Fases
- Fase
de Interrogación: se encarga de buscar en la base
de datos informaciones deducibles implícitas. Las reglas de esta fase se
denominan reglas de derivación.
- Fase
de Modificación: se encarga de añadir a la base
de datos nuevas informaciones deducibles. Las reglas de esta fase se
denominan reglas de generación.
Interpretación
Encontramos dos teorías de interpretación de
las bases de datos deductivas:- Teoría
de Demostración: consideramos las reglas y los
hechos como axiomas.
- Teoría
de Modelos: una interpretación es llamada
modelo cuando para un conjunto específico de reglas, éstas se cumplen
siempre para esa interpretación. Consiste en asignar a un predicado todas
las combinaciones de valores y argumentos de un dominio de valores
constantes dado. A continuación se debe verificar si ese predicado es
verdadero o falso.
Mecanismos
Existen dos mecanismos de inferencia:- Ascendente: donde
se parte de los hechos y se obtiene nuevos aplicando reglas de inferencia.
- Descendente: donde
se parte del predicado (objetivo de la consulta realizada) e intenta
encontrar similitudes entre las variables que nos lleven a hechos
correctos almacenados en la base de datos.