jueves, 23 de marzo de 2017

2.1.1 Estructura de Memoria y Procesos de la Instancia

Introducción

Oracle utiliza la memoria para almacenar la siguiente información:
  • Código del programa
  • Información acerca de una sesión conectada, incluso si no se encuentra activa.
  • Información necesaria durante la ejecución del programa(por ejemplo, el estado de las consultas)
  • La información que comparten y con la cual se comunican los procesos Oracle (por ejemplo, la información de bloqueo)
  • La Caché de Datos
La memoria se puede estructurar en las siguientes partes:
  • Área Global del sistema (SGA), la cual se comparte entre todos los servidores y los procesos en segundo plano.
  • Áreas globales de programas (PGA), que es privada para cada servidor y proceso en segundo planos; a cada proceso se asigna un PGA.
  • Área de Ordenaciones (Sort Areas).
  • Memoria Virtual
  • Área de código de Software (SCA).

Figura 1. Estructura de la memoria en Oracle
Área Global del Sistema (System Global Area, SGA)

El Área Global del Sistema (SGA) es un grupo de estructuras de la memoria compartida que contiene datos e información de control de una instancia de una BD. Si varios usuarios se conectan de forma concurrente a la misma instancia, entonces los datos se comparten en el SGA, por lo que también se llama shared global area. Una instancia en Oracle se compone de un SGA y de procesos. Cuando se crea una instancia, Oracle asigna memoria a un SGA automáticamente y esta se devuelve al sistema operativo cuando la instancia se cierra. Por tanto, cada instancia posee su propio SGA. Además, es de lectura/escritura. Todos los usuarios conectados a una instancia multiproceso pueden leer la información contenida en el SGA de la instancia y varios procesos pueden escribir en él durante la ejecución. Una parte del SGA contiene información general acerca del estado de la base de datos y de la instancia, a la que los procesos en segundo plano necesitan acceder (SGA fija), pero no se almacenan los datos de usuario. El SGA también incluye información de comunicación entre procesos, como la información de bloqueos. Además, si el sistema usa una arquitectura de servidor compartido, entonces las colas de petición y respuesta y algunos contenidos del PGA se encuentran en el SGA.

El SGA contiene la siguiente estructura de datos:
  • Caché de los Buffers de la BD (Database Buffer Cache).
  • Buffer del Dietario o del Registro del Rehacer (Redo Log Buffer).
  • El ‘Pool’ Compartido (Shared Pool).
  • Caché de Biblioteca.
  • Caché del Diccionario de Datos.
  • Estructuras de Control.
  • Información diversa
  • Instancia de una Base de Datos
Cada instancia Oracle está asociada a una base de datos. Cuando se inicia una base de datos en un servidor (independientemente del tipo de ordenador), se le asigna un área de memoria (SGA) y lanza uno o más procesos. A la combinación del SGA y de los procesos es lo que se llama instancia. La memoria y los procesos de una instancia gestionan los datos de la base de datos asociada de forma eficiente y sirven a uno o varios usuarios.
Figura 2. Estructura de una instancia de Oracle

La Instancia y la Base de Datos

Cuando se inicia una instancia Oracle monta la base de datos, es decir, asocia dicha instancia a su base de datos correspondiente. En un mismo ordenador pueden ejecutarse varias instancias simultáneamente, accediendo cada una a su propia base de datos física. Únicamente el administrador de la base de datos puede iniciar una instancia y abrir una base de datos. Si una base de datos está abierta, entonces el administrador puede cerrarla y, cuando esto ocurre, los usuarios no pueden acceder a la información que contiene.

Estructura de Datos del SGA

Caché de los Buffers (Database Buffer Cache)

La caché de los buffers de la base de datos es una parte de la SGA que contiene copias de los bloques de datos de lectura de las páginas. Todos los procesos de los usuarios conectados concurrentemente a la instancia comparten el acceso a ella. Esta caché junto con la caché compartida de SQL están lógicamente segmentadas en varios conjuntos, lo que reduce la contención en sistemas multiprocesador.

Organización de la Caché de los Buffers

Los buffers en la caché están organizados en dos listas: la lista en espera y la lista LRU. La lista en espera contiene los buffers en espera (dirty buffers), los cuales contienen datos que han sido modificados pero que aún no se han escrito en disco. La lista LRU contiene los buffers libres, buffers que están siendo accedidos actualmente (pinned buffers) y los buffers en espera, que aún no están almacenados en la lista en espera. Cuando un proceso Oracle accede a un buffer, este lo sitúa al final de la lista LRU.
La primera vez que un proceso de usuario necesita un dato concreto, este los busca en los datos almacenados en la caché de los buffers. Si el proceso encuentra el dato en uno de estos buffers, se lee directamente de la memoria (cache hit). Si no lo encuentra, entonces debe copiar la página en disco a un buffer de la caché antes de leerlo (cache miss). Acceder a los datos a través de un ‘cache hit’ es más rápido que hacerlo mediante un ‘cache miss’. Antes de leer un bloque de datos dentro de la caché, el proceso debe encontrar primero un buffer libre, empezando desde el menos usado recientemente de la lista LRU. El proceso sigue buscando hasta que encuentra un buffer libre o hasta que llega al final de la lista.

El Algoritmo LRU y la Lectura Completa de Tablas

Cuando un proceso de usuario realiza una exploración completa de la tabla, lee cada bloque de la tabla en los buffers y los pone al final de la lista LRU. Se hace así porque normalmente la exploración completa se necesita brevemente, por lo que los bloques deben sacarse rápidamente para dejar espacio en la caché a los bloques que se usan con mayor frecuencia.

Tamaño de la Caché de los buffer

Oracle soporta múltiples tamaños de bloque en una base de datos. El tamaño estándar de bloque se especifica mediante la configuración del parámetro DB_BLOCK_SIZE. Se admiten valores desde 2K hasta 32K. Opcionalmente, también se puede seleccionar el tamaño de dos pool de buffer adicionales, KEEP y RECYCLE, configurando DB_KEEP_CACHE_SIZE y DB_RECYCLE_CACHE_SIZE. Estos tres parámetros son independientes entre sí.

Múltiples Pools de Buffer

Se puede configurar la cache del buffer con “buffer pools” distintos, en los que cualquiera contiene datos, o están disponibles para nuevos datos tras usar los bloques de datos. Objetos particulares del esquema (tablas, clusters, índices y particiones) se asignan al buffer pool apropiado para controlar la forma en que los bloques de datos “envejecen” en la cache.

  • El buffer pool KEEP conserva los bloques de datos de los objetos del esquema en memoria.
  • El buffer pool RECYCLE elimina bloques de datos de la memoria tan pronto como dejan de ser necesitados.
  • El buffer pool DEFAULT contiene bloques de datos de los objetos del esquema que no son asignados a ningún buffer pool, así como los objetos del esquema que son explícitamente asignados al pool DEFAULT.
Los parámetros que configuran los buffer pools KEEP y RECYCLE son DB_KEEP_CACHE_SIZE y DB_RECYCLE_CACHE_SIZE.

