miércoles, 11 de diciembre de 2013

CONCEPTOS DE ORACLE Y SUS HERRAMIENTAS


1. ORACLE DATABASE: Es un sistema de gestión de base de datos objeto-relacional (uORDBMS por el acrónimo en inglés de Object-Relational Data Base Management System), desarrollado por Oracle Corporation.
Se considera a Oracle Database como uno de los sistemas de bases de datos más completos, destacando:
-          soporte de transacciones,
-          estabilidad,
-          escalabilidad y
-          soporte multiplataforma.

Su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco; recientemente sufre la competencia del Microsoft SQL Server de Microsoft y de la oferta de otros RDBMS con licencia libre como PostgreSQLMySQL o Firebird. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux.

2. Procesos en segundo plano (Oracle): Las relaciones entre las estructuras físicas y de memoria de la base de datos se mantienen y aplican mediante procesos en segundo plano. Estos procesos son propios de la base de datos y su número varía en función de la configuración de la base de datos. La base de datos gestiona estos procesos y necesitan muy poco trabajo administrativo.

En Oracle los procesos pueden ser de estos tipos:
- Proceso de usuario: Lanzado por el usuario para pedir interacción con la base de datos.
- Proceso de servidor: Hacen de enlace entre los procesos de usuarios y el servidor Oracle. Se utilizan como manejadores de los procesos de usuario. Los comandos de usuario se envían a estos procesos que se encargan de solicitar peticiones a la base de datos mediante el interfaz de programas de Oracle (OPI, Oracle Program Interface).
- Procesos en segundo plano (background): Cada instancia de Oracle arranca una serie de procesos background.

3. Procesos Background (en segundo plano), describalos y explíquelos

DBWR: Databasewriter
LGWR: Log Writer
CKPT: Checkpoint
SMON: Monitor de sistema
PMON: Monitor de procesos
ARCH: Proceso archivador
RECO: Proceso de recuperación

- DBWR: Este proceso es el que se encarga de escribir a disco. Es el único con permiso de escritura en disco, o sea en la base de datos. Cuando nosotros escribimos, hacemos un commit en la base de datos, realmente no está escribiendo en disco, sino que está marcando una serie de bloques de datos como que son susceptibles de ser escritos en disco, es decir, marca los datos como "confirmados", pero no escribe, si no que espera a que otra transacción los requiera para llevarlos a disco y así ahorrar un "viaje" o una operación.

Por eso mismo cuando la base de datos cae o la paramos con la opción "abort", queda inconsistente, ya que puede tener datos en bufferes "confirmados" que realmente no están escritos en disco. Por eso cuando volvemos a arrancar, necesita realizar una recuperación.

- LGWR: Este proceso es que se encarga de escribir el contenido del búfer del registro de rehacer en los ficheros de registro de rehacer en línea. Se realizan las escrituras por lotes. El buffer del registro de rehacer (redo log), contiene siempre el estado más reciente de la base de datos, ya que es posible que el proceso DBWR espere antes de escribir los bloques modificados desde los búferes de bloques de datos a los archivos de datos. Los archivos de registro de rehacer son ficheros secuenciales lo que indica que cuando acaba de escribir en uno, empieza por otro y así sucesivamente.

- CKPT: Este proceso es el encargado de realizar un "punto de comprobación". Cuando se sucede un punto de comprobación, CKPT hace que DBWR escriba todos los bloques que se hayan modificado desde el último punto de comprobación, y actualice los archivos de control y las cabeceras de los archivos de datos para registrar el punto de comprobación. Los puntos de comprobación de producen de forma automática cuando se llena un archivo de registro de rehacer en línea.

Se puede configurar el checkpoint en el fichero de inicialización de parámetros con el parámetro: LOG_CHEKPOINT_INTERVAL.

- SMON: Este proceso realiza la recuperación de la instancia, según sea preciso usando los registros de rehacer en línea... (antes hablamos de que si oracle se para necesitaría hacer una recuperación si se para anormalmente, pues lo realiza así). Limpia la base de datos de transacciones inservibles. También cumple la función de agrupar extensiones libres contiguas en la base de datos. Smon solo agrupa el espacio libre en espacios de tablas cuyo valor de almacenamiento predeterminado sea distinto de 0.

