INTRODUCCION A BD


¿Qué es una base de datos?

Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. A continuación te presentamos una guía que te explicará el concepto y características de las bases de datos.


El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en California, USA. Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada.
Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.

Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.



Diferencia entre dato e información

Dato:


El data es una representacion simbolica (numerica, alfabetica, algoritmica, entre otros), un atributo o caracteristica de una entidad. Los datos describen hechos empiricos, sucesos y entidades.


Informacion:


En sentido general, es un conjunto organizado de datos proecesados, que constituyen un mensaje que cambia el estado de conocimiento del sujeto o sistema que recibe dicho mensaje.  



Un dato por si mismo, no constituye information, es el procesamiento de los datos lo que nos proporciona informacion.

• 12 reglas de Codd y para qué sirven.

Edgar Frank Codd se percató de que existían bases de datos en el mercado las cuales decían ser relacionales, pero lo único que hacían era guardar la información en las tablas, sin estar estas tablas literalmente normalizadas; entonces éste publicó 12 reglas que un verdadero sistema relacional debería tener aunque en la práctica algunas de ellas son difíciles de realizar. Un sistema podrá considerarse “más relacional” cuanto más siga estas reglas.
–          Regla 0: el sistema debe ser relacional, base de datos y administrador de sistema. Ese sistema debe utilizar sus facilidades relacionales (exclusivamente) para manejar la base de datos.
–          Regla 1: la regla de la información, toda la información en la base de datos es representada unidireccionalmente, por valores en posiciones de las columnas dentro de filas de tablas. Toda la información en una base de datos relacional se representa explícitamente en el nivel lógico exactamente de una manera: con valores en tablas.
–          Regla 2: la regla del acceso garantizado, todos los datos deben ser accesibles sin ambigüedad. Esta regla es esencialmente una nueva exposición del requisito fundamental para las llaves primarias. Dice que cada valor escalar individual en la base de datos debe ser lógicamente direccionable especificando el nombre de la tabla, la columna que lo contiene y la llave primaria.
–          Regla 3: tratamiento sistemático de valores nulos, el sistema de gestión de base de datos debe permitir que haya campos nulos. Debe tener una representación de la “información que falta y de la información inaplicable” que es sistemática, distinto de todos los valores regulares.
–          Regla 4: catálogo dinámico en línea basado en el modelo relacional, el sistema debe soportar un catálogo en línea, el catálogo relacional debe ser accesible a los usuarios autorizados. Es decir, los usuarios deben poder tener acceso a la estructura de la base de datos (catálogo).
–          Regla 5: la regla comprensiva del sublenguaje de los datos, el sistema debe soportar por lo menos un lenguaje relacional que:
  • Tenga una sintaxis lineal.
  • Puede ser utilizado de manera interactiva.
  • Soporte operaciones de definición de datos, operaciones de manipulación de datos (actualización así como la recuperación), seguridad e integridad y operaciones de administración de transacciones.
–          Regla 6: regla de actualización, todas las vistas que son teóricamente actualizables deben ser actualizables por el sistema.
–          Regla 7: alto nivel de inserción, actualización, y cancelación, el sistema debe soportar suministrar datos en el mismo tiempo que se inserte, actualiza o esté borrando. Esto significa que los datos se pueden recuperar de una base de datos relacional en los sistemas construidos de datos de filas múltiples y/o de tablas múltiples.
–          Regla 8: independencia física de los datos, los programas de aplicación y actividades del terminal permanecen inalterados a nivel lógico cuandoquiera que se realicen cambios en las representaciones de almacenamiento o métodos de acceso.
–          Regla 9: independencia lógica de los datos, los cambios al nivel lógico (tablas, columnas, filas, etc.) no deben requerir un cambio a una solicitud basada en la estructura. La independencia de datos lógica es más difícil de lograr que la independencia física de datos.
–          Regla 10: independencia de la integridad, las limitaciones de la integridad se deben especificar por separado de los programas de la aplicación y se almacenan en la base de datos. Debe ser posible cambiar esas limitaciones sin afectar innecesariamente las aplicaciones existentes.
–          Regla 11: independencia de la distribución, la distribución de las porciones de la base de datos a las varias localizaciones debe ser invisible a los usuarios de la base de datos. Los usos existentes deben continuar funcionando con éxito:
  • Cuando una versión distribuida del SGBD se introdujo por primera vez
  • cuando se distribuyen los datos existentes se redistribuyen en todo el sistema.
