TELEPROCESO


Introducción
La palabra teleproceso data del año de 1967, cuando un grupo de especialistas abreviaron el término:
"Telecomunicaciones en proceso de datos"
Quedando finalmente el término Teleproceso.
Objetivo: Comprender los sistemas que dieron origen al teleproceso.
Descripción del Teleproceso.- Es conjunto de servicios que se realizan a largas distancias. A través de un ordenador conectado a una red de informática.
También se puede decir que es el procesamiento de datos usando las telecomunicaciones (transmisión de señales a grandes o pequeñas distancias).- El teleproceso puede ejecutarse de dos maneras diferentes:
ON LINE.- Un servidor controla la transmisión y se procesa los datos inmediatamente después de haber sido recibidas.
OFF LINE.- Cuando la transmisión de datos es recibida por un dispositivo externo para posteriormente ser procesada.
Proceso Distribuido y Centralizado:
Distribuido.- Este se da cuando varios servidores, ejecutan varias tareas, su pro el procesamiento rápido y su contra la falta de seguridad y el incremento de costos.
Centralizado.- Este se da cuando un solo servidor, ejecuta varias tareas, sus pro mayor seguridad y la reducción de costos y su contra el procesamiento lento.
Antecedentes del teleproceso
Sistemas de comunicación de datos son todos aquellos sistemas informáticos cuyos procesadores y terminales no coinciden en situación geográfica y la Información fluye entre ellos a través de algún sistema de telecomunicación.
Las redes de telecomunicación actuales son el fruto de una continua evolución propiciada por el avance en el campo de la ciencia y de la tecnología. Buena parte de ello lo constituye el telégrafo.
Las características del teleproceso:
Rapidez
Eficacia
Compatible
Privacidad
Amplio alcance
Seguridad
Costos razonables
Tecnología de punto
Los elementos del teleproceso:
Transmisor
Mensaje
Receptor
Ventajas:
Arquitectura bastante rápida
Buena tolerancia de fallos
Es bastante segura
Desventajas:
Poco espacio en la base de datos.
Historia:
Palabra Teleproceso es derivado de "Telecomunicación en Proceso de Datos" (1960). En los años de 1980 se comienza a dar gran auge al Teleproceso.
Comienza con el teléfono, pese que no estaba diseñado para este fin, pero se adecuó. Medios de
Telecomunicación:
Telegrafía - 1875
Teléfono - 1900
Radio - 1925
Televisión - 1950
Transferencia vía Satélite - 1975
Redes - 1980
Conclusión:
Estudiar los medios actuales de comunicación para el desarrollo e implementación de nuevas formas de enviar y recibir información.
Recomendación:
Optimizar los tiempos en el manejo de información.


Servidor de Archivo


Introducción:
Un servidor de archivos es el que almacena varios tipos de archivos y los distribuye a otros clientes en la red.
Objetivo:
EL objetivo del servidor de archivos, es que los usuarios pueden trabajar y tener acceso a documentos sin tener que llevar un disco.
Descripción Servidor de archivo:
En el computar, el servidor de archivo es una computadora unida a una red de la cual tenga el propósito primario de proporcionar una localización para el almacenaje compartido ficheros informáticos (por ejemplo documentos, archivos de los sonidos, fotografías, películas, imágenes, bases de datos, etc.) que se puede alcanzar por los sitios de trabajo que se unen a red de ordenadores. El término servidor destaca el papel de la máquina en servidor de cliente esquema, donde clientes son los sitios de trabajo usando el almacenaje. Un servidor de archivo no está realizando generalmente ninguna cálculos, y no funciona ninguna programas a nombre de los clientes. Se diseña sobre todo para permitir el almacenaje y la recuperación rápidos de los datos donde el cómputo pesado es proporcionado por los sitios de trabajo.
Teniendo un servidor de archivos, los usuarios pueden trabajar y tener acceso a documentos sin tener que llevar un disco. Los privilegios de acceso pueden ser restringidos a invitados o usuarios registrados.
Este tipo de servidor es el más común de los servidores en pequeñas, medianas y grandes empresas. Además de servir como un repositorio centralizado, facilita las estrategias de backup centralizada y la implementación de seguridad dependiendo en el sistema operativo, los individuos pueden ser asignados con diferentes derechos de acceso para almacenar información.
Un servidor de archivos difiere de un computador personal. El servidor se encarga de almacenar archivos en una ubicación centralizada permitiendo el acceso de muchos ordenadores.
Tipos de servidores de archivo:
Un servidor de archivo puede ser dedicado o genérico. Un servidor dedicado se diseña generalmente específicamente para el uso como servidor de archivo, con los sitios de trabajo unidos para la lectura y los archivos y las bases de datos de la escritura. Un sitio de trabajo puede compartir archivos con otros sitios de trabajo en la red directamente sin embargo dando vuelta en suservicio del “servidor” y entonces creando una “parte” este proceso crea un servidor de archivo genérico que se esté utilizando sobre todo como sitio de trabajo.
Características:
Se ha demostrado que Linux trabaja de mejor manera como Servidor de Archivos que los Sistemas NT o Windows 2000, incluso con Linux en Hardware antiguo. Y desde que Linux fue diseñado para ser un Sistema Operativo robusto, centra sus recursos de hardware en procesar las peticiones de usuarios dándoles prioridad sobre las peticiones de Sistema Operativo.
Ventajas:
El servidor ya no realiza todo el trabajo.
Tiene mayor capacidad el servidor
Mayor velocidad de transmisión.
Procesamientos mayores de la aplicación.
Si usa varias PCs durante su trabajo, los servidores de archivos están disponibles en cualquier PC.
Los servidores de archivo ofrecen generalmente una cierta forma de seguridad del sistema para limitar el acceso a los archivos a los usuarios o a los grupos específicos.
Desventajas:
El diseño de los servidores de archivo es complicado por las demandas competentes para el espacio de almacenaje y velocidad del acceso.
Historia de los servidores de archivo:
En a mediados de los años ochenta las empresas llegaron a estar cada vez más interesadas en maneras de conectar a una población en crecimiento rápidamente de ordenadores personales. Novell propuso un acercamiento usando software para conectar cada sitio de trabajo con un servidor de archivo de la red que manejaría la red y tendría acceso a los recursos de la red. Al mismo tiempo corporación 3Com creaba Ethernet tarjetas del adaptador, conectividad constructiva del hardware necesitada para tal acercamiento.
Novell creció sobre la fuerza de su Netware el sistema operativo, usado para la porción del archivo, y por el final de los '80 tenía una cuota de mercado del 50% de redes de área local. Ver el crecimiento potencial en esta arena IBM y Microsoft ambos introdujeron sus propias estrategias del servidor de archivo.
Veinte años después de su pico, Novell y 3Com han desaparecido virtualmente del mercado del servidor; hoy los servidores de disco (una NAS o un SAN) proveídos por uno de los vendedores principales tales como EMC o NetApp se unen típicamente a un servidor de archivo que funciona los sistemas operativos del Microsoft Windows o de Linux. Grande centros de datos, millones de ese servicio de clientes (por ejemplo Google's), funcionamiento granjas del servidor en el equipo especializado con los sistemas operativos.
Conclusión:
Podemos darnos cuenta que un servidor de archivos puede trabajar con varios sistemas operativos
Recomendación:
La recomendación que les puedo dar es trabajar con el sistema operativo Linux por cuestiones de seguridad ya que es muy robusto en ese aspecto al no permitir la entrada de virus.


Cliente Servidor


Introducción:
En los comienzos de internet surgió una forma de interactuar entre el cliente y el servidor. Estos se ejecutan totalmente en el servidor tomando peticiones a manera de texto y devolviendo resultados al cliente en un formato HTML.
Objetivo:
El objetivo es si del cliente servidor es dar a entender su funcionamiento y como esta constituido.
Descripción Cliente-Servidor:
Podemos decir que cliente servidor conserva:
  • Lógica de negocio
  • Lógica de aplicación
  • Base de datos.
Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa el servidor que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
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.
 Unas de las disposiciones más comunes 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.
La arquitectura cliente-servidor: sustituye a la arquitectura monolítica (Es aquella aplicación única que contiene todos los componentes en una), en la que no hay distribución, tanto a nivel físico como a nivel lógico.
Esquema cliente-servidor
El esquema cliente-servidor "es un modelo de computación en el que el procesamiento requerido para ejecutar una aplicación o conjunto de aplicaciones relacionadas se divide entre dos o más procesos que cooperan entre sí”. Usualmente la mayoría del trabajo pesado se hace en el proceso llamado servidor y el proceso cliente sólo se ocupa de la interacción con el usuario aunque esto puede variar.
Los principales componentes del esquema cliente-servidor son entonces los Clientes, los Servidores y la infraestructura de comunicaciones.
Los Clientes interactúan con el usuario, usualmente en forma gráfica. Frecuentemente se comunican con procesos auxiliares que se encargan de establecer conexión con el servidor, enviar el pedido, recibir la respuesta, manejar las fallas y realizar actividades de sincronización y de seguridad.
Los Servidores proporcionan un servicio al cliente y devuelven los resultados. En algunos casos existen procesos auxiliares que se encargan de recibir las solicitudes del cliente, verificar la protección, activar un proceso servidor para satisfacer el pedido, recibir su respuesta y enviarla al cliente. Además deben manejar los interbloqueos, la recuperación ante fallas, y otros aspectos afines.
Para que los clientes y los servidores puedan comunicarse se requiere una infraestructura de comunicaciones, la cual proporciona los mecanismos básicos de direccionamiento y transporte. La mayoría de los sistemas Cliente/Servidor actuales se basan en redes locales y por lo tanto utilizan protocolos no orientados a conexión, lo cual implica que las aplicaciones deben hacer las verificaciones. La red debe tener características adecuadas de desempeño, confiabilidad, transparencia y administración.
Características:
En C/S el remitente de una solicitud es conocido como cliente. Sus características son:
  • Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación.
  • Espera y recibe las respuestas del servidor.
  • Por lo general, puede conectarse a varios servidores a la vez.
  • Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario.
 Al receptor de la solicitud enviada por cliente se conoce como servidor. Sus características son:
 Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación.
  • Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
  • Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado).
  •  No es frecuente que interactúen directamente con los usuarios finales.