- PMON: Realiza limpiezas de procesos fallidos de usuarios. Libera recursos que estuviera usando el usuario. Sirve por ejemplo cuando hay bloqueos. Libera bloqueos y pone a disposición para otros usuarios.

- ARCH: Proceso que escribe en los registros de rehacer en línea de forma cíclica, es decir, después de llenar el primero, va al segundo, cuando lo llena, va al tercero y así sucesivamente. Una vez terminado el último fichero de rehacer en línea, LGWR empieza a sobrescribir los contenidos del primero. Cuando la base de datos se ejecuta en modo ARCHIVELOG, ARCH realiza una copia del cada uno de ficheros de rechace en línea antes de ser sobrescrito.

- RECO: Este proceso es el encargado de realizar las recuperaciones de fallos en las bases de datos distribuidas. Este proceso trata de acceder a las bases de datos implicadas en transacciones distribuidas dudas e intenta resolver las transacciones.
  
Procesos en Oracle opcionales en segundo plano

La base de datos Oracle viene con una serie de procesos adicionales que son opcionales. Por ejemplo, Oracle cuenta con un programa que le permite programar los tiempos que algunos programas de bases de datos se ejecutará. Este programa se conoce como el proceso planificador de tareas. El planificador de tareas es un programa opcional que debe ser habilitado para que funcione. Cuando el programador de tareas está activada, un proceso (programa) se pondrá en marcha para controlar el trabajo del programador. Esto se conoce como el proceso de cola de trabajos. Estos son los procesos opcionales más comunes:

* Cola de proceso (CJQ) - Se utiliza para el trabajo del programador. El planificador de trabajo incluye un programa principal (el coordinador) y los programas de esclavos que el coordinador se ejecuta. El job_queue_processes parámetro controla el número de puestos de trabajo en paralelo de trabajo del planificador se pueden ejecutar al mismo tiempo.

* Proceso de Archiver (ARCN) - Se utiliza para archivar los registros de rehacer en línea (que veremos más adelante en este capítulo) en el disco. En los casos en que sea necesario, Oracle Database 10g se iniciará el proceso ARCN automáticamente. Si los procesos adicionales ARCN se necesitan, entonces la base de datos Oracle comenzará hasta 9 procesos adicionales.

* Cola de Process Monitor (QMNn) - Se utiliza para gestionar flujos de Oracle AdvancedQueueing.

* Mmon, MMNL, MMAN - Se utiliza para realizar varias tareas de administración de base de datos.

4. Enuncie y describa las Ediciones de Oracle

Existen cinco ediciones distintas de base de datos Oracle con opciones específicas, para cada una de ellas.

Oracle Database Standard Edition One: Ofrece facilidad de uso, potencia y rendimiento para grupos de trabajo, a nivel de departamentos y aplicaciones Web. Desde los entornos de un solo servidor para pequeñas empresas a los entornos de sucursales altamente distribuidos.

Oracle Database Standard Edition: Ofrece las funcionalidades de la edición Standard Edition One, con el apoyo de máquinas más grandes y la agrupación de los servicios con Oracle Real Application Clusters (Oracle RAC). La funcionalidad no se incluía ni como opción en versiones estándar anteriores.

Oracle Database Enterprise Edition: Ofrece el rendimiento, la disponibilidad, la escalabilidad y la seguridad necesaria para las aplicaciones de misión crítica, tales como el procesamiento de grandes volúmenes de transacciones en línea (OLTP), almacenes de datos en consultas intensivas y exigentes aplicaciones de Internet.

Oracle Database Express Edition (Oracle Database XE): Es una edición básica de la base de datos de Oracle. Es rápida de descargar, fácil de instalar y administrar, y es libre de desarrollar, implementar y distribuir. Es fácil de actualizar a las otras ediciones de Oracle sin migraciones costosas y complejas. Oracle Database XE se puede instalar en cualquier máquina tamaño con cualquier número de CPUs, almacena hasta 11 GB de datos de usuario, con un máximo de 1 GB de memoria, y con una sola CPU en la máquina host. Existe un foro en línea, para dar soporte.