–          Regla 12: la regla de la no subversión, si el sistema proporciona una interfaz de bajo nivel de registro, a parte de una interfaz relacional, que esa interfaz de bajo nivel no se pueda utilizar para subvertir el sistema, por ejemplo: sin pasar por seguridad relacional o limitación de integridad. Esto es debido a que existen sistemas anteriormente no relacionales que añadieron una interfaz relacional, pero con la interfaz nativa existe la posibilidad de trabajar no relacionalmente.



• ¿Qué es un motor de base de datos?



El Motor de base de datos es el servicio principal para almacenar, procesar y proteger los datos. El Motor de base de datos proporciona acceso controlado y procesamiento de transacciones rápido para cumplir con los requisitos de las aplicaciones consumidoras de datos más exigentes de su empresa.




• ¿Qué es un SGBD?



Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos .Los usuarios pueden acceder a la información usando herramientas específicas de consulta y de generación de informes, o bien mediante aplicaciones al efecto.
Estos sistemas también proporcionan métodos para mantener la integridad de los datos, para administrar el acceso de usuarios a los datos y para recuperar la información si el sistema se corrompe. Permiten presentar la información de la base de datos en variados formatos. La mayoría incluyen un generador de informes. También pueden incluir un módulo gráfico que permita presentar la información con gráficos y tablas.

Generalmente se accede a los datos mediante lenguajes de consulta, lenguajes de alto nivel que simplifican la tarea de construir las aplicaciones. También simplifican las consultas y la presentación de la información. Un SGBD permite controlar el acceso a los datos, asegurar su integridad, gestionar el acceso concurrente a ellos, recuperar los datos tras un fallo del sistema y hacer copias de seguridad. Las bases de datos y los sistemas para su gestión son esenciales para cualquier área de negocio, y deben ser gestionados con esmero.


• Bases de datos más utilizadas

Como en cualquier otra parcela de trabajo en las empresas, las bases de datos son una pieza fundamental que conviene gestionar de manera eficaz para que todo funcione a la perfección. Existen muchas alternativas informáticas para manejarlas, por eso a veces cuesta decantarse por un producto u otro y al final la decisión siempre irá en función de pequeños inputs como el precio o el alcance que ofrezca cada candidato. Para facilitaros un poco el trabajo, vamos a repasar cuales son las bases de datos más utilizadas y una breve introducción a cada una.


MySql
Es sumamente fácil de administrar, operar y es famoso por su instalación de 15 minutos, la cual en 15 minutos es posible instalar, configurar y montar una BD relacional ya sea sistemas OLTP o bien OLAP, aunque por excelencia MySQLServer es comúnmente usado para desarrollos Web 2.0 y Enterprise2.0.
Oracle
La tecnología Oracle para organizaciones en crecimiento es abierta, fácil de integrar, simple de administrar y altamente escalable, lo cual ayuda a adaptarse más rápido a los cambios del mercado o a los requerimientos delcliente. Las soluciones Oracle permiten alinear sus procesos con las cambiantes necesidades durante un largo período, brindando así valor continuo para nuestra empresa.

DBase
La seguridad en dBASE Plus sigue siendo muy similar a la que ya existía antiguamente en la base de datos MS/DOS dBASE 2.0. La ventana de Escritorio que presenta es una combinación de estilos que se tomó de diferentes programas. Es un tributo al poder fácil y entendible flexibilidad que hace de dBASE una plataforma superior de desarrollo. Como es a menudo el caso, una simple vista de diseño puede enmascarar mucho de la complejidad del software. Es difícil hacer que el software se vea fácil.
FileMaker Pro
FileMaker Pro es el programa de bases de datos que tiene la potencia y flexibilidad para manejar todas tus funciones decada día en casa y en la oficina sin tener que aprender instrucciones de programación complejas. Su estabilidad es buena ya que es muy sencilla y también uno no se pierde en las pantallas como se hace en Access.
Microsoft Access