Buffer del Registro del Rehacer (Redo Log Buffer)
El redo log buffer es un buffer circular en el SGA que contiene información sobre cambios hechos a la base de datos, la cual se almacena en las ‘entradas redo’. Estas entradas contienen la información necesaria para reconstruir, o rehacer cambios hechos en la base de datos mediante las operaciones INSERT, UPDATE, DELETE, CREATE, ALTER o DROP y se usan para la recuperación de la base de datos, si fuera necesario. Las entradas se copian por los procesos desde el espacio de memoria del usuario al redo log buffer en el SGA, ocupando continuamente espacio secuencial. El proceso en segundo plano LGWR escribe el redo log buffer en el fichero redo log activo (o grupo de ficheros) en disco.

El parámetro LOG_BUFFER determina el tamaño (en bytes) del redo log buffer.

El Pool Compartido

Es la parte del SGA que contiene la cache de biblioteca, la cache de diccionario, los buffers para los mensajes de ejecución paralela y las estructuras de control. El tamaño total del Pool Compartido se determina por el parámetro SHARED_POOL_SIZE. El valor por defecto es de 8MB en plataformas de 32-bit, y de 64MB para plataformas de 64-bit. Incrementando su valor se incrementa la cantidad de memoria reservada para el pool compartido.

Caché de Biblioteca (Library Cache)

La cache de biblioteca incluye áreas de SQL compartidas, áreas SQL privadas (en caso de una configuración de servidor compartido), procedimientos y paquetes PL/SQL, y estructuras de control tales como bloqueos y el manejo de la cache de biblioteca. Ya que las áreas de SQL compartidas son accesibles para todos los usuarios, la caché de biblioteca está contenida en el Pool compartido dentro del SGA.

Áreas SQL Compartidas y Áreas SQL Privadas

Oracle representa cada declaración de SQL con un área SQL compartida y un área SQL privada. Oracle reconoce cuando dos usuarios están ejecutando la misma instrucción SQL y reutiliza el área SQL compartida para esos usuarios. Sin embargo, cada usuario debe tener una copia separada de la declaración del área SQL privada.

Áreas SQL Compartidas

Un área SQL Compartida contiene el árbol de análisis y el plan de ejecución para una instrucción SQL dada. Se ahorra memoria usando un solo área SQL compartida para instrucciones SQL ejecutándose varias veces, lo cual ocurre con frecuencia cuando varios usuarios ejecutan la misma aplicación.

Programas PL/SQL y el Pool Compartido

Oracle procesa programas PL/SQL (procedimientos, funciones, paquetes, bloques anónimos, triggers) tanto como procesa instrucciones SQL individuales. Oracle asigna un área compartida que contiene la forma analizada y compilada del programa. Asigna un área privada para mantener los valores específicos de la sesión que ejecuta el programa, incluyendo variables locales, globales y de paquete y buffers para ejecución SQL. Si más de un usuario ejecuta el mismo programa, entonces una simple área compartida es usada por todos los usuarios siempre que tenga una copia de su área SQL privada, manteniendo valores específicos de su sesión.

Las instrucciones SQL individuales están contenidas en programas PL/SQL.

Large Pool

El administrador de la base de datos puede configurar un área de memoria opcional llamado large pool que proporciona grandes cantidades de memoria para asignar:
  • Memoria de la sesión para el servidor compartido y el Oracle XA interface (usado donde las transacciones interactúan con más de una base de datos)
  • Procesamiento de E/S
  • Copias de seguridad y operaciones de recuperación
El large pool satisface mejor las peticiones de gran cantidad de memoria que el pool compartido. Sin embargo, no posee una lista LRU.

Java Pool
La memoria java pool se usa en la memoria del servidor para almacenar todo el código y datos del JVM en las sesiones. Se usa de diferentes formas, dependiendo del modo en que se ejecute el servidor Oracle. El asesor de estadísticas de java pool proporciona información sobre la memoria de la cache de biblioteca usada para java y predice como pueden afectar cambios en el tamaño del java pool en la tasa de análisis. El asesor de java pool se activa internamente cuando el statistics_level está configurado en TYPICAL o mayor. Estas estadísticas se reinician cuando el asesor es desactivado.

Streams Pool

En una única base de datos, se puede especificar que los flujos de memoria se asignen desde un pool en el SGA llamado Streams pool. Para configurarlo se especifica el tamaño del pool en bytes usando el parámetro STREAMS_POOL_SIZE. Si un streams pool no está definido, entonces se crea automáticamente cuando los flujos se usan por primera vez. Si SGA_TARGET está activo, entonces la memoria del SGA para los Streams pool viene del pool global del SGA. Si no está activo, entonces se transfiere desde la cache del buffer, aunque solo tiene lugar después del primer uso de los flujos. La cantidad transferida es del 10% del tamaño del pool compartido.

Caché de Diccionario (Dictionary Cache)