Características del Modelo Cliente/Servidor:
En el modelo Cliente/Servidor podemos encontrar las siguientes características:

El Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar como entidades separadas, realizando actividades o tareas independientes.
Cada plataforma puede ser escalable independientemente. Los cambios realizados en las plataformas de los Clientes o de los Servidores, ya sean por actualización o por reemplazo tecnológico, se realizan de una manera transparente para el usuario final.
La interrelación entre el hardware y el software están basados en una infraestructura poderosa, de tal forma que el acceso a los recursos de la red no muestra la complejidad de los diferentes tipos de formatos de datos y de los protocolos.
Un sistema de servidores realiza múltiples funciones al mismo tiempo que presenta una imagen de un solo sistema a las estaciones Clientes. Esto se logra combinando los recursos de cómputo que se encuentran físicamente separados en un solo sistema lógico, proporcionando de esta manera el servicio más efectivo para el usuario final.
Ventajas:
Desapareció de motores de Base de Datos.
Separo los servicios para cada proceso.
Centralización del control: los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema. Esta centralización también facilita la tarea de poner al día datos u otros recursos.

Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado. Cualquier elemento puede ser aumentado o mejorado en cualquier momento, o se pueden añadir nuevos nodos a la red (clientes y/o servidores).
Fácil mantenimiento: al estar distribuidas las funciones y responsabilidades entre varios ordenadores independientes, es posible reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras que sus clientes no se verán afectados por ese cambio o se afectarán mínimamente. Esta independencia de los cambios también se conoce como encapsulación.
Desventajas:
La congestión del tráfico ha sido siempre un problema en el C/S. Cuando una gran cantidad de clientes envían peticiones simultaneas al mismo servidor, puede ser que cause muchos problemas para éste (a mayor número de clientes, más problemas para el servidor).
El C/S clásico no tiene la robustez de una red. Cuando un servidor está caído, las peticiones de los clientes no pueden ser satisfechas.
El software y el hardware de un servidor son generalmente muy determinantes. Un hardware regular de un ordenador personal puede no poder servir a cierta cantidad de clientes. Normalmente se necesita software y hardware específico, sobre todo en el lado del servidor, para satisfacer el trabajo. Por supuesto, esto aumentará el coste.
El cliente no dispone de los recursos que puedan existir en el servidor.
Historia Cliente/Servidor:
1960: Se tenía mainframes y terminales de caracteres orientada a comandos.
1970: Aplicaciones interactivas y transaccionales.
1980: Aparición de las PC y redes de área local.
1990: Combinación del poder de las mainframes y PC: cliente/servidor tradicional.
2000: Objetos distribuidos y web services.
Conclusión:
Podemos concluir que funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma plataforma.
Recomendación:
Un de las principales recomendaciones es mucho mejor trabajar es plataformas separadas por cuestiones de seguridad ya que si se nos daña un plataforma no afecta al resto de las aplicaciones que tenemos en las otras plataformas.



Tablespace