Oracle Database Personal: Soporta los entornos de desarrollo de un solo usuario y el despliegue que requieren la plena compatibilidad con Oracle Database Standard Edition One, Oracle Database Standard Edition y Oracle Database Enterprise Edition.

Le diferencia la excepción de la no opción de Oracle Real Application Clusters.
Personal Edition sólo está disponible en los sistemas operativos Windows y Linux. Tampoco incluye los módulos de administración no están incluidos.

5. Cuál es la edicion de uso libre o que podemos usar?

El producto es Oracle 10g Express Edition (Oracle Database XE) y, obviamente, tiene sus limitaciones.

Sólo puede utilizar 1 procesador del servidor donde esté instalada, un máximo de 1 Gb de RAM, y tiene limitado el almacenamiento a 4 Gb de datos de usuario. Cuando se superen estas limitaciones, Oracle ofrece un sencillo proceso de actualización a otras versiones más completas, y en las que sí que hay que pagar licencias.

7. Describa las herramientas de oracle para el programador analista
Oracle ofrece un grupo completo e integrado de herramientas para la inteligencia de negocios y el desarrollo de aplicaciones, el cual respalda cualquier entorno de desarrollo, cualquier plataforma de tecnología y cualquier sistema operativo.

Los arquitectos y desarrolladores que tienen pensamientos adelantados utilizan estas herramientas para abordar la complejidad de sus entornos de IT y aplicaciones con la Arquitectura Orientada a Servicios (SOA), que facilita el desarrollo de aplicaciones empresariales como servicios modulares de negocio que pueden integrarse y reutilizarse fácilmente, creando una infraestructura de IT realmente flexible y adaptable.

8. Defina los siguientes herramientas y su función:
-SQL: El lenguaje de consulta estructurada o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar de forma sencilla información de interés de bases de datos, así como hacer cambios en ella.

-SQL*Plus: Es un programa de línea de comandos de Oracle que puede ejecutar comandos SQL y PL/SQL de forma interactiva o mediante un script.