Microsoft Access es uno de los sistemas de gestión de bases de datos relacionales más usuales para los sistemas operativos Windows, desarrollado por el mismo Microsoft y orientado a ser usado en un entorno personal o en pequeñas organizaciones. Es un componente de la suite ofimática Microsoft Office. Permite crear ficheros de bases de datos relacionales que pueden ser fácilmente gestionadas por una interfaz gráfica simple.

• Clasificación de las bases de datos según su variabilidad


o Estáticas

Éstas 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 y tomar decisiones.
o 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 una tienda de abarrotes, una farmacia, un videoclub.

• Modelos de base de datos

Un modelo de base de datos muestra la estructura lógica de la base, incluidas las relaciones y limitaciones que determinan cómo se almacenan los datos y cómo se accede a ellos. Los modelos de bases de datos individuales se diseñan en base a las reglas y los conceptos de cualquier modelo de datos más amplio que los diseñadores adopten. La mayoría de los modelos de datos se pueden representar por medio de un diagrama de base de datos acompañante.


o Jerárquica

El modelo jerárquico organiza los datos en una estructura de árbol, en la que cada registro tiene un único elemento o raíz. Los registros del mismo nivel se clasifican en un orden específico. Ese orden se usa a manera de orden físico para almacenar la base de datos. El modelo es bueno para describir muchas relaciones del mundo real.

Este modelo fue usado principalmente por los Sistemas de Gestión de Información de IBM en las décadas de 1960 y 1970, pero raramente se los ve en la actualidad debido a ciertas ineficiencias operativas

o Red

El modelo de red se basa en el modelo jerárquico, permitiendo relaciones de muchos a muchos entre registros vinculados, lo que implica registros principales múltiples. Basado en la teoría matemática de conjuntos, el modelo se construye con conjuntos de registros relacionados. Cada conjunto consiste de un registro propietario o principal y uno o más registros miembros o secundarios. Un registro puede ser miembro o secundario en múltiples conjuntos, permitiendo que este modelo represente relaciones complejas.

Fue muy popular en la década de 1970 después de que fue definido formalmente por la Conference on Data Systems Languages (CODASYL).


o Documental


El modelo de documentos, el cual se diseña para almacenar y administrar documentos o datos semiestructurados, en lugar de datos atómicos.


o Relacional



Siendo el modelo más común, el modelo relacional ordena los datos en tablas, también conocidas como relaciones, cada una de las cuales se compone de columnas y filas. Cada columna enumera un atributo de la entidad en cuestión, por ejemplo, precio, código postal o fecha de nacimiento. En conjunto, a los atributos en una relación se los llama dominio. Se elige un atributo particular o combinación de atributos como clave primaria, a la cual se puede hacer referencia en otras tablas, en donde se la denomina clave externa.
Cada fila, también denominada tupla, incluye datos sobre una instancia específica de la entidad en cuestión, por ejemplo, un empleado específico.
El modelo también representa los tipos de relaciones entre esas tablas, incluidas las relaciones uno a uno, uno a muchos y muchos a muchos. Este es un ejemplo:
Dentro de la base de datos, las tablas se pueden normalizar, es decir, hacer que cumplan las reglas de normalización que hacen a la base de datos flexible, adaptable y escalable. Al estar normalizada, cada porción de los datos es atómica, es decir, está dividida en partes útiles lo más pequeñas posibles.

Las bases relacionales generalmente se escriben en Lenguaje de Consulta Estructurado (SQL, por sus siglas en inglés). El modelo fue introducido por E. F. Codd en 1970

o Orientada a objetos

Este modelo de base de datos híbrido combina la sencillez del modelo relacional con parte de la funcionalidad avanzada del modelo de base de datos orientado a objetos. En esencia, permite a los diseñadores incorporar objetos en una estructura familiar de tablas.