Introducción
En primer lugar vamos a dar a conocer muy por encima las unidades básicas que forman una base de datos. Estas unidades son los tablespaces y los datafiles.
Una base de datos está formada por una o varias unidades lógicas llamadas tablespaces. Además, cada una de estos tablespaces está formada por uno o varios ficheros físicos que son los datafiles. Un datafile solamente puede pertenecer a un tablespace. Por lo tanto, los datafiles de una base de datos son todos los datafiles que forman parte de todos los tablespaces de la base.
Concepto Create Tablespace
Un tablespace es una unidad lógica de almacenamiento dentro de una base de datos Oracle.
Es un puente entre el sistema de ficheros del sistema operativo y la base de datos.
Cada tablespace se compone de, al menos, un datafile y un datafile solo puede pertenecer a un tablespace.
Cada tabla o índice de Oracle pertenece a un tablespace, es decir cuando se crea una tabla o índice se crea en un tablespace determinado.
Sintaxis:
CREATE [UNDO] TABLESPACE tablespace_name
DATAFILE Datafile_Options Storage_Options;

Tipos de tablespaces


Tablespace SYSTEM


• Se crea automáticamente al hacer la instalación de Oracle, o al crear una BD.


• Contiene el diccionario de datos.


• Creado con la base de datos.


• Requerido en todas las bases de dato.


• Contiene el diccionario de datos, incluyendo unidades de programación.


• Contiene el segmento de undo SYSTEM.


• No debe contener datos de usuario, pero está permitido.


Tablespace no-SYSTEM:


• Permiten mayor flexibilidad en la administración de la base de datos.


• Separa los segmentos temporales, datos de programa, e índice de aplicación


• Separa datos por requerimientos de respaldo.


• Separa datos dinámicos y estáticos.


• Controla la cantidad de espacio designado para los objetos de los usuarios.


Tablespaces temporales
• Es aquél en el que solamente puede haber objetos temporales. No se pueden crear objetos permanentes como pueden ser los índices, las tablas o los segmentos de rollback. à Optimización operaciones de ordenación.


CaracterísticasTablespaces:
Los datos están lógicamente almacenados en tablespaces y físicamente en ficheros.


Tablespaces
• Pueden pertenecer a una sola base de datos.


• Tienen uno o más ficheros de datos.


• Están divididas en unidades lógicas más pequeñas.


Cuando un objeto se crea dentro de un cierto tablespace, este objeto adquiere todas las propiedades antes descritas del tablespace utilizado.
En este esquema podemos ver que, por ejemplo, la tabla ARTÍCULO se almacena dentro del tablespace A, y que por lo tanto tendrá todas las propiedades del tablespace A que pueden ser:

• Sus ficheros de datos están en $ORACLE_HOME/datos/datos_tablespace_A

• Los objetos no pueden ocupar más de 10Mb de espacio de base de datos.

• En cualquier momento se puede poner fuera de línea todo el objeto de un cierto tablespace. -Se pueden hacer copiar de seguridad sólo de ciertos tablespaces.


Tablespaces gestionados localmente
Las extensiones de un tablespace pueden ser gestionado a su vez de dos maneras.


• Automático, a medida que van siendo necesarias las extensiones, se aumenta el tamaño.

• Uniforme, Especifica que el tablespace es gestionado con uniforme tamaño en las extensiones.


Los segmentos gestionados localmente pueden ser especificados como:
• Automáticos, Utiliza un bitmap para gestionar el espacio libre de un segmento. El bitmap tiene el estado de cada bloque de datos y su cantidad de bits.


• Manual, utiliza una lista de espacio libre con los segmentos. Lista con espacio disponible para almacenar bloques. Se recomienda cuando se utiliza ASSM.


Tablespaces preconfigurados
SYSTEM, se utiliza el tablespace SYSTEM por el servidor de Oracle para gestionar la base de datos. Contiene el diccionario de datos y las tablas con información administrativa. Contiene el esquema SYS y es accedido por el usuario SYS u otros usuarios con el permiso de administración.

SYSAUX, es el tablespace auxiliar para el tablespace SYSTEM. Algunos componentes y productos que utilizaban el tablespace SYSTEM en versiones anteriores, ahora utilizan el tablespace SYSAUX. Es obligatorio a partir de la versión 10g. En el enterprise manager se puede ver un gráfico de sectores con sus componentes.


Data Files

Introducción
Los datafiles son los ficheros físicos en los que se almacenan los objetos que forman parte de un tablespace. Un datafile pertenece solamente a un tablespace y a una instancia de base de datos. Un tablespace puede estar formado por uno o varios datafiles. Cuando se crea un datafile, se debe indicar su nombre, su ubicación o directorio, el tamaño que va a tener y el tablespace al que va a pertenecer. Además, al crearlos, ocupan ya ese espacio aunque se encuentran totalmente vacíos, es decir, Oracle reserva el espacio para poder ir llenándolo poco a poco con posterioridad. Por supuesto, si no hay sitio suficiente para crear un fichero físico del tamaño indicado, se producirá un error y no se creará dicho fichero.

Cuando se van creando objetos en un tablespace, éstos físicamente se van almacenando en los datafiles asignados a dicho tablespace, es decir, cuando creamos una tabla y vamos insertando datos en ella, estos datos realmente se reparten por los ficheros físicos o datafiles que forman parte del tablespace. No se puede controlar en qué fichero físico se almacenan los datos de un tablespace. Si un tablespace está formado por 2 datafiles y tenemos una tabla en ese tablespace, a medida que vamos insertando filas éstas se almacenarán en cualquiera de los dos datafiles indistintamente, es decir, unas pueden estar en un datafile y otras en otro.

Concepto de Datafile (fichero de datos)
Un datafile es la representación física de un tablespace. Son los "ficheros de datos" donde se almacena la información físicamente. Un datafile puede tener cualquier nombre y extensión (siempre dentro de las limitaciones del sistema operativo), y puede estar localizado en cualquier directorio del disco duro, aunque su localización típica suele ser $ORACLE_HOME/Database. Un datafile tiene un tamaño predefinido en su creación (por ejemplo 100Mb) y este puede ser alterado en cualquier momento. Cuando creemos un datafile, este ocupará tanto espacio en disco como hayamos indicado en su creación, aunque internamente esté vacío. Oracle hace esto para reservar espacio continuo en disco y evitar así la fragmentación. Conforme se vayan creando objetos en ese tablespace, se irá ocupando el espacio que creó inicialmente.

Un datafile está asociado a un solo tablespace y, a su vez, un tablespace está asociado a uno o varios datafiles. Es decir, la relación lógica entre tablespaces y datafiles es de 1-N, maestro-detalle.