SQL*Plus opera como una herramienta relativamente simple con una interfaz de líneas de comando básica. Los programadores y los administradores de bases de datos (DBA's) lo usan de forma muy común como interfaz fundamental en la mayoría de las instalaciones de software de Oracle.
-PL/SQL (Procedural Language/Structured Query Language): Es un lenguaje de programación incrustado en Oracle.
PL/SQL soportara todas las consultas, ya que la manipulación de datos que se usa es la misma que en SQL, incluyendo nuevas características:
-          El manejo de variables.
-          Estructuras modulares.
-          Estructuras de control de flujo y toma de decisiones.
-          Control de excepciones.
-           
El lenguaje PL/SQL está incorporado en:
-          Servidor de la base de datos.
-          Herramientas de Oracle (Forms, Reports, ...).
-          En un entorno de base de datos los programadores pueden construir bloques PL/SQL para utilizarlos como procedimientos o funciones, o bien pueden escribir estos bloques como parte de scripts SQL*Plus.
-          Los programas o paquetes de PL/SQL se pueden almacenar en la base de datos como otro objeto, y todos los usuarios que estén autorizados tienen acceso a estos paquetes. Los programas se ejecutan en el servidor para ahorrar recursos a los clientes.

- SQL FORMS: Es la herramienta de Oracle que permite, de un modo sencillo y eficiente, diseñar pantallas para el ingreso, modificaciones, bajas y consultas de registros. El usuario podrá, una vez definida la forma, trabajar con ella sin necesidad de generar códigos, dado que Oracle trae incorporado un conjunto de procedimientos y funciones asociados a las teclas de funciones, como por ejemplo la tecla [F7], que se usa para iniciar una consulta.

La herramienta fundamental de SQL es la sentencia SELECT, que permite seleccionar registros desde las tablas de la Base de Datos, devolviendo aquellos que cumplan las condiciones establecidas y pudiendo presentar el resultado en el orden deseado.

- SQL (Structured Query Languague = Lenguaje de Consulta estructurado): La orden FROM identifica la lista de tablas a consultar. Si alguna de las tablas a consultar no es propiedad del usuario, debe especificarse el nombre del propietario antes que el nombre de la tabla en la forma nombre_propietario.nombre_tabla.

La orden WHERE decide los registros a seleccionar según las condiciones establecidas, limitando el número de registros que se muestran.

La orden ORDER BY indica el orden en que aparece el resultado de la consulta.

- ORACLE REPORT: es una poderosa herramienta que tiene por objetivo el diseño y la generación de informes. Permite la creación de reportes en archivos jsp (Java Server pages), rdf, xml, rtf entre otros, pero siendo los más usados los anteriormente citados. De igual manera permite enviar el resultado de los informes a archivos de texto, pdf, html, xml, rtf, de texto delimitados, entre otros, lo cual permite su lectura y publicación en diversos formatos.


 - ORACLE GRAPHICS: el desarrollo de Graficos por medio de herramientas de Oracle.

9. - TABLESPACE: Un tablespace es una unidad lógica de almacenamiento dentro de una base de datos Oracle.

- VIEW: Una vista es una alternativa para mostrar datos de varias tablas; es como una tabla virtual que almacena una consulta. Los datos accesibles a través de la vista no están almacenados en la base de datos, en la base de datos se guarda la definición de la vista y no el resultado de ella.

- COMMIT: Guarda los cambios de la transacción en curso.
Libera los recursos bloqueados por cualquier actualización hecha con la transacción actual (LOCK TABLE).

- GRANT: Esta sentencia sirve para dar permisos (o privilegios) a un usuario o a un rol.
Un permiso, en oracle, es un derecho a ejecutar un sentencia (system privileges) o a acceder a un objeto de otro usuario (object privileges).
El conjunto de permisos es fijo, esto quiere decir que no se pueden crear nuevos tipos de permisos.
Si un permiso se asigna a rol especial PUBLIC significa que puede ser ejecutado por todos los usuarios.

- REVOKE: Esta sentencia sirve para quitar permisos (o privilegios) a un usuario o a un rol.

- TABLE: las tablas son la unidad básica de almacenamiento de datos en Oracle. Los datos son almacenados en filas y columna se define a través de: Nombre, conjunto de columnas (nombre y tipo).

- INDEX: Los índices se usan para mejorar el rendimiento de las operaciones sobre una tabla.
En general mejoran el rendimiento las SELECT y empeoran (minimamente) el rendimiento de los INSERTy los DELETE.
Una vez creados no es necesario nada más, oracle los usa cuando es posible (ver EXPLAIN PLAN).

En oracle existen tres tipos de indices:
1) Table Index
2) Bitmap Join Index
3) Cluster Index

- FUNCTION: Oracle ofrece varios tipos de funciones para realizar distintas operaciones. Hemos empleado varias de ellas.
Se pueden emplear las funciones del sistema en cualquier lugar en el que se permita una expresión en una sentencia "select".

Las funciones, como los procedimientos almacenados son bloques de código que permiten agrupar y organizar sentencias SQL que se ejecutan al invocar la función.

Las funciones tienen una estructura similar a la de los procedimientos. Como los procedimientos, las funciones tienen una cabecera, una sección de declaración de variables y el bloque "begin...end" que encierra las acciones. Una función, además contiene la cláusula "return".
Una función acepta parámetros, se invoca con su nombre y retorna un valor.

- PROCEDURE: Un procedimiento es un subprograma que realiza una acción específica.

Debe declarar y definir un procedimiento ante la invoca. Usted puede declarar y definir al mismo tiempo, o puede declararlo primero y luego definir más adelante en el mismo bloque o subprograma.

- PACKAGE: Es una colección encapsulada de procedimientos relacionados, funciones y otros objetos de programa almacenados juntos en la base de datos. La especificación del paquete declara estos objetos. El cuerpo del paquete, se especifica posteriormente, define estos objetos.

- TRIGGER: Es un bloque PL/SQL asociado a una tabla, que se ejecuta como consecuencia de una determinada instrucción  SQL (una operación DML: INSERT, UPDATE o DELETE) sobre dicha tabla.

- INSTANCE: Una instancia de Base de datos es el conjunto formado por los procesos y las estructuras de memoria que se encuentran en un servidor.

- ROLLBACK: Deshace los cambios de la transacción en curso.
Libera los recursos bloqueados por cualquier actualización hecha con la transacción actual (LOCK TABLE).