El diccionario de datos es una colección de tablas y vistas de la base de datos que contienen información sobre la base de datos (sus estructuras y sus usuarios. Oracle accede con frecuencia al diccionario de datos, por lo que tiene dos localizaciones especiales en memoria designadas a mantenerlo. Una de ellas es la caché del diccionario de datos, también conocida como la cache de fila porque contiene datos sobre las filas en vez de los buffers (los cuales contienen bloques de datos), y la otra es el cache de biblioteca.

El Parámetro SGA_MAX_SIZE

El SGA comprende un número de componentes de memoria, denominados pools de memoria, que se usan para satisfacer una clase particular de asignación de memoria. Todos los componentes del SGA asignan y liberan espacio en unidades (módulos). El tamaño del módulo queda determinado por el tamaño total del SGA. En la mayoría de las plataformas el tamaño del módulo es 4MB si el tamaño total del SGA es menor de 1GB, y de 16MB para SGA mayores. La base de datos puede configurar límites sobre cuanta memoria virtual se usa para el SGA. Puede crear instancias con un mínimo de memoria y permitir que la instancia use más, expandiendo la memoria asignada a los componentes del SGA, hasta un máximo determinado por el SGA_MAX_SIZE. Si el valor es menor que la suma de memoria asignada para todos los componentes, la base de datos ignora la configuración de SGA_MAX_SIZE.

Para un rendimiento óptimo, en la mayoría de los sistemas, todo el SGA debería ajustarse a la memoria real. Si no es así, y la memoria virtual es usada para almacenar partes del SGA, entonces el rendimiento total del sistema puede decrementarse en gran medida. La cantidad de memoria dedicada para todas las áreas compartidas en el SGA también influye en el rendimiento.

El tamaño del SGA queda determinado por muchos parámetros, aunque son los siguientes los que tienen un gran efecto sobre el tamaño del SGA:

Parámetro
Descripción
DB_CACHE_SIZE
Tamaño de la cache de los bloques estándar.
LOG_BUFFER
Número de bytes asignados al redo log buffer.
SHARED_POOL_SIZE
Tamaño en bytes para el área dedicada al SQL compartido e instrucciones PL/SQL.
LARGE_POOL_SIZE
Tamaño del large pool, por defecto es 0.
JAVA_POOL_SIZE
Tamaño del java pool.

Gestión Automática de Memoria Compartida
En versiones anteriores el administrador de la base de datos tenía que especificar manualmente los tamaños de los diferentes componentes del SGA configurando un número de parámetros de inicialización, que incluían el SHARED_POOL_SIZE, DB_CACHE_SIZE, JAVA_POOL_SIZE, y LARGE_POOL_SIZE. En la versión 10g se incluye la gestión automática de la memoria compartida que simplifica la gestión de la memoria del SGA. El administrador de la BD puede simplemente especificar la cantidad total de memoria del SGA disponible para una instancia usando SGA_TARGET y la base de datos automáticamente distribuirá esta memoria entre varios subcomponentes para asegurar el mayor uso de memoria efectiva. Cuando la gestión automática de memoria del SGA esta activada, el tamaño de los diferentes componentes del SGA es flexible y pueden adaptarse a las necesidades del trabajo sin requerir ninguna configuración adicional. La base de datos automáticamente distribuye la memoria disponible entre varios componentes como se requiera, permitiendo al sistema maximizar el uso de toda la memoria del SGA disponible.

Configurando un único parámetro se simplifica mucho la tarea de administración ya que puedes especificar solo la cantidad de memoria del SGA que una instancia tiene disponible y olvidarte de los tamaños de los componentes individuales. No se generan errores de “out of memory” a menos que el sistema se haya quedado sin memoria. La gestión automática del SGA puede mejorar el rendimiento sin necesidad de recursos adicionales ni ajustes manuales. Con la configuración manual del SGA es posible que instrucciones SQL compiladas se saquen del pool compartido debido a su insuficiente tamaño lo que incrementa la frecuencia de análisis difíciles, que reducen el rendimiento. Cuando la gestión automática del SGA esta activa, el algoritmo de ajuste interno supervisa el rendimiento del trabajo, incrementando el tamaño del pool compartido si reduce el número de análisis requeridos.

El Parámetro SGA_TARGET

El parámetro SGA_TARGET refleja el tamaño total del SGA e incluye la memoria para los siguientes componentes:
  • SGA Fija y otras asignaciones internas necesarias para la instancia.
  • El log buffer
  • El pool compartido
  • El Java pool
  • La caché del buffer
  • Las cachés de los buffers keep y recycle (si son especificados)
  • El tamaño de los bloques no estándar de las cachés de los buffer (si son especificados)
  • El Streams pool
Este incluye toda la memoria del SGA, en diferencia con las versiones anteriores en las que la memoria para la SGA interna y fija se configuraba a través de otros parámetros. En consecuencia, el SGA_TARGET da un control preciso sobre el tamaño de la región de memoria compartida asignada por la base de datos. Si está configurado con un valor mayor que SGA_MAX_SIZE al inicio, entonces este último se usa como respaldo para el SGA_TARGET.

Nota: No configurar dinámicamente el SGA_TARGET. Debería ser configurado solo al inicio.

Limitando el Tamaño de la SGA

El parámetro SGA_MAX_SIZE especifica el tamaño máximo del SGA durante la duración de la instancia. Puedes modificar dinámicamente los parámetros que afectan al tamaño de las caches de los buffers, del pool compartido, large pool, java pool, y streams pool pero solo para controlar que la suma de estos tamaños y los tamaños de los otros componentes del SGA no exceden el valor especificado por SGA_MAX_SIZE.

REFERENCIAS BIBLIOGRAFICAS:

http://proyecto359.webnode.mx/unidad2/
https://sites.google.com/site/itjabd23/home/asignatura/plan-de-estudios/unidad-2-arquitectura-del-gestor
http://dsc.itpn.mx/recursosisc/6semestre/administraciondebasesdedatos/Unidad%20II.pdf
http://administracionbd.weebly.com/unidad-2.html
http://itmlauragomezadmdebasededatos.blogspot.mx/2016/05/unidad-2-arquitectura-del-gestor.html
https://es.slideshare.net/EvaTortosa/presentacion-unidad2-gbd20132014

UNIDAD 2 ARQUITECTURA DEL GESTOR

2.1. Características del DBMS 

 CONTROL DE REDUNDACIA 
 RESTRICCION DE LOS ACCESOS NO AUTORIZADOS 
 CUMPLIMIENTO DE LAS RESTRICCIONES DE INTEGRIDAD 
 RESPALDO Y RECUPERACION CONTROL DE REDUNDANCIA. 

En la creación tradicional de programas de archivos, cada grupo de usuarios mantiene sus propios archivos para manejar sus aplicaciones de procesamiento de datos. Supongamos la situación para una base de datos de un supermercado. Los grupos involucrados serían, entre otros, el de finanzas y el de reposición. Con el enfoque tradicional, cada sector mantendría archivos independientes para los proveedores, cada uno con un objetivo distinto. Buena parte de los datos se almacenarían dos veces. 

Generalmente, esta redundancia de datos provoca varios problemas: 
  • Es necesario realizar la misma actualización -introducir un nuevo proveedor varias veces: una vez en cada archivo que contenga datos de proveedores. Esto implica duplicar el trabajo
  • Se desperdiciara espacio de almacenamiento al guardar los mismos datos en varios lugares 
  • Es posible que los archivos que representan los mismos datos se tornen inconsistentes 

RESTRICCIÓN DE LOS ACCESOS NO AUTORIZADOS. 
Cuando muchos usuarios comparten una misma base de datos, es probable que no todos tengan la autorización para tener acceso a toda la información que contiene. El SGBD debe contar con un subsistema de seguridad y autorización que permita al DBA crear cuentas y especificar restricciones para ellas. 

CUMPLIMIENTO DE LAS RESTRICCIONES DE INTEGRIDAD 
La mayor parte de las aplicaciones de base de datos tienen ciertas restricciones de integridad que deben cumplir los datos. El SGBD debe ofrecer recursos para definir tales restricciones y hacer que se cumplan. Por ejemplo, en la tabla de abajo, podemos especificar que el valor del elemento Ciclo dentro de cada registro de la tabla ESTUDIANTE debe ser un entero entre 1 y 5.

Compartimiento de datos
Una de las principales características de las bases de datos, es que los datos pueden ser compartidos entre muchos usuarios simultáneamente, proveyendo, de esta manera, máxima eficiencia.

Mantenimiento de la integridad
La integridad de los datos es la que garantiza la precisión o exactitud de la información contenida en una base de datos. Los datos interrelacionados deben siempre representar información correcta a los usuarios.

Soporte para control de transacciones y recuperación de fallas.
Se conoce como transacción toda operación que se haga sobre la base de datos. Las transacciones deben por lo tanto ser controladas de manera que no alteren la integridad de la base de datos. La recuperación de fallas tiene que ver con la capacidad de un sistema DBMS de recuperar la información que se haya perdido durante una falla en el software o en el hardware.

Independencia de los datos.
En las aplicaciones basadas en archivos, el programa de aplicación debe conocer tanto la organización de los datos como las técnicas que el permiten acceder a los datos. En los sistemas DBMS los programas de aplicación no necesitan conocer la organización de los datos en el disco duro. Este totalmente independiente de ello.

Seguridad
La disponibilidad de los datos puede ser restringida a ciertos usuarios. Según los privilegios que posea cada usuario de la base de datos, podrá acceder a mayor información que otros.

Velocidad
Los sistemas DBMS modernos poseen altas velocidades de respuesta y proceso.

Independencia del hardware
La mayoría de los sistemas DBMS están disponibles para ser instalados en múltiples plataformas de hardware.

REFERENCIAS BIBLIOGRAFICAS:

http://proyecto359.webnode.mx/unidad2/
https://sites.google.com/site/itjabd23/home/asignatura/plan-de-estudios/unidad-2-arquitectura-del-gestor
http://dsc.itpn.mx/recursosisc/6semestre/administraciondebasesdedatos/Unidad%20II.pdf
http://administracionbd.weebly.com/unidad-2.html
http://itmlauragomezadmdebasededatos.blogspot.mx/2016/05/unidad-2-arquitectura-del-gestor.html
https://es.slideshare.net/EvaTortosa/presentacion-unidad2-gbd20132014

jueves, 16 de marzo de 2017

1.8 Desplegado de mensajes en el monitor

Mensajes en el Monitor

  • Todos los gráficos y el texto que se muestran en el monitor se escriben en la RAM de visualización de video, para después enviarlos al monitor mediante el controlador de video. El controlador de video es en sí un microprocesador de propósito especial, que libera a la CPU principal del trabajo de controlar el hardware de video.
  • Un monitor de pantalla de cristal líquido (LCD) digital directo recibe un flujo de bits digitales directamente desde el controlador de video, y no requiere del barrido de trama.



En este momento podemos comenzar a escribir las verdaderas instrucciones que le indicarán a la computadora que mensaje y como lo va a desplegar. Sugiero que comenzemos por borrar la pantalla. Esto se puede realizar de muy diversas formas, aquí lo haremos usando el BIOS, el cual es un microchip que se encuentra dentro de toda PC y controla las funciones básicas de entrada y salida (Basic Input Output System). 

Lo que haremos es decirle al chip "¡Hey! dime en que modo está trabajando la tarjeta de video", cuando obtengamos la respuesta le diremos: 
"Dile a la tarjeta de video que deje de trabajar en ese modo y que comienze a trabajar en el modo de video que me diste".

 Una instrucción rara, pues lo que le estamos ordenando es que deje de trabajar en el modo en el que está trabajando !y que comienze a trabajar en ese mismo modo! Así se lo decimos en su propio lenguaje: principio: mov ah, 0fh int 10h mov ah, 0 int 10h .

Lo primero que vemos es una "etiqueta", con ella le damos nombre a un punto dentro del código, si más tarde dentro del programa deseamos repetir esta parte del código solo tenemos que decir "salta a 'principio'" y ya está. 

El primer grupo de instrucciones después de la etiqueta le dicen al BIOS que obtenga la modalidad en la que está trabajando el video. Aquí vemos por primera vez una interrupción (int 10h). Las interrupciones son funciones ya incorporadas dentro del BIOS y del sistema operativo MS-DOS que realizan tareas comunes como leer del disco, mostrar un mensaje en el monitor, o ¡borrar la pantalla!. Enseguida, mediante una función de la interrupción 10h, le decimos que cambie a la misma modalidad de video. Bueno, ahora que la pantalla está limpia, podemos mostrar nuestro mensaje en el monitor. Aquí está el código: lea dx, mensaje_a_mostrar mov ah, 9h int 21h Con la primera instrucción le decimos al procesador "Carga en el registro DX, la dirección de memoria de la variable llamada 'mensaje_a_mostrar'".

 Enseguida le decimos que la despliegue en pantalla con la función 9h de la interrupción 21h. Nuestra tarea está terminada, así que digamosle a la computadora que no hay más instrucciones que procesar. int 20h Las instrucciones están terminadas, pero todavía tenemos que decirle a la computadora que valor va a tener la variable 'mensaje_a_mostrar'. mensaje_a_mostrar db "¡Hola Mundo!$",0 El signo de pesos al final de la cadena, es necesario para que el sistema operativo sepa en donde se acaba la cadena (una cadena es un grupo de caracteres) que va a desplegar. 

Una vez que terminamos con las instrucciones y valores para la máquina, hay que marcar el archivo para que el compilador sepa que ya terminamos de darle instrucciones a la maquina. CODE ENDS end principio ¡Al fin! ¡Llegamos al final! Aquí está el código fuente completo: 
CODE SEGMENT
 ASSUME CS:CODE, DS:CODE, SS:CODE, ES:CODE
ORG 100h 
principio: 
mov ah, 0Fh 
rar db 
"¡Hola Mundo!$",0
 CODE ENDS 
end principio


Referencias Bibliograficas

http://saucedaitm.blogspot.mx/2016/10/unidad-1-lenguaje-de-interfaz.html
https://es.slideshare.net/KILLERMSTR/prez-camacho-jess-asmeth
http://itpn.mx/recursosisc/6semestre/lenguajesdeinterfaz/Unidad%20I.pdf

1.7 Proceso de Ensamblado y Ligado


EDICION 

Los archivos fuente de código ensamblador deben estar en formato ASCII standard. Para esto puede usarse cualquier editor que permita crear archivos sin formato, e.g. Edlin, Edit, Write, 
El editor del Turbo Pascal, Works, Word, WordStar, etcétera. Las declaraciones pueden ser introducidas en mayúsculas y/o minúsculas. Una buena práctica de programación es poner todas las palabras reservadas (directivas e instrucciones) en mayúsculas y todo lo del usuario en minúsculas para fines de facilidad de lectura del código. Las sentencias pueden comenzar en cualquier columna, no pueden tener más de 128 caracteres, no se permiten lineas múltiples ni códigos de control, y cada línea debe ser terminada con una combinación de line-feed y carriage-return. Los comentarios se declaran con; y terminan al final de la línea. 

ENSAMBLADO 

El ensamblado se lleva a cabo invocando al MASM. Este puese ser invocado, usando una línea de comando, de la siguiente manera: MASM archivo [,[objeto][,[listado][,[cross]]]]][opciones][;] Dónde: Objeto.- Es el nombre para el archivo objeto. Listado.- Nombre del archivo de listado de ensamblado. cross. Es un archivo de referencias cruzadas. LINK De la misma forma que el ensamblado, la fase de liga se lleva a cabo con el LINK. Este puede ser invocado de la misma forma que el MASM. Los parámetros que este requiere son: LINK objeto [,[ejecutable][,[mapa][,[librería]]]]][opciones][;] dónde: 
Objeto.- Es el nombre para el archivo .OBJ Ejecutable.- Nombre del archivo .EXE Mapa.- Nombre del archivo mapa Librería.- Nombre del archivo biblioteca de rutinas 