Cada uno de los datafiles utilizados está ocupando su tamaño en disco (50 Mb los dos primeros y 25 Mb el último) aunque en realidad sólo contengan dos objetos y estos objetos no llenen el espacio que está asignado para los datafiles.

Los datafiles tienen una propiedad llamada AUTOEXTEND, que se si está activa, se encarga de que el datafile crezca automáticamente (según un tamaño indicado) cada vez que se necesite espacio y no exista. Al igual que los tablespaces, los datafiles también pueden estar en línea o fuera de ella.

Usuarios
Creación de Usuarios:
El objetivo de la creación de usuarios es establecer una cuenta segura y útil, que tenga los privilegios adecuados y los valores por defecto apropiados. En Oracle se puede especificar todo lo necesario para abrir una cuenta con el comando CREATE USER. 

La sintaxis para la ceración de usuarios:
CREATE USER NOMBRE_USUARIO
IDENTIFIED BY CLAVE_ACCESO
[DEFAULT TABLESPACE ESPACIO_TABLA]
[TEMPORARY TABLESPACE ESPACIO_TABLA]
[QUOTA {ENTERO {K
M}
UNLIMITED} ON ESPACIO_TABLA]
[PROFILE PERFIL];


 Creación De Usuarios:
Una de las más básicas tareas de un administrador de base de datos es identificar los usuarios. Cada usuario que conecta en la base de datos debe de tener una cuenta. En las cuentas compartidas son difíciles de aplicar una auditoria.
Para crear un usuario utilizamos la sentencia CREATE USER. Cuando creas una cuenta como mínimo tienes que asignar un único nombre (username) y una contraseña para poder autenticarse.
Para cambiar alguno de los atributos que se le ha añadido al usuario creado se utiliza la sentencia ALTER USER.
Cuando uno se conecta con una instancia de una base de datos la cuenta de usuario debe de estar autenticada. ORACLE provee tres métodos de autenticación para nuestra cuenta de usuario.

1.- Autenticación Mediante Password: Cuando un usuario conecta con una base de datos verifica que este usuario y la contraseña introducida almacenada en la base de datos, sea correcta. Las contraseñas se guardan encriptadas en la base de datos (en el data dictionary).
SQL > CREATE USER Darwin IDENTIFIED BY tititus;
En este caso es la contraseña de Darwin que será guardada encriptada en la base de datos.

2.- Autenticación Externa: Cuando un usuario conecta con la base de datos se verifica que el nombre de usuario es el mismo que el nombre de usuario del sistema operativo para permitir la validación.
No se almacenan las cuentas en la base de datos de ninguna forma. Estas cuentas están siempre referidas con OPS$ .A partir de la versión 10g puedes configurar OS_AUTHENT_PREFIX en el spfile

SQL > CREATE USER ops$david IDENTIFIED BY tititus;

Mediante IDENTIFIED EXTERNALLY decimos a la base de datos que nuestra cuenta es externa y tiene que ser validada con el sistema operativo.

3.- Autenticación Global: Cuando un usuario se conecta con la base de datos se verifica globalmente cuando la información pasa por una opción avanzada de seguridad (ADVANCED SECURITY OPTION) para la autenticación tal como Kerberos, RADIUS….

Para las cuentas globales no se almacena tampoco nada en la base de datos.

SQL > CREATE USER darwin IDENTIFIED GLOBALLY AS ‘CN=alumnos,OU=campus …….’

Mediante IDENTIFIED GLOBALLY decimos a la base de datos que nuestra cuenta se autentica globalmente, mediante otra opción de seguridad avanzada.


Eliminar Un Usuario De La Base De Datos
Para eliminar un usuario de la BD se hace uso de la clausula DROP USER y opcionalmente se puede utilizar CASCADE, para decirle que también elimine todos los objetos creados por ese usuario.


SQL> DROP USER dmejia CASCADE;