Entre los idiomas e interfaces de llamada se incluyen SQL3, lenguajes de proveedores, ODBC, JDBC e interfaces de llamada patentadas que son extensiones de lenguajes e interfaces usadas por el modelo relacional.

• Que es una relación y que tipos de relaciones existen


o Uno a uno

La relación uno a uno en Hibernate consiste simplemente en que un objeto tenga una referencia a otro objeto de forma que al persistirse el primer objeto también se persista el segundo.
En esta lección la relación va a ser unidireccional es decir que que la relación uno a uno va a ser en un único sentido.

o Uno a muchos


La relación uno a muchos consiste simplemente en que un objeto padre tenga una lista sin ordenar de otros objetos hijo de forma que al persistirse el objeto principal también se persista la lista de objetos hijo. Esta relación también suele llamarse maestro-detalle o padre-hijo.

o Muchos a muchos


La relación muchos a muchos consiste en que un objeto A tenga una lista de otros objetos B y también que el objeto B a su vez tenga la lista de objetos A.De forma que al persistirse cualquier objeto también se persista la lista de objetos que posee.

• Diseño de base de datos:

Modelo Conceptual.
“Se utilizan para representar la realidad a un alto nivel de abstracción. Mediante los modelos conceptuales se puede
construir una descripción de la realidad fácil de entender.”
Se utiliza para la abstracción de la base de datos, para construir una descripción para entender en la realidad

Modelo Lógico.
“Es una descripción de la estructura de la base de datos en términos de las estructuras de datos que puede procesar
un tipo de SGBD     (SISTEMA DE GESTION DE BASE DE DATOS). Un modelo lógico es un lenguaje usado para
especificar esquemas lógicos (modelo relacional, modelo de red, etc.). El diseño lógico depende del tipo de SGBD
que se vaya a utilizar, no depende del producto concreto.”

Modelo Físico.
“Es una descripción de la implementación de una base de datos en memoria secundaria: las estructuras de
almacenamiento y los métodos utilizados para tener un acceso eficiente a los datos. Por ello, el diseño físico
depende del SGBD concreto y el esquema físico se expresa mediante su lenguaje de definición de datos.”

Es una implementación de una base de datos en las estructuras de almacenamiento y los métodos eficiente a los datos.
Depende del SGBD concreto, y se expresa de una manera más detallada (atributos, relaciones, etc.).
• Ventajas y desventajas de las bases de datos relacionales


La base de datos relacional (BDR) es un tipo de base de datos (BD) que cumple con el modelo relacional
(el modelo más utilizado actualmente para implementar las BD ya planificadas).
Tras ser postuladas sus bases en 1970 por Edgar Frank Codd,1​ de los laboratorios IBM en San José (California),
no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos.2
Un sistema de software utilizado para mantener las bases de datos relacionales es un relational database management
system (RDBMS) o sistema de gestión de bases de datos relacionales. Virtualmente, todas los sistemas de bases de datos
relacionales utilizan SQL(Structured Query Language) para consultar y mantener la base de datos.


Ventajas:
  1. Tienes tu información altamente organizada de acuerdo a tu modelo (diseño).
  2. El lenguaje SQL es muy fácil de utilizar.
  3. Puedes administrar fácilmente tu información con el modelo CRUD.
  4. Tu información se queda guardada y es fácil hacer respaldos.
  5. Dependiendo del manejador que uses, el desempeño sigue siendo bueno a gran escala.
  6. Puedes crear vistas con cálculos y procesamiento de información dentro de la base de datos para crear reportes fácilmente.
  7. Potencian web apps o apps móviles con manejo de información de usuarios, contenido y transacciones.
Desventajas:
  1. Si las necesidades cambian, puede ser complicado modificar el modelo.
  2. Si el modelo no es bueno, la aplicación que use la base de datos podrá ser inconsistente, lo que puede llevar a errores.
  3. Igualmente si el modelo no es bueno, puede no respetarse la atomicidad y existir información duplicada, lo que también lleva a errores.
  4. Hacer un buen modelo requiere mucho tiempo a comparación de una base de datos noSQL.
  5. En general no es flexible, pues usa formas ya definidas, como tipos de información.
  6. Tiene tipos de datos limitados. En una base de datos noSQL no existen limitaciones, puedes almacenar información estructurada y no estructurada.