EJECUCION 

Para la ejecución del programa simplemente basta teclear su nombre en el prompt de MS-DOS y teclear ENTER. Con esto el programa será cargado en memoria y el sistema procederá a ejecutarlo. El proceso completo para poder crear un programa ejecutable con el Microsoft Macro Assembler se muestra abajo. 

Caracteristicas del Proceso de Ensamblado y ligado.

  1. El programa utiliza un editor de texto para crear un archivo de texto ASCII, conocido como archivo de código fuente.
  2. El ensamblador lee el archivo de código fuete y produce un archivo de código objeto, una traducción del programa a lenguaje máquina. De manera opcional, produce un archivo de listado. Si ocurre un error, el programador debe regresar al paso 1 y corregir el programa. 
  3. El enlazador lee el archivo de código objeto y verifica si el programa contiene alguna llamada a los procedimientos en una biblioteca de enlace. El enlazador copia cualquier procedimiento requerido de la biblioteca de enlace, lo combina con el archivo de código objeto y produce el archivo ejecutable. De manera opcional, el enlazador puede producir un archivo de mapa.
  4. La herramienta cargador (loader) del sistema operativo lee el archivo ejecutable y lo carga en memoria, y bifurca la CPU hacia la dirección inicial del programa, para que éste empiece a ejecutarse.

Referencias Bibliograficas:


http://saucedaitm.blogspot.mx/2016/10/unidad-1-lenguaje-de-interfaz.html
https://es.slideshare.net/KILLERMSTR/prez-camacho-jess-asmeth
http://itpn.mx/recursosisc/6semestre/lenguajesdeinterfaz/Unidad%20I.pdf

1.6 Modos de Direccionamiento


Los llamados modos de direccionamiento son las diferentes maneras de especificar en informática un operando dentro de una instrucción en lenguaje ensamblador. Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y / o constantes, contenida dentro de una instrucción de la máquina o en otra parte. 

Diferentes arquitecturas de computadores varían mucho en cuanto al número de modos de direccionamiento que ofrecen desde el hardware. 

Eliminar los modos de direccionamiento más complejos podría presentar una serie de beneficios, aunque podría requerir de instrucciones adicionales, e incluso de otro registro. Se ha comprobado que el diseño de CPUs segmentadas es mucho más fácil si los únicos modos de direccionamiento que proporcionan son simples.

 La mayoría de las máquinas RISC disponen de apenas cinco modos de direccionamiento simple, mientras que otras máquinas CISC tales como el DEC VAX tienen más de una docena de modos de direccionamiento, algunos de ellos demasiado complejos. El mainframe IBM System/360 disponía únicamente de tres modos de direccionamiento; algunos más fueron añadidos posteriormente para elSystem/390. Cuando existen solo unos cuantos modos, estos van codificados directamente dentro de la propia instrucción (Un ejemplo lo podemos encontrar en el IBM/390, y en la mayoría de los RISC). 

Sin embargo, cuando hay demasiados modos, a menudo suele reservarse un campo específico en la propia instrucción, para especificar dicho modo de direccionamiento. El DEC VAX permitía múltiples operandos en memoria en la mayoría de sus instrucciones, y reservaba los primeros bits de cada operando para indicar el modo de direccionamiento de ese operando en particular. Incluso en computadores con muchos modos de direccionamiento, algunas medidas realizadas a programas indican que los modos más simples representan cerca del 90% o más de todos los modos de direccionamiento utilizados. Dado que la mayoría de estas medidas son obtenidas a partir de códigos de alto nivel generados a partir de compiladores, nos da una idea de las limitaciones que presentan los compiladores que se utilizan

  • Los llamados modos de direccionamiento son las diferentes maneras de especificar en informática un operando dentro de una instrucción en lenguaje ensamblador.

  • Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y / o constantes, contenida dentro de una instrucción de la máquina o en otra parte.

Referencias Bibliograficas:


http://saucedaitm.blogspot.mx/2016/10/unidad-1-lenguaje-de-interfaz.html
https://es.slideshare.net/KILLERMSTR/prez-camacho-jess-asmeth
http://itpn.mx/recursosisc/6semestre/lenguajesdeinterfaz/Unidad%20I.pdf

1.5 Llamadas al servicio del Sistema.


Servicio del Sistema.


Es el mecanismo usado por una aplicación para solicitar un servicio al sistema operativo. Las llamadas al sistema comúnmente usan una instrucción especial de la CPU que causa que el procesador transfiera el control a un código privilegiado. previamente especificado por el mismo código. Esto permite al código privilegiado especificar donde va a ser conectado así como el estado del procesador. Cuando una llamada al sistema es invocada, la ejecución del programa que invoca es interrumpida y sus datos son guardados, normalmente en su PCB (Bloque de Control de Proceso del inglés Process Control Block), para poder continuar ejecutándose luego. El procesador entonces comienza a ejecutar las instrucciones de código de alto nivel de privilegio, para realizar la tarea requerida. Cuando esta finaliza, se retorna al proceso original, y continúa su ejecución. El retorno al proceso demandante no obligatoriamente es inmediato, depende del tiempo de ejecución de la llamada al sistema y del algoritmo de planificación de CPU.

Una llamada al sistema es un método o función que puede invocar un proceso para solicitar un cierto servicio al sistema operativo. Dado que el acceso a ciertos recursos del sistema requieren la ejecución de código en modo privilegiado, el sistema operativo ofrece un conjunto de métodos o funciones que el programa puede emplear para acceder a dichos recursos. En otras palabras, el sistema operativo actúa como intermediario, ofreciendo una interfaz de programación (API) que el programa puede usar en cualquier momento para solicitar recursos gestionados por el sistema operativo.

Algunos ejemplos de llamadas al sistema son las siguientes:

  • Time: que permite obtener la fecha y hora del sistema.
  • Write: que se emplea para escribir un dato en un cierto dispositivo de salida, tales como una pantalla o un disco magnético.
  • Read: que es usada para leer de un dispositivo de entrada, tales como un teclado o un disco magnético.
  • Open: que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele pasarse a write.

Llamadas a servicios del sistema Llamada al sistema (en inglés system call) es el mecanismo usado por una aplicación para solicitar un servicio al sistema operativo. Algunos sistemas permiten efectuar llamadas al sistema directamente desde un programa realizado en el lenguaje de mayor nivel, normalmente estas llamadas se asemejan a una función o sub-rutinas predefinidas

 ¿Cómo sabe el procesador que el dispositivo requiere que se le atienda? 

  • La primera forma es que el procesador esté periódicamente sondeando al dispositivo en cuestión. 
  • La segunda forma, una más eficiente, es hacer que sea el dispositivo el que le avise al procesador cuando esté listo o requiera atención, interrumpiendo al procesador.

Referencias Bibliograficas


http://saucedaitm.blogspot.mx/2016/10/unidad-1-lenguaje-de-interfaz.html
https://es.slideshare.net/KILLERMSTR/prez-camacho-jess-asmeth
http://itpn.mx/recursosisc/6semestre/lenguajesdeinterfaz/Unidad%20I.pdf

Opiniones y participaciones en Clase (Administracion de Base de Datos)

Empresas que usan Oracle y Mysql Como mandejadores de Base de datos 


Algunas empresas realmente importantes y de talla mundial, nacional tiene que utilizar unos manejadores de base de datos ya que es muy extensa la informacion que guardan y los sistemas regulares no pueden soportar tan gran cantidad de informacion por lo tanto se tiende a utilizar un sistemas mas eficaz y potente en la actualidad como Oracle y Mysql.

La mayoria de los sistemas que utilizan MySQL como hemos visto en la imagen anterior son empresas que estan vinculadas a la WWW (worl wide web), en gran caso son las empresas que tienen vinculacion con internet ya que son mas facil por sus caracteristica de cliente-servidor, necesitan un potente servidor que aguante con millones de informacion guardada por cuentas de usuarios y que este protegida. Tambien que MySQL es uno de los  manejadores que es gratuito para realizar base de Datos, pero en todo caso tambien puedes pagar por usar del servicio para que tengas mayor comodidad al realizar la base de datos para dicha aplicacion o programa.

La mayoria de las empresas o sistemas que utilizan ORACLE son empresas de talla nacional, son utilizadas en empresas como:
Dominos 
Starbucks
Burguer King
Coca-cola

Tambien vemos que existen bancos dentro de esta categoria, es posible por el caso de que oracle es una empresa mundialmente conocida por su confidencialidad, seguridad y soporte continuo a los manejadores de Base de Datos y que en algunos casos este sistema es de paga y por eso es posible dar tanta seguridad al usuario como al cliente-persona de tener guardada dichas informacion en sus sitema.