Modificar Cuentas De Usuarios
Para modificar un usuario creado, por ejemplo cambiar su clave, tenemos la sintáxis:
SQL> ALTER USER NOMBRE_USUARIO
IDENTIFIED BY CLAVE_ACCESO
[DEFAULT TABLESPACE ESPACIO_TABLA]
[TEMPORARY TABLESPACE ESPACIO_TABLA]
[QUOTA {ENTERO {K
M }
UNLIMITED } ON ESPACIO_TABLA
[PROFILE PERFIL];


Privilegios
Privilegio: Permiso para realizar una acción, asignable a un usuario o un rol.

Privilegios del Sistema
Los roles de sistema se utilizan para distribuir la disponibilidad de los comandos del sistema utilizados para gestionar la BD. Los privilegios más comunes están en la siguiente tabla. En ella se distinguen entre privilegios de manejo de objetos y de gestión de la BD. La palabra clave ANY significa que ese usuario tiene el privilegio para todos los esquemas en la BD. Hay que hacer notar que ANY y PUBLIC no son sinónimos.


Privilegio y Capacidades
CREATE ANY INDEX  Crear cualquier índice.
CREATE [PUBLIC] SYNONYM Crear sinónimos [públicos].
CREATE [ANY] TABLE Crear tablas. El usuario debe tener cuota en el espacio de tablas, o ha de tener asignado el privilegio UNLIMITED TABLESPACE.
CREATE [ANY] VIEW Crear vistas
ALTER ANY INDEX Alterar cualquier índice.
ALTER ANY TABLE Alterar cualquier tabla
DROP ANY INDEX Borrar cualquier índice.
DROP ANY SYNONYM Borrar cualquier sinónimo.
DROP PUBLIC SYNONYM Borrar sinónimos públicos.
DROP ANY VIEW Borrar cualquier vista.
DROP ANY TABLE Borrar cualquier tabla.
SELECT ANY TABLE Efectuar selecciones de cualquier tabla o vista.
INSERT ANY TABLE Insertar en cualquier tabla o vista.
DELETE ANY TABLE Borrar filas de cualquier tabla o vista, y también truncar.
ALTER SESSION Alterar los parámetros de la sesión.
CREATE SESSION Conectarse a la BD.

Gestión de la BD ...
CREATE PROFILE Crear perfiles de usuario.
CREATE ROLE Crear roles.
CREATE ROLLBACK SEGMENT Creación de segmentos de rollback.
CREATE TABLESPACE Crear espacios de tablas.
CREATE USER Crear usuarios.
ALTER PROFILE Alterar perfiles existentes.
ALTER ANY ROLE Alterar cualquier rol.
ALTER ROLLBACK SEGMENT Alterar segmentos de rollback.
ALTER TABLESPACE Alterar espacios de tablas.
ALTER USER Alterar usuarios.
DROP PROFILE Borrar un perfil existente.
DROP ANY ROLE Borrar cualquier rol.
DROP ROLLBACK SEGMENT Borrar un segmento de rollback existente.
DROP TABLESPACE Borrar un espacio de tablas.
DROP USER Borrar un usuario. Añadir CASCADE si el usuario posee objetos.
ALTER DATABASE Permite una sentencia ALTER DATABASE.
GRANT ANY PRIVILEGE Otorgar cualquiera de estos privilegios.
GRANT ANY ROLE Otorgar cualquier rol a un usario.
UNLIMITED TABLESPACE Puede usar una cantidad de almacenamiento ilimitada.
DROP PROFILE Borrar un perfil existente.

Privilegios Sobre Los Objetos
Este tipo de privilegios le permite al usuario hacer cierta acción en un objeto de la base de datos, como puede ser una tabla, vista, función etc. Si a un usuario no se le dan estos privilegios solo podrías acceder a sus propios objetos. Y estos tipos de privilegios los da el dueño del objeto, el administrador o alguien que haya recibido este permiso explícitamente. Los privilegios sobre objetos consienten que un objeto (creado por un usuario) estos privilegios puede ser de SELECT, de UPDATE, de DELETE, de INSERT.

Privilegio y Descripción

SELECT Puede consultar a un objeto.
INSERT Puede insertar filas en una tabla o vista. Puede especificarse las columnas donde se permite insertar dentro de la tabla o vista.
UPDATE Puede actualizar filas en una tabla o vista. Puede especificarse las columnas donde se permite actualizar dentro de la tabla o vista.
DELETE Puede borrar filas dentro de la tabla o vista.
ALTER Puede alterar la tabla.
INDEX Puede crear índices de una tabla.
REFERENCES Puede crear claves ajenas que referencie a esta tabla.
EXECUTE Puede ejecutar un procedimiento, paquete o función.
READ Permite leer archivos asociados con objetos BFILE en el directorio del sistema 5.
Gestionando Privilegios


Los privilegios dan acceso a los usuarios a los datos que no poseen. Los roles con grupos de privilegios que facilitan la administración de los privilegios. Pero los privilegios se pueden manejar de manera explícita en algunas circunstancias.
Los privilegios se crean via el comando GRANT y son registrados en el diccionario de datos.
Los privilegios que pueden otorgarse sobre objetos son los siguientes:

Privilegio Capacidades Otorgadas
SELECT Puede consultar a un objeto.
INSERT Puede insertar filas en una tabla o vista. Puede especificarse las columnas donde se permite insertar dentro de la tabla o vista.
UPDATE Puede actualizar filas en una tabla o vista. Puede especificarse las columnas donde se permite actualizar dentro de la tabla o vista.
DELETE Puede borrar filas dentro de la tabla o vista.
ALTER Puede alterar la tabla.
INDEX Puede crear índices de una tabla.
REFERENCES Puede crear claves ajenas que referencie a esta tabla.
EXECUTE Puede ejecutar un procedimieto, paquete o función.

Haciendo un privilegio PUBLIC lo hace disponible a todos los usuarios de la BD.

Los privilegios se pueden agrupar en roles, para así satisfacer a distintos tipos de usuarios. En la instalación se crea un rol llamado OSOPER que sirve para los operarios de la máquina donde está la BD y permite realizar copias de seguridad en frio y en caliente. Los privilegios de OSOPER son STARTUP, SHUTDOWN, ALTER DATABASE OPEN/MOUNT, ALTER DATABASE BACKUP, ARCHIVE LOG, RECOVER y RESTRICTED SESSION.
Se pueden crear nuevos roles. Por ejemplo, podemos crear un rol llamado creadorCuentas que sólo pueda crear usuarios y no pueda realizar ninguna otra operación de DBA. Las sentencias que permiten hacer esto son las siguientes:
Oracle incluye otros tres roles de sistema: CONNECT, RESOURCE y DBA, cuyos privilegios son:

Rol Privilegios
CONNECT alter session, create session, create cluster, create table, create view, create synonym, create sequence, create database link
RESOURCE create cluster, create table, create procedure, create sequence, create trigger
DBA todos los privilegios de sistema con la opcion with admin option

Roles del Sistema
Los roles se pueden utilizar para gestionar los comandos de sistema disponibles para los usuarios. Estos incluyen comandos como CREATE TABLE o SELECT ANY TABLE. Todos los usuarios que quieran acceder a la BD deben tener el rol CONNECT; aquellos que necesiten crear segmentos necesitaran el rol RESOURCE. Un usuario con el rol DBA tiene derecho para ver y manejar todos los datos de la BD. En Oracle CONNECT, RESOURCE y DBA son roles de sistema. Las acciones contra cada tipo de objeto son autorizadas por privilegios separados. Así, un usuario puede tener concedido el privilegio CREATE TABLE, pero no el ALTER TABLE. 

Conexión TNS
Conexión TNS
Una estación TNS incluye tantos módulos streamers como múltiples DVB-T haya cuyos servicios se desee transmitir a la red IP, y uno o más módulos de alimentación. Deberá insertarse un módulo CAM con la tarjeta del operador en los streamers TNS que reciban una o más cadenas encriptadas que se desee desencriptar. Los módulos se montan en las bases-soporte de fijación mural BAS-700 / BAS-900 ó en el soporte-rack SMR-601. A través de los puertos RJ-45 de salida —un puerto por streamer—la estación proporciona a la red IP hasta 8x n servicios encapsulados IP, siendo n el número de módulos streamers instalados en la estación.

Tipos de Clientes Nativos de Oracle
Los tipos nativos de Oracle ofrecen funcionalidad avanzada para almacenar y manipular las estructuras de datos de la base de datos, como XML, los grupos de resultados, imágenes, o documentos de Microsoft Office.


Configuración del agente
Hay dos métodos para inventariar un computador cliente utilizando el agente OCS Inventory NG:

Si el computador cliente no puede conectar con el servidor de Comunicación, el inventario se hace localmente y se almacena en un archivo comprimido XML con extensión “.ocs”. Así, posteriormente el usuario puede enviar ese archivo por correo electrónico, disco USB o de cualquier otra manera, al administrador, quien lo importará en la base de datos en el servidor de Administración.

Si el computador cliente puede conectarse por red con el servidor de Comunicación usando el protocolo HTTP, el agente le pide al servidor de Comunicación los parámetros del inventario y enviar los resultados directamente al servidor de Comunicación.

Configurar cliente Oracle
Llevaba tiempo queriendo conectar al servidor Oracle de la facultad, los motivos eran obvios, tenía que hacer las prácticas. Pero siempre que miraba el tutorial de la asignatura y veía que había que instalar un servidor Oracle para hacer unas cuantas consultas SQL me parecía desproporcionado.
De modo que empecé a mirar y encontré el InstantClient de Oracle , una versión mucho mas Light, que contenía justo lo necesario para conectarte y poder lanzar consultas al servidor vía SQL*Plus. La instalación resulta bastante sencilla y limpia, ya que no requiere de una instalación propiamente dicha.

1) Nos bajarnos el Instant Client Package – Basic Lite y el SQL*Plus: Additional libraries and executable
2) Creamos el directorio c:\oracle\instantclient_10_2.
3) Copiamos todos los ficheros que hemos descomprimido de los 2 zips que hemos descargado en este directorio que hemos creado.
4) Nos vamos a Panel de Control > Sistema > Opciones Avanzadas > Variables de entorno. Creamos una nueva variable de sistema y la llamamos TNS_ADMIN con valor C:\oracle\Creamos una nueva variable de sistema y la llamamos SQLPATH con valor C:\oracle\instantclient
Modificamos la variable de sistema PATH añadiéndole el valor
C:\oracle\instantclient; (ojo con él; también)
5) En el directorio c:\oracle que es donde definimos la variable TNS_ADMIN creamos el fichero tnsnames.ora con los datos del servidor a conectaros (en mi caso, la UGR):