• Elementos de una base de datos relacional:

o Entidad o Tabla

Son estructuras encargadas de alojar la información de la base de datos. va a tener un conjunto de características. 

o Campo


Son cada una de las columnas de una tabla, cada campo almacena un dato en concreto.
o Dato


o Registro o tupla

En informática, o concretamente en el contexto de una base de datos relacional, un registro (también llamado fila o tupla) representa un objeto único de datos implícitamente estructurados en una tabla. En términos simples, una tabla de una base de datos puede imaginarse formada de filas y columnas o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura.


• ¿Qué es la normalización?



El proceso de normalización de bases de datos consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el modelo entidad-relación.
Las bases de datos relacionales se normalizan para:
  • Evitar la redundancia de los datos.
  • Disminuir problemas de actualización de los datos en las tablas.
  • Proteger la integridad de los datos.
Para que las tablas de nuestra BD estén normalizadas deben cumplir las siguientes reglas:
  • Cada tabla debe tener su nombre único.
  • No puede haber dos filas iguales.
  • No se permiten los duplicados.
  • Todos los datos en una columna deben ser del mismo tipo.
Existen 3 niveles de normalización que deben respetarse para poder decir que nuestra BDs, se encuentra NORMALIZADA, es decir, que cumple con los requisitos naturales para funcionar optimamente y no perjudicar el rendimiento por mala arquitectura.
Estas 3 reglas de Normalización se les conoce como las 3 FORMAS NORMALES.

• ¿Cuántas formas normales existen?



Primera Forma Normal La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse y colocarse en tablas separadas. www.mysql-hispano.org 1 of 5 Normalización de bases de datos Primera Forma Normal (1FN) Incluye la eliminación de todos los grupos repetidos.


Segunda Forma Normal (2FN) Asegura que todas las columnas que no son llave sean completamente dependientes de la llave primaria (PK).



Tercera Forma Normal (3FN) Elimina cualquier dependencia transitiva. Una dependencia transitiva es aquella en la cual las columnas que no son llave son dependientes de otras columnas que tampoco son llave. Poner la base de datos en la Primera Forma Normal resuelve el problema de los encabezados de columna múltiples. Muy a menudo, los diseñadores de bases de datos inexpertos harán algo similar a la tabla no normalizada. Una y otra vez, crearán columnas que representen los mismos datos. La normalización ayuda a clarificar la base de datos y a organizarla en partes más pequeñas y más fáciles de entender. En lugar de tener que entender una tabla gigantesca y monolítica que tiene muchos diferentes aspectos, sólo tenemos que entender los objetos pequeños y más tangibles, así como las relaciones que guardan con otros objetos también pequeños. Segunda Forma Normal La regla de la Segunda Forma Normal establece que todas las dependencias parciales se deben eliminar y separar dentro de sus propias tablas. Una dependencia parcial es un término que describe a aquellos datos que no dependen de la llave primaria de la tabla para identificarlos. Una vez alcanzado el nivel de la Segunda Forma Normal, se controlan la mayoría de los problemas de lógica. Podemos insertar un registro sin un exceso de datos en la mayoría de las tablas. Tercera Forma Normal Una tabla está normalizada en esta forma si todas las columnas que no son llave son funcionalmente dependientes por completo de la llave primaria y no hay dependencias transitivas. Comentamos anteriormente que una dependencia transitiva es aquella en la cual existen columnas que no son llave que dependen de otras columnas que tampoco son llave. Cuando las tablas están en la Tercera Forma Normal se previenen errores de lógica cuando se insertan o borran registros. Cada columna en una tabla está identificada de manera única por la llave primaria, y no deben haber datos repetidos. Esto provee un esquema limpio y elegante, que es fácil de trabajar y expandir.

¿Qué es SQL?