1.4 Nuevas tecnologías y aplicaciones de los sistemas de bases de datos


Aplicaciones de los Sistemas de Base de Datos.

Los sistemas orientados a los datos se caracterizan porque los datos no son de una aplicación sino de una Organización entera que los va a utilizar; se integran las aplicaciones, se diferencian las estructuras lógicas y físicas. El concepto de relación cobra importancia. Originalmente las aplicaciones cubrían necesidades muy específicas de procesamiento, se centraban en una tarea específica. Las bases de datos evitan las inconsistencias que se producían por la utilización de los mismos datos lógicos desde distintos archivos a través de procesos independientes.

El mundo real considera interrelaciones entre datos y restricciones semánticas que deben estar presentes en una base de datos. No solo debe almacenar entidades y atributos, sino que también debe almacenar interrelaciones entre datos.

  • La redundancia de datos debe ser controlada, pero si se admite cierta redundancia física por motivos de eficiencia.

  • Pretenden servir a toda la organización.

  • La independencia de los tratamientos sobre los datos y estos mismos, ha tenido una enorme influencia en la arquitectura de los SGBD.

  • La definición y descripción del conjunto de datos contenido en la base debe ser única e integrada con los mismos datos.

La actualización y recuperación de las bases de datos debe realizarse mediante procesos incluidos en SGBD, de modo que se mantenga la integridad, seguridad y confidencialidad de la base.

  • Las limitaciones de los sistemas orientados a archivos puramente secuenciales no los privaron de ser herramientas eficaces para producir pagos, facturas y otros informes una o dos veces al mes. Sin embargo, para ejecutar muchas tareas rutinarias en los negocios se necesita el acceso directo a los datos -La capacidad de tener acceso y procesar directamente un registro dado sin ordenar primero el archivo o leer los registros en secuencia.

  • Los archivos de acceso directo permiten la recuperación de los registros aleatoriamente, a diferencia de los de acceso secuencial. Sin embargo, los archivos de acceso directo solamente proporcionaron una solución parcial. Para lograr una solución más completa a estos problemas fue necesario introducir los sistemas de gestión de bases de datos.

  • Los usuarios cada vez necesitamos más recursos en tecnología, es por eso que surgen las evoluciones de sistemas, y por ende de las bases de datos, es impresionante ver como la información se procesa en microsegundos, mientras se realizan transacciones al mismo tiempo en la misma base de datos en lugares y estados diferentes.

La importancia de la información es lo que ha llevado a que las empresas y otras instituciones inviertan para la seguridad de sus datos, el futuro de la tecnología es incierto debido a que algunas proyecciones de tecnología estimadas hace 5 años y proyectadas hasta los próximos 10 años ya son una realidad, la tecnología avanza a pasos agigantados es por eso que no debemos quedarnos atrás y apostar a las nuevas tecnologías que sin duda harán más fácil la vida de las personas que tratamos con la administración y seguridad de la información.

Tanto en uno como en otro papel, la tecnología de bases de datos se ve sometida a numerosos cambios tanto desde el punto de vista empresarial como tecnológico. Las nuevas aplicaciones están llevando hasta el límite a los sistemas de bases de datos disponibles, al incorporar documentos multimedia.

Nuevas Tecnologias han obligado a tener mayor seguridad en las base de datos, y tener una mayor confiabilidad con los usuario para que sepan que su informacion esta resguardada en caso de alguna falla o robo en informacion.

Los usuarios cada vez necesitamos más recursos en tecnología, es por eso que surgen las evoluciones de sistemas, y por ende de las bases de datos, es impresionante ver como la información se procesa en microsegundos, mientras se realizan transacciones al mismo tiempo en la misma base de datos en lugares y estados diferentes, la importancia de la información es lo que ha llevado a que las empresas y otras instituciones inviertan para la seguridad de sus datos, el futuro de la tecnología es incierto debido a que algunas proyecciones de tecnología estimadas hace 5 años y proyectadas hasta los próximos 10 años ya son una realidad, la tecnología avanza a pasos agigantados es por eso que no debemos quedarnos atrás y apostar a las nuevas tecnologías que sin duda harán más fácil la vida de las personas que tratamos con la administración y seguridad de la información. Tanto en uno como en otro papel, la tecnología de bases de datos se ve sometida a numerosos cambios tanto desde el punto de vista empresarial como tecnológico. 

Las nuevas aplicaciones están llevando hasta el límite a los sistemas de bases de datos disponibles, al incorporar documentos multimedia. Imágenes, series temporales, datos activos, grandes cantidades de información (no olvidemos que los datos se expanden hasta llenar el espacio disponible), etc. Por otro lado la mejora espectacular en el número de instrucciones de máquina ejecutables en un segundo, coste de procesador, coste de la unidad de memoria secundaria y de memoria principal, numero de bits transmitidos por unidad de coste y por segundo, obligan a los SGBD a evolucionar para aprovechar estos avances en el hardware y las comunicaciones.

 En este sentido la explosión de Internet, el World Wide Web, y las “autopistas de la información” (information highWay), cuya utilización crece a un ritmo vertiginoso, están imponiendo un nuevo escenario para el desarrollo de los sistemas de información. Los sistemas de bases de datos, como elemento clave de los sistemas de información. Deben jugar un papel fundamental en esta explosión de información, si no quieren "ser arrollados en /as autopistas de la información”, como advertía David De Witt. En el VLDB de 1995.

Las bases de datos terminarán siendo como el teléfono: fáciles de usar (en cuanto interfaces, rendimiento, etc.), conectado con cualquier otra cosa alrededor del mundo, con estándares reconocidos en todas partes, consistentes y fiables y con mayores funcionalidades. Las nuevas tecnologías de bases de datos permitirán hacer realidad aplicaciones hoy en día inimaginables tanto por el volumen de datos que manejarán (serán auténticasVLDB2) como por las facilidades para su explotación. Este campo es uno de los más importantes de las tecnologías de la información, y aunque es verdad que se ha recortado los fondos para investigación básica en informática, la parte correspondiente a bases de datos ha aumentado o se ha consolidado a pesar de estos recortes.

Incluso se ha imprimido un carácter más precompetitivo y comercial a la investigación, lo que puede favorecer su implantación en las empresas. No hay que olvidar que la tecnología no es un fin en sí mismo, sino que debe ser un medio para conseguir un fin. Por lo que tiene que ser evaluada en términos de su habilidad para satisfacer las necesidades de los usuarios.

Referencias Bibliograficas:

http://itpn.mx/recursosisc/6semestre/administraciondebasesdedatos/Unidad%20I.pdf
https://sites.google.com/site/itjabd23/home/asignatura/plan-de-estudios/unidad-1-perspectiva-practica-de-la-administracion-de-bases-de-datos

1.3 Consideraciones para elegir un buen DBMS