practbd =

(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.140.18)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME =
practbd.oracle0.ugr.es)
)
)
6) Por último, ya solo nos quedaría irnos a Inicio/Programas/Accesorios/Símbolo del sistema y ejecutar: sqlplus nombre_usuario/contraseña@practbd (o el que hayais definido en el fichero tnsnames.ora)
Funciones Oracle
Un gran número de funciones incorporadas, sumamente útiles. A continuación vamos a ver algunas de las más utilizadas.
SYSDATE
Devuelve la fecha del sistema:
Ejemplo
SELECT SYSDATE FROM DUAL;
NVL
Devuelve el valor recibido como parámetro en el caso de que expresión sea NULL, o expresión en caso contrario.
NVL(, )
El siguiente ejemplo devuelve 0 si el precio es nulo, y el precio cuando está informado:
SELECT CO_PRODUCTO, NVL(PRECIO, 0) FROM PRECIOS;
DECODE
Decode proporciona la funcionalidad de una sentencia de control de flujo if-elseif-else.
DECODE(, , [, ..., , ], )
Esta función evalúa una expresión "", si se cumple la primera condición "" devuelve el valor1 "", en caso contrario evalúa la siguiente condición y así hasta que una de las condiciones se cumpla. Si no se cumple ninguna condición se devuelve el valor por defecto.
Es muy común escribir la función DECODE identada como si se tratase de un bloque IF.
Ejemplo
SELECT DECODE (co_pais, /* Expresion a evaluar */
'ESP', 'ESPAÑA', /* Si co_pais = 'ESP' ==> 'ESPAÑA' */
'MEX', 'MEXICO', /* Si co_pais = 'MEX' ==> 'MEXICO' */
'PAIS '
co_pais)/* ELSE ==> concatena */
FROM PAISES;
TO_DATE
Convierte una expresión al tipo fecha. El parámetro opcional formato indica el formato de entrada de la expresión no el de salida.
TO_DATE(, [])
En este ejemplo convertimos la expresion '01/12/2006' de tipo CHAR a una fecha (tipo DATE). Con el parámetro formato le indicamos que la fecha está escrita como día-mes-año para que devuelva el uno de diciembre y no el doce de enero.