SQL (Structured Query Language) es un lenguaje de programación estándar e interactivo para la obtención de información desde una base de datos y para actualizarla. Aunque SQL es a la vez un ANSI y una norma ISO, muchos productos de bases de datos soportan SQL con extensiones propietarias al lenguaje estándar. Las consultas toman la forma de un lenguaje de comandos que permite seleccionar, insertar, actualizar, averiguar la ubicación de los datos, y más. También hay una interfaz de programación.


o DDL

DDL (Data Definition Language):
Permite crear y modificar la estructura de una base de datos.

  • CREATE: Utilizado para crear nuevas tablas, campos e índices.
  • ALTER: Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.
  • DROP: Empleado para eliminar tablas e índices.
  • TRUNCATE: Empleado para eliminar todos los registros de una tabla.
  • COMMENT: Utilizado para agregar comentarios al diccionario de datos.
  • RENAME: Tal como su nombre lo indica es utilizado para renombrar objetos.
o DML

DML (Data Manipulation Language):
Permite recuperar, almacenar, modificar, eliminar, insertar y actualizar datos de una base de datos.

  • SELECT: Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado.
  • INSERT: Utilizado para cargar de datos en la base de datos en una única operación.
  • UPDATE: Utilizado para modificar los valores de los campos y registros especificados
  • DELETE: Utilizado para eliminar registros de una tabla de una base de datos.
o DCL

DCL (Data Control Language):
Permite crear roles, permisos e integridad referencial, así como el control al acceso a la base de datos.

  • GRANT: Usado para otorgar privilegios de acceso de usuario a la base de datos.
  • REVOKE: Utilizado para retirar privilegios de acceso otorgados con el comando GRANT.
o TCL

TCL (Transactional Control Language):
Permite administrar diferentes transacciones que ocurren dentro de una base de datos.

  • COMMIT: Empleado para guardar el trabajo hecho.
  • ROLLBACK: Utilizado para deshacer la modificación que hice desde el último COMMIT.
• ¿Qué es ACID?

ACID, letra por letra

Atomicidad
La Atomicidad requiere que cada transacción sea "todo o nada": si una parte de la transacción falla, todas las operaciones de la transacción fallan, y por lo tanto la base de datos no sufre cambios. Un sistema atómico tiene que garantizar la atomicidad en cualquier operación y situación, incluyendo fallas de alimentación eléctrica, errores y caidas del sistema.
Consistencia
La propiedad de Consistencia se asegura que cualquier transacción llevará a la base de datos de un estado válido a otro estado válido. Cualquier dato que se escriba en la base de datos tiene que ser válido de acuerdo a todas las reglas definidas, incluyendo (pero no limitado a) los constraints, los cascades, los triggers, y cualquier combinación de estos.
aIslamiento
El aislamiento ("Isolation" en inglés) se asegura que la ejecución concurrente de las transacciones resulte en un estado del sistema que se obtendría si estas transacciones fueran ejecutadas una atrás de otra. Cada transacción debe ejecutarse en aislamiento total; por ejemplo, si T1 y T2 se ejecutan concurrentemente, luego cada una debe mantenerse independiente de la otra.
Durabilidad
La durabilidad significa que una vez que se confirmó una transacción (commit), quedará persistida, incluso ante eventos como pérdida de alimentación eléctrica, errores y caidas del sistema. Por ejemplo, en las bases de datos relacionales, una vez que se ejecuta un grupo de sentencias SQL, los resultados tienen que almacenarse inmediatamente (incluso si la base de datos se cae inmediatamente luego).

Sobre la Atomicidad

En una transacción atómica, una serie de operaciones en la base de datos ocurren todas, o no ocurre ninguna. La atomicidad previene que las actualizaciones a la base ocurren de forma parcial, lo cual podría ocasionar mayores problemas que rechazar la transacción entera. En otras palabras, la atomicidad significa indivisibilidad e irreducibilidad.
Usualmente, los sistemas implementan la atomicidad mediante algún mecanismo que indica qué transacción comenzó y cuál finalizó; o manteniendo una copia de los datos antes de que ocurran los cambios. Las bases de datos en general implementan la atomicidad usando algún sistema de logging para seguir los cambios. El sistema sincroniza los logs a medida que resulta necesario una vez que los cambios ocurren con éxito. Luego, el sistema de recuperación de caidas simplemente ignora las entradas incompletas.
En los sistemas de almacenamiento NoSQL con consistencia eventual, la atomicidad se especifica de forma más débil que en los sistemas relacionales, y existe sólo para las filas.

