Académique Documents
Professionnel Documents
Culture Documents
una base de datos Oracle . Tiene un IDE que incluye un navegador de objetos, una hoja
de propiedades y un editor de código que usa PL / SQL. Originalmente fue desarrollado
para ejecutar sesiones de terminal en modo de caracteres en el lado del servidor. Fue
portado a otras plataformas, incluido Windows, para funcionar en un entorno cliente-
servidor. Las versiones posteriores se trasladaron a Java, donde se ejecuta en un
contenedor Java EE y se puede integrar con Java y servicios web.
El objetivo principal de Forms es crear sistemas de entrada de datos que accedan a
una base de datos Oracle.
Cómo funciona
Oracle Forms accede a la base de datos Oracle y genera una pantalla que presenta los
datos. El formulario de origen (*. fmb) se compila en un "ejecutable" específico de
plataforma (* .fmx), que se ejecuta (interpreta) mediante el módulo de tiempo de ejecución
de formularios. El formulario se utiliza para ver y editar datos en aplicaciones basadas en
bases de datos. Se pueden colocar varios elementos de GUI, como botones, menús,
barras de desplazamiento y gráficos en el formulario. El código fuente también se puede
colocar en archivos de biblioteca (* .pll) que se compilan en ejecutables de biblioteca (*
.plx) utilizados en tiempo de ejecución.
El entorno proporciona modos incorporados de creación, consulta y actualización de
registros, cada uno con sus propias manipulaciones de datos predeterminadas.Esto
minimiza la necesidad de programar operaciones comunes y tediosas, como la creación de
SQL dinámico, la detección de campos modificados y el bloqueo de filas.
Paleta de Propiedades.
Cada objeto en un módulo Form, incluyendo el mismo Form, tiene propiedades que
dictan el comportamiento del mismo. Cuando se crea un objeto por primera vez, se
asignan automáticamente algunas propiedades de forma predeterminada. Puede cambiar
dichas propiedades en la Paleta de Propiedades.
______________________________________________________________________
________________
La Paleta de Propiedades: Características.
Elemento Descripción
Lista de Propiedades Muestra las propiedades que son válidas para un
objeto en particular. Las propiedades se agrupan bajo
encabezados o nodos funcionales. Puede expandir o
contraer un nodo utilizando los iconos más (+)/menos
(-) junto al nombre del nodo.
Campo Búsqueda Permite localizar rápidamente una propiedad en
particular.
Barra de Herramientas Es una serie de botones que provee acceso rápido a
ciertos comandos.
Ayuda (F1) Provee descripción, información sobre cualquier
propiedad. Seleccione la propiedad y presione la tecla
[F1].
Usando la Paleta de Propiedades.
Cada objeto de Form tiene varios tipos de propiedades. Dependiendo del tipo de
propiedad, estas se manipulan de forma diferente.
La siguiente lista resume los controles que se utilizan en la Paleta de Propiedades:
Control Descripción
Campo Texto Es mostrado cuando la propiedad se puede establecer
(Text field) introduciendo un valor de texto. Para valores de texto largos
aparece un botón icónico, que le permite abrir un editor de
texto.
Lista Ocurre cuando la propiedad permite un conjunto fijo de valores,
Emergente eje: Sí, No. Para establecer un valor, haga clic en la flecha hacia
(Pop-up list) abajo para abrir la lista y seleccionar un valor.
Ventana LOV Los LOVs ocurren cuando la propiedad permite una lista
potencialmente grande de valores posibles. Para establecer un
valor, haga clic en el botón icónico de la propiedad y allí
especifique la lista.
Botón Mas Usado cuando se necesitan configuraciones más complejas.
(More button) Haga clic en dicho botón para abrir el cuadro de diálogo
adicional.
Iconos de la Paleta de Propiedades.
En la paleta de propiedades, cada propiedad tiene un icono a su izquierda. A
continuación vemos una descripción resumida de estos iconos:
Icon Description
Circulo Especifica que la propiedad aún tiene el valor por
defecto.
Cuadrado Especifica que la propiedad fue cambiada de su valor
por defecto.
Flecha Especifica que la propiedad tiene un valor heredado.
Flecha con Cruz Especifica que la propiedad fue heredada pero que
ha sido anulada.
Nota: Una vez activada la paleta de propiedades, su ventana permanece abierta hasta
que la cierre. La ventana muestra automáticamente las propiedades de cada objeto que
seleccione del Editor de Diseño o del Navegador de Objetos. Esto se debe a que, de
forma predeterminada, la lista de propiedades de la paleta de propiedades se sincroniza
cada vez que se selecciona un objeto.
Cada objeto de interfaz en una aplicación form tiene una propiedad denominada Grupo
de Atributo Visual (Visual Attribute Group), que determina cómo se derivan los
valores de atributos visuales individuales de un objeto. La propiedad Grupo de Atributo
Visual se puede establecer en Predeterminado (Default), NULL o el nombre de un
objeto de Atributo Visual. Los bloques tienen la propiedad Grupo de Atributo Visual
del Registro Actual (Current Record Visual Attribute Group) que define el atributo
visual que se utilizará para el registro seleccionado en el bloque.
Puede modificar las propiedades del bloque para controlar tanto la apariencia como el
comportamiento del mismo.
______________________________________________________________________
________________
Controlando el Comportamiento de los Bloques de Datos.
Configuración de las Propiedades de Navegación.
• Estilo de Navegación (Navigation Style).
Normalmente, cuando se navega más allá del último elemento de un registro,
Forms devuelve el cursor al principio del mismo registro. Con la propiedad Estilo
de Navegación, puede cambiar este comportamiento para hacer que el cursor se
desplace al siguiente registro o a otro bloque de datos. Los valores válidos son: Mismo
Registro (predeterminado), Cambiar Registro o Cambiar Bloque de Datos.
Eje: Si desea que el cursor se mueva al siguiente registro cuando llegue al final del
registro actual, establezca la propiedad Estilo de Navegación del bloque a Cambiar
Registro.
• Anterior/Siguiente Bloque de Navegación (Previous/Next Navigation Data Block).
Normalmente, cuando en tiempo de ejecución se realiza una operación para moverse al
bloque de datos anterior/siguiente, Forms mueve el control al bloque de datos adyacente
anterior/siguiente en secuencia. Estas propiedades le permiten nombrar el bloque de
datos anterior/siguiente.
______________________________________________________________________
________________
Las Propiedades los Frames.
Las modificaciones realizadas en el Asistente de Diseño (Layout Wizard) al crear un
bloque de datos se registran como propiedades de un Objeto tipo Frame. Puede cambiar
dichas propiedades para modificar la estructura de los items dentro de un bloque de
datos.
Algunas Propiedades importantes:
• Layout Data Block: Especifica el nombre del bloque de datos al que está asociado
el Frame. Los items dentro de este bloque de datos están organizados dentro
del Frame.
Nota: Un bloque de datos se puede asociar con un solo Frame. No puede organizar un
item dentro de varios Frames.
• Actualizar diseño (Update Layout): especifica cuando se actualiza el diseño
del Frame. Las opciones son:
---Automáticamente: el diseño se actualiza cada vez que mueve o cambia el tamaño
del Frame o modifica cualquier propiedad del mismo.
---Manualmente: el diseño se actualiza cada vez que utilice el Asistente para Diseño
para modificar el Frame o en el Editor de Diseño cuando hace clic en Actualizar
Diseño o cuando selecciona la opción de Diseño (Layout)>Actualizar Diseño (Update
Layout).
---Bloqueado: el diseño se bloquea y no se puede actualizar.
• Estilo de Diseño: Especifica el estilo de diseño de los items dentro del Frame. Elija
entre los estilos Formulario y Tabular.
• Distancia entre Registros: Especifica la distancia física (medida en las unidades del
sistema de coordinación del Form) con la que se separara los registros mostrados en el
Frame.
• Posición X/Y: Especifica las coordenadas x e y (medidas en las unidades del sistema
de coordinación del Form) de la posición del Frame en el Canvas.
• Ancho/Largo: Especifica el ancho y la largo del Frame (medida en las unidades del
sistema de coordinación del Form).
Nota: Puede organizar un Frame, así como los objetos dentro de él manualmente en el
Editor de Diseño.
______________________________________________________________________
________________
Visualización de varias Paletas de Propiedades.
Es posible que desee ver las propiedades de varios objetos simultáneamente o que desee
ver mas propiedades de un objeto en particular sin tener que desplazarse hacia
abajo/arriba en la Paleta de Propiedades. Para lograr cualquiera de estas cosas, puede
hacer lo siguiente:
Para abrir varias paletas de un mismo objeto:
1. Abra una paleta de propiedades para el objeto.
2. Mantenga presionada la tecla [Shift] y haga doble clic en el icono de objeto del objeto
en el Navegador de Objetos.
Más de una paleta de propiedades para varios objetos:
1. Abra la paleta de propiedades del primer objeto.
2. Haga clic en Pin/Unpin( ) en la barra de herramientas para "congelar" esta
paleta.
3. Invoque la paleta de propiedades para otro objeto. Esta paleta de propiedades aparece
en una ventana separada.
Si la segunda ventana está encima de la primera, arrástrela para que ambas ventanas
estén visibles.
Si selecciona varios objetos y visualiza sus propiedades, notara algunas con un valor en
asteriscos *****, esto es porque los objetos tienen valores diferentes en esas
propiedades. Si cambia una de esas propiedades con los objetos aun seleccionados, este
nuevo valor se aplica entonces a cada uno de los objetos seleccionados.
Para establecer propiedades en varios objetos al mismo tiempo, realice los pasos
siguientes:
1. Abra la paleta de propiedades para uno de los objetos.
2. Mantenga presionada la tecla [Ctrl] y haga clic en los demás objetos. Al seleccionar
varios notara como las propiedades cambian en combinación.
3. Establezca el botón Intersección/Unión ( / )de la barra de herramientas en la
paleta de propiedades a la operación deseada. Este botón cambia entre las dos opciones.
4. Cambie las propiedades mostradas, según sea necesario. Sus cambios se aplican a
todos los objetos seleccionados que contengan estas propiedades.
Nota: Con un Unión, puede ver algunas propiedades que no son relevantes para todos
los objetos seleccionados. Los cambios en una propiedad se aplican sólo a los objetos
que la contienen.
Copiando Propiedades.
Puede copiar las propiedades y los valores de la paleta de propiedades a un búfer para
que se puedan aplicar (pegar) a otros objetos en su sesión de diseño. Para copiar
propiedades, realice los pasos siguientes:
1. En la paleta de propiedades establezca las propiedades que se van a copiar. Puede ser
de un objeto o una combinación de objetos.
---Para copiar todos los ajustes de propiedades, seleccione Editar (Edit)>Seleccionar
todo (Select All).
---Para copiar solo los ajustes de las propiedades seleccionadas, mantenga presionada la
tecla [Ctrl] mientras hace clic en cada propiedad individualmente.
2. Haga clic en Copiar propiedades ( ) en la barra de herramientas de la paleta de
propiedades.
3. En el Navegador de objetos, seleccione el objeto al que se van a copiar las
propiedades.
4. En la paleta de propiedades, haga clic en Pegar propiedades ( ). El objeto
seleccionado recibe todas las propiedades copiadas que son relevantes de acuerdo a su
tipo.
Nota: Es posible copiar la configuración de propiedades de un objeto a objetos de
diferentes tipos. En este caso, las propiedades que no se aplican al objeto de destino se
ignoran.
El Cálculo relacional
es un lenguaje de consulta que describe la respuesta deseada sobre una Base de
datos sin especificar como obtenerla, a diferencia del Álgebra relacional que es de tipo
procedimental, el cálculo relacional es de tipo declarativo; pero siempre ambos métodos
logran los mismos resultados.
CARACTERISTICAS:
Lenguaje de Consulta para bases de datos relacionales
Variables-tupla.
Anteriormente habíamos supuesto una lógica homogénea, es decir, el dominio
de las variables coincidía con el conjunto de constantes del lenguaje. En el
CRT ya no es así. Cada variable-tupla x se define sobre una intensión
(esquema) de una relación R:
Las ocurrencias de x que son libres en F son ligadas en ∃x(F) y en ∀x(F). Otras
ocurrencias de variables-tupla en F serán libres o ligadas en dichas fbf según lo
sean en F.
Dada una fórmula F que contiene los símbolos de predicados P1, P2,..., Pk
(siendo R1, R2,..., Rk las relaciones que tienen asignadas respectivamente) y
los símbolos de constantes a1,
a2,..., ap., el dominio de F se define como:
Dom (F)= {a1, a2,..., ap.} ∪ {valores de los atributos de las tuplas de R1, R2,...,
Rk}
Puesto que las relaciones R1, R2,..., Rk son conjuntos finitos, también lo será
dom (F).
Ejemplos:
S
A B
1 2
2 4
3 5
Variables-dominio.
X: domk
Ejemplo:
a
x
'hola'
Los átomos o fórmulas atómicas toman una de las dos formas siguientes:
R (t1, t2,..., tn), donde R es una relación de grado igual a n o superior, y t1,
t2,..., tn son términos. Los términos han de pertenecer a los dominios
asociados a los atributos de la relación.
{ x ࣦ ¬R(x) }
que podría dar como resultado una relación de cardinalidad infinita, con los
consiguientes problemas que esta situación plantea. Se hace necesario, por
tanto, restringir el CRD para que únicamente sean válidas las fórmulas
llamadas seguras.
Para definir estas fórmulas también nos hace falta el concepto de dominio de
una fórmula, que coincide totalmente con el indicado anteriormente para el
CRT.
EJEMPLOS:
01)
DEPARTAMENTO (cod_dep: tira (5), nombre: tira (40), director: tira (30),
Teléfono: entero)
ASIGNATURA (cod_asg: tira (3), nombre: tira (40), semestre: tira (2),
Teoría: real, prác: real, cod_dep: tira (5))
DOCENCIA (cod_asg: tira (3), cod_pro: tira (3), gteo: entero, gpra: entero)
02)
Las construcciones% TYPE y% ROWTYPE proporcionan independencia de datos, reducen los costos de
mantenimiento y permiten que los programas se adapten a medida que cambia la base de datos.
%ROWTYPE se utiliza para declarar un registro con los mismos tipos que
: se encuentra en la tabla, vista o cursor de la base de datos
especificada: DECLARAR v_emp emp % ROWTYPE ; BEGIN v_emp . empno : =
10 ; v_emp . ename : = 'XXXXXXX' ; FINAL ; /
SYSDATE
Devuelve la fecha del sistema:
NVL
Devuelve el valor recibido como parámetro en el caso de que expresión sea NULL,o
expresión en caso contrario.
NVL(, )
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.
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 devuelve el uno de diciembre y no el doce de enero.
SELECT TO_DATE('01/12/2006',
'DD/MM/YYYY')
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(, [])
TO_NUMBER(, [])
TRUNC
Trunca una fecha o número.
Si el parámetro recibido es una fecha elimina las horas, minutos y segundos de la misma.
LENGTH
Devuelve la longitud de un tipo CHAR.
INSTR
Busca una cadena de caracteres dentro de otra. Devuelve la posicion de la ocurrencia de la
cadena buscada.
Su sintaxis es la siguiente:
INSTR(, , , )
REPLACE(, , )
El siguiente ejemplo reemplaza la palabra 'HOLA' por 'VAYA' en la cadena 'HOLA MUNDO'.
SUBSTR
Obtiene una parte de una expresion, desde una posición de inicio hasta una determinada
longitud.
SUBSTR(, , )
UPPER
Convierte una expresion alfanumerica a mayúsculas.
LOWER
Convierte una expresion alfanumerica a minúsculas.
ROWIDTOCHAR
Convierte un ROWID a tipo caracter.
SELECT ROWIDTOCHAR(ROWID)
FROM DUAL;
RPAD
Añade N veces una determinada cadena de caracteres a la derecha una expresión. Muy util
para generar ficheros de texto de ancho fijo.
RPAD(, , )
El siguiente ejemplo añade puntos a la expresion 'Hola mundo' hasta alcanzar una longitud
de 50 caracteres.
LPAD
Añade N veces una determinada cadena de caracteres a la izquierda de una expresión. Muy
util para generar ficheros de texto de ancho fijo.
LPAD(, , )
El siguiente ejemplo añade puntos a la expresion 'Hola mundo' hasta alcanzar una longitud
de 50 caracteres.
RTRIM
Elimina los espacios en blanco a la derecha de una expresion
LTRIM
Elimina los espacios en blanco a la izquierda de una expresion
TRIM
Elimina los espacios en blanco a la izquierda y derecha de una expresion
MOD
Devuelve el resto de la división entera entre dos números.
MOD(, )
SELECT MOD(20,15) -- Devuelve el modulo de dividir 20/15
FROM DUAL