SELECT TO_DATE('01/12/2006',
'DD/MM/YYYY')
FROM DUAL;
Este otro ejemplo muestra la conversión con formato de día y hora.
SELECT TO_DATE('31/12/2006 23:59:59',
'DD/MM/YYYY HH24:MI:SS')
FROM DUAL;
TO_CHAR
Convierte una expresión al tipo CHAR. El parámetro opcional formato indica el formato de salida de la expresión.
TO_CHAR(, [])
Ejemplo
SELECT TO_CHAR(SYSDATE, 'DD/MM/YYYYY')
FROM DUAL;
TO_NUMBER
Convierte una expresión alfanumérica en numérica. Opcionalmente podemos especificar el formato de salida.
TO_NUMBER(, [])
\Ejemplo
SELECT TO_NUMBER ('10')
FROM DUAL;
TRUNC
Trunca una fecha o número.
Si el parámetro recibido es una fecha elimina las horas, minutos y segundos de la misma.
SELECT TRUNC(SYSDATE)FROM DUAL;
En este ejemplo el parámetro es un número que devuelve la parte entera.
SELECT TRUNC(9.99)FROM DUAL;
LENGTH
Devuelve la longitud de un tipo CHAR.
Ejemplo
SELECT LENGTH('HOLA MUNDO')FROM DUAL;
INSTR
Busca una cadena de caracteres dentro de otra. Devuelve la posición de la ocurrencia de la cadena buscada
Su sintaxis es la siguiente:
INSTR(, , , )
Ejemplo
SELECT INSTR('AQUI ES DONDE SE BUSCA', 'BUSCA', 1, 1 )
FROM DUAL;
REPLACE
Reemplaza un texto por otro en una expresión de búsqueda.
REPLACE(, , )
El siguiente ejemplo reemplaza la palabra 'HOLA' por 'VAYA' en la cadena 'HOLA MUNDO'.
SELECT REPLACE ('HOLA MUNDO','HOLA', 'VAYA')-- devuelve VAYA MUNDO
FROM DUAL;
SUBSTR
Obtiene una parte de una expresión, desde una posición de inicio hasta una determinada longitud.
SUBSTR(, , )
Ejemplo
SELECT SUBSTR('HOLA MUNDO', 6, 5) -- Devuelve MUNDO
FROM DUAL;
UPPER
Convierte una expresión alfanumérica a mayúsculas.
Ejemplo:
SELECT UPPER('hola mundo') -- Devuelve HOLA MUNDO
FROM DUAL;
LOWER
Convierte una expresión alfanumérica a minúsculas.
Ejemplo
SELECT LOWER('HOLA MUNDO') -- Devuelve hola mundo
FROM DUAL;
ROWIDTOCHAR
Convierte un ROWID a tipo carácter.
Ejemplo
SELECT ROWIDTOCHAR(ROWID)
FROM DUAL;
RPAD
Añade N veces una determinada cadena de caracteres a la derecha una expresión. Muy útil para generar ficheros de texto de ancho fijo.
Ejemplo
RPAD(, , )
El siguiente ejemplo añade puntos a la expresión 'Hola mundo' hasta alcanzar una longitud de 50 caracteres.
Ejemplo
SELECT RPAD ('Hola Mundo', 50, '.')
FROM DUAL;
LPAD
Añade N veces una determinada cadena de caracteres a la izquierda de una expresión. Muy útil para generar ficheros de texto de ancho fijo.
Ejemplo
LPAD(, , )
El siguiente ejemplo añade puntos a la expresión 'Hola mundo' hasta alcanzar una longitud de 50 caracteres.
SELECT LPAD ('Hola Mundo', 50, '.')
FROM DUAL;
RTRIM
Elimina los espacios en blanco a la derecha de una expresión
Ejemplo
SELECT RTRIM ('Hola Mundo ')
FROM DUAL;
LTRIM
Elimina los espacios en blanco a la izquierda de una expresión.
Ejemplo
SELECT LTRIM (' Hola Mundo')
FROM DUAL;
TRIM
Elimina los espacios en blanco a la izquierda y derecha de una expresión.
Ejemplo
SELECT TRIM (' Hola Mundo ')
FROM DUAL;
MOD
Devuelve el resto de la división entera entre dos números.
Ejemplo
MOD(, )
SELECT MOD(20,15) -- Devuelve el modulo de dividir 20/15
FROM DUAL
¿Qué es Oracle?
Oracle la Primera Base de Datos Diseñada para Grid Computing, es un sistema de gestión de base de datos relacional fabricado por Oracle Corporation.
Oracle es básicamente un herramienta cliente/servidor para la gestión de base de datos la gran potencia que tiene y su elevado precio hace que solo se vea en empresas muy grandes y multinacionales, por norma general.
Oracle Corporation: es una de las mayores compañías de software del mundo. Susproductos van desde bases de datos (Oracle) hasta sistemas de gestión. Cuenta además, con herramientas propias de desarrollo para realizar potentes aplicaciones, como Oracle Designer
Historia.
Oracle surge a finales el año 1970 del nombre de Relational Software a partir de un estudio sobre SGBD (Sistemas Gestores de Base de Datos) Computer World definió este estudio como uno de los más completos jamás escritos sobre bases de datos. usaba la filosofía de las bases de datos relacionales, algo que por aquella época era todavíadesc onocido.
La tecnología Oracle se encuentra prácticamente en todas las industrias alrededor del mundo.
Oracle es la primera compañía de software que desarrolla e implementa software para empresas 100 por ciento activado por Internet a través de toda su línea de productos: base de datos, aplicaciones comerciales y herramientas de desarrollo de aplicaciones y soporte de decisiones.
Oracle garantiza el funcionamiento de sus bases de datos, que en caso de caidas del servidor compensa economicamente con cifras cercanas a las 7 cifras.
Características de Oracle
Desarrollado sobre Oracle Database, Oracle Content Database ha sido diseñada para que las organizaciones puedan controlar y gestionar grandes volúmenes de contenidos no estructurados en un único repositorio con el objetivo de reducir los costes y los riesgos asociados a la pérdida de información.
Estructuras de Oracle
Una BD Oracle tiene una estructura física y una estructura lógica:
La estructura física se corresponde a los ficheros del sistema operativo.
La estructura lógica está formada por los tablespace y los objetos de un esquema de BD
Estructura lógica.
Se divide en unidades de almacenamiento lógicas: Tablespaces.
Cada BD estará formada por uno o mas tablespaces (al menos existe el tablespace SYSTEM catálogo del sistema)
Cada tablespace se corresponde con uno o más ficheros de datos.
Objetos: tablas, vistas, índices asociados a una tabla, clusters,..
Estructura física
Una B.D. tiene uno o más ficheros de datos. Estos ficheros son de tamaño fijo y se establecen en el momento en que se crea la base de datos o en el momento en el que se crean tablespaces.
Los datos del fichero de datos son leídos cuando se necesitan y situados en una caché de memoria compartida para que el próximo acceso a los mismos sea más rápido.
¿Qué diferencias hay entre MYSQL y Oracle?
 MySQL se instala a partir de sus rpm resultando realmente sencillo. El proceso de instalación crea las bases de datos necesarias para funcionar. MySQL le acompaña suficiente documentación de calidad.