Consideraciones para Elegir un Sistema Manejador de Base de Datos

  • Número de Usuarios: Cantidad máxima de personas que tengan todo tipo de contacto con el sistema de base de datos desde que éste se diseña, elabora, termina y se usa
  • Número de Transacciones: Son las cantidades de transacciones reales promovidas por eventos como la compra de un producto, la inscripción a un curso o la realización de un depósito.
  • Cantidad de Datos para Almacenar: Hace referencia a la capacidad de registros que se puede almacenar o de recuperar su estado en un momento previo a la pérdida de datos.
  • Consistencia de la Información: Impedir que exista información inconsistente o contradictoria en la BD. Surge cuando existen varias copias del mismo dato y tras la modificación de una de ellas, las demás no son actualizadas, o lo son pero de forma incorrecta.
  • Experiencia Propia o Externa: Contar con el conocimiento necesario para la interacción con el BDSM y de esa manera poder realizar las tareas que se nos han presupuesto.
  • Que OS se Implementará: Si no se tiene un sistema operativo en base al SGBD y esto también tendría consideraciones como la operatividad y la capacidad de administración de un servidor en tal o cual SO y los gastos que implicarían su mantenimiento.
A demás de administrar la actividad de datos y la estructura de la BD, el DBA debe administrar el DBMS mismo. Deberá compilar y analizar estadísticas relativas al rendimiento del sistema e identificar áreas potenciales del problema.  Dado que la BD está sirviendo a muchos grupos de usuarios, el DBA requiere investigar todas las quejas sobre el tiempo de respuesta del sistema, la precisión de los datos y la facilidad de uso. Si se requieren cambios el DBA deberá planearlos y ponerlos en práctica. El DBA deberá vigilar periódica y continuamente las actividades de los usuarios en la BD. 

Los productos DBMS incluyen tecnologías que reúnen y publican estadísticas. Estos informes pudieran indicar cuales fueron los usuarios activos, que archivos y que elementos de datos han sido utilizados, e incluso el método de acceso que se ha aplicado.  Pueden capturarse y reportarse las tasas de error y los tipos de errores. El DBA analizará estos datos para determinar si se necesita una modificación en el diseño de la BD para manejar su rendimiento o para facilitar las tareas de los usuarios; de ser así, el DBA la llevará a cabo. El DBA deberá analizar las estadísticas de tiempo de ejecución sobre la actividad de la BD y su rendimiento. Cuando se identifique un problema de rendimiento, ya sea mediante una queja o un informe, el DBA deberá determinar si resulta apropiada una modificación a la estructura de la BD o al sistema. Casos como la adición de nuevas claves o su eliminación, nuevas relaciones entre los datos y otras situaciones típicas deberán ser analizadas para determinar el tipo de modificación procedente. 

Cuando el fabricante del DBMS en uso anuncie una nueva versión del producto, debe realizarse un análisis de las características que esta incorpora e insopesarlas contra las necesidades de la comunidad de usuarios. Si se decide la adquisición del producto, los usuarios deben ser notificados y capacitados en su uso. El DBA deberá administrar y controlar la migración tanto de las estructuras, como de los datos y las aplicaciones. 

El software de soporte y otras características de hardware pueden implicar también modificaciones de las que el DBA es responsable ocasionalmente, estas modificaciones traen como consecuencia cambios en la configuración o en algunos parámetros de operación del DBMS. Las opciones del DBMS son ajustadas al principio, es decir, en la puesta en marcha del sistema; en este momento se conoce muy poca información sobre las características de funcionamiento y respuesta que proporcionará a los grupos de usuarios. 
El análisis de la experiencia operacional y su rendimiento en un periodo determinado de tiempo pudieran revelar que se requiere un campo. Si el rendimiento parece aceptable, el DBA puede considerar a un modificar algunas opciones y observar su efecto sobre el sistema, esto en búsqueda de la optimización o afinación del mismo. 

Algunas Caracteristicas para elegir un buen Sistema Manejador de Base de Datos.
Debido a que en el mercado mundial existen muchos manejadores de bases de datos es importante tomar en cuenta algunas consideraciones de importancia para elegir cuál es el que más conviene a nuestros intereses. Por ejemplo:

+ Cual es la disponibilidad de soporte de este gestor de bases de datos

Es factible que encuentre personal capacitado fácilmente para resolver problemas en mi gestor de bases de datos, por ejemplo veamos la capacidad de personas que usan Oracle, SQL Server, PosgreSQL, MySQL, etc., las entidades tienen que ser gestionadas por un Administrador de bases de datos, de igual manera debe considerarse si es posible determinar el costo de un especialista en dicho gestor de base de datos o si el gestor nos brinda soporte en línea o vía remota.

Si las aplicaciones que van a consumir esos datos son de misión critica y se requiere alta disponibilidad y soluciones rápidas, no es recomendable usar un DBMS poco conocido en el mercado y mucho menos que sea nuevo como los gestores non-SQL ya que nadie los conoce y si mi gestor de base de datos sufre una caída, quien, cuándo y cuánto va a costar repararlo ya que a pesar de poseer una muy buena política de backups, puede que el mismo servidor se dañe (hardware) y si no consigo alguien que lo ponga en línea lo mas rápido posible estaré en problemas pues la empresa va a tener una larga caída que se representara en dinero y falta de productividad.

+ Cual es la carga de transacciones que va a soportar esa base de datos

Si voy a necesitar una alta carga de transacciones (mayores a 200 usuarios conectados al mismo tiempo) es necesario que se vaya pensando en algo robusto y bien probado en el mercado servidores como cualquier versión express (SQL Servr, DB2, etc.) no es aceptable, si lo que se desea es algo libre pues PostgreSQL es la respuesta .

+ Que sistema operativo se planea implementar

Está comprobado que SGBD diseñados en opensource (Código abierto) corren mucho más rápido en entornos operativos basados en UNIX que sobre Windows, así que aquí debería de tenerse en cuenta el sistema operativo, si no se ha tomado la decisión entonces elegir el sistema operativo del servidor dependiendo del SGBD, en foros como los de PosgreSQL, por ejemplo, la gente que ha realizado pruebas de este SGBD indican que se tiene un 25% de optimización corriendo sobre LINUX que sobre Windows. Si no se tiene un sistema operativo en el servidor sería recomendable elegirlo en base al SGBD y esto también tendría consideraciones como la operatividad y la capacidad de administración de un servidor en tal o cual SO y los gastos que implicarían su mantenimiento.


Referencias Bibliograficas:


http://proyecto359.webnode.mx/unidad1/
http://administracionbd.weebly.com/unidad-1.html
http://itpn.mx/recursosisc/6semestre/administraciondebasesdedatos/Unidad%20I.pdf
https://sites.google.com/site/itjabd23/home/asignatura/plan-de-estudios/unidad-1-perspectiva-practica-de-la-administracion-de-bases-de-datos



1.2 Análisis de los Manejadores de Bases de Datos

Caracteristicas y requerimientos de instalacion de los manejadores de Base de Datos
SGBD
Características
Requerimientos (de instalación)
Microsoft SQL Server (2012)
SQL Server 2012 brindará a los usuarios grandes avances en tres campos principales:
Confianza de misión crítica con mayor tiempo activo, rendimiento ultra rápido y características mejoradas de seguridad para cargas de trabajo de misión crítica.
Avances innovadores con exploración de datos de auto-servicio administrado y capacidades asombrosas e interactivas de visualización de datos.
La nube en sus propios términos al habilitar la creación y extensión de soluciones a lo largo de la nube en las instalaciones y en la nube pública.
Memoria:
·  Mínimo: 1 GB
· Se recomienda: al menos 4 GB y debe aumentar a medida que el tamaño de la base de datos aumente para asegurar un rendimiento óptimo.
Velocidad del procesador:
·Mínimo: Procesador x86: 1,0 GHz o Procesador x64: 1,4 GHz
· Recomendado: 2 GHz o más
Procesador:
·Procesador x64: AMD Opteron, AMD Athlon 64, Intel Xeon compatible con Intel EM64T Intel Pentium IV compatible con EM64T
·  Procesador x86: compatible con Pentium III o superior

Microsoft Access
Compile bases de datos más rápida y fácilmente que nunca.
Cree formularios e informes más impactantes.
Obtenga acceso más fácilmente a las herramientas adecuadas en el momento exacto.
Agregue expresiones complejas y automatización sin escribir ni una línea de código.
Obtenga una ubicación central para los datos.
Obtenga acceso a la base de datos de formas nuevas.
Procesador: 500 Megahertz (MHz) o más veloz.
Memoria (RAM): 256 Megabytes (MB) de RAM o más.
Espacio en disco duro: 1.5 GiB.
Pantalla (monitor): resolución de 1024×768 o superior.
Sistema operativo: Windows XP con Service Pack 3 (SP3) (sólo 32bits) o Windows Vista SP1, Windows 7, Windows Server 2003 R2 con MSXML 6.0, Windows Server 2008.
My SQL
·Escrito en C y en C++
· Probado con un amplio rango de compiladores diferentes
·Funciona en diferentes plataformas
·Proporciona sistemas de almacenamiento transaccionales y no transaccionales
·Un sistema de reserva de memoria muy rápido basado en threads
·Un sistema de privilegios y contraseñas que es muy flexible y seguro, y que permite verificación basada en el host
Suficiente espacio en disco rígido para descomprimir, instalar, y crear las bases de datos de acuerdo a sus requisitos. Generalmente se recomienda un mínimo de 200 megabytes.
Un sistema operativo Windows de 32 bits, tal como 9x, Me, NT, 2000, XP, o Windows Server 2003.
Soporte para protocolo TCP/IP.
InterBase
InterBase nos garantiza que es un producto fiable y robusto, probado exhaustivamente y que ofrece unos buenos niveles de seguridad.
Código Abierto
Mantenimiento prácticamente nulo
Bajo Coste de Desarrollo
Tráfico de red reducido
Integración en Herramientas de Desarrollo
Versiones soportadas de Sistema Operativo: Windows 95 / Windows 98 / Windows NT Workstation 4.x / Windows 2000
Protocolos soportados: TCP/IP
Instalación: Un programa de cliente "shim" es cargado en los clientes. Éste cargará los programas apropiados del Servidor para completar la instalación.
Hardware (Mínimo): Pentium P100 como mínimo absoluto. 64Mb RAM., Disco Duro de 500Mb o similar, Tarjeta de red
Hardware (recomendado): PC Pentium PIII 1GHz, 128Mb RAM, Disco Duro de 4.0Gb, tarjeta de red
Oracle
·Admite varias opciones de soportes de arranque.
·Ayuda en la instalación del sistema operativo.
·Proporciona un juego específico de capacidades de procesador de servicio y de configuración de Oracle ILOM.
·Capacidades de administración y de solución de problemas.
Sistema operativo: Windows 2000 Advanced Server SP4, Windows XP SP2, Windows 2003 Enterprise Server SP1 (32 bit), Windows 2003 Enterprise Server SP1 (64 bit)
Memoria mínima: 1 GB
Memoria recomendada: 2 GB
Espacio en disco mínimo: 500 MB de espacio libre
Espacio en disco recomendado: 1 GB de espacio libre
DB2
DB2 UDB es un sistema para administración de bases de datos relacionales (RDBMS) multiplataforma, especialmente diseñada para ambientes distribuídos, permitiendo que los usuarios locales compartan información con los recursos centrales.
Sistema operativo: Windows XP Professional,  Vista Business, Vista Enterprise, Vista Ultimate, 7 Professional, 7 Enterprise, 7 Ultimate, 8 Standard, 8 Professional
Hardware: Todos los procesadores Intel y AMD capaces de ejecutar los sistemas operativos Windows.
DBase
Convertir sus datos en Información valiosa.
Gestiona visualmente los archivos de aplicaciones.
Genera automáticamente código SQL libre de errores.
Crear fácilmente EXE’s de 32 bits.
Agrupar y definir fácilmente las relaciones entre componentes visuales a través de los Contenedores de Objetos.
                      Windows XP SP2
                      Intel Pentium 4, 2.40GHz SP2 32bits
                      512MB de RAM
                      25mb En el disco duro
Paradox
Contiene nuevas librerías de ayuda especializadas para que usted cree y ejecute el lenguaje de Consulta Estructurado (SQL) sin teclear el código.
Paradox agrega un diseñador para crear las formas de Web en una Plataforma independiente.
Windows 95, Windows 98, o Windows NT® 4.0
Procesador 486/66 DX o mayor
16 MB RAM (32 RAM recomendado)
65 MB de espacio en Disco Duro

El sistema manejador de bases de datos 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. Microsoft SQL Server al igual que Oracle DB y MySQL Server son sistemas de gestión o manejadores de base de datos, existen muchos como:

 MySQL 
 PosgreSQL 
 Microsoft SQL Server 
 Oracle 
 Microsoft Access 
 Microsoft Visual Fox Pro 
 Firebird  mSQL (mini SQL) 
 IBM DB2 
 IBM Informix 
 SQLite 
 Sybase ASE 
 Paradox 
 dBase 

Pero existen algunas ventajas y desventajas que los hace diferentes para la gestión de la base de datos. Estas diferencias son importantes para las grandes organizaciones y empresas pequeñas elegir el de mayor beneficio, confiabilidad y seguridad en la administración de los datos.

 Analizaremos las ventajas y desventajas de Microsoft SQL Server, Oracle DB y MySQL Server, por ser los más usados y los más comunes. MySQL server a diferencia de Microsoft SQL server es un servidor multi-hilo popular de base de datos de código abierto, confiable, compacto, poderoso y multiplataforma, podemos hacer las bases de datos a código abierto, una gran ventaja es que se puede utilizar gratis y su código fuente esta siempre disponible. 

Las principales ventajas de MySQL Server son: 
 Software gratuito.
 La velocidad y robustez. 
 Multiproceso, es decir que puede usar varias CPU si éstas están disponibles. 
 Multiplataforma, es decir que puede trabajar en distintos Sistemas Operativos. 
 Sistema de contraseñas y privilegios muy flexibles y seguros. Microsoft SQL server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, Sybase ASE, PostgreSQL, Interbase, Firebird o MySQL 

Las principales ventajas de SQL Server son: 
 Soporte de transacciones. 
 Escalabilidad, estabilidad y seguridad. 
 Soporta procedimientos almacenados. 
 Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo acceden a la información. 
 Además permite administrar información de otros servidores de datos. 
 Una desventaja de SQL Server es que es costoso. Oracle es un sistema desarrollado por Oracle 
Corporation. Se considera a Oracle como uno de los sistemas de bases de datos más completos. 

Las principales ventajas son: 
 Soporte de transacciones
 Estabilidad. 
 Escalabilidad. 
 Soporte multiplataforma. 
Una desventaja de este son las políticas de seguridad en el suministro de parches de actualización.



Referencias Bibliograficas:

http://administracionbd.weebly.com/unidad-1.html
http://itpn.mx/recursosisc/6semestre/administraciondebasesdedatos/Unidad%20I.pdf
http://proyecto359.webnode.mx/unidad1/