sábado, 4 de octubre de 2014





Sistema de base de datos:
Conjunto de datos almacenados sin redundancias en es un soporte de acceso directo. Los datos están interrelacionados y estructurados de acuerdo a un modelo que sea capaz de recoger el máximo contenido semántico; su finalidad es servir a una o más aplicaciones de la mejor forma posible. Los datos se almacenan de modo que resulten independientes de los programas que los usan; se emplean métodos para incluir nuevos datos y para modificar o extraer los datos almacenados.

Sistema manejador de base de datos (SMBD):
Los sistemas manejadores de base de datos (SGBD), en inglés: DataBase Management System (DBMS), son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas manejadores de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización.
Es la porción más importante del software de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea específica.
Funciones Principales:
Ø  Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que  los datos puedan ser accesados rápidamente.
Ø  Manejar los datos de acuerdo a las peticiones de los usuarios.
Ø  Registrar el uso de las bases de datos.
Ø  Interacción con el manejador de archivos. Esto a través de las sentencias en DML al comando del sistema de archivos. Así el Manejador de base de datos es el responsable del verdadero almacenamiento de los datos. Respaldo y recuperación. 
Características:
Ø  Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario.
Ø  Redundancia mínima. Un buen diseño de una base de datos logrará evitar la aparición de información repetida o redundante
Ø  Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea.
Ø  Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segurizada frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado.
Ø   Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada.
Ø   Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder.
Ø  Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea.

Evolución de los sistemas manejadores de base de datos:
Inicialmente, en los años 40s,  los Sistemas de Archivos generados a través de lenguajes de programación no propietarios como Cobol y Fortran (vigentes en la actualidad), permiten almacenar los datos a través de archivos planos con funciones básicas de lectura y escritura sobre ellos.  En 1964, se conciben los primeros Gestores de Base de Datos (DBMS: Database Management System), por medio de los cuales se pretende dar un viraje a los Sistemas de Archivos,  los cuales se limitan a la estructuración del almacenamiento físico de los datos.  Con los DBMS se crea el concepto de Administración de los datos, por medio de actividades integradas que permiten verlos físicamente en un solo almacenamiento pero lógicamente se manipulan a través de esquemas compuesto por estructuras donde se  establecen  vínculos de integridad, métodos de acceso y organización física sobre los datos, permitiendo así obtener valores agregados de utilización tales como: manejo de usuarios, seguridad, atomicidad e independencia física y lógica de los datos, entre otros.
 