Oracle resulta muy difícil de instalar. No dispone de un fichero rpm de instalación.
Incorpora documentación para poder ejecutar el instalador. Se trata de un rudimentario asistente que realiza preguntas al usuario o administrador y presenta una lista de componentes a elegir.
Versiones de Oracle
Oracle 5 y Oracle 6: fueron las dos primeras versiones de Oracle, quedando aun rezagadas por las versiones sucesoras.
Oracle 7: La base de datos relacional componentes de Oracle Universal Server. Posee además las versiones 7.1, 7.1.2, y 7.1.3.
Oracle 7 Parallel: Ofrece a los usuarios un método seguro y administrable para incrementar la performance de sus bases de datos existentes introduciendo operaciones en paralelo y sincrónicas dentro de sus ambientes informáticos.
Oracle 8: Incluye mejoras de rendimiento y de utilización de recursos. Independiente de que se necesite dar soporte a decenas de miles de usuarios y cientos de terabytes de datos, o se disponga de un sistema mucho más pequeño, pero igualmente critico, todos se benefician del rendimiento de Oracle8. Este soporta aplicaciones de procesamiento de transacciones on line (OLTP) y de data warehousing mayores y más exigentes.
Oracle 9: existe alguna tabla de que tenga los sqls de c/tabla que se crea... O, en su defecto, como puedo armarlo, de que tabals puedo armarlo. Esto es para una migración de datos que necesito hacer.
Oracle 10: proporciona mejores resultados al automatizar las tareas administrativas, ofreciendo seguridad líder en el sector y características para el cumplimiento regulatorio, y posibilitando la mayor disponibilidad.
Oracle 11: es una base de datos de características completas para pequeñas y medianas empresas que requieren el desempeño, la disponibilidad y la seguridad de la base de datos #1 del mundo a un bajo costo.
Disponible en un solo servidor o en servidores en cluster con hasta cuatro procesadores, es la opción segura para desarrollar e implementar de manera económica las aplicaciones de la base de datos.
FUNCIONES ORACLE
Funciones de valores simples:
ABS(n)= Devuelve el valor absoluto de (n).
CEIL(n)=Obtiene el valor entero inmediatamente superior o igual a "n".
FLOOT(n) = Devuelve el valor entero inmediatamente inferior o igual a "n".
MOD (m, n)= Devuelve el resto resultante de dividir "m" entre "n".
NVL (valor, expresión)= Sustituye un valor nulo por otro valor.
POWER (m, exponente)= Calcula la potencia de un numero.
ROUND (numero [, m])= Redondea números con el numero de dígitos de precisión indicados.
SIGN (valor)= Indica el signo del "valor".
SQRT(n)= Devuelve la raíz cuadrada de "n".
TRUNC (numero, [m])= Trunca números para que tengan una cierta cantidad de dígitos de precisión.
VAIRANCE (valor)= Devuelve la varianza de un conjunto de valores.
Funciones de grupos de valores:
AVG(n)= Calcula el valor medio de "n" ignorando los valores nulos.
COUNT (* | Expresión)= Cuenta el número de veces que la expresión evalúa algún dato con valor no nulo. La opción "*" cuenta todas las filas seleccionadas.
MAX (expresión)= Calcula el máximo.
MIN (expresión)= Calcula el mínimo.
SUM (expresión)= Obtiene la suma de los valores de la expresión.
GREATEST (valor1, valor2…)= Obtiene el mayor valor de la lista.
LEAST (valor1, valor2…)= Obtiene el menor valor de la lista.
Funciones que devuelven valores de caracteres:
CHR(n) = Devuelve el carácter cuyo valor en binario es equivalente a "n".
CONCAT (cad1, cad2)= Devuelve "cad1" concatenada con "cad2".
LOWER (cad)= Devuelve la cadena "cad" en minúsculas.
UPPER (cad)= Devuelve la cadena "cad" en mayúsculas.
INITCAP (cad)= Convierte la cadena "cad" a tipo titulo.
LPAD (cad1, n[,cad2])= Añade caracteres a la izquierda de la cadena hasta que tiene una cierta longitud.
RPAD (cad1, n [,cad2])= Añade caracteres a la derecha de la cadena hasta que tiene una cierta longitud.
LTRIM (cad [,set])= Suprime un conjunto de caracteres a la izquierda de la cadena.
RTRIM (cad [,set])= Suprime un conjunto de caracteres a la derecha de la cadena.
REPLACE (cad, cadena_busqueda [, cadena_sustitucion])= Sustituye un carácter o caracteres de una cadena con 0 o más caracteres.
SUBSTR (cad, m [,n])= Obtiene parte de una cadena.
TRANSLATE (cad1, cad2, cad3)= Convierte caracteres de una cadena en caracteres diferentes, Según un plan de sustitución marcado por el usuario.
Funciones que devuelven valores numéricos:
ASCII(cad)= Devuelve el valor ASCII de la primera letra de la cadena "cad".
INSTR (cad1, cad2 [, comienzo [,m]])= Permite una búsqueda de un conjunto de caracteres en una cadena pero no suprime ningún carácter después.
LENGTH (cad)= Devuelve el numero de caracteres de cad.
Funciones para el manejo de fechas:
SYSDATE= Devuelve la fecha del sistema.
ADD_MONTHS (fecha, n)= Devuelve la fecha "fecha" incrementada en "n" meses.
LASTDAY (fecha)= Devuelve la fecha del último día del mes que contiene "fecha".
MONTHS_BETWEEN (fecha1, fecha2)= Devuelve la diferencia en meses entre las fechas
"fecha1" y "fecha2".
NEXT_DAY (fecha, cad)= Devuelve la fecha del primer día de la semana indicado por "cad" después de la fecha indicada por "fecha".
Funciones de conversión:
TO_CHAR= Transforma un tipo DATE ó NUMBER en una cadena de caracteres.
TO_DATE= Transforma un tipo NUMBER ó CHAR en DATE.
TO_NUMBER= Transforma una cadena de caracteres en NUMBER.




Ejemplo: 


1.- Creacion de un Tablespace:

create tablespace "tblexamen142"
datafile 'd:\data\tblexamen142.ora'size 10m
autoextend on next 1024k
permanent
online;

2.- Creacion de un Usuario:
CREATE USER damejia
IDENTIFIED BY ssss DEFAULT TABLESPACE TBLEXAMEN142
ACCOUNT UNLOCK;
 

grant connect, resource to SAPASTAZ;

3.- Modelo Implementar (creacion de tablas)

create table socios (num_socio number(5) constraint pk_socios primary key,
nom_socio varchar(50) not null,
dir_socio varchar(50) not null,
fecha_nac_socio varchar (50) not null,
sexo_socio varchar(50) not null);

create table cuentas (num_cta number(5) constraint pk_cunetas primary key,
fecha_aprob varchar (50) not null,
fecha_entrega varchar (50) not null,
num_socio number(5) not null constraint fk_socio references socios);

create table prestamos (num_prestamo number(5) constraint pk_prestamos primary key,
fecha_aprob varchar (50) not null,
fecha_entrega varchar (50) not null,
plazo varchar (10) not null,
monto_entregado number(20) not null,
saldo number(20) not null);
num_socio number(5) not null constraint fk_socio references socios);

create table pagos (num_pago number(5) constraint pk_pagos primary key,
fech_pago varchar (50) not null,
monto_pago varchar (50) not null,
num_prestamo number(5) constraint fk_prestamo  references prestamos);

create table transacciones (num_transaccion number(5) constraint pk_transaccion primary key,
tipo_transaccion varchar(50) not null,
fecha_transaccion varchar (50) not null,
monto_transaccion number (50) not null,
num_cuenta number(5) constraint fk_cuenta references cuentas);

4.- Creación de Secuencias para cada una de las cuentas:

create sequence sq_socios
start with 1
increment by 1

create sequence sq_cuentas
start with 1
increment by 1

create sequence sq_prestamos
start with 1
increment by 1

create sequence sq_pagos
start with 1
increment by 1

create sequence sq_transacciones
start with 1
increment by 1

5.- Disparadores:

create or replace trigger clave_primaria_socios
before insert on socios
for each row
declare
valor number;
begin
select sq_socios.nextval
into valor from dual;
:new.num_socio:=valor;
end;

create or replace trigger clave_primaria_cuentas
before insert on cuentas
for each row
declare
valor number;
begin
select sq_cuentas.nextval
into valor from dual;
:new.num_cta:=valor;
end;

create or replace trigger clave_primaria_transacciones
before insert on transacciones
for each row
declare
valor number;
begin
select sq_transacciones.nextval
into valor from dual;
:new.num_transaccion:=valor;
end;

create or replace trigger clave_primaria_prestamos
before insert on prestamos
for each row
declare
valor number;
begin
select sq_prestamos.nextval
into valor from dual;
:new.num_prestamo:=valor;
end;

create or replace trigger clave_primaria_pagos
before insert on pagos
for each row
declare
valor number;
begin
select sq_pagos.nextval
into valor from dual;
:new.num_pago:=valor;
end;

Insercion de Datos:

insert into socios
values(2,'juan','Ibarra','04 de julio de 1995','Masculino');

insert into cuentas
values(01,'03 de junio del 2010','250','2');

insert into transacciones
values(001,'diferido','07 de julio del 2010','500','01');

insert into prestamos
values(03,'2 de julio del 2010','09 de julio del 2010','2','120','250');