BASE DE DATOS:

Una base de datos o banco de datos 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. En la actualidad, 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).

SEMANTICA:

En informática, la semántica es considerada una aplicación de la matemática lógica. La semántica refleja el significado de programas o funciones.

Los programas pueden separarse en su parte sintáctica (la estructura gramatical) y su parte semántica (el significado). Por ejemplo, las siguientes sentencias de programación utilizan diferentes sintaxis (en diferentes lenguajes), pero resultan en la misma semántica (hacen lo mismo):

1) x += y; (C, Java, etc)

2) x := x + y; (Pascal)

3) x = x + y (BASIC, Fortran)

En general, las tres operaciones lo que hacen (semántica) es sumar Y con X y almacenar el resultado en X.

Características de una buena semántica:

Es comprensible

El aspecto más importante es el nombre sea comprensible. Las palabras utilizadas en tu proyecto puede venir varias fuentes. Puedes escribir para que sea ampliamente entendido o para que sólo lo reconozcan las personas con las que trabajas en un proyecto.

Es obvia

A veces el primer nombre que te viene a la cabeza puede ser la mejor opción. No juegues con conceptos abstractos. A veces darle demasiada vueltas a las cosas, empeoran el resultado.

Es funcional

Tenemos que centrarnos en la función o el propósito, no en la apariencia o el comportamiento. Es decir, ¿cuál es la función de un componente y no cómo funciona el componente?

Es consistente

Ser coherente en el enfoque de los nombres permitirá que sea más fácil la denominación de los componentes sucesivos. Las jerarquías deben ser predecibles.

Es simple

Intenta evitar poner nombres largos. Sé eficiente. Por ejemplo, intenta describir una función particular si es posible con una palabra. Y cuidado con las abreviaturas, el contexto es importante.

No debe depender de la cultura

Ten en cuenta que un término en España no tiene el mismo significado en otros países. Intenta escribir de una forma estándar o universal.

Tiene personalidad

Picar código no tiene por qué ser aburrido, los nombres pueden dar carácter a tu proyecto. Sé creativo pero sin perder de vista los punto anteriores. Además puedes jugar según el tipo de producto que estés desarrollando.

CONCURRENCIA:



EJEMPLO:


EN TRANSACCIONES:

Los sistemas que tratan el problema de control de concurrencia permiten que sus usuarios asuman que cada una de sus aplicaciones se ejecutan atómicamente, como si no existieran otras aplicaciones ejecutándose concurrentemente.

Esta abstracción de una ejecución atómica y confiable de una aplicación se conoce como una transacción.

Un algoritmo de control de concurrencia asegura que las transacciones se ejecuten atómicamente controlando la intercalación de transacciones concurrentes, para dar la ilusión de que las transacciones se ejecutan serialmente, una después de la otra, sin ninguna intercalación. Las ejecuciones intercaladas cuyos efectos son los mismos que las ejecuciones seriales son denominadas serializables y son correctos ya que soportan la ilusión de la atomicidad de las transacciones.

El concepto principal es el de transacción. Informalmente, una transacción es la ejecución de ciertas instrucciones que accesan a una base de datos compartida. El objetivo del control de concurrencia y recuperación es asegurar que dichas transacciones se ejecuten atómicamente, es decir:

Cada transacción accede a información compartida sin interferir con otras transacciones, y si una transacción termina normalmente, todos sus efectos son permanentes, en caso contrario no tiene afecto alguno.

Una base de datos está en un estado consistente si obedece todas las restricciones de integridad (significa que cuando un registro en una tabla haga referencia a un registro en otra tabla, el registro correspondientes debe existir) definidas sobre ella.

Los cambios de estado ocurren debido a actualizaciones, inserciones y supresiones de información. Por supuesto, se quiere asegurar que la base de datos nunca entre en un estado de inconsistencia.

Sin embargo, durante la ejecución de una transacción, la base de datos puede estar temporalmente en un estado inconsistente.

El punto importante aquí es asegurar que la base de datos regresa a un estado consistente al fin de la ejecución de una transacción.



REFERENCIA:



http://sopa.dis.ulpgc.es/pcon/material-didactico-teorico/Tema1_FundamentosConcurrencia_6transporpagina.pdf
https://www.webprogramacion.com/43/sistemas-operativos/concurrencia-de-procesos.aspx
http://www.monografias.com/trabajos24/concurrencia-base-datos/concurrencia-base-datos.shtml
http://ict.udlap.mx/people/carlos/is341/bases10.html




















Comentarios