El primer gestor de bases de datos (DBMS) comercial, IDS:  Integrated Data Store , se crea bajo el concepto del Modelo de Datos de Red (Bachgman, 1965); luego se desarrolla el IMS: Information Management System , sobre el concepto del Modelo de Datos Jerárquico.  Estos DBMSs eran accesados normalmente por lenguajes de programación como Cobol usando interfases de bajo nivel haciendo que las tareas de creación de aplicaciones y mantenimiento de los datos  fuesen controlables, pero aún complejas.
A medida que evolucionaban los DBMS, los lenguajes de programación también lo hacían.  En 1967 surge el primer lenguaje de programación orientado a objetos, Simula, el cual fue propuesto para simulación  de actividades.  En este los procedimientos podían ser asociados a un tipo para representar el comportamiento de una instancia, introduciendo así el concepto de Clase.  Simula, soporta paralelismo permitiendo muchas entidades interactivas en una simulación.  Además comparte objetos acoplando datos y procedimientos.
Comenzando los años 80’s ya se siente la necesidad de que los DBMS actuales manipulen objetos complejos y estructuras como las usadas en sistemas CAD y CASE, entre otras.  A partir de esto se da inicio a dos grandes tendencias: los ORDBMS (Object Relational Database Management System) los cuales se proyectan como una extensión de los RDBMS hacia el paradigma OO, y los OODBMS (Object Oriented Database Management System) estarían disponibles para almacenar y manipular las clases, los objetos, la asociación entre ellos y sus métodos.  Así, finalizando los años 80s se crean los OODBMSs por medio de productores como O2, ObjectDesign y Objectivity, entre otros.  Pero realmente se puede decir que estos no se hicieron tan comerciales como los existentes RDBMS ya que el concepto de Orientación a Objetos se seguía manejando muy a nivel del lenguaje de programación, sin que se trabajaran estructuras de almacenamiento Orientadas a Objetos dependientes de estos .  Así, en 1991 surge la ODMG (Object Database Management Group) el cual estandariza los OODBMSs a partir del ODMG-93 y luego en 1992 el comité ANSI X3H2 inicia un trabajo en SQL3, del cual surgen los DBMS objeto relacional ORDBMS.  Este trabajo fue programado para finalizarse en 1995, pero aún se sigue trabajando en este con un tiempo límite de terminación, en el año 1999.
Sistema de base de datos relacionales:
Una Base de Datos Relacional, es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya planificadas. Permiten establecer interconexiones (relaciones) entre los datos (que están guardados en tablas), y a través de dichas conexiones relacionar los datos de ambas tablas, de ahí proviene su nombre: "Modelo Relacional". Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos
Una base de datos relacional es un repositorio compartido de datos. Para hacer disponibles los datos de una base de datos relacional a los usuarios hay que considerar varios aspectos. Uno es la forma en que los usuarios solicitan los datos
Arquitecturas cliente-servidor:
La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.
La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.
Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el grado de distribución del sistema.
Arquitecturas multi-capas:
La arquitectura cliente/servidor genérica tiene dos tipos de nodos en la red: clientes y servidores. Consecuentemente, estas arquitecturas genéricas se refieren a veces como arquitecturas de dos niveles o dos capas.

Algunas redes disponen de tres tipos de nodos:
Ø  Clientes que interactúan con los usuarios finales.
Ø  Servidores de aplicación que procesan los datos para los clientes.
Ø  Servidores de la base de datos que almacenan los datos para los servidores de aplicación.
Esta configuración se llama una arquitectura de tres-capas.
Ventajas de las arquitecturas n-capas:
La ventaja fundamental de una arquitectura n-capas comparado con una arquitectura de dos niveles (o una tres-capas con una de dos niveles) es que separa hacia fuera el proceso, eso ocurre para mejorar el balance la carga en los diversos servidores; es más escalable.
Ø  Desventajas de las arquitecturas de la n-capas:
Ø  Pone más carga en la red, debido a una mayor cantidad de tráfico de la red.
Ø  Es mucho más difícil programar y probar el software que en arquitectura de dos niveles porque tienen que comunicarse más dispositivos para terminar la transacción de un usuario.
Componentes de una (DBMS):
DBMS: Database Management System
Colección de datos interrelacionados y un conjunto de programas para acceder a esos datos. Los componentes de una DBMS son:
Ø  Data definition language (DDL):
Define elementos de los datos en la base de datos
Ø  Data manipulation language (DML):
Manipula datos para aplicaciones
Ø  Data dictionary:
Definiciones de todas las variables en la base
Funcionalidades de DBMS:
Las funciones principales de un DBMS son:
Ø  Crear y organizar la Base de datos.
Ø  Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que los datos puedan ser accesados rápidamente.
Ø  Manejar los datos de acuerdo a las peticiones de los usuarios.
Ø  Registrar el uso de las bases de datos.
Ø  Interacción con el manejador de archivos. Esto a través de las sentencias en DML al comando de el sistema de archivos. Así el Manejador de base de datos es el responsable del verdadero almacenamiento de los datos.
Ø  Respaldo y recuperación. Consiste en contar con mecanismos implantados que permitan la recuperación fácilmente de los datos en caso de ocurrir fallas en el sistema de base de datos.
Ø  Control de concurrencia. Consiste en controlar la interacción entre los usuarios concurrentes para no afectar la inconsistencia de los datos.
Ø  Seguridad e integridad. Consiste en contar con mecanismos que permitan el control de la consistencia de los datos evitando que estos se vean perjudicados por cambios no autorizados o previstos.     
Comandos de lenguaje de definición de datos:
Lenguaje de definición de datos (DDL: Data Definition Language): Sencillo lenguaje artificial para definir y describir los objetos de la base de datos, su estructura, relaciones y restricciones. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático.
Comando
Descripción
CREATE
Utilizado para crear nuevas tablas, stored procedures e índices
DROP
Empleado para eliminar tablas, stored procedures e índices
ALTER
Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos

Consulta
Ver la informacion que desea ver un usuario por medio de comandos dentro de la base de datos
Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto recordset. Este conjunto de registros es modificable.
Procesamiento de consultas: EL procesamiento de consultas hace referencia a la serie de actividades implicadas en la extracción de datos de una base de datos. Estas actividades incluyen la traducción de consultas expresadas en lenguajes de bases de datos de alto nivel en expresiones implementadas en el nivel físico del sistema, así como transformaciones de optimización de consultas y la evaluación real de las mismas. Los pasos básicos a tomar en cuenta son:
Ø  Análisis y traducción.
Ø  Optimización.
Ø  Evaluación.
PROCESADOR DE CONSULTA: Interacciona con el usuario mediante sentencias específicas en un Lenguaje de Consulta . Éstos son poderosos y bastante flexibles como para proporcionar soluciones múltiples a un problema, uno de los más estandares es el SQL ( Lenguaje de Consulta Secuencial) .
Procesamiento de transacciones
Una transacción es parte de las sentencias de control y consiste en una secuencia de instrucciones de consulta y actualizaciones. La norma SQL especifica que una transacción comienza implícitamente cuando se ejecuta una instrucción SQL. Una de las siguientes instrucciones SQL debe finalizar la transacción:
Ø  Commit work compromete la transacción actual; es decir, hace que los cambios realizados por la transacción sean permanentes en la base de datos.
Ø  Rollback work causa el retroceso de la transacción actual; es decir, deshace todas las actualizaciones realizadas por las instrucciones SQL de la transacción; así, el estado de la base de datos se restaura al que existía previo a la ejecución de la transacción.
Manejo de almacenamiento:
La mayoría de las bases de datos se almacenan en las llamadas memorias secundarias, especialmente discos duros, aunque, en principio, pueden emplearse también discos ópticos, memorias flash, etc. Las razones por las cuales las bases de datos se almacenan en memorias secundarias son:
Ø  En general, las bases de datos son demasiado grandes para entrar en la memoria primaria.
Ø  La memoria secundaria suele ser más barata que la memoria primaria (aunque esta última tiene mayor velocidad).
Ø  La memoria secundaria es más útil para el almacenamiento de datos permanente, puesto que la memoria primaria es volátil. - See more


Administración de base de datos:
El administrador de bases de datos (DBA1 ) es el profesional que administra las tecnologías de la información y la comunicación, siendo responsable de los aspectos técnicos, tecnológicos, científicos, inteligencia de negocios y legales de bases de datos.
Funciones:
ü  Implementar, dar soporte y gestionar bases de datos corporativas
ü  Crear y configurar bases de datos relacionales
ü  Ser responsables de la integridad de los datos y la disponibilidad
ü  Diseñar, desplegar y monitorizar servidores de bases de datos
ü  Diseñar la distribución de los datos y las soluciones de almacenamiento
ü  Garantizar la seguridad de las bases de datos, incluyendo backups y recuperación de desastres
ü  Planificar e implementar el aprovisionamiento de los datos y aplicaciones
ü  Diseñar planes de contingencia
ü  Diseñar y crear las bases de datos corporativas de soluciones avanzadas
ü  Analizar y reportar datos corporativos que ayuden a la toma de decisiones en la inteligencia de negocios

ü  Producir diagramas de entidades relacionales y diagramas de flujos de datos, normalización esquemática, localización lógica y física de bases de datos y parámetros de tablas