Sobre la Consistencia

La consistencia asegura que los cambios a los valores de una instancia son consistentes con cambios a otros valores de la misma instancia. Una restricción de consistencia es un predicado sobre los datos que funcionan como precondición, postcondición, y condición de transformación en cualquier transacción. El sistema de la base de datos asume que la consistencia se mantiene para cada transacción en las instancias. Por otro lado, asegurar la propiedad de consistencia de la transacción es responsabilidad del usuario.

Sobre el Aislamiento

De las 4 propiedades de ACID en los sistemas de bases de datos, generalmente la propiedad de Aislamiento es la más relajada. Cuando se intenta mantener el más alto nivel de aislamiento, las bases de datos adquieren un bloqueo o implementan un control concurrente multiversión, que puede resultar en pérdida de concurrencia. Esto genera que la aplicación agregue lógica para funcionar correctamente.
La mayoría de las bases de datos ofrecen una cantidad de niveles de aislamiento de transacciones, que controlan el grado de bloqueo que ocurre cuando se seleccionan datos. Para muchas aplicaciones, se pueden construir la mayoría de las transacciones evitando los niveles más altos de aislamiento (por ejemplo, el nivel SERIALIZABLE), y por lo tanto reduciendo la carga en el sistema por bloqueos. El programador tiene que analizar el código de acceso para asegurar que se pueda relajar el nivel de aislamiento sin generar bugs que luego serían dificiles de encontrar. Por otro lado, si se usan niveles más altos de aislamiento, es más probable la aparición de dealocks, lo cual requieren de analisis y la implementación de técnicas de programación para evitarlos.
ANSI/ISO SQL define los siguientes tipos de aislamiento:
Serializable
Este es el nivel más alto de aislamiento. En una base de datos con control concurrente basado en bloqueos, la serialización requiere que los bloqueos de lectura y escritura (que se adquieren en datos seleccionados) sean liberados al finalizar la transacción. También se pueden adquierir bloqueos de rango cuando se realiza un query SELECT con una cláusula WHERE, especialmente cuando se quieren evitar lecturas fantasma. En una base de datos con control concurrente no basado en bloqueos, no se necesitan los bloqueos; sin embargo, si el sistema detecta una colisión de escritura entre muchas transacciones concurrentes, sólo se permite el commit de una de estas transacciones.
Lecturas repetibles (repeatable reads)
En este nivel de aislamiento, un sistema de control de concurrencia basado en bloqueos mantiene los bloqueos de escritura y lectura (que se adquieren en datos seleccionados) hasta el final de la transacción. Sin embargo, no se gestionan los bloqueos de rango, por lo tanto podrían ocurrir lecturas fantasma.
Lecturas sobre commits (read commited)
En este nivel de aislamiento, un sistema de control de concurrencia basado en bloqueos mantiene los bloqueos de escritura (que se adquieren en datos seleccionados) hasta el final de la transacción, pero los bloqueos de lectura se liberan ni bien se realiza la operación de SELECT (y por lo tanto pueden ocurrir lecturas no-repetibles). Igual que el nivel anterior, no se permiten bloqueos de rango.
Lecturas sin commits (read uncommited)

Este es el nivel más bajo de aislamiento. En este nivel se permiten las lecturas sucias, por lo cual una transacción podría ver cambios de otra transacción que todavía tuvieron un commit.
• ¿Qué es cloud computing?

¿Qué es Cloud Computing?

El mundo del software está en constante cambio y evolución. Cuando Salesforce fue creada, en 1999, se trataba del primer servicio empresarial a ofrecer aplicaciones de negocios en un sitio web, que acabó por ser llamado por el mercado de computación en la nube, o cloud computing. Desde entonces, Salesforce ha sido la pionera en este tipo de servicio para pequeñas, medianas y grandes empresas.
En otras palabras, la definición de cloud computing es ofrecer servicios a través de la conectividad y gran escala de Internet. La computación en la nube democratiza el acceso a recursos de software de nivel internacional, pues es una aplicación de software que atiende a diversos clientes. La multilocación es lo que diferencia la computación en la nube de la simple tercerización y de modelos de proveedores de servicios de aplicaciones más antiguos. Ahora, las pequeñas empresas tienen la capacidad de dominar el poder de la tecnología avanzada de manera escalable.
La computación en la nube ofrece a los individuos y a las empresas de todos los tamaños la capacidad de un pool de recursos de computación con buen mantenimiento, seguro, de fácil acceso y bajo demanda, como servidores, almacenamiento de datos y solución de aplicaciones. Eso proporciona a las empresas mayor flexibilidad en relación a sus datos e informaciones, que se pueden acceder en cualquier lugar y hora, siendo esencial para empresas con sedes alrededor del mundo o en distintos ambientes de trabajo. Con un mínimo de gestión, todos los elementos de software de la computación en la nube pueden ser dimensionados bajo demanda, usted solo necesita conexión a Internet.

Cloud Computing

¿Qué es Cloud Computing? De una manera simple, la computación en la nube (cloud computing) es una tecnología que permite acceso remoto a softwares, almacenamiento de archivos y procesamiento de datos por medio de Internet, siendo así, una alternativa a la ejecución en una computadora personal o servidor local. En el modelo de nube, no hay necesidad de instalar aplicaciones localmente en computadoras.
La computación en la nube ofrece a los individuos y a las empresas la capacidad de un pool de recursos de computación con buen mantenimiento, seguro, de fácil acceso y bajo demanda.
“La nube proporciona servicio a empresas de todos los tamaños... la nube es para todo el mundo. La nube es una democracia”
MARC BENIOFF | DIRECTOR EJECUTIVO DE SALESFORCE

¿Cómo funciona el Cloud Computing?


La computación en la nube utiliza una capa de red para conectar los dispositivos de punto periférico de los usuarios, como computadoras, smartphones y accesorios portátiles, a recursos centralizados en el data center. Antes de la computación en la nube, la ejecución confiable de software por las empresas que ofrecían servicios solo era posible si ellas podían también pagar por el mantenimiento de la infraestructura de los servidores necesarios. Además, el software tradicional exigía, por lo general, un equipo completo de profesionales de TI, interno o externo, para lidiar con el inevitable conjunto de errores, desafíos de servicios y upgrades. El concepto de computación en la nube está libre de todos esos problemas y requisitos anticuados.
• ¿Qué es big data?

Cuando hablamos de Big Data nos referimos a conjuntos de datos o combinaciones de conjuntos de datos cuyo tamaño (volumen), complejidad (variabilidad) y velocidad de crecimiento (velocidad) dificultan su captura, gestión, procesamiento o análisis mediante tecnologías y herramientas convencionales, tales como bases de datosrelacionales y estadísticas convencionales o paquetes de visualización, dentro del tiempo necesario para que sean útiles.

Aunque el tamaño utilizado para determinar si un conjunto de datos determinado se considera Big Data no está firmemente definido y sigue cambiando con el tiempo, la mayoría de los analistas y profesionales actualmente se refieren a conjuntos de datos que van desde 30-50 Terabytes a varios Petabytes.

La naturaleza compleja del Big Data se debe principalmente a la naturaleza no estructurada de gran parte de los datos generados por las tecnologías modernas, como los  web logs, la identificación por radiofrecuencia (RFID), los sensores incorporados en dispositivos, la maquinaria, los vehículos, las búsquedas en Internet, las redes sociales como Facebook, computadoras portátiles, teléfonos inteligentes y otros teléfonos móviles, dispositivos GPS y registros de centros de llamadas.
En la mayoría de los casos, con el fin de utilizar eficazmente el Big Data, debe combinarse con datos estructurados(normalmente de una base de datos relacional) de una aplicación comercial más convencional, como un ERP (Enterprise Resource Planning) o un CRM (Customer Relationship Management).



Comentarios

Entradas populares