0% encontró este documento útil (0 votos)
676 vistas78 páginas

Proyecto Final Oracle

Oracle es un RDBMS que se basa en la arquitectura cliente-servidor. Puede instalarse en múltiples plataformas como Windows, Unix y Linux. Requiere la instalación del motor de base de datos Oracle en un servidor, mientras que las aplicaciones pueden ejecutarse localmente o de forma remota a través del servidor. Incluye numerosas herramientas para el desarrollo y administración de bases de datos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
676 vistas78 páginas

Proyecto Final Oracle

Oracle es un RDBMS que se basa en la arquitectura cliente-servidor. Puede instalarse en múltiples plataformas como Windows, Unix y Linux. Requiere la instalación del motor de base de datos Oracle en un servidor, mientras que las aplicaciones pueden ejecutarse localmente o de forma remota a través del servidor. Incluye numerosas herramientas para el desarrollo y administración de bases de datos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 78

UNIVERSIDAD LA SALLE

Maestra en Tecnologas de informacin


Diseo de Base de Datos.
Proyecto Final.
RDBMS ORACLE
Yolanda Estrada Hernndez
Mauricio Casillas
05/07/2014
- 1 -
NDICE
ORACLE.. .3
DESCRPCN GENERAL DEL RDBMS 3
REQUERMENTOS PARA SU NSTALACN Y PLATAFORMAS EN LAS QUE
SE PUEDE NSTALAR .5
ESTRUCTURA DE LA BD (LGCA Y FSCA) 7
ESTRUCTURA DE LA MEMORA 12
MTODOS DE NTEGRDAD, CONCURRENCA, CONSSTENCA Y MANEJO
DE TRANSACCONES DE DATOS .. 17
NDZACN..20.
MPLEMENTACN DEL DSEO CONCEPTUAL (MODELO ENTDAD -
RELACN) 25
.ADMNSTRACN DE LA SEGURDAD DE LA BASE DE DATOS 27
ADMNSTRACN DE OBJETOS.39
UTLERAS DE RDBMS 47
DESCRPCN DE FRONTENDS Y BACKENDS...57
EJEMPLO PRCTCO DE UNA APLCACN63
EXPLCAR SU LENGUAJE DE PROGRAMACN NATVO CON EJEMPLOS
PRCTCOS EN EL CASO DE SQL LSTAR SUS EXTENSONES Y
AGREGADOS65
BBLOGRAFA..78
Tecnologa olap
ORACLE
- 2 -
Oracle surge a finales de los 70 bajo el nombre de Relational Software a partir de
un estudio sobre SGBD (Sistemas Gestores de Base De datos) de George Koch.
Computer World defini este estudio como uno de los ms completos jams
escritos sobre bases de datos. Este artculo inclua una comparativa de productos
que eriga a Relational Software como el ms completo desde el punto de vista
tcnico. Esto se deba a que usaba la filosofa de las bases de datos relacionales,
algo que por aquella poca era todava desconocido.
Oracle es un sistema de administracin de base de datos (o RDBMS por el
acrnimo en ingls de Relational Data Base Management System), fabricado por
Oracle Corporation. Se considera a Oracle como uno de los sistemas de bases de
datos ms completos, destacando su:
Soporte de transacciones.
Estabilidad.
Escalabilidad.
Es multiplataforma.
Su mayor defecto es su enorme precio, que es de varios miles de euros (segn
versiones y licencias). Otro aspecto que ha sido criticado por algunos especialistas
es la seguridad de la plataforma, y las polticas de suministro de parches de
seguridad, modificadas a comienzos de 2005 y que incrementan el nivel de
exposicin de los usuarios. En los parches de actualizacin provistos durante el
primer semestre de 2005 fueron corregidas 22 vulnerabilidades pblicamente
conocidas, algunas de ellas con una antigedad de ms de 2 aos.
Aunque 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 PostgreSQL,
MySql o Firebird. Las ltimas versiones de Oracle han sido certificadas para poder
trabajar bajo Linux.
1. DESCRPCN GENERAL DEL RDBMS
ORACLE es un RDBMS (Sistema de Gestin de Bases de Datos Relacionales), y
se basa en la tecnologa cliente/servidor, para su utilizacin primero sera
necesario la instalacin de la herramienta servidor (Oracle 8i) y posteriormente
podramos atacar a la base de datos desde otros equipos con herramientas de
desarrollo como Oracle Designer y Oracle Developer, que son las herramientas
bsicas de programacin sobre Oracle.
Para desarrollar en Oracle adems del lenguaje SQL utilizamos el llamado
PL/SQL un lenguaje de 5 generacin, bastante potente para tratar y gestionar la
base de datos, tambin por norma general se suele utilizar SQL al crear un
formulario. PL/SQL, que es propio de ORACLE prcticamente, en cualquier
herramienta ORACLE donde se pueda usar SQL podemos tambin utilizar
PL/SQL.
- 3 -
Todas las aplicaciones ORACLE se ejecutan contra el motor ORACLE que
interacta directamente con la base de datos, y que debe estar activo en todo
momento. El acceso a la base de datos est controlado por nombre de usuario y
clave (normalmente distintos de los del sistema operativo).
Las aplicaciones ORACLE se pueden ejecutar en el mismo servidor donde est
instalada la base de datos y corre el motor ORACLE o en otro, conectado con el
anterior, y que puede tener un sistema operativo distinto; por ejemplo, un PC
(modo cliente/servidor).
Algunas de las aplicaciones pueden funcionar sobre X-Window.
Utilizacin
La utilizacin de las aplicaciones en modo cliente/servidor o en modo normal no
vara apenas. La nica diferencia es que en modo normal hay que conectarse al
servidor lucano (con rlogin, rsh o telnet). Si adems se van a ejecutar aplicaciones
X-Window (OPEN LOOK o MOTF) en modo normal, una vez conectado a lucano
habr que hacer:
% setenv DSPLAY servidor:0 (C-Shell)
donde "servidor" es el nombre de la computadora del usuario.
Antes que nada, hay que cargar una serie de variables. Esto se hace de la
siguiente manera (hay que estar en la C-Shell):
% source /usr/app/oracle/oravar
(Est pendiente hacer una versin para Bourne-Shell).
Dentro de oravar se comprueba si la computadora del usuario es lucano. Si no lo
es, se activa el modo cliente/servidor.
Tras esto, y suponiendo que el motor ORACLE est funcionando en el servidor
lucano, ya se pueden ejecutar directamente las aplicaciones.
Para comprobar si en el servidor lucano est activo el motor ORACLE, debe
teclear lo siguiente:
% ps -aux | grep ora
Deben aparecer cuatro procesos con nombres ora_????_orac y el proceso orasrv,
que permite la ejecucin en modo cliente/servidor.
Tal y como se ha explicado aqu, para la ejecucin en modo cliente/servidor el
servidor de usuario debe ser algn tipo de SUN 4.
ORACLE incluye una gran cantidad de herramientas de programacin y desarrollo
de aplicaciones
Requerimientos
El motor de ORACLE y la base de datos reside en el servidor, pero las
aplicaciones pueden ejecutarse en ese servidor o en otra computadora, en modo
cliente/servidor.
Documentacin
ORACLE RDBMS Utilities User Guide.
CASE Designer User's Guide and Tutorial.
PL/SQL User's Guide and Reference.
SQL*Menu User's Guide and Reference.
- 4 -
SQL*ReporWriter Reference Manual.
SQL Language and Reference.
SQL*Plus User's Guide and Reference.
SQL*Forms Designer's Reference.
SQL*Forms Designer's Tutorial.
PRO*C Supplement to the ORACLE Precompilers Guide.
2. REQUERMENTOS PARA SU NSTALACN Y PLATAFORMAS
EN LAS QUE SE PUEDE NSTALAR
Oracle posee igual interaccin en todas las plataformas (Windows, Unix,
Macintosh y Mainframes). Esto porque ms del 80% de los cdigos internos de
Oracle son iguales a los establecidos en todas las plataformas de Sistemas
Operativos.
Oracle soporta bases de datos de todos los tamaos, desde severas cantidades
de bytes y gigabytes en tamao.
Oracle provee salvar con seguridad de error lo visto en el monitor y la informacin
de acceso y uso.
Oracle soporta un verdadero ambiente cliente servidor. Este establece un proceso
entre bases de datos del servidor y el cliente para la aplicacin de programas.
Una ventaja importante de tecnologa del ORACLE sigue siendo su disponibilidad
incomparable por el rango ms ancho de plataformas y sistemas operativos.
ORACLE tiene una arquitectura integrada. La misma tecnologa de ORACLE que
corre en PCs, corre inalterado en el SMPs ms avanzado y MPPs.
ORACLE 7 es soportado en PCs como en los sistemas masivos en paralelo,
clusters y mainframes. Oracle 7 est disponible en ms de 140 plataformas
diferentes. El underlying de Oracle7 se adapta fcilmente a la arquitectura de las
nuevas plataformas del hardware y sistemas operativos
Oracle sobre Linux.
La Base de Datos (BD) Oracle 9i ver. 2, pretende ofrecer a los desarrolladores de
Linux no solo una plataforma de bajo costo, sino tambin una arquitectura de
cdigo abierto que puede ofrecer control sobre el performance, viabilidad y
manejabilidad en el desarrollo en misiones criticas en el ambiente de la empresa.
La versin Oracle 9i ver. 2 est disponible hoy en da en la liga de Oracle with
Linux.
Orale 9i Server corre aplicaciones J2EE y servicios Web sobre Red Hat y SuSe de
Linux, lo cual activa un gran performance a la BD por el uso de J2EE en servicios
Web desarrollado para Linux.
- 5 -
Oracle provee soporte tcnico para Red Hat Linux Advanced Server Oracle,
trabajando con Red Hat cerrado provee de soporte tcnico directo para el
software, incluyendo el sistema operativo. Los clientes de Oracle pueden observar
la pronta respuesta y la resolucin a casos crticos.
La liga a FAQ es una estrategia de soporte de linux, el mtodo es leer mientras
que millones de desarrolladores estn desarrollando con Oracle sobre Linux.
Con el kernel de Red Hat Advanced Server, el shortcomings de la arquitectura de
la memoria virtual de linux ha sido direccionada y el resultado es que Oracle y
Linux ofrecen una combinacin de gran performance y una plataforma altamente
segura.
La comparacin funcional en la administracin de volmenes lgicos de Linux y el
software metadisk de linux RAD para su uso con Oracle 9i en una aplicacin real
de clusters es viable y aplicable para aplicaciones en ambientes crticos.
Existe ya una lista completa de productos certificados sobre las distribuciones
populares de Linux, esa lista puede ser revisada en http://metalink.oracle.com
La introduccin de la BD Oracle revoluciona la economa mundial en Tecnologas
de nformacin, hay aplicaciones reales con una nueva arquitectura de compartir
memoria cache que sobrepasas las limitaciones tradicionales de compartir
memoria en sistemas de bases de datos.
Existen barios tpicos para el uso de la BD Oracle sobre la plataforma Linux,
aunado a su respectiva documentacin:
iDevelop Online Training - Getting Started with Oracle9i
Learn about the Oracle9i products
Oracle9i Database
Oracle9iAS Application Server
See how Oracle9i supports application development
Oracle9i JDeveloper
Application Development on Oracle9i
Oracle9i Development Platform: Java
Oracle9i Development Platform: XML
Business Components for Java
Oracle9iAS Best Practices white papers recomienda las mejores prcticas para
Areas que utilizan Oracle 9i, lo cual incluye seguridad, performance y
escalabilidad, globalizacin y aplicaciones de Java.
La evolucin de las BD en E-Business: A los desarrolladores de Oracle que
regresan a la BD Oracle 9i se les hace mucho ms fcil su administracin y
realizan ingenieras mas robustas de e-business.
Oracle 10g
- 6 -
La versin 10 g plantea un nuevo concepto, Grid computing, que consiste en
utilizar la mayor cantidad de infraestructura disponible que tiene la empresa.
"La "g" del nombre, hace referencia a Grid, un concepto acadmico de larga data,
que supone que varios recursos (especialmente computadoras) puedan ser
utilizados como un todo, como uno slo. Ya sea para dar servicios de base de
datos o servidores de aplicaciones y se puede administrar como uno slo tambin.
Es decir, son varias computadoras agrupadas como si fueran una, por lo que se
suma la memoria de cada una de ellas y la potencia de procesamiento de CPU.
As, son vistas por el consumidor como si fueran la potencia y memoria de una
nica computadora, no individualizando cada uno de los servidores como
entidades
nstalacion de Oracle 10g Release 1 (10.1), Mac OS X Server para la versin
10.3.6 (Panther), las libreras de ese entonces utilizaban gcc versin 3.3 mientras
que la versin 10.4 (Tiger) utiliza libreras gcc con la versin 4.0. Esta
particularidad es la causante de una instalacin errnea cuando se corre v10.4 o
superior de Mac OS X Server. Por otro lado, Oracle ha certificado el Release 1
(10.1) nicamente para la versin Server del Mac OS X, sin embargo, siguiendo el
mismo procedimiento descrito se ha podido instalar satisfactoriamente en un Mac
OS X v10.4.3, es decir no-Server.
Los requerimientos de hardware son los que simultneamente se piden para el
Sistema Operativo como para la Base de Datos; para efectos ilustrativos se
puntualiza que se ha podido instalar en un iMac G5, en un PowerBook G4, en un
Macintosh Server G4 y en un Xserve G5.
En cuanto al software, como mnimo se necesita la versin 10.4 (Tiger) Server,
salvando lo descrito en el prrafo anterior para las versiones no-Server.
3. ESTRUCTURA DE LA BD (LGCA Y FSCA)
Niveles de Almacenamiento
La BD Oracle est constituida a nivel
1. fsico: de archivos (al menos 1)
2. lgico: de tablespaces (al menos 1)
El tablespace SYSTEM se crea automticamente al hacer la instalacin de
Oracle, o al crear una BD.
Este Tablespace contiene el diccionario de datos.
Tablespaces
Unidad de accesibilidad a los datos.
Uno o ms tablespaces por BD.
Uno o ms archivos por tablespace.
Puede quedarse offline debido a un fallo de disco, permitiendo que el SGBD
contine funcionando.
Pueden estar montados sobre dispositivos pticos si son tablespaces de
slo lectura.
- 7 -
Permiten distribuir a nivel lgico/fsico los distintos objetos de las
aplicaciones.
Son una unidad lgica de almacenamiento, pueden usarse para aislar
completamente los datos de diferentes aplicaciones.
Oracle permite realizar operaciones de backup/recovery a nivel de
tablespace mientras la BD sigue funcionando.
Creacin de un nuevo Tablespace
Creacin: Oracle se reserva una cantidad de espacio en disco para su
manejo, la utilice o no.
svrmgr>create tablespace tbs1
datafile 'nombre_archivo.dbf'
size 10m
default storage
(initial 50k
next 25k
pctincrease 0) online;
Modificacin: aadiendo otro archivo.
svrmgr>alter tablespace tbs1 add
datafile 'otro_archivo.dbf'
size 10m;
Crecimiento Automtico de Archivos
Usando las posibilidades del Sistema Operativo, Oracle puede gestionar el
crecimiento dinmico de los archivos de los tablespaces.
Elimina la posibilidad de error en las aplicaciones por fallos de
dimensionamiento.
Solo disponible para archivos montados sobre sistemas de archivos
gestionados por el SO.
Problema: la no utilizacin del espacio reservado para un tablespace. Se
puede solucionar mediante el proceso export/import o de manera
transparente
svrmgr>alter database datafile 'archivo.dbf' resize 150m;
ntroduccin a los Segmentos
Todos los datos de la BD estn almacenados en Segmentos.
Existen 5 tipos de segmentos:
de datos.
de ndices.
de rollback.
temporales.
de bootstrap.
Se pueden almacenar ms de un segmento por tablespace.
Un segmento est contenido en su totalidad en un tablespace.
- 8 -
Un segmento es un conjunto de extensiones de bloques Oracle que pueden
estar en varios archivos de un tablespace.
Cuando se borra un segmento, el espacio es devuelto al tablespace.
Oracle guarda una lista de bloques libres por segmento.
El primer bloque asignado a un segmento contiene la cabecera del
segmento donde se almacena informacin de control para el kernel Oracle.
Cada segmento tiene un conjunto de parmetros de almacenamiento que
controla su crecimiento:
initial: tamao de la extensin inicial (10k).
next: tamao de la siguiente extensin a asignar (10k).
minextents: nmero de extensiones asignadas en el momento de la
creacin del segmento (1).
maxextents: nmero mximo de extensiones (99).
pctincrease: Porcentaje en el que crecer la siguiente extensin
antes de que se asigne, en relacin con la ltima extensin utilizada
(50).
pctfree: porcentaje de espacio libre para actualizaciones de filas que
se reserva dentro de cada bloque asignado al segmento (10).
pctused: porcentaje de utilizacin del bloque por debajo del cual
Oracle considera que un bloque puede ser utilizado para insertar filas
nuevas en l.
tablespace: nombre del tablespace donde se crear el segmento.
Segmentos de Datos
Tablas
Las filas pueden extenderse en ms de un bloque (filas encadenadas).
create table t1 (...) tablespace tbs1;
soportan los siguientes tipos de datos:
char: cadenas de caracteres de longitud fija (<255).
varchar2: cadenas de caracteres de longitud variable (<2000)
number: enteros y reales de hasta 38 dgitos.
date: fecha y hora.
long: cadena de caracteres de longitud variable (<2Gb).
raw: versin binaria de varchar2.
long raw: versin binaria de long (datos multimedia).
rowid: dato interno (7 bytes) para direccionar filas.
Segmentos de ndices
Acceso rpido a los datos dependiendo de la cantidad de los mismos
(rboles B) .
Las consultas que slo referencian a columnas indexadas se resuelven en
el ndice.
Control de unicidad (automticos con clave primaria).
- 9 -
Cada ndice ocupa un segmento independiente del segmento de datos.
Deberan estar en tablespace distinto al de los datos, para mejorar el
rendimiento.
Segmentos de oll!ac"
Son objetos internos de la BD.
Permiten efectuar la restauracin de las transacciones no validadas.
Aseguran la consistencia en lectura.
Estructura de los registros:
dentificador de la transaccin.
Direccin del bloque.
Nmero de fila.
Nmero de columna.
Valor del dato antiguo (antes de ser modificado).
Una BD no puede arrancar si no puede acceder al menos a un segmento
de rollback.
Si la BD tiene mltiples tablespaces, deben existir al menos dos segmentos
de rollback.
Cada segmento de rollback debe tener al menos dos extensiones,
reutilizables de manera cclica.
Los segmentos de rollback son un objeto compartido de la BD, aunque se
puede asignar un segmento de rollback particular a una transaccin dada.
Segmentos Tem#orales
Creados por Oracle para un uso temporal cuando debe realizar una
ordenacin que no le cabe en memoria, en las operaciones: create index,
order by, group by, distinct, union, intersect, minus.
Son eliminados cuando la sentencia finaliza.
Segmentos de $ootstra#
Se crea en SYSTEM.
Contiene definiciones del Diccionario para sus tablas, que se cargan al abrir
la BD.
No requiere ninguna accin por parte del DBA.
No cambia de tamao.
- 10 -
%omando Tr&ncate
Permite borrar todas las filas de una tabla sin borrar la estructura del objeto.
No requiere proceso de rollback ni redolog.
Los ndices son tambin truncados.
%omando 'nali(e
Permite recoger estadsticas sobre tablas, ndices y otros objetos de la BD
que luego utilizar el optimizador.
Almacena estadsticas en el Diccionario.
Debe ser ejecutado peridicamente por el dba.
Se pueden analizar todos los objetos de un usuario dado.
- 11 -
4. ESTRUCTURA DE LA MEMORA
Estructuras internas de memoria
La base de datos Oracle utiliza dos tipos distintos de estructuras de memoria:
Areas globales y Areas de proceso.
Area Global de Sistema
Se iniciar sta seccin ejemplificndolo con la lectura de un libro: Una vez ledo
un captulo Cul sera la forma ms rpida de pasar esa informacin a otra
persona?, se podra hacer que dicha persona leyera tambin ese capitulo, pero
sera mas rpido si se pudiera conservar la informacin en la memoria y pasar
despus la informacin de la memoria a la segunda persona.
El Area Global de Sistema (System Global Area: SGA) de una base de datos
Oracle sirve para lo mismo (facilita la transferencia de informacin entre usuarios).
Tambin mantiene la informacin estructural ms consultada sobre la base de
datos.
Tamao del SGA
SHARED_POOL_SZE: tamao en bytes del rea dedicada a sentencias
SQL y PL/SQL.
DB_BLOCK_SZE: tamao en bytes del bloque Oracle.
DB_BLOCK_BUFFER: el nmero de buffers, cada uno del tamao de
DB_BLOCK_SZE, reservados para la SGA. El tamao total de espacio
"alocado para el "database buffers cach en la SGA es el producto de
DB_BLOCK_SZE por DB_BLOCK_BUFFERS.
LOG_BUFFERS: El nmero de bytes reservados para los Redo Log
Buffers.
La estructura del SGA es:
)os !&fers del !lo*&e de datos
Los bufers del bloque de datos (data block buffers) son un cach del SGA que se
utiliza para contener los bloques de datos que se leen de los segmentos de datos
de la base de datos, tales como tablas, ndices y grupos. El tamao del cach del
bufer del bloque de datos viene determinado por el parmetro
DB_BLOCK_BUFFERS del archivo N.ORA de dicho servidor de base de datos.
- 12 -
Buffers del Bufers del Cach Almacn
Bloque registro del SQL
De datos de rehacer diccionario compartido
La gestin del tamao del cach del bufer del bloque de datos juega un importante
papel en la gestin y ajuste de la base de datos.
Como ste tamao es fijo, y suele ser inferior al espacio utilizado por los
segmentos de la base de datos, no se pueden conservar todos los segmentos de
la base de datos en memoria simultneamente. Oracle gestiona el espacio
disponible mediante un algoritmo de menos utilizado recientemente (LRU: Least
Recently Used). Cuando se necesita espacio libre en el cache, se escriben al
disco los bloques menos utilizados recientemente, siendo sustituidos por nuevos
bloques de datos. De esta forma en la memoria se conservan los datos utilizados
con mas frecuencia.
No obstante si el SGA no es lo suficientemente grande, distintos objetos
competirn por el espacio del cach del bufer del bloque de datos. Esto es
particularmente probable cuando varias aplicaciones comparten el mismo SGA. En
dicho caso los segmentos ms utilizados recientemente de cada aplicacin
compiten constantemente por el espacio del SGA con los segmentos ms
utilizados recientemente de otras aplicaciones. Como consecuencia de ello, las
solicitudes de datos del cach del bufer del bloque de datos tendrn una baja
relacin de aciertos a fallos.
%ach+ del diccionario
La informacin sobre los objetos de la base de datos se almacena en las tablas
del diccionario de datos. En sta informacin se incluyen los datos de las cuentas
de usuario, los nombres de los archivos de dato, los nombres de los segmentos, la
ubicacin de las extensiones, las descripciones de las tablas y los privilegios.
Cuando la base de datos necesita sta informacin (por ejemplo para comprobar
la autorizacin de un usuario para consultar una tabla), se leen las tablas de
diccionario de datos y los datos devueltos se almacenan en el SGA, en el cach
del diccionario (dictionary cach).
Este cach tambin se gestiona mediante un algoritmo LRU, el tamao se
establece mediante el parmetro SHARED_POOL_SZE del archivo NT.ORA de
la base de datos.
Si el cach del diccionario es demasiado pequeo, la base de datos tendr que
consultar reiteradamente la informacin que necesita en las tablas del diccionario
de datos. Estas consultas se llaman aciertos recursivos, y se resuelven mas
lentamente que las consultas que pueden manejarse solo mediante el cach del
diccionario de sta memoria.
$&fer del registro de rehacer
En las entradas de rehacer se describen los cambios realizados en la base de
datos. Se escriben en los archivos de registro de rehacer en lnea de forma que
pueden utilizarse en las operaciones de reconstruccin durante la operacin de la
base de datos. No obstante, antes de escribirse en los archivos de registro de
rehacer en lnea, se almacenan primero en el SGA, en un rea llamada bufer de
- 13 -
registro de rehacer (redo log buffer). La base de datos escribe despus de forma
peridica series de entradas de rehacer los archivos de registro de rehacer en
lnea, optimizando as sta operacin.
El tamao en bytes de los bufers de registro de rehacer se define mediante el
parmetro LOG_BUFFER del archivo N.ORA.
,ondo com-n S.) com#artido
En el cach del diccionario se almacena un rea denominada fondo comn del
SQL compartido (shared SQL pool). En sta rea de memoria tambin se incluye
informacin sobre sentencias ejecutadas sobre la base de datos. As, mientras
que el bufer del bloque de datos y el cach del diccionario permiten la
comparticin de informacin estructural y de los datos entre los usuarios, el modo
comn SQL compartido permite compartir las sentencias SQL mas utilizadas
El fondo comn SQL compartido contiene le plan de ejecucin y el rbol de
anlisis de las sentencias SQL que se ejecutan sobre la base de datos. La
segunda vez que cualquier usuario ejecuta una sentencia SQL idntica, puede
aprovecharse la informacin de anlisis disponible en el fondo comn SQL
compartido para acelerar la ejecucin.
Area Global del Programa
El rea global del programa (PGA) es un rea de la memoria utilizada por un nico
proceso de usuario de Oracle.
En las ltimas versiones de Oracle parte del PGA puede almacenarse en el SGA.
Esto ocurre cuando se utiliza el servidor multiproceso (multi-threaded). La
arquitectura multiproceso del servidor permite que varios procesos de usuario
utilicen el mismo proceso del servidor, reduciendo as los requisitos de memoria
de la base de datos. Si se utiliza sta opcin, la informacin sobre la sesin del
usuario se almacena en el SGA en lugar de en el PGA.
Las relaciones entre las estructuras fsicas y de la memoria de la base de datos se
mantienen y aplican mediante estructuras de proceso, que son los procesos de
fondo propios de la base de datos, y cuyo nmero vara en funcin de la
configuracin de la base de datos. Estos procesos los gestiona la base de datos y
apenas necesita trabajo administrativo.
Memoria de la nstancia
La instancia la componen Procesos (programas ejecutables con interfaz o
servicios) y recursos (estructuras de memoria RAM, buffers, datos). El mensaje
devuelto por show SGA muestra el tamao total de la memoria compartida SGA.
SVRMGR> show sga
Total System Global Area 15077376 bytes
- 14 -
Fixed Size 49152 bytes
Variable Size 12906496 bytes
Database Buffers 2048000 bytes
Redo Buffers 73728 bytes
Estructuras
de
Memoria
SGA System
Global Area
49Kb rea Fija. nformacin
adicional sobre procesos
Contiene informacin sobre:
Usuarios conectados
Bloqueos
Nmero mximo de bloqueos
para
DDL y DML
Colas de Entrada/Salida.
Nmero de db_links permitidos
12Mb rea de memoria
compartida. Shared Pool.
rea Variable. (Shared
SQL Area).
Se dimensiona con el
parmetro
shared_pool_size en
init<sid>.ora, por ejemplo
shared_pool_size =
11534336
Contiene:
Sentencias SQL
preanalizadas (parsed)
Procedimientos,
libreras
Diccionario de datos
rea compartida para sentencias
SQL
Cach del diccionario (Dictionary
Cach o Row Cach)
2 Mb Cach de datos (buffer
cach) Buffers de BD.
Database Buffers
Contiene los datos y bloques de
rollback en uso.
Se dimensiona con el parmetro
db_block_buffers en init<sid>.ora,
por
ejemplo
db_block_buffers = 1000
73
Kb
Cach de redo logs (Redo
log buffers)
Contiene los datos que son
modificados para pasarlos a
archivos histricos y mantener un
histrico capaz de reconstruir la
BD en caso de fallo
PGA Cursores (reas privadas
para sentencias SQL)
Pila de variables
reas de
ordenacin
reas de ordenacin de
sentencias. Sort Area
Ejecutables
- 15 -
de Oracle
Procesos e la Instancia
Procesos
Background
Estndar DBWR. DataBase
Writer
Escribe en los archivos de la BD los buffers
de datos modificados en memoria
LGWR. LoG Writer. Escribe en los archivos histricos de la BD
(redo log files) cuando los redo log buffers se
han llenado o cuando se produce un commit.
Esto permite el recovery.
SMON. System
MONitor.
Trata las recuperaciones en caso de fallo.
Limpia los segmentos temporales cuando no
estn en uso. Realiza el Coalesce de
tablespaces, uniendo en una sola extensin
extensiones contiguas.
PMON. Process
MONitor.
Recuperaciones en caso de fallo de un
usuario. Libera recursos inactivos. En
configuraciones Multi-Threaded Server
restablece los procesos dispatcher y
servidores cados.
Puntos de
Ruptura
CKPT Proceso de Apoyo al LGWR. Actualiza
archivos de control y las cabeceras de
archivos de datos agilizando puntos de
ruptura. Este proceso se activa si indicamos
en init<sid>.ora la linea
checkpoin_process=true
Multithread
Server
D000 Dnnn Procesos encargados de distribuir las
peticiones de usuarios de sentencias SQL
entre los procesos compartidos.
S000 Snnn Procesos Compartidos que resuelven
sentencias SQL
Parallel
Server
LCKn Procesos de sincronizacin de instancias.
LMON Soluciona problemas de procesos muertos o
colgados en Parallel Server.
Parallel
Query
P000 Pnnn Ejecucin de sentencias de forma paralela
distribuyendo la carga entre distintas CPU.
Modo
Archiver
(archive
log)
ARCH Proceso encargado de copiar los histricos
(redo log files) en archivos aparte (archiver
files) antes de que sean sobreescritos.
Opcin
Distribuida
RECO Proceso encargado del tratamiento de fallos y
recuperaciones producidos en transacciones
distribuidas debidos a fallos de la red o de la
instancia.
SNP0 SNPn Procesos para el mantenimiento y refresco de
snapshots
en BD distribuidas.
- 16 -
5. MTODOS DE NTEGRDAD, CONCURRENCA, CONSSTENCA
Y MANEJO DE TRANSACCONES DE DATOS
El servidor Oracle tambin se encarga de la integridad de los datos. Si se produce
cualquier tipo de fallo mientras un usuario est cambiando los datos en una base
de datos, sta tiene la capacidad de deshacer o cancelar cualquier transaccin
sospechosa. Con Oracle Server, nunca albergamos dudas en lo referente al
estado de una determinada transaccin. El servidor incluye tambin un bloqueo
completo por filas de todos los datos almacenados.
Por ejemplo, si estuviramos trabajando en una aplicacin de compra de acciones
de bolsa, construida sobre Oracle, y dos usuarios desearan comprar el lote
nmero 5, formado por 100 acciones de la empresa Database Technologies, la
base de datos impedira que dicha accin tuviera lugar. Puesto que slo hay un
nico lote, la base de datos slo permitira a uno de los usuarios acceder al
procedimiento de compra, y el otro usuario se vera obligado a esperar. Cuando el
segundo usuario recibiera finalmente la autorizacin para continuar, se encontrara
con que el lote ha pasado al estado de vendido. Oracle Server gestiona de modo
transparente estas situaciones, manteniendo la integridad de los datos.
Las restricciones de la integridad hacen cumplir las reglas de las actividades en el
nivel de la base de datos definiendo un conjunto de controles para las tablas el
sistema de usuario. Estos controles se hacen cumplir automticamente siempre
que se emite una instruccin de insertar, actualizar o eliminar sobre la tabla. Si se
viola cualquiera de las restricciones, se produce la anulacin de la instruccin. Las
dems instrucciones dentro de la transaccin permanecen en un estado pendiente
y pueden ser confirmadas o se pueden anular de acuerdo con la lgica de la
aplicacin. Debido a que las restricciones de la integridad son controladas en el
nivel de la base de datos, son realizadas con independencia de donde se haya
originado la instruccin de insertar, actualizar o eliminar, ya sea una herramienta
Oracle o no. Definir controles que utilicen estas restricciones es tambin ms
rpido que realizar los mismos controles usando SQL. Adems, la informacin
proporcionada al declarar restricciones es utilizada por el optimizador de Oracle
para tomar decisiones mejores sobre la forma de ejecutar una instruccin sobre la
tabla. El producto Oracle Forms puede utilizar tambin restricciones para generar
cdigo automticamente en los programas front-end para proporcionar al usuario
un aviso temprano ante cualquier error.
Los tipos de restricciones de integridad que se pueden establecer en una tabla son
NOT NULL (no permitir valores nulos), PRMARY KEY (clave primaria), UNQUE
(valor nico), FOREGN KEY (clave externa), CHECK(comprobar que se cumplen
una serie de condiciones) y los ndices.
Integria e atos
Para garantizar la integridad de datos se deben modelar los datos.
Se debe garantizar mediante el diseo de la base de datos que los datos son
conformes a las restricciones de integridad definidas para ellos
- 17 -
Integria e o!inios
Se aplica como reglas que definen los Valores vlidos de los datos, tales como el
tipo de dato
Integria e transiciones
Se define como los estados vlidos por los que puede pasar vlidamente un dato
E"e!plo: /dad Tipo: Numrico
Vlido : 30
nvlido : 180
Integria e entiaes
La existencia de una clave principal es una restriccin de entidad que impone la
regla "%ada entidad de!e estar identificada de forma -nica0
Integria Re#erencial
"Las claves externas no pueden quedar hurfanas
- 18 -
Personalizacin $ dentro de los tres niveles de abstraccin se refiere al de las
vistas, que es la encargada de que los usuarios tengan acceso a solo una parte de
la base de datos, que es la que les corresponde, para que los puedan manipular.
Manejo de Transacciones $ se aplica el requisito de todo o nada, es decir la
atomicidad, que hace que las operaciones no se realicen por partes, y de esta
manera se pueden evitar fallos en las mismas. Pueden ocurrir cuando se va la
energa o se cae el sistema, y las transacciones quedan a la mitad de un proceso.
Control de Concurrencia $ controla la interaccin entre las transacciones
concurrentes para asegurar la consistencia de la base de datos. Este error puede
ocurrir cuando ms de dos personas quieren accesar o manipular el mismo dato
en la base de datos.
Seguridad $ No todos los usuarios de un sistema de base de datos deberan poder
acceder a todos los datos. Es aqu donde se determinan los "privilegios" que
tendr cada usuario con respecto a la base de datos, dichos privilegios
corresponden tambin a las ligaduras de integridad que el administrador de la
base de datos controlar. La seguridad se puede manejar en conjunto con la
personalizacin e integracin de la base de datos.
Recuperacin de la nformacin $ Nos permite recuperar los datos en caso de que
haya un error en el manejo de la base de datos; es decir, nos ayuda a que no se
pierdan los datos de manera definitiva.
nteraccin con el Sistema de Archivos: Manipulado por el gestor de archivos que
permite que los datos queden guardados en un espacio en el disco duro o en
algn lugar predeterminado para su almacenamiento.
Las funciones del DBA incluyen las siguientes:
Definicin del Esquema: El DBA crea el esquema original de la base de datos
escribiendo un conjunto de definiciones que el compilador de DDL traduce a un
conjunto de tablas que son almacenadas permanentemente en el diccionario de
datos.
Estructura de almacenamiento y definicin del mtodo de acceso: Los DBA crean
estructuras de almacenamiento apropiadas y los mtodos de acceso escribiendo
un conjunto de definiciones, que son traducidas por el compilador del lenguaje de
definicin y almacenamiento de datos.
Esquema y modificacin de la organizacin fsica: Los programadores llevan a
cabo las relativamente escasas modificaciones sobre el esquema de base de
datos o la descripcin de la organizacin de almacenamiento fsico escribiendo un
conjunto de definiciones que son usadas por el compilador del DDL o por el
compilador de lenguaje de definicin y almacenamiento de datos para generar las
modificaciones en las tablas correspondientes del sistema interno.
Concesin de la autorizacin para el acceso a los datos: La concesin de
diferentes tipos de autorizacin permite al administrador de la base de datos
determinar a qu partes de la base de datos pueden accesar los diferentes
usuarios. La informacin se mantiene en una estructura del sistema especial que
el sistema de base de datos consulta cuando se intenta el acceso a los datos de
sistema.
Especificacin de las ligas de integridad: Los valores de los datos almacenados en
la base de datos deben satisfacer ciertas ligas de integridad. Tales ligas deben ser
especificadas por el DBA; dichas ligas se refieren a la validacin de los datos.
- 19 -
6. NDZACN
Un ndice es una estructura de memoria secundaria que permite el acceso directo
a las filas de una tabla (est o no agrupada). El ndice es un instrumento que
aumenta la velocidad de respuesta de la consulta, mejorando su rendimiento y
optimizando su resultado. El manejo de los ndices en 1'%)/ se realiza de
forma inteligente, donde el programador slo crea los ndices sin tener que
especificar, explcitamente, cul es el ndice que va a usar. Es el propio sistema, al
analizar la condicin de la consulta, quien decide qu ndice se necesita.
ORACLE provee cinco tipos de ndices:
ndices basados en B*-trees para tablas no agrupadas.
ndices basados en B*-trees para tablas agrupadas.
ndices basados en Hashing para tablas agrupadas.
ndices Bitmap.
ndice basados en B*-Trees para tablas organizadas por ndices.
En tablas que no estn organizadas por ndice, los ndices son independientes de
la estructura fsica de la tabla (o tablas agrupadas) y por lo tanto poseen
requerimientos de espacio adicionales a los de la tabla sobre los que se
encuentran definidos. La finalidad principal de un ndice es la definir un camino de
acceso a los datos que garantice una mejora en el rendimiento de las operaciones
de bsqueda. ORACLE efecta de manera automtica el mantenimiento de la
consistencia de los ndices asociados a una tabla cada vez que se insertan y
eliminan filas o se modifican valores de las columnas sobre las que se define un
ndice. Si bien es cierto que los ndices aceleran las operaciones de consulta,
tambin debe tomarse en cuenta que el mantenimiento de un ndice tiene efecto
sobre el rendimiento de las operaciones de eliminacin, insercin y actualizacin
ya que es doble el trabajo de manipulacin de bloques de datos (debe
almacenarse informacin en los bloques de datos de una tabla y de los diferentes
ndices sobre ella definidos).
Los ndices pueden definirse sobre una o mltiples columnas de una tabla (o
"cluster). Sin embargo ORACLE impone dos restricciones:
El nmero mximo de columnas para ndices basados en B*-Tree es de 32
columnas, mientras que para ndices bitmap es de 30 columnas.
El espacio requerido para almacenar una clave no puede exceder la mitad del
espacio disponible para almacenar datos en un bloque ORACLE (recordemos que
era tamao de bloque menos el espacio libre para actualizaciones menos el
"overhead para informacin de control del bloque de datos).
ORACLE permite la creacin de ndices que permitan albergar, para un mismo
valor de la clave, una fila o varias filas. Los ndices UNQUE garantizan que en
una tabla (o "cluster) no puedan existir dos filas con el mismo valor. Por defecto
(si no se especifica lo contrario) al crear un ndice ser considerado como de
claves repetidas. Es importante destacar que ORACLE slo genera en forma
automtica los siguientes ndices cuando se crea una tabla:
Un ndice UNQUE basado en B*-tree para mantener las columnas que se hayan
definido como clave primaria de una tabla utilizando el constraint PRMARY KEY
de una tabla no organizada por ndice.
- 20 -
Un ndice UNQUE basado en B*-tree para mantener la restriccin de unicidad de
cada grupo de columnas que se haya declarado como nico utilizando el
constraint UNQUE.
Un ndice basado en B*-tree para mantener las columnas que se hayan definido
como clave primaria y todas las filas de una tabla organizada por ndice.
Un ndice basado en hashing para mantener las filas de un grupo de tablas
("cluster) organizado por hash.
A estos ndices (aquellos generados automticamente) se les denominar ndices
Primarios.
El administrador de la base de datos podr crear otros ndices de acuerdo con el
estudio de rendimiento de las aplicaciones y de la base de datos. A estos ndices
creados especficamente para resolver problemas particulares de degradacin de
rendimiento se les denominar ndices Secundarios.
Una ltima variacin permitida por ORACLE en los ndices basados en B*-tree
para tablas no agrupadas es el manejo de ndices de claves invertidas. En un
ndice de claves invertidas el orden mantenido dentro de la estructura de rbol
viene dado por el resultado de invertir el valor de cada columna que forma parte
del ndice. Esta poltica busca resolver el problema de degradacin del
rendimiento que ocurre cuando:
Se presentan inserciones en las que el orden de la insercin de filas es
exactamente igual al orden parcial definido sobre los valores de las claves.
En bases de datos paralelas, donde mltiples instancias del DBMS acceden a un
grupo de filas de una tabla ubicadas dentro de una rango de valores para sus
claves.
Si se invierten los valores de las claves el efecto producido ser el de dispersar
claves que antes deban estar consecutivas en el orden establecido por el ndice.
Al separar estas claves se reduce la contencin sobre el bloque de datos ORACLE
que antes deba contenerlas. Estos ndices sirven slo para realizar bsquedas de
igualdad ("exact match queries) por lo que no deben utilizar si la tabla sobre la
que se definir dar soporte a aplicaciones que hagan bsqueda por rango ("range
match queries).
Estructura de un ndice basado en B*-Tree
De acuerdo con la definicin de la estructura B*-tree, un ndice ORACLE de este
tipo se estructura como un rbol cuya raz contiene mltiples entradas y valores de
claves que apuntan al siguiente nivel del rbol. Cada una de estas entradas
mantiene un orden sobre las claves que estn siendo almacenadas de forma tal
que el apuntador a la izquierda de una clave C indicara el bloque de nivel
siguiente en el rbol donde se ubican claves menores que C. De igual forma, el
apuntador a la derecha de una clave C indicara la el bloque de nivel siguiente en
el rbol donde se ubican claves mayores que C. Todos los nodos internos del
rbol tienen la misma estructura. Los nodos hoja contienen la entrada del ndice
con toda la informacin necesaria para localizar la(s) fila(s) que contienen un valor
especfico para la clave. Los nodos hoja se encuentran doblemente enlazados
para facilitar el recorrido del ndice en orden ascendente o descendente. Cada
- 21 -
entrada en un nodo hoja representar las filas que posee el mismo valor para la
clave y posee la siguiente estructura:
Un encabezado que almacena el nmero de columnas e informacin sobre el
uso concurrente de la fila.
Una secuencia de valores de longitud de columna y valor de columna que
permiten expresar el valor de la clave almacenada en dicha entrada.
El ROWD de la fila que posee el valor de la clave.
Las siguientes convenciones son utilizadas para el almacenamiento en un ndice
basado en B*- Tree:
En caso de que un ndice no sea UNQUE, si mltiples filas poseen el mismo
valor de la clave en la estructura del ndice se repetirn los valores de dichas
claves. Esto constituye una pequea diferencia respecto a la definicin original de
B*-trees.
Si una fila posee para todas las columnas de la clave el valor NULL, en el ndice
no existir una entrada correspondiente a dicha fila.
Si la tabla no est particionada, se utilizan ROWDs restringidos para indicar la
direccin de la fila. Esto se debe a que todas las filas de la tabla no se encuentran
en un mismo segmento y con esta poltica el ndice requiere de menos espacio en
disco.
Estructura de un ndice Bitmap
Un ndice bitmap tambin est organizado como un B*-Tree, pero la estructura de
los nodos hoja cambia para almacenar un bitmap definido sobre los valores de la
clave en lugar de ROWDs. Cada bit en el bitmap corresponde a un posible
ROWD, y si el bit est encendido esto significa que el ROWD en cuestin posee
el valor indicado para la clave. ORACLE almacena de forma comprimida los
"bitmap asociados a cada entrada del ndice utilizando para tal fin una tcnica
propietaria.
Los ndices de tipo bitmap son particularmente idneos en escenarios en los que
no se producen o se producen muy pocas actualizaciones sobre las columnas que
conforman la clave. Una actualizacin en una de estas columnas trae implcita la
modificacin de dos o ms entradas del ndice (incluidos los bitmaps). De igual
forma, la insercin de un nuevo valor de la clave trae implcita una reorganizacin
masiva del ndice, la cual es extremadamente costosa.
Los ndices de tipo bitmap permiten acelerar ms consultas que utilicen el
operador de disyuncin sobre los atributos claves. Verificar si el valor de una
columna de la clave est entre un grupo de valores es sencillo en un ndice bitmap
ya que slo debe efectuarse el OR bit a bit de los bitmaps asociados a las
entradas de los valores en el rango de bsqueda. En los ndices basados en B*-
Trees esta operacin es ms costosa.
Como regla general, los ndices basados en B*-Tree son mejores para ambientes
de procesamiento de transacciones en lnea (OLTP On-Line Transaction
Processing), en los que suelen existir tablas de alta volatilidad (gran nmero de
operaciones de insercin y eliminacin) y de alta frecuencia de actualizacin. Por
otra parte los ndices bitmap son muy tiles en ambientes donde se realizan
consultas muy complejas sobre tablas muy poco voltiles y que prcticamente no
- 22 -
sufren actualizaciones. Ambientes de este tipo son los derivados del uso de
tcnicas de "Data Warehousing o en Sistemas de soporte a la decisin (DSS
Decisin Support Systems).
Oracle 9, Tablas organizadas por ndices
Una Tabla organizada de ndices (ndex-Organized Table OT) es una
organizacin de almacenamiento nico del servidor Oracle, el cual provee de
performance adicional, escalabilidad y disponibilidad sobre las tablas
convencionales. Actualmente las tablas organizadas por ndices estn
almacenadas en un nivel de ndice B-tree, en donde las ordenes de bsqueda se
basan en las llaves primarias de las tablas de tal forma que los cambios a los
datos tales como agregar, modificar o borrar renglones requiere de modificar el
ndice solamente. Esta implementacin activa en gran medida el acceso rpido a
la tabla para todas las consultas basadas en llaves, haciendo que las tablas
organizadas por ndices sean ideales para una gran variedad de aplicaciones.
Dnde se usan las tablas organizadas por ndices?
La demanda de rapidez en las consultas, alta disponibilidad y capacidad de
almacenamiento reducido.
Algunos ejemplos para la utilizacin de ste concepto de uso y manejo de ndices
son:
1. Proceso de ordenes electrnicas : una tabla organizada por ndices es una
estructura de almacenamiento ideal para la tabla de ordenes, en donde el
query y las operaciones DML (Data Management Language) que ocurren en
ste tipo de aplicaciones fragmentan usualmente la tabla, requiriendo
frecuentemente una reorganizacin de la tabla. Una tabla organizada en
indices puede ser reorganizada fuera de los ndices secundarios y su
performance en lnea elimina el tiempo fuera ("downtime") de la tala ordenes.
2. Catlogos electrnicos : Una tabla organizada en ndices puede ser usada para
almacenar cualquier tipo de catlogos que son usualmente indexados por
producto de acuerdo a atributos basados en llaves primarias o bien
recuperacin de catlogos que pueden tener multicolumnas como llave
primaria. Ambos casos se benefician con el uso de tablas organizadas en
ndices. La compresin de la llave puede ser usada sobre stas tablas
organizadas en ndices para permitir valores repetidos en la columna
incrementando el performance y reduciendo el almacenamiento.
3. Bsquedas en internet : Estas aplicaciones mantienen una lista de palabras
llave (clave), usuarios o URL's, para su almacenamiento en tablas organizadas
en ndices, en donde cada rengln mantiene una llave primaria con alguna
informacin adicional. Una tabla organizada en ndices almacenando URL's y
sus ligas asociadas puede incrementar considerablemente la rapidez en el
tiempo de acceso a la consulta.
4. Portales Web : Este tipo de aplicaciones son nombres de usuarios de la BD con
un subconjunto de la informacin del usuario disponible mas frecuentemente
usada. La columna flexible puede ser reemplazada por una tabla organizada
por ndices lo que provee la opcin a incrementar el performance de esa
aplicacin.
- 23 -
5. Data Warehousing : La tabla organizada por ndices soporta cosas como la
carga, creacin de ndices y requerimientos de bsqueda para el manejo de
grandes volmenes de datos. Las tablas organizadas por ndices particionadas
son tambin soportadas, de tal forma que cada particin puede ser cargada
concurrentemente. Las aplicaciones de Data Warehousing usan esquemas de
inicio que tambin pueden obtener menor performance y escalabilidad con la
implementacin de tablas de hechos ("fact) como tablas organizadas por
ndices para una ejecucin mas eficiente de los querys de inicio. Todas stas
formas de tablas organizadas por ndices proporcionan un manejo de datos a
gran escala.
Rapidez en el acceso a ndices
Las tablas organizadas en ndices proveen de un acceso rpido a los renglones de
las tablas por la llave primaria. De igual modo, desde que los renglones son
almacenados en un orden de acuerdo a la llave primaria, el rango de acceso por la
llave primaria involucra un acceso mnimo de bloques. De acuerdo a sta
organizacin se lleva a cabo un acceso mucho ms rpido a aquellas columnas
mas frecuentemente accesadas, la opcin de almacenamiento de overflow de
registros puede ser usada para sacar a las columnas no muy usadas
frecuentemente del bloque B-tree como una opcin de rea de almacenamiento de
overflow. Esto limita el tamao y contenido de la porcin de registros actualmente
almacenados en el bloque leaf B-tree, resultando un B-tree mas pequeo y un
acceso ms rpido.
Reduccin de almacenamiento
Las tablas organizadas por indices mantienen una estructura de almacenamiento
sencillo, el ndice B-tree. Los valores de las columnas que son llave primaria son
almacenados nicamente en el ndice B-tree y no son duplicados ni en la tabla ni
en el ndice, como pasa en un conjunto de tablas organizadas convencionalmente.
El rengln de una tabla organizada por ndices est ordenada con base a la llave
primaria, y aunque cada ndice generado ocupa espacio de almacenamiento, un
significativo ahorro en el espacio para el almacenamiento se puede obtener a
travs del uso de compresin de llaves
ncremento de 24x7 en disponibilidad
Las tablas organizadas por indices utilizan ROWD's lgicos basados en la llave
primaria. El uso de ROWD activa la reorganizacin en linea y ese proceso no
afecta los indices secundarios los cuales son revalidados despus de una
reorganizacin. Esta capacidad reduce o elimina el tiempo fuera que se
generalmente se utiliza para la reorganizacin de indices secundario, haciendo
una organizacin de ndices por tablas beneficiando a 24x7 aplicaciones.
Escalabilidad incremental
Las tablas organizadas por ndices son altamente escalables por su soporte para
particionar y realizar operaciones en paralelo. El rango de particin y la bsqueda
de particiones en tablas organizadas por indices son como las columnas LOB en
particiones, que son soportadas por las tablas organizadas por indices. Las
consultas en paralelo y el DML paralelo tambin son soportadas, Las consultas
sobre tablas organizadas por ndices incluyen una particin basada en la
optimizacin optima de flujos de ejecucin.
- 24 -
De fcil uso y funcionalidad completa
La manipulacin de aplicaciones en tablas organizadas por indices solo son como
una tabla ordinaria, manipuladas con sentencias estndar SQL. Todas las
interfaces de programacin, incluyendo PL/SQL, OC y JDBC pueden accesar
tablas organizadas por indices. Todos los complementos de Utilerias y
herramientas de Oracle son soportadas por ste tipo de organizacin, incluyendo
el SQL*Loader, MPORT/EXPORT y el transporte de los tablespaces,
especficamente par el punto de recuperacin de operacin usando el Oracle
Recovery Manager (RMAN).
Caractersticas de la llave:
Funcionalidad completa en la tabla
Caractersticas del performance:
Soporta segmentos de OVERFLOW
Compresin de llaves
Nuevos indices secundarios de bitmaps sobre OT's no particionados
Nueva gua en linea para un DBA invitado reacondicionado sobre indices
secundarios
Opcin a recolocacin de columnas
Caractersticas de escalabilidad:
Rango de particiones
Nuevo particionamiento Hash
Nuevas columnas LOB particionadas en OT's
Querys paralelos
Nuevo DML paralelo
Soporte para vistas materializadas
Caractersticas de disponibilidad:
Movimiento en linea
Reorganizacin en linea
ndices secundarios lgicos
Nueva creacin y reconstruccin de indices en linea
Nuevos ndices de COALESCE en linea
Nuevos movimientos en linea de segmentos de flujo
Nueva creacin y reconstruccin de indices de llave comprimida.
7. MPLEMENTACN DEL DSEO CONCEPTUAL (MODELO
ENTDAD - RELACN)
El modelo Entidad/Relacin (Chen 1976) es un modelo de datos semntico cuyo
objetivo inicial era vencer algunas de las dificultades mostradas por el modelo
relacional, al que pretenda sustituir. Concretamente, pretenda dotar de
"significado" a las estructuras de datos, carentes del mismo, del modelo relacional.
En la prctica, este modelo de datos no ha llegado a implementarse en ningn
DBMS comercial, pero ha tenido una enorme repercusin como herramienta de
modelado de bases de datos (paradjicamente, bases de datos relacionales),
existiendo hoy en da herramientas de diseo conceptual que incorporan la
totalidad de sus conceptos e incluso productos que transforman diagramas
conceptuales E/R en bases de datos reales en diversos formatos.
- 25 -
Consideramos que el modelado E/R se ha convertido en estndar para el diseo
de bases de datos relacionales, por lo que lo utilizaremos para describir nuestra
implementacin. Esta aseveracin se ve reforzada por la eleccin de este modelo
de datos en proyectos importantes, nos referimos a Chen (1976,1983).
En el modelo Entidad/Relacin, el UoD/mundo/empresa/seccin de la realidad se
representa mediante un nmero muy reducido de conceptos semnticos bsicos:
el mundo est compuesto de entidades; una entidad es cualquier objeto
distinguible relevante en el mundo en cuestin (los profesores y cursos en el
mundo acadmico de nuestro ejemplo anterior). Estas entidades poseen un
nmero indeterminado de #ro#iedades, que son "trozos" de informacin que
describen a las entidades de uno u otro modo. Cada una de las entidades tiene
una identidad, esto es, son identificables de forma nica. Grupos de entidades
relacionadas mantienen relaciones con otros grupos de entidades. Tambin
existen s&!ti#os de entidades: la entidad E2 es un subtipo de la entidad E1 si y
slo si cada E2 es tambin un E1.
Se supone que mediante estos simples componentes se puede modelar cualquier
"seccin de realidad". Aplicando estos conceptos al submundo que nos
proponemos modelar, el lexicn, podramos considerar a los distintos lexemas
como las entidades centrales que lo componen. Los lexemas tienen ciertas
propiedades (morfolgicas, sintcticas, semnticas) y mantienen ciertas relaciones
con otros lexemas (sinonimia, hiperonimia). Esto es una enorme simplificacin del
asunto, pero nos puede servir para mostrar el mod&s o#erandi que el modelo nos
impone.
El modelo E/R aporta una herramienta de modelado para representar las
entidades, propiedades y relaciones: los diagramas Entidad/Relacin. Mediante
stos, el esquema conceptual abstracto puede ser mostrado grficamente y
mantener una independencia conceptual con respecto a la implementacin
propiamente dicha. En realidad, podemos hacer que los diagramas sean un reflejo
fiel de las relaciones, interrelaciones y atributos del modelo relacional de datos o
podemos englobar diversas relaciones en una sola entidad o conjunto de
propiedades.
- 26 -
8. ADMNSTRACN DE LA SEGURDAD DE LA BASE DE DATOS
Los sofisticados mecanismos de seguridad de Oracle controlan el acceso a los
datos sensibles utilizando un conjunto de privilegios. En funcin del nombre con el
que se conectan a la base de datos, a los usuarios se les conceden derechos para
consultar, modificar y crear datos. Los clientes usan estos mecanismos para
asegurarse de que ciertos usuarios pueden consultar los datos de carcter
sensible, mientras que a otros se les niega dicha posibilidad.
Realizacin de copias de seguridad y recuperacin
Oracle proporciona sofisticados procedimientos de realizacin de copias de
seguridad y recuperacin de los datos. Las copias de seguridad permiten crear
una copia secundaria de los datos de Oracle; los procedimientos de recuperacin
- 27 -
restauran los datos a partir de una copia de seguridad. La estrategia de copias de
seguridad y recuperacin de Oracle permite minimizar la prdida de datos y el
tiempo para cuando se produce un problema. Oracle Server tambin proporciona
esquemas de copia de seguridad y recuperacin que permiten un acceso
ininterrumpido a los datos 7 das a la semana, 24 horas al da y 365 das al ao.
Rollback y Redo
Fases en la ejecucin de una sentencia
Cacheo de bloques de datos y rollback (si no lo estaban)
Bloqueo de datos
Copia del viejo valor en segmentos de rollback
Copia del nuevo valor en buffers de redo log
Modificacin de los bloques de datos
Rollback Redo
Alta (NSERT) Clave Registro completo
Baja (DELETE) Registro completo Clave
Modificacin (UPDATE) Clave y valor modificado
anterior
Clave y valor modificado
posterior
Consulta (SELECT) - -
Efecto de la evolucin de un bloque oracle de datos sobre un bloque oracle de
rollback
Segmentos de rollback
Deshacer cambios (SET TRANSACTON, SAVEPONT, COMMT,
ROLLBACK)
Consistencia en lectura para otras transacciones
Recuperacin en un estado consistente en caso de fallo
Database log mode
Montada no abierta
SVRMGR>shutdown
SVRMGR>startup mount
SVRMGR>startup nomount + alter database mount;
- 28 -
SVRMGR>alter database archivelog;
SVRMGR>alter database noarchivelog;
c:\orant\database\log1orcl.ora, ...
Automatic archival
SVRMGR>archive log list
SVRMGR>archive log start
SVRMGR>archive log stop
initsid.ora>log_archive_start = true
log_archive_dest
log_archive_format
c:\orant\database\archive\
Usuarios de ORCLE
Usuario Password por
defecto
sys change_on_install
system manager
scott tiger
internal oracle
sys oracle
En una Base de Datos Oracle la confidencialidad puede ser relativa a:
1. Los objetos de la Base de Datos fsica
2. Las operaciones sobre la instancia de Base de Datos, es decir, sobre
Procesos (servicios, listeners, demonios, programas residentes,
ejecutables sin interfaz)
Recursos (estructuras de memoria RAM, buffers, datos)
Cambio de passwords
Cambiar la password del listener
c:\orant\bin>lsnrctl80.exe
editar el archivo listener.ora
set password vieja_password
stop
set password nueva_password
start
Nota: el password slo se comprueba en el stop
Cambio de passwords de usuarios de la base de datos
En cuanto a la confidencialidad relativa a los objetos de la Base de Datos fsica,
los nombres de los usuarios y sus passwords encriptadas se almacenan en la
propia base de datos.
SQL>select * from dba_users;
Usuari
o
Comando
- 29 -
Sys alter user sys identified by
change_on_install;
Syste
m
alter user system identified by
manager;
Scott alter user scott identified by tiger;
Mtodos de autentificacin para operaciones sobre la instancia
En cuanto a la confidencialidad relativa a operaciones sobre la instancia, existen
dos formas de autentificacin. Los mtodos de autentificacin para operaciones
sobre la instancia son:
1. Por sistema operativo
2. Por archivo de passwords
Mtodos recomendados
Tipo de Administracin hay una conexin
segura?
Mtodo recomendado
Local si por archivo de passwords
o por sistema operativo
Local no por archivo de passwords
o por sistema operativo
Remota si por archivo de passwords
o por sistema operativo
Remota no por archivo de passwords
Mtodos de autentificacin utilizados
Sistema Operativo Mtodo utilizado
Unix y VMS por sistema operativo
NT por archivo de passwords
Configuracin
En c:\orant\database\initorcl.ora
Autentificacin por Sistema Operativo Autentificacin por archivo de
passwords
remote_login_passwordfile = none remote_login_passwordfile = exclusive
remote_login_passwordfile = shared
remote_login_passwordfile = shared indica que el archivo de passwords puede ser
compartido por varias bases de datos, pero entonces los nicos usuarios
permitidos sern SYS y NTERNAL
En la autentificacin por Sistema Operativo, Oracle comprueba que el usuario del
Sistema Operativo posee los roles del Sistema Operativo:
OSDBA
OSOPER
y los hace equivalentes a los modos de conexin de Oracle:
SYSDBA
SYSOPER
SQL>connect scott/tiger@orcl as sysdba
- 30 -
SQL>connect scott/tiger@orcl as sysoper
Por ejemplo, sys no puede hacer shutdown conectandose como:
SQL>connect sys/change_on_install
pero s como
SQL>connect sys/oracle as sysdba
El rol del Sistema Operativo Supone
OSOPER Permiso para realizar las acciones
STARTUP, SHUTDOWN, ALTER
DATABASE OPEN/MOUNT, ALTER
DATABASE BACKUP, ARCHVE LOG,
RECOVER, y incluye el privilegio
RESTRCTED SESSON
OSDBA Todos los privilegios con ADMN
OPTON, el OSOPER y el comando
CREATE DATABASE
Cambio de la password del usuario internal
1. Borrar o mover el archivo C:\orant\database\pwdorcl.ora
2. Ejecutar
c:\orant\bin>orapwd80.exe
file=c:\orant\database\pwdorcl.ora
password=oracle
Suplantacin de un usuario
1. Obtener y copiar la password encriptada
SQL>select password from dba_users where username='SCOTT';
2. Modificar la password
SQL>alter user scott identified by nueva;
3. Realizar las acciones deseadas
4. Restaurar la password
SQL>alter user scott identified by values 'F894844C34402B67';
Gestin de privilegios y recursos
- 31 -
Conceptos de gestin de privilegios y recursos
Concepto Significado
Privilegio Permiso para realizar una accin, asignable a un usuario o un rol.
Rol Conjunto de privilegios, asignables a un usuario o un rol.
Usuario Coleccin de objetos y privilegios identificado con un nombre y
password.
Perfil Conjunto de restricciones relativas al uso de recursos, y asignable
a usuarios. Un usuario slo puede tener un perfil.
Recurso Uso susceptible de ser restringido, asignable a un perfil.

Roles Predefinidos por Oracle (select * from dba_roles;)
CONNECT
RESOURCE
DBA
EXP_FULL_DATABASE
MP_FULL_DATABASE
DELETE_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
SELECT_CATALOG_ROLE
Recursos en Oracle (select * from user_resource_limits;)
COMPOSTE_LMT
SESSONS_PER_USER
CPU_PER_SESSON
CPU_PER_CALL
LOGCAL_READS_PER_SESSON
LOGCAL_READS_PER_CALL
DLE_TME
CONNECT_TME
PRVATE_SGA
Limites en uso del espacio en disco (select * from dba_ts_quotas;)
ALTER USER SCOTT QUOTA UNLMTED ON USER_DATA;
ALTER USER SCOTT QUOTA 5M ON TEMPORARY_DATA;
ALTER USER SCOTT QUOTA 0 ON SYSTEM;
Para la gestin
de
Se utilizan los comandos
Privilegios GRANT (conceder un privilegio a un usuario o a un rol)
REVOKE (denegar un privilegio a un usuario o a un rol)
Roles CREATE ROLE (crear)
ALTER ROLE (modificar)
- 32 -
DROP ROLE (borrar)
SET ROLE (activar, desactivar)
GRANT (conceder un permiso o un rol a un rol)
REVOKE (denegar un permiso o un rol a un rol)
Usuarios CREATE USER (crear)
ALTER USER (modificar)
DROP USER (borrar)
GRANT (conceder un permiso o un rol a un usuario)
REVOKE (denegar un permiso o un rol a un usuario)
Perfiles y
Recursos
CREATE PROFLE (crear)
ALTER PROFLE (modificar)
DROP PROFLE (borrar)
ALTER USER ... PROFLE (asignar a un usuario)
CREATE USER ... PROFLE (asignar a un usuario)
Activacin de perfiles

Estado de la Base de
Datos
Accin
Base de Datos Parada RESOURCE_LMT = TRUE en
c:\orant\database\initorcl.ora
Base de Datos
Arrancada
ALTER SYSTEM SET RESOURCE_LMT = TRUE;
Vistas ms relevantes
Significado
Usuarios dba_users user_users all_users
Roles dba_roles
Roles asignados a roles o
usuarios
dba_role_privs user_role_privs
Privilegios asignados a
roles o usuarios
dba_sys_privs
Permisos sobre tablas
asignados a roles o
usuarios
dba_tab_privs
Roles asignados a
roles
role_role_privs
Privilegios de cada rol role_sys_privs
Lmites de recursos user_resource_limits
Perfiles y sus lmites de
recursos asociados
dba_profiles
Lmites de recursos en
cuanto a restricciones en
claves
user_password_limit
s
Lmites de recursos en
cuanto a espacio mximo
dba_ts_quotas user_ts_quotas
- 33 -
en tablespaces
Oracle 9i Advanced Security Release 2
Enterprise User Security
Passwords basados en Enterprise User Security
La administracin de cuentas consumen tiempo y representa una actividad
costosa en muchas organizaciones. Por ejemplo, los usuarios pueden perder su
password, cambiar de roles o dejar la compaa. Adems de tiempo que se utiliza
para la administracin de usuarios, los campos estn abiertos para el manejo de
datos perdidos. Para implementar los password basados en autenticacin, Oracle
Advanced security provee de un ambiente para configuracin de usuarios de fcil
uso y simplificado, con una interfaz de administracin amigable. Este tipo de
administracin reduce los problemas de overhead no solo para los usuarios sino
tambin para los certificados emitidos por cada usuario, reduciendo asi el costo
que implica el tiempo utilizado por el administrador para esa tarea que
normalmente se haca manualmente. Para comunidades de muchos usuarios, se
puede accesar a multiples aplicaciones en ambientes heterogneos usando
passwords basados en autenticacin. Adems, las aplicaciones que usen
versiones de la BD Oracle cliente puede tomar ventaja de sta caracterstica, ya
que puede no hacer cambios al cdigo en cualquier actualizacin del software en
el cliente. Debido a que los usuarios y sus credenciales son almacenados en el
directorio nternet de Oracle, ese directorio en el servidor disfruta del mismo nivel
de proteccin y seguridad tal como si estuviera almacenado en la BD. La
comunicacin entre el directorio nternet de Oracle y la BD continua siendo
rigurosamente segura por el SSL como medida de seguridad para el usuaro final.
User Migration Utility
En Oracle 9i Advanced Security Release 2, la administracin de los usuarios es
simplicada con las herramientas y utilerias de la migracin de usuarios. Estas
permiten al administrador migrar los usuarios definidos en la BD para el directorio
nternet de Oracle. Esta migracin de usuarios ahora es referenciada como
"password authenticated enterprise users. El administrador y el usuario final
disfrutan de los beneficios de la administracin de usuarios centralizados y un
login/password sencillo para la BD respetivamente.
Three-Tier Enterprise User Security
Oracle 9i Advanced Security Release 2 continua con el soporte para la seguridad
de usuarios en la empresa en un ambiente de 3 hilos. La identidad del usuario
ahora podr ser intercambiada a travs del tercer hilo, lo que significa un
certificado de X.509, un Distinguished Name(DN), o nombre de usuario y
password. La autenticacin y las caracterrsticas del control de acceso son
implementadas en un repositorio sencillo que permite a las aplicaciones liberar los
beneficios de una identidad de usuario sencilla. Manteniendo la identidad del
usuario a travs de los hilos de una aplicacin, permite a la empresa escribir
aplicaciones escalables mientras se provee de los beneficios de auditorias de
acceso simplificadas y polticas de control de acceso.
- 34 -
Advanced Encryption Standard
Advanced Encryption Standard es un nuevo estndar para procesar informacin
suceptible a ser publicada (Federal nformation Processing Standard (FPS)),
puede ser usado como medida de proteccin en las organizacones
gubernamentales. Oracle 9i Advanced Security Release 2 le proporciona a las
agencias de gobierno y de negocio la oportunidad de utilizar un fuerte algoritmo de
encripcin para proteger la informacin clave.
Strong Authentication with Flexibility
La autenticacin se adpata como en RADUS, Entrust, Cybersafe y Kerberos que
son cargados dinmicamente. Los administradores no necesitan hacer grandes
tomas de desiciones para el servicio de autenticacin, un administrador puede
seleccionar y decidir el servicio de autenticacin como en RADUS, Entrust,
Cybersafe o Kerberos en cualquier momento. Oracle Advanced Security carga
dinamicamente los adaptadores de autenticacin apropiados, eliminando la
recompilacin compleja o la tarea de religar las librerias.
Kerberos
Kerberos goza de mucha popularidad, ahora en varios sistemas operativos se
incluye Kerberos Security Server. Oracle 9i Advanced Security continua
proporcionando un cliente de Oracle que puede ser usado bajo la V5 de Kerberos
autenticado para la BD. La version 2 de Oracle 9i Advanced Security, hace una
adaptacin de Kerberos, el cual puede ser usado en la capa media entre el
servidor y la BD (middle tier), de tal forma que provee seguridad end-to-end con el
servicio de seguridad de Kerberos en el ambiente de 3 capas (3 tier environment).
Como las credenciales de kerberos pueden ser liberadas para activar la capacidad
que tiene de firmas sencillas, sta versin contina propiorcionando la firma
sencilla en el ambiente (arquitectura) de 3 capas.
Soporte para RADUS
Lo nuevo en la versino 2 de Oracle 9i Advanced Security, es el soporte para
autorizaciones externas de RADUS, adems de los roles de conexin en la BD
Oracle para usuarios RADUS. Se utilizan 2 modos de autenticacin en RADUS:
1. Public Key nfrastructure (PK)
Oracle 9i Advanced Security versin 2 puede ser usado para autenticar usuarios
con certificados digitales en un ambiente de PK. Esto contina permitiendo a los
clientes y servidores autenticar sobre SSL utilizando certificados 509v3. Las llaves
primarias y los certificados son almacenados en un Oracle Wallet, que es un
contenedor seguro para salvaguardar la identidad de los clientes y/o los
servidores.
SSL Hardware Acceleration
Oracle 9i Advanced Security versin 2 permite a la empresa delegar operaciones
criptogrficas de llaves pblicas complejas para acelerar la rapidez en los
dispositivos del hardware en transacciones SSL.
- 35 -
Oracle Wallet Manager
Oracle Wallet Manager es una herramienta GU que permite al administrador crear
wallets para usuarios en su empresa. Usando sta herramienta, el administrador
y/o usuario puede almacenar y recuperar de manera opcional wallets desde el
Directorio de nternet de Oracle (Oracle nternet Directory). Los usuarios tiene la
posibilidad de almacenar mltiples certificados en un wallet. La herramienta de
adminsitracin del wallet, proporcionan un fuerte algoritmo de encripcion uasndo el
algoritmo Triple-DES (3DES) para seguridad de wallets. Existe un soporte para
cada wallet de mltiples certificados a travs del Oracle Wallet Manager y el
Oracle Enterprise Login Assistant, que inclye: S/MME signing certificate, S/MME
encryption certificate y code-signing certificate. Esto permite interactuar con otras
aplicaciones de Oracle Corporation, tales como Oracle9iAS Email y Oracle 9iAS
Unified Messaging, para diferenciar los certificados utilizando un cdigo de firma y
encripcin.
La fortaleza de encripcin de un wallet se debe a el uso de llaves privadas
asociadas con certificados X.509 y encriptadas con 3 llaves Triple-DES (3DES), el
cual es un estndar industrial fuerte de algoritmos de encripcin que provee la
mejor seguridad para Oracle wallets. El mdulo de administracin de los
passwords forza a utilizar las las guas de polticas para generacin de passwords
seguros y fuertes.
Se tiene un soporte para mltiples formatos de Wallet en el stack de SSL, Oracle
9i Advanced Security puede almacenar mltiples formatos de wallet incluyendo
los certificados X509v3, Entrust Profiles y Microsoft Certificate Store en Oracle
Wallets. Esto permite a la organizacin liberar su infraestructura existente de PK
miientras se incorpora el ltimo estndar
Oracle9i Label Security
Los sistemas de informacin tradicionales no permiten que los datos sean
separados en diferentes sensitivities dentro de una BD sencilla. Como resultado
de ello, muchas organizaciones se ven forzadas a separar fsicamente los datos
en diferentes maquinas, construyendo cdigo de aplicacin muy complejo.Oracle9i
Label Security es una opcion de seguridad para Oracle9i Enterprise Edition y
reduce de una forma dramtica las necesidades de informacin integrada, reduce
la complejidad en el cdigo de las aplicaciones y proporciona un control manual o
fsico para proteger los datos . Oracle9i Label Security accesa a los datos
mediante comparaciones de etiquetas sensitivas asignadas a una parte del dato
con la autorizacin de la etiqueta asignada para una aplicacin del usuario. Este
tipo de acceso permite que los datos sean separados en diferentes sensitivities en
una BD sencilla. Las aplicaciones en el hist, la consolidacin de la BD, la
seguridad nacional y la privacidad solo son algunas de las reas que se ven
beneficiadas por el Oracle9i Label Security. La versin 2 de Oracle9i Label
Security, ahora proporciona ms flexibilidad y capacidad de control de acceso.
Access Control
El control de acceso discresional (Discretionary access control (DAC)), es utilizado
para darle el acceso de los datos a los usuarios, a travs de privilegios de la BD
tales como SELECT, NSERT, UPDATE y DELETE. El acceso a los datos es
controlado en base a la identidad del usuario ya sus privilegios de acceso.
- 36 -
Standard Oracle9i soporta la extensin DAC y la encripcin de datos en un nivel
fino de granulidad, mas la satisfaccin de los requerimientos de seguridad.
Oracle9i Enterprise Edition con Oracle9i Label Security soportan ambos DAC y
etiquetas basadas en control de acceso usando etiquetas sensitivas, provee de un
control de acceso multidimensional a travs de niveles sensitivos jerrquicos,
informacin compartamentalizada y grupos/organizaciones jerrquicas.
Administracin de polticas flexibles y altamente customizables
Las polticas de Oracle9i Label Security son colecciones de etiquetas sensitivas,
autorizaciones de etiquetas de usuario y opciones de forzar a grupos juntos y dar
un nombre nico. El nombre de la poltica asignada por el administrador de la
aplicacin o el oficial en seguridad, permite que las polticas de seguridad sean
facilmente administrables y aplicadas a las tablas de la aplicacin o a los
esquemas de la BD. Una vez aplicados a una tabla de la aplicacin, la poltica de
seguridad puede ser facilmente afinada con Oracle9i Policy Manager (OPM), de
acuerdo al nivel de forzamiento o rigidez que se quiera tener de la poltica
declarada. La opcin de encripcin de Oracle Advanced Security es utilizada para
encriptar todoel trfico que fluye entre el Oracle9i Policy Manager y la BD Oracle.
Administracin de polticas Oracle 9i
Oracle9i Policy Manager es un uevo GU de Java para la administracin de
polticas Oracle Label Security tales como definicin de polticas de usuario Virtual
Private Database (VPD). Utilizando Oracle9i Policy Manager se pueden crear
polticas, definir componentes de etiquetas, crear etiquetas, establecer
autorizaciones de etiquetas por usuario, customizar las opciones de forzamiento,
apicar polticas a los esquemas y a las tablas, borrar polticas desde los esquemas
y las tablas, desactivar polticas, definir un contexto de aplicacin y crear grupos
de polticas VPD. Oracle9i Policy Manager es la herrmienta de administracin para
manipular polticas de proteccin de informacin a nivel renglon.
Administracin de etiquetas y etiquetando datos
Las etiquetas de Oracle9i Label Security son manipuladas utilizando Oracle9i
Policy Manager o los comandos en linea AP de Oracle9i Label Security. Las
definiciones de etiquetas son almacenadas en la BD Oracle9i para un fcil
mantenimiento y seguridad. Oracle Label Security proporciona numerosos
mtodos para etiquetar datos dependiendo de las opdiones de forzamiento
especificadas. Esto inlcuye la opcion de forzamiento de DEFAULT_LABEL, la cual
- 37 -
se usa como una etiqueta default asociada con el usuario. La etiqueta puede estar
dentro del rango de autorizacin de etiquetas del usuario. La funcion LABEL tiene
la opcin de referencia a funciones PL/SQL, las cuales calculan la etiqueta con
base a valores contenidos en datos u otros factores.
Redes, Replicacin y Ambientes de Distribucin
Las polticas de Oracle9i Label Security se forzan en la BD. Las polticas son via
the nternet, cliente/servidor, n-tier, localmente o atravz de la liga a la BD.
Oracle9i Label Security soporta el estndar de replicacin y replicacin avanzada,
incluyendo la replicacin multimaster y la vistas materializadas (snapshots).
Las BD distribudas tienen el estndar de Oracle9i Label Security: El usuario final
local conectado es un usuario remoto particular. Con la proteccin etiquetada de
los datos de Oracle9i Label Security, se puede conectar local o remotamente. Si el
usuario remoto tiene la etiqueta apropiada, puede accesar a los datos, si no, no
podr accesar a los datos. El conjunto de ligas a la BD, la conexin a la bD remota
y los identificadores de usuario pueden ser asociados con la sesion remota. Las
autorizaciones de Oracle9i Label Security sobre la BD remota estn basadas en la
identificacin de usuarios remotos y en la liga a la BD.
Auditorias
Para aplicar una auditoria por tracking, Oracle9i Label Security utiliza las
operaciones administrativas propias y los privilegios definidos en las polticas.
Cuando se crea una nueva poltica, la columna etiquetada para esa poltc se
agrega a la audit trail de la BD. La etiqueta de la columna es creada,
independientemente de que en una auditoria se active o desactive en una
auditoria del sistema operativo. En cualquier caso un registro se escribe a la tabla
de auditoria, cada poltica provee de una etiqueta para cada registro que indica la
etiqueta de sesion. El administrador puede crear vistas de auditoria utilizando un
paquete AP para desplegar esas etiquetas.
Export
Oracle9i Label Security tiene la capacidad de hacer exportaciones al worldwide.
Evaluaciones
Oracle9i Label Security puede ser evaluado sobre el SO/EC 15408 Common
Criteria, que son evaluaciones de seguridad que aseguran una independencia
entre los mecanismo de proteccin de seguridad con Oracle9i Label Security.
Performance
Oracle9i Label Security es altamente optimizable para seguridad a nivel de
renglon.
- 38 -
9. ADMNSTRACN DE OBJETOS
Usuarios: La unidad bsica de almacenamiento de una base de datos Oracle es
la Tabla, sin embargo, para tener una mejor estructuracin de la informacin
dentro de la base de datos Oracle, las tablas se agrupan a su vez dentro de los
Usuarios, llamados tambin Esquemas. Por lo tanto, un usuario puede tener cero
o muchas tablas y se dice que es el propietario de dichas tablas. Adems, una
tabla pertenece a un solo usuario o esquema.
Cada vez que se crea una base de datos nueva, hay una serie de elementos que
no pueden faltar en ella y siempre se crean. Los dos principales elementos que se
crean son el usuario SYS y el usuario SYSTEM. Toda base de datos Oracle tiene
siempre estos dos usuarios.
Por qu se crean estos dos usuarios automticamente?. Para poder gestionar la
base de datos recin creada, el sistema Oracle necesita tener informacin sobre
las tablas que existen en la base de datos, los usuarios que existen, los ndices
que se van creando y borrando, la cantidad de datos que hay en cada tabla, etc.
Por lo tanto, necesita unas tablas en las que ir almacenando toda esta
informacin. A este conjunto de tablas se le llama diccionario de la base de datos
y, como hemos dicho, toda tabla de una base de datos Oracle debe pertenercer a
un usuario, por eso se crean siempre estos dos usuarios especiales, SYS y
SYSTEM que son los propietarios de las tablas del diccionario de la base de datos
y, por lo tanto, son lo ms importante para que funcione correctamente la base de
datos. Si por algn error se borraran tablas de alguno de estos usuarios
especiales, se podra corromper toda la base de datos.
Lo normal en los proyectos informticos es que, una vez que se crea una base de
datos Oracle vaca, es decir, solamente existen estos dos usuarios con sus tablas,
se crean nuevos usuarios y en cada uno de esos usuarios se van creando las
tablas necesarias para cada proyecto.
Para crear un nuevo usuario, se le debe indicar un nombre, un password o
contrasea, un tablespace por defecto en el que se crearn todas las tablas de
dicho usuario y un tablespace temporal en el que se ejecutarn las select que
necesitan de ordenaciones. Estos conceptos se irn aclarando en los siguientes
captulos. La sentencia podra ser como la que sigue:
Create user nombre_de_usuario identified by pasword_de_usuario default
tablespace
nombre_tablespace_default temporary tablespace nombre_tablespace_temporal;
Si por cualquier motivo queremos borrar un usuario deberemos usar el comando
drop, pero si ya hemos creado tablas en este usuario, Oracle no nos dejar, nos
indicar este hecho y, si queremos borrar el usuario y todas sus tablas debemos
aadir la coletilla "cascade" a la sentencia.
Drop user nombre_de_usuario;
Cada vez que el servidor Oracle es arrancado, la SGA/System Global Area) es
colocada en memoria. Si mltiples usuarios estn conectados a la misma SGA,
sta es compartida entre estos. La SGA es a veces llamada Shared Global rea.
- 39 -
Una sentencia SQL es colocada en un rea SQL compartida basndose en un
algoritmo "hash aplicado a este comando, por lo tanto, slo los comandos que
son completamente idnticos sern dirigidos a la misma ubicacin en memoria.
Los tipos de datos almacenados en el cache del D.D. son los siguientes:
Nombres de todas las vistas y tablas de la B.D.
Nombres y tipos de datos de todas las columnas en las tablas.
Privilegios de todos los usuarios oracle.
Tablas: La forma en que se almacenan los datos en las tablas est estructurada
de manera que resulte muy sencillo su acceso y en cada tabla guardaremos los
datos que tienen relacin o que definen una idea del mundo real.
Cuando creamos una tabla de Oracle, hay que indicar su nombre, qu informacin
y de qu tipo vamos a guardar en ella. Cuando creamos una tabla, sta se crea
vaca, es decir, no contiene datos. Para crear los datos se deben ir ejecutando
sentencias de manipulacin de datos. La instruccin bsica para crear un nuevo
registro es la INSERT, Existen 3 operaciones bsicas ms que se pueden realizar
sobre las tablas. La sentencia UPDATE se utiliza para modificar los valores de algn
registro o fila ya existente, Para borrar registros de una tabla se utiliza la sentencia
DELETE y finalmente, para consultar datos de nuestra tabla la sentencia utilizada es
la SELECT, con ella podremos hacer todas las preguntas que se nos ocurran a
nuestra base de datos.
Hay una serie de bases de datos llamadas orientadas a objetos, donde el
elemento de trabajo en lugar de la tabla es el objeto, que incorpora datos y
procedimientos. Pero este enfoque todava est en estudio y no parece clara su
ventaja sobre el enfoque relacional.
Oracle aprovecha un nuevo enfoque, el objeto-relacional. Es un punto medio entre
los dos anteriores, permite a los usuarios utilizar la base de datos de forma
relacional, pero incorpora extensiones de las bases de datos orientadas a objetos.
Oracle incluso soporta el enfoque orientado a objetos. El hecho que de permite los
tres objetos hace que se pueda trabajar de forma relacional y aadir cualquier
mejora orientada a objetos. Pero el ncleo de Oracle sigue estando pensado para
el enfoque relacional.
Mejoras procedentes del enfoque orientado a objetos
Tipos abstractos. Permiten crear dominios complejos para almacenar datos en los
atributos de las tablas.
Tablas anidadas. Permiten seleccionar valores dentro de una lista para un
atributo. Representan relaciones uno a varios, donde el contenido de la tabla
representa la tabla relacionada con la actual. Sirven por ejemplo para elegir un
mes de una lista con los doce meses.
2arra3s4 Es una coleccin de valores que permite seleccionar varios valores
relacionados con un atributo de una tabla. Por ejemplo permitira elegir varias
asignaturas en el mismo alumno (lo que est en desacuerdo con el modelo
relacional, pero es que en realidad la informacin del 2arra3 se almacena aparte)
Objetos grandes. Se trata de los llamados LOB (large o!5ect !inar3). Permiten
almacenar textos largusimos, archivos externos (de los que slo se almacenar la
direccin) y datos binarios.
- 40 -
vistas-objeto. Permiten crear objetos a partir de las tablas de datos.
Vistas
Una vista es una especie de ventana dentro de una tabla. Es una estructura lgica
que tiene la apariencia de una tabla, sin llegar a serla. El objetivo de crear vistas
es el de tener que prescindir de la tabla cuando se desea permitir la manipulacin
de datos a otros usuarios; as como tambin de prevenir que se altere de manera
involuntaria el contenido de la informacin ms sensible que pudiera encontrarse
en ciertas tablas.
Las vistas se forman haciendo una seleccin de campos de una o varias tablas.
Tambin se puede reemplazar una vista que ya existe con una sintaxis diferente,
manteniendo su nombre.
La sintaxis de la creacin de vistas es:
CREATE [OR REPLACE] VEW nombre_vista AS
SELECT columna1, columna2, ...
FROM tabla1, ...
WHERE columna > valor ;
Secuencias
A menudo es preciso generar nmeros en forma ordenada para implementar, por
ejemplo, una clave primaria en una tabla o garantizar que esos nmeros no se
repiten y van siempre en un orden predefinido por el desarrollador (no
necesariamente secuenciales).
La forma tradicional de efectuar lo anterior sera almacenar el ltimo nmero
utilizado en un registro especial, bloquearlo, obtener el prximo valor, actualizar el
registro, desbloquearlo y utilizar el nmero. Sin embargo, para eso Oracle
implementa los objetos denominadas secuencias, que permiten hacer lo anterior
de manera transparente para el usuario.
Cuando se define una secuencia se deben indicar, como mnimo, el valor de
partida (valor mnimo) y el incremento.
La sintaxis de creacin de una secuencia es la siguiente:
CREATE SEQUENCE nombre_secuencia
NCREMENT BY nmero
- 41 -
START WTH nmero
MNVALUE nmero [o NOMNVALUE]
MAXVALUE nmero [o NOMAXVALUE]
NOCYCLE [o CYCLE] ;
Los parmetros significan lo siguiente:
ncrement by: ndica la cantidad de incremento de la secuencia.
Start with: Es el valor de partida de la secuencia.
Minvalue: ndica cul ser el valor mnimo de la secuencia.
Maxvalue: Corresponde al valor mximo que puede tomar la secuencia.
Nocycle: Es el valor por defecto para establecer si la secuencia deber
comenzar nuevamente a generar valores una vez que ha alcanzado el
mximo.
Procedimientos almacenados:
Database Buffer Cache: El DBC almacena copias de los bloques de datos ledos
del disco. Su acceso es compartido por todos los usuarios conectados a la Base
de Datos.
Cache miss: la primera vez que un usuario oracle accesa un dato, el proceso
debe copiarlo del disco al cache antes de accesarlo.
Cache hit: cuando el proceso accesa un dato que ya se encuentra en el cache
este puede leerlo directamente en memoria.
Accesar un dato a travs de un cache hit es ms rpido que a travs de un cache
miss. Debido a que el cache tiene un tamao limitado, toda la data del disco no
puede ser colocada en memoria. Cuando el cache est lleno, Oracle escribe datos
que ya se encuentran en este, al disco para hacer espacio para los nuevos datos.
La prxima vez que estos datos escritos a disco sean requeridos originarn un
cache miss.
De cada 10 bloques requeridos 8 deben originar un cache hit.
Redo log. Buffer: Es un buffer circular que contiene la informacin de todos los
cambios realizados a los datos. Sus funciones:
Registrar todos los cambios de datos.
Reconstruye cambios hechos a la B.D. y segmentos de Rollback, cuando es
necesaria una recuperacin.
Puede ser "bypaseada usando la clusula UNRECOVERABLE.
Puede ser "bypaseada por el Oracle Data Loader.
Para maximizar el rendimiento y alojar muchos usuarios, Oracle usa mltiples
procesos llamados "Background Processes.
La cantidad de Procesos en Background corriendo depende de la configuracin de
la B.D. que se use, los nombres de stos procesos son:
* Database Writer (DBWR) * Recoverer (RECO)
* Log Writer (LGWR) * Lock (LCKn)
* Checkpoint (CKPT) * Snap Shot Refresh (SNPn)
* System Monitor (SMON) * Shared Server (Snnn)
* Process Monitor (PMON) * Dispatcher (Dnnn)
* Archiver (ARCH) * Paralell Query (Pnnn)
- 42 -
PMON Y SMON: Reclaman recursos que ya no son requeridos por un usuario.
PMON:
Limpia conexiones terminadas de forma anormal.
Hace "rollback de transacciones sin "commit
Libera bloqueos dejados por procesos terminados.
Libera recursos de la SGA usados por procesos que fallaron.
Rearranca "shared servers y procesos de "dispatcher fallidos
SMON:
Realiza recuperacin automtica de la instancia.
Reclama espacio usado por segmentos temporales ya no usados.
Une reas continuas de espacio libre en los datafiles.
PMON, SMON, LGWR, DBWR. Son procesos obligatorios para levantar y
mantener una instancia oracle, estos procesos no pueden ser controlados
modificando parmetros de inicializacin. Los dems procesos son opcionales.
Si alguno de estos cuatro procesos se cae, la instancia tambin lo hace y debe ser
rearrancada.
Redo Log Files: Mantiene un registro de todos los cambios realizados a los datos
para propsitos de recuperacin:
Son escritos en forma circular.
Deben haber al menos dos grupos de redo log.
Los redo log files deberan ser colocados en los discos ms rpidos y menos
cargados (/O). RAD no recomendado.
Redo log Files Multiplexados
La configuracin recomendada de redo log files, es tener al menos dos miembros
de redo log files por grupo, con cada uno de los miembros en discos diferentes.
Esta configuracin protege de la perdida de un redo log file.
Todos los miembros de un grupo de log files contienen la misma informacin y
son del mismo tamao.
Los miembros del mismo grupo son actualizados simultneamente.
Cada grupo debera tener el mismo nmero de miembros que los otros.
Trace Files y Alert File:
En los directorios especificados en los parmetros BACKGROUND_DUMP_DEST
y USER_DUMP_DEST se generan archivos que contienen informacin de los
errores ocurridos en la B.D. el alert file es uno de estos archivos. En este se
registran, entre otros, los siguientes eventos:
nternal errors (ORA 600), block corruption (ORA 1578)
Operaciones administrtivas (DDL: data definition Language) como renombrar o
crear datafiles, etc.
STARTUP, SHUTDOWN, ARCHVE LOG Y RECOVER
Cambio de secuencia de los Redo Log Files.
Es importante chequear el alert diariamente para detectar problemas antes de que
estos se vuelvan ms serios y mientras disponemos de un respaldo vlido.
Arrancando una instantancia
Ejecutar el server manager (svrmgrl)
Conenect internal /password.
- 43 -
Startup [NOMOUNT/ MOUNT/ OPEN]
Una vez que se ha arrancado una instancia en NOMOUNT o MOUNT se usa el
comando ALTER DATABASE [MOUNT / OPEN] para pasar a un modo superior
al actual.
Bajando una instancia
ejecutar server manager
connet internal /password
Shutdown [NORMAL/MMEDATE/ABORT] donde.
NORMAL: No se admiten nuevas conexiones, oracle server espera que se haya
desconectado el ltimo usuario para cerrar la base de datos. El siguiente "Startup
no requerir recuperacin.
MMEDATE$ Las conexiones actuales de clientes y sus procesos son terminados,
a cualquier transaccin sin "commit se le hace "rollback. Shutdown immediate
cierra y desmonta la base de datos limpiamente, el siguiente "Startup no requerir
recuperacin.
ABORT$ Aborta los clientes y sesiones activos, a las transacciones sin commit no
se le hace "rollback. Esta opcin no cierra ni desmonta la B.D. pero si baja la
instancia (equivale a una falla de la instancia) el siguiente startup requerir
recuperacin (la cual es automtica).
Manejando la estructura de una B.D.
Segmentos de Rollback
Es una porcin de la B.D. que registra los datos antes que fueran modificados por
las transacciones, permitiendo que estos cambios pueden ser reversados
(rollback) bajo ciertas circunstancias.
Una transaccin es una unidad de trabajo que ocasiona cambios a la Base de
Datos, o bloqueos de registros. A cada transaccin le es asignado un d nico, y
es relacionada a uno y slo un segmento de rollback. Un segmento de rollback es
un objeto circular y cada transaccin puede tener muchas entradas. Una
transaccin puede usar el prximo extents si no hay entradas activas en este. Si el
prximo extents a ser usado contiene entradas activas, nuevos extents sern
agregados al segmento de rollback previendo que no se haya llegado al mximo
de extents permitidos.
Parametros de Storage
nitial - tamao en bytes. Por defecto 5, bloques oracle.
Next tamao en bytes. Por defecto 5, bloques oracle.
Maxextents Mximo # de extents para un objeto. El valor por default depende del
Sistema Operativo y el bloque oracle.
Minextents Cantidad de extents alocado al crear un objeto default 1, RBS = 2.
PCTNCREASE Default 50 excepto RBS que no lo usan.
OPTMAL solo RBS Default es null.
FREELSTS - # de listas de bloques libres para inserts en tablas. Default = 1.
FREELSTS GROUPS - gual que el anterior pero para diferentes instancias
usando parallel server Def= 1.
Estos parmetros se aplican a:
Tablas
- 44 -
Clusters
ndices
Segmentos de Rollback
Tablespaces (valores por defecto solamente)
Reglas de Precedencia.
1. Cualquier parmetro asignado explcitamente a un objeto
sobreescribe al asignarlo por defecto en el tablespace que lo
contiene.
2. Cuando no se especifican parmetros explcitamente a un objeto, se
usan los predeterminados del tablespace; en caso de que estos
tampoco existan se usan los predeterminados de Oracle Server.
3. Si los parmetros de Storage son cambiados, los nuevos valores
afectan solo a los nuevos extents alocados.
4. El parmetro OPTMAL aplica solamente a segmentos de rollback.
5. Freelists y Freelists Groups no pueden ser especificados como
predeterminados en el tablespace.
El Bloque Oracle
Un bloque oracle es la mnima unidad de almacenamiento usado por la Base de
Datos. Sus propiedades son:
1. Los bloques oracle corresponden a uno o ms bloques S.O.
2. Su tamao es determinado al momento de crear la B.D. mediante el
parmetro DB_BLOCK_SZE, y es constante en todos los datafiles.
3. El parmetro DB_BLOCK_SZE, tambin define el tamao de cada buffer
en la S.G.A.
4. Una vez que la B.D. es creada el parmetro DB_BLOCK_SZE, no puede
ser cambiado.
5. El tamao por defecto del bloque oracle depende del S.O.
6. Se recomienda que el tamao del bloque oracle sea igual a, o multiplo del
tamao del bloque de S.O.
7. En algunas plataformas el tamao del bloque oracle puede ser muy grande
(por ejemplo 32 K). Este es conocido como grandes bloques oracle.
8. Toda operacin de /O es realizada usando bloques. Oracle Server
mantiene los bloqueos a nivel de registros.
Partes de un bloque oracle:
Header nformacin general como direccin del bloque
y tipo de segmento.
Table Directores nformacin de las tablas en el bloque (clusters)
Row Directores nformacin de las filas en el bloque.
Free Space Bytes aun disponibles en el bloque para inserts o
updates.
RowData Datos de tablas o ndices
Encadenamiento de Registros.
- 45 -
Un registro que no cabe en un bloque es encadenado en mltiples bloques
La pieza inicial del registro permanece en el bloque al que fue dirigido
originalmente.
Cada pieza adicional del registro es colocada en bloques encadenados.
Migracin de Registros.
La migracin de registros ocurre cuando un registro de una tabla es actualizado
(update) y su nuevo tamao es mayor al espacio libre que quedaba en el bloque.
Entonces el registro completo es migrado a un nuevo bloque, asumiendo que este
registro cabe en este nuevo bloque.
El header del bloque permanece en el bloque al que fue dirigido el registro
inicialmente. Es recomendable usar un PCTFREE, suficientemente altos para
evitar excesiva migracin. El performance baja cuando se leen registros migrados
o encadenados, ya que Oracle Server debe leer ms de un bloque para leer un
solo registro.
Disparadores
El mdulo S.)6,orms tiene incorporado una coleccin de procedimientos y
funciones llamados "empaquetados" que se pueden incluir en el cdigo de
procedimientos o disparadores definidos por el usuario.
El disparador es un bloque de cdigo que se activa cuando se pulsa una
determinada tecla u ocurre cierto evento, como puede ser:
1. Mover el cursor hacia o desde un campo, registro, bloque o forma.
2. Realizar una consulta.
3. Validar un dato.
4. Hacer una transaccin al insertar, modificar o eliminar registros de la base
de datos.
Oracle asocia a cada tecla de funcin un procedimiento empaquetado, pudiendo el
usuario redefinir esta asignacin o capturar el disparador para ampliarlo o
modificarlo con su propio cdigo.
A partir de la versin 7 de 1racle el usuario puede almacenar, en forma
independiente, sus funciones y procedimientos sin tener que escribirlos
repetidamente para cada forma, y pudiendo compilarlos independientemente de
las formas que lo usen. Pero, adems, las funciones y procedimientos se pueden
agrupar en un paquete para compartir definiciones, variables globales, constantes,
cursores y excepciones, as como garantizar y revocar los permisos a nivel de
paquete.
En el caso que sea necesario modificar el contenido del paquete, como el mismo
se encuentra almacenado separadamente, no es necesario recompilar nada que
use ese paquete, lo que facilita la gestin y mantenimiento de todos los
procedimientos almacenados como una sola entidad para una determinada
aplicacin.
Adems, en la versin 7, existe un nuevo tipo de disparador llamado de !ase de
datos, que es un procedimiento asociado a una tabla que se activa cuando se
produce un suceso que afecta a esa tabla. Su uso ms comn consiste en la
definicin de restricciones complejas de integridad.
- 46 -
10. UTLERAS DE RDBMS
Oracle cuenta con una gran diversidad de herramientas y utileras que facilitan al
administrador y al desarrollador sus tareas. A continuacin se mencionan las
ms importantes
CONOCENDO DEVELOPER
Developer es una herramientas de desarrollo de Oracle, en donde adems se
implementan el desarrollo de aplicaciones nuevas o ya existentes sobre el Worl
Wide Web. Ya sea para ntranet o nternet, el Developer aprovecha las ventajas
del fcil acceso al Web y es capaz de manejar desde la publicacin de informacin
esttica hasta ambientes que soporten aplicaciones dinmicas complejas.
El Developer 2000 proporciona soluciones que aprovechan los beneficios del Web
mientras que mantiene la rigidez del cliente/servidor. El Web reduce gradualmente
el costo de administracin y mantenimiento de las aplicaciones, mientras que
sigue manteniendo el bajo costo de cliente/servidor. Al mismo tiempo permite
liberar las aplicaciones cliente/servidor existentes, las cuales pueden ser
aplicaciones de misin critica que soportan y muy frecuentemente manejan las
practicas de su negocio. Estas aplicaciones deben ser escalables al nmero de
usuarios y abiertas a cualquier ambiente.
El Developer es una herramienta que nos permite crear formularios en local, es
decir, mediante esta herramienta nosotros podemos crear formularios, compilarlos
y ejecutarlos, pero si queremos que los otros trabajen sobre este formulario
deberemos copiarlo regularmente en una carpeta compartida para todos, de modo
que, cuando quieran realizar un cambio, debern copiarlo de dicha carpeta y luego
volverlo a subir a la carpeta. Este sistema como podemos observar es bastante
engorroso y poco fiable pues es bastante normal que las versiones se pierdan y se
machaquen con frecuencia. La principal ventaja de esta herramienta es que es
bastante intuitiva y dispone de un modo que nos permite componer el formulario
Arquitectura Three-tiered architecture
En muchas aplicaciones actuales cliente/servidor, se corren aplicaciones con
procesos altamente intensos en el cliente. Los datos extrados desde el servidor
de BD remotamente hacia la mquina cliente, puede verse limitada por su poder
de procesamiento y capacidad de memoria.
El Developer/2000 Server soporta una arquitectura three-tiered, la cual aprovecha
los beneficios de ambas implementaciones (cliente/servidor, Web) en una
aplicacin sencilla. En la implementacin Web, las aplicaciones lgicas y de
procesamiento estn enfocadas a la capa de en medio anidadas en los servidores
de aplicacin de una mquina cliente de escritorio.
Tier Hardware
front-end any number of client desktop machines
middle one or more application servers
back-end one or more database servers
- 47 -
Arquitectura Cliente/Servidor contra Arquitectura Web
Hay 2 grandes diferencias entre el desarrollo de aplicaciones cliente/servidor y las
implementaciones en Web.
%liente/Ser2idor4 Las formas que corren en el servidor (y todas las aplicaciones
lgicas) son instaladas en las mquinas de escritorio de los usuarios. A travs de
la aplicacin puede ser incluida la BD, los triggers y las operaciones lgicas,
tpicamente todo el procesamiento de las interfaces de usuario y triggers ocurren
en la mquina del cliente.
7e!4 Las formas que corren en el servidor (y todas las aplicaciones lgicas) son
instaladas sobre el servidor de aplicaciones, no sobre las mquinas cliente. Todo
el procesamiento de triggers ocurre en la BD y en el servidor de aplicaciones
mientras que el procesamiento de las interfaces de usuario ocurren en las formas
del cliente.
UN POCO ACERCA DE DESGNER
Oracle Designer es una herramienta de software para analizar requerimientos de
negocio y para disear y generar sistemas cliente/servidor que satisfagan stos
requerimientos. Oracle Designer incorpora soporte para el modelado de procesos
de negocio, anlisis de sistemas, diseo de software y generacin del sistema.
- 48 -
Oracle designer proporciona un repositorio multiusuario y una integracin cerrada
con Oracle Developer como conjunto de herramientas de desarrollo
cliente/servidor de Oracle. En ste sentido, Oracle Designer permite a las
organizaciones disear y liberar rpidamente sistemas cliente/servidor que pueden
adaptarse a los cambios constantes de los procesos del negocio.
Designer es una herramienta que se conecta a la base de datos y por tanto
creamos los formularios en ella, de esta manera todo el mundo se conecta
mediante Designer a la aplicacin que contiene todos los formularios y no hay
problemas de diferentes versiones, esto es muy til y perfecto para evitar
machacar el trabajo de otros. Pero el principal y ms notable problema es la falta
de un entorno visual para disear el formulario, es decir, nos aparece una
estructura como de rbol en la cual insertamos un formulario, a la vez dentro de
ste insertamos bloques o mdulos que son las estructuras que contendrn los
elementos del formularios, que pueden estar basados en tablas o no.
Los componentes de Oracle Designer
Las herramientas de Oracle Designer estn agrupadas por reas que reflejan las
necesidades primarias de diferentes tipos de usuarios:
Modeling System Requirements
Las herramientas de sta rea se utilizan para: modelar procesos de negocio, re-
examinar los mtodos usados para alcanzar las metas de la organizacin, crear
representaciones diagramticas del proceso de negocio, detalles del registro de la
organizacin, descripcin de requerimientos del negocio a detalle, crea modelos
diagramticos de las entidades, funciones y flujos de datos en el sistema que le
dan vida a la organizacin.
Transforming 8reliminar3 Designs
Utiliza el transformador para el diseo preeliminar generado desde el modelo
creado con anterioridad.
Designing and Generating
Utiliza el editor de diseo en sta rea para disear sistemas que conozcan los
requerimientos del negocio de una organizacin, provee de un ambiente de
desarrollo para diseo e ingeniera de sistemas, crea los componentes del lado del
servidor y las aplicaciones del lado del cliente desde la definicin de registros en el
repositorio
Repository Tools
El uso de herramientas en sta rea son para: Entrar y editar informacin en el
repositorio, muestra relaciones entre los elementos en el repositorio, genera
reportes predefinidos y customizados sobre el contenido del repositorio, administra
el repositorio.
Ya en un ambiente de desarrollo, Oracle Designer ofrece alternativs de instalacin
flexibles, por ejemplo, se puede instalar la suite de Oracle Designer en un cliente
PC que proporcione operaciones sencillas, o se pueden instalar los componentes
de Oracle Designer separadamente. Cada uno de los generadores puede ser
instalado por separado.
Principales productos Oracle y relacionados
1. Servidor
- 49 -
SGBDR Oracle
mport/Export: Permite extraer/reincorporar datos de la base de datos. Es el
mecanismo habitual para copias de seguridad.
2. Cliente
SQL*Plus: nterprete interactivo del lenguaje SQL
SQL*Loader: Se utiliza para cargar datos provenientes de diversas fuentes
3. Herramientas de desarrollo Oracle
Oracle * Forms Developer (Forms, Reports Graphics). Herramienta muy
potente y compleja para el desarrollo de aplicaciones.
SQL*Menu: Es una herramienta ms sencilla que SQL*Forms para generar
aplicaciones.
SQL*ReportWriter: Herramienta muy potente para generar informes.
SQL*Calc: Una hoja electrnica conectada con la base de datos.
Oracle * CASE Designer
OWS 2.0 OWAS 3.0 OAS 4.0
WebDB
Jdeveloper
Easy*SQL: Una aplicacin basada en ventanas que permite ejecutar y
almacenar sentencias SQL de forma sencilla.
4. Herramientas de desarrollo de terceros
Microsoft Visual Basic
PowerBuilder
C++
Borland Jbuilder
Proc*C, Pro*Cobol, Pro*Fortran, Pro*ADA: Precompiladores para SQL inmerso
en esos lenguajes de programacin. Con esto podemos crear programas
ejecutables independientes, al contrario que SQL*Forms, en cuyo caso se
necesita un mdulo run-time para la ejecucin de las aplicaciones creadas.
Oracle*CASE: Es un conjunto de herramientas CASE (Computer Aided
Software Engineering). Entre ellas existe una que funciona en entorno X-Window,
y que se utiliza para el diseo de distintos tipos de diagramas. Permite generar
programas fuente en lenguajes precompilados, Forms e informes.
Los comandos de ejecucin de las aplicaciones ms usuales son:
SQL*Plus: sqlplus
SQL*Menu:
sqlmenu50 -c vt220:vt220 (Si estamos en un Terminal en emulacin vt220)
olsqlmenu50 -c oloraterm:sun (Version OPEN LOOK)
msqlmenu50 -c moraterm:sun (Version MOTF)
SQL*Forms:
sqlforms30 -c vt220:vt220
olsqlforms30 (Version OPEN LOOK)
msqlforms30 (Versin MOTF)
Easy*SQL: easysql (El valor de la variable TERM debe ser alguno de los
configurados)
- 50 -
Pro*C: proc (Al ejecutarlo sin argumentos, da ayuda)
ACERCA DE SQL LOADER
SQL*Loader es una potente utilidad de importacin de datos que posibilita la carga
automtica de datos externos (residentes en ficheros del sistema operativo) en
tablas de la base de datos. Los datos pueden cargarse en una o varias tablas que
previamente deben estar creadas y que pueden o no tener contenido previo. Los
nuevos datos podrn sustituir a los que ya existieran en las tablas o bien aadirse
como nuevas filas.
Es posible la carga de datos almacenados en forma de ficheros de texto (lo ms
corriente) o binarios. La entrada del programa consiste en:
Uno o varios ficheros de datos, con nombres por defecto terminados en .DAT,
conteniendo los datos a importar.
Un fichero (texto) de control, con nombre por defecto terminado en .CTL, que
contiene rdenes que permiten guiar y particularizar el proceso de carga de datos.
En este fichero se especifican los atributos de las tablas de la base de datos en los
que se van a insertar los valores contenidos en el fichero de datos.
Como salida se generan hasta tres ficheros de texto:
Un fichero de resultados, con nombre por defecto terminado en .LOG, que
contiene diversos informes sobre la realizacin del proceso de carga de datos.
Un fichero de errores, con nombre por defecto terminado en .BAD, que contiene
aquellos datos del fichero de entrada que no han podido ser cargados en la base
de datos por diversos errores. Si la carga se ha realizado sin errores entonces no
se genera este fichero.
Un fichero de descartados, con nombre por defecto terminado en .DSC, que
contiene aquellos datos del fichero de entrada que no han sido cargados en la
base de datos porque as se haba especificado en el fichero de control. Si no se
ha descartado ningn dato durante el proceso de carga no se genera este fichero.
La diferencia entre los datos errneos y los descartados es que los primeros son
aquellos datos que no han sido insertados en las tablas de la base de datos
porque no han podido ser ledos correctamente desde el fichero de datos de
entrada o bien su insercin causa errores de incumplimiento de restricciones
definidas en las tablas, mientras que los datos descartados no se insertan en la
base de datos porque no verifican una determinada condicin que puede
imponerse en el fichero de control, de manera que tan solo se inserten los datos
que satisfacen dicha condicin.
Un concepto importante a la hora de trabajar con SQL*Loader es el de registro
fsico y registro lgico. Suponiendo que el fichero de datos es de texto, un registro
fsico es una lnea del fichero. Un registro lgico se corresponde con una fila o
tupla de una tabla. La equivalencia entre estos dos tipos de registros puede ser
cualquiera. Un registro fsico puede dar lugar a varios registros lgicos de manera
que cada lectura de una lnea del fichero de entrada produce la escritura de varias
filas en las tablas. Si por el contrario se necesitan varios registros fsicos para
formar un registro lgico, se necesitar leer varias lneas del fichero de datos
antes de proceder a la insercin de una fila. El caso ms sencillo y conveniente es
cuando se produce la identidad entre ambos tipos de registro, en el cual cada
- 51 -
lectura de una lnea del fichero de datos puede generar una insercin en la base
de datos.
Mediante la adecuada especificacin del fichero de control puede programarse en
cierta medida el proceso de carga de datos ya que se dispone de una cierta
capacidad de especificacin de condiciones para determinar si los datos ledos
han de insertarse o no en la base de datos. La estructura del fichero de datos de
entrada puede ser fija o secuencial. Es fija si los valores estn dispuestos de
forma invariable en posiciones determinadas del fichero de datos y secuencial si
simplemente los valores estn colocados uno a continuacin del otro en cada lnea
del fichero y separados por un carcter determinado. En la prctica pueden existir
ficheros cuya estructura presente caractersticas de los dos tipos.
No es obligatorio que los valores de todos los atributos o columnas del registro
lgico aparezcan especificados en los campos del registro fsico; se pueden leer
todos o tan solo parte de los atributos. Los atributos cuyos valores no aparecen en
el fichero de datos se insertan en las tablas con valores nulos.
Aunque el fichero de control permite una amplia gama de posibilidades para
particularizar la carga de datos a las caractersticas del fichero de entrada, puede
ser necesario o conveniente preprocesar los datos (por ejemplo, en un editor de
texto) eliminando datos innecesarios, contenidos redundantes, etc. Si los datos a
ser cargados estn ordenados segn algn atributo o combinacin de atributos
entonces se puede aprovechar esta circunstancia para acelerar el proceso.
Es muy interesante la posibilidad de insertar valores a determinados atributos de
las tablas automticamente, sin necesidad de especificar dichos valores en el
fichero de datos. Por ejemplo se puede tener un atributo en una tabla cuyo valor
se vaya incrementando en una cantidad fija cada vez que se inserta una fila en
esa tabla, o bien el valor a insertar para ese atributo es constante para cada fila
insertada.
Para ejecutar SQL*Loader se necesita especificar el nombre y palabra clave en el
sistema Oracle de un usuario (usualmente el propietario) que disponga de permiso
de insercin (NSERT) sobre las tablas en las que se van a cargar los datos. En la
invocacin del programa se ha de especificar el fichero de datos a procesar y el
fichero de control, de la siguiente manera:
sqlload usuario/palabra_clave CONTROL=fichero_control, DATA=fichero_datos
ACERCA DE SQL*Plus
La herramienta que nos proporciona ORACLE para interactuar con la base de
datos se llama SQL*Plus. Bsicamente, es un intrprete SQL con algunas
opciones de edicin y formateo de resultados.
SQL*Plus, se debe tener claros algunos conceptos:
Usuario/Clave
Para poder acceder a una base de datos gestionada por ORACLE debemos
ser un usuario autorizado de la misma y conocer la palabra clave,
#assword, asociada al usuario.
Variable de ambiente ORACLE_SD
ndica la base de datos con la que vamos a trabajar.
- 52 -
Posibilidades de Edicin
SQL*Plus almacena en un !&ffer la ltima sentencia SQL introducida. El !&ffer
mantiene slo una sentencia cada vez, y si se introduce una nueva sentencia se
sobreescribe sobre la anterior. La sentencia en el !&ffer puede ser recuperada
para ejecutarla de nuevo con los comandos:
RUN que visualiza la sentencia en el !&ffer antes de ejecutarla;
/ que ejecuta la sentencia sin visualizarla.
SQL*Plus tambin nos permite editar la sentencia SQL alamacenada en el !&ffer
mediante un sencillo (y limitado) editor en lnea, cuyos comandos se enumeran a
continuacin:
%omando '!re2iat&ra Descri#cin
APPEND texto A texto Aade texto al final de la lnea.
CHANGE/fuente/destino C/fuente/destino
Cambia el contenido 'fuente' por el
'destino'
CHANGE/texto C/texto Quita 'texto' de una lnea.
CLEAR BUFFER CL BUFF Borra el !&ffer
DEL DEL Borra una lnea.
NPUT nserta una o ms lneas.
NPUT texto texto nserta una lnea con 'texto'.
LST L Lista las lneas del !&ffer
LST n L n n Lista la lnea n-sima.
LST * L * Lista la lnea actual.
LST LAST L LAST Lista la ltima lnea.
LST m n L m n
Lista las lneas desde la m-sima a la n-
sima.
Al contenido del !&ffer tambin se puede acceder desde el editor del Sistema
Operativo. As, el buffer podr ser manipulado con las posibilidades del editor con
el que estemos acostumbrados a trabajar. Al salir del editor se devuelve el control
al SQL*Plus. Para conseguir trabajar con el editor del Sistema Operativo basta con
colocar la variable DEFNE_EDTOR y luego llamar al editor.
SQL> define_editor=vi
SQL> edit
Utilizacin de Ficheros
SQL*Plus considera dos tipos de ficheros: de s#ool y de comandos.
Un fichero de s#ool almacena los resultados de una consulta (o varias) en un
fichero con la extensin .lst (o lo manda a la impresora).
Los comandos asociados con los ficheros s#ool son
- 53 -
SPOOL fichero
Manda el resultado de las consultas al fichero.
SPOOL OUT
Manda el resultado de las consultas a la impresora.
SPOOL OFF
Cierra el fichero de s#ool.
EXT
Al salir de SQL*Plus se cierran los ficheros de s#ool.
Los archivos de comandos almacenan comandos SQL y SQL*Plus para ser
editado, almacenado y/o ejecutado; y tienen por defecto la extensin .sql :
Para editarlo se puede utilizar el comando edit fichero.
Para ejecutarlo se utilizar el comando START fichero o @fichero
El SQL*Plus nos proporciona ms posibilidades en relacin con los ficheros de
comandos, la comunicacin con el usuario final y la generacin de informes.
EXPORT
La utilera EXPORT provee de una forma simple para transferir objetos de datos
entre bases de datos de Oracle, inclusive si estas rediden en diferentes
plataformas, con diferente hardaware y diferente configuracin de software.
Cuando se ejecuta el EXPORT sobre una base de datos, objetos tales como las
entidades son extradas, seguidas por sus objetos relacionados tales como: ndices,
comentarios, accesos, como se ilustra en la figura.
Un Export file es un archivo de Oracle en formato binario D&m# file que son
normalmente ubicados en disco o cinta. Los D&m# files pueden ser transferidos
utilizando FTP o fsicamente transportados a diferentes lugares.
- 54 -
Los archivos pueden entonces ser usados con la utilera MPORT para transferir
datos entre bases de datos que no se encuentran conectadas en lnea o por red.
Los archivos tambien pueden ser usados como respaldos, adems de los respaldos
normales.
Los D&m# flies de EXPORT solo pueden ser leidos por la utilera MPORT de
Oracle, la versin del MPORT no debe ser mas reciente que la versin del
EXPORT usado para crear los D&m# file.
Pueden desplegarse tambin los contenidos de un archivo de EXPORT sin realizar
el proceso de importar datos. Para hacer esto se debe usar el parmetro SHOW.
MPORT
La utilera MPORT lee la definicin de objetos de la entidad que se encuentra
dentro de un archivo de EXPORT (D&m# file9: Para luego cual insertar los objetos
en una base de datos de Oracle.
A continuacin se ilustra el proceso de importacin desde un d&m# file;

DUMP
FLE
Los D&m# flies de EXPORT solo pueden ser leidos por la utilera MPORT de
Oracle, la versin del MPORT no debe ser mas reciente que la versin del
EXPORT usado para crear los D&m# file.
mport puede leer archivos de EXPORT creados por versiones 5.1.22 en adelante.
- 55 -
Para leer datos de un archivo con formato ASC o delimitado debe usar la utilera
SQL LOADER.
ACERCA DE PROJECT BULDER
Para ayudar a simplificar las tareas de administracin del software, Project Builder
es utilizado para:
1. Asocia los mdulos con una aplicacin o componentes de una aplicacin
2. Automatiza las acciones basadas en tipos de archivos
3. Crea dependencias entre los mdulos e indica como son los cambios en
cascada, en otras palabras, muestra cual de los mdulos necesita ser
recompilado con base en los cambios de otros mdulos
4. Asigna cadenas de conexin por default para los mdulos
5. Designa que mdulos sern incluidos en el conjunto final instalable
6. Comparte los proyectos y subproyectos entre los miembros del equipo
7. nvoca a otros desarrollos en Develper desde la interfaz de Project Builder
El administrador del proyecto carga la creacin del proyecto hacindolo disponible
al equipo de desarrolladores. El project administrator mantiene el Registro Global y
las modificaciones por si son necesarias, exportando los cambios hacia el equipo
de desarrolladores. Los desarrolladores de igual forma pueden exportar la
informacin del proyecto para diferentes ambientes, como un test de ambientes o
desarrollo a la par en otras plataformas.
El trabajo del administrador del proyecto es darle roles a los miembros del equipo:
1. Desarrolladores
2. Control de administracin del cdigo fuente
3. Testers (QA)
4. Controlador de versiones
Obviamente las actividades precisas de cada miembro del equipo varan de un
equipo de desarrollo a otro. Los miembros del equipo pueden tambin tomar uno o
mas role, por ejemplo el lder del proyecto puede ser tambin el administrador, o
un desarrollador puede ser tambin el que controle el cdigo fuente.
ORACLE9 WAREHOUSE BULDER
El mismo posee tecnologa OLAP ( Procesamiento Analtico en Lnea ), lider en la
industria en software para soporte de desiciones y anlisis en general. As, los
clientes pueden administrar y desempear anlisis multidimensionales complejos
sobre grandes volmenes de informacin, que van desde GBs hasta TBs de
datos.
OTRAS UTLERAS
Existen muchas otras utileras propias de Oracle, asi como tambin de otras
marcas de Software que solo se mencioaran a continuacin:
Terminating Threads with orakill
Viewing Errors with the oerr Utility
Memory Utilities
Utilities for Starting and Stopping Databases
- 56 -
Starting and Stopping on Windows
oraenv and coraenv Utilities
Using orapwd to Connect Remotely as SYSDBA
Package Utilities
<=>? <tilities and Shell Scri#ts
The dbms_alert Utility
The utl_smtp Utility
The OEMCTL Utility
The dbme_xplan Utility
The dbms_repair Utility
TOAD
11. DESCRPCN DE FRONTENDS Y BACKENDS
Los dos principales componentes de una aplicacin son el frontend (ejecutandose
en el cliente) y backend (ejecutandose en el servidor). El backend juega diferentes
roles pero puede ser implementados por el mismo ejecutable.
Un frontend enva un paquete de inicio al postmaster. Este incluye los nombres del
usuario y base de datos a la que el usuario quiere conectarse. El postmaster
entonces utiliza esto, y la informacin en el archivo pg_hba.conf(5) para
determinar que informacin adicional de autentificacin necesita del frontend (si
existe) y responde al frontend en concordancia.
El frontend enva entonces cualquier informacin de autentificacin requerida. Una
vez que el postmaster valida esta informacin responde al frontend que est
autentificado y entrega una conexin a un backend. El backend entonces enva un
mensaje indicando arranque correcto (caso normal) o fallo (por ejemplo, un
nombre de base de datos invlido).
Las subsiguientes comunicaciones son paquetes de consulta y resultados
intercambiados entre el frontend y backend. El postmaster no interviene ya en la
comunicacin ordinaria de cosultas/resultados. Sin embargo el postmaster se
involucra cuando el frontend desea cancelar una consulta que se est efectuando
en su backend.
Cuando el frontend desea desconectar enva un paquete apropiado y cierra la
conexin sin esperar una respuesta del backend.
Los paquetes son enviados como un flujo de datos. El primer byte determina que
se debera esperar en el resto del paquete. La excepcin son los paquetes
enviados desde un frontend al postmaster, los cuales incluyen la longitud del
paquete y el resto de l. Esta diferencia es histrica.
En general, cualquier lenguaje de programacin que se pueda conectar a una BD
Oracle mediante ODBC, JDBC o con un conector propietario es frontend de
Oracle.
C
C++
PHP
- 57 -
JAVA
.NET
VSUAL BASC
DELPH
Y los Backend con los que con los que puede interactuar Oracle, son por ejemplo
SQL SERVER
SYBASE
PROGRESS
DB2
JAVA
Java es una plataforma virtual de software desarrollada por Sun Microsystems, de
tal manera que los programas creados en ella puedan ejecutarse sin cambios en
diferentes tipos de arquitecturas y dispositivos computacionales ( "Diferentes
plataformas").
La #lataforma @a2a consta de las siguientes partes:
El lenguaje de programacin, mismo.
La mquina virtual de Java o JRE, que permite la portabilidad en ejecucin.
El AP Java, una biblioteca estndar para el lenguaje.
Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las
caractersticas menos usadas y ms confusas de stos. C++ es un lenguaje que
adolece de falta de seguridad, pero C y C++ son lenguajes ms difundidos, por
ello Java se dise para ser parecido a C++ y as facilitar un rpido y fcil
aprendizaje.
Java elimina muchas de las caractersticas de otros lenguajes como C++, para
mantener reducidas las especificaciones del lenguaje y aadir caractersticas muy
tiles como el garbage collector (reciclador de memoria dinmica). No es
necesario preocuparse de liberar memoria, el reciclador se encarga de ello y como
es un thread de baja prioridad, cuando entra en accin, permite liberar bloques de
memoria muy grandes, lo que reduce la fragmentacin de la memoria.
Java reduce en un 50% los errores ms comunes de programacin con lenguajes
como C y C++ al eliminar muchas de las caractersticas de stos, entre las que
destacan:
aritmtica de punteros
no existen referencias
registros (struct)
definicin de tipos (typedef)
macros (#define)
necesidad de liberar memoria (free)
Aunque, en realidad, lo que hace es eliminar las palabras reservadas (struct,
typedef), ya que las clases son algo parecido.
Adems, el intrprete completo de Java que hay en este momento es muy
pequeo, solamente ocupa 215 Kb de RAM.
Oracle9i JDeveloper introduce Oracle ADF que ayudar a obtener mayor
productividad al permitir que los desarrolladores se concentren en definir la lgica
- 58 -
del negocio para su aplicacin, en contraposicin con la escritura manual del
cdigo de nivel bajo para implementar la aplicacin. Adicionalmente, genera en
forma automtica el cdigo de infraestructura e implementa las mejores prcticas
para ayudar a los desarrolladores a disear y crear aplicaciones J2EE y servicios
Web optimizados y seguros para la empresa
Con JDeveloper podrn definir su Alcance tecnolgico especificando la
combinacin de tecnologas que quieran incorporar en sus aplicaciones y eligiendo
su mtodo preferido para desarrollar la aplicacin. Por ejemplo, para crear un
servicio web con el que los usuarios puedan interactuar a travs de una interface
de portal, un desarrollador podra especificar que quiere usar Enterprise
JavaBeans, Oracle9iAS TopLink, Struts y las herramientas relacionadas para
desarrollar visualmente con Java, XML, SOAP, WSDL y portlets.
Adems, podr elegir su mtodo preferido de desarrollo, como la generacin de
cdigos controlados por wizards, modelado visual UML, etc. Una vez que el
desarrollador haya definido el alcance de tecnologa para un proyecto dado,
Oracle9i JDeveloper se reconfigurar dinmicamente para incorporar las
tecnologas preferidas e implementar las opciones y herramientas que el
desarrollador haya seleccionado. La configuracin resultante, llamada
MyJDeveloper, permitir a las empresas estandarizarse en un nico entorno de
desarrollo que cumpla con los requerimientos de una amplia gama de
desarrolladores con diferentes habilidades y mtodos de desarrollo.
PHP
PHP es un lenguaje de programacin usado generalmente para la creacin de
contenido para sitios web. PHP es el (acrnimo recursivo de "PHP: Hypertext
Preprocessor", inicialmente PHP Tools, o, 8ersonal Aome 8age Tools) es un
lenguaje interpretado usado para la creacin de aplicaciones para servidores, o
- 59 -
creacin de contenido dinmico para sitios web, y ltimamente tambin para la
creacin de otro tipo de programas incluyendo aplicaciones con interfaz grfica
usando la librera GTK+.
Su interpretacin y ejecucin se da en el servidor, en el cual se encuentra
almacenado el script, y el cliente slo recibe el resultado de la ejecucin. Cuando
el cliente hace una peticin al servidor para que le enve una pgina web,
generada por un script PHP, el servidor ejecuta el intrprete de PHP, el cual
procesa el script solicitado que generar el contenido de manera dinmica,
pudiendo modificar el contenido a enviar, y regresa el resultado al servidor, el cual
se encarga de regresrselo al cliente. Adems es posible utilizar PHP para
generar archivos PDF, Flash, as como imgenes en diferentes formatos, entre
otras cosas.
Permite la conexin a diferentes tipos de servidores de bases de datos tales como
MySQL, Postgres, Oracle, ODBC, BM DB2, Microsoft SQL Server y SQLite; lo
cual permite la creacin de Aplicaciones web muy robustas.
PHP tambin tiene la capacidad de ser ejecutado en la mayora de los sistemas
operativos tales como UNX (y de ese tipo, como Linux), Windows y Mac OS X, y
puede interactuar con los servidores de web ms populares ya que existe en
versin CG, mdulo para Apache, e SAP.
El modelo PHP puede ser visto como una alternativa al sistema de Microsoft que
utiliza ASP.NET/C#/VB.NET, a ColdFusion de la compaa Macromedia, a
JSP/Java de Sun Microsystems, y al famoso CG/Perl. Aunque su creacin y
desarrollo se da en el mbito de los sistemas libres, bajo la licencia GNU, existe
adems un compilador comercial llamado Zend Optimizer.
VSUAL BASC
Visual Basic es uno de los tantos lenguajes de programacin que podemos
encontrar hoy en da. Dicho lenguaje nace del BASC (Beginners All-purpose
Symbolic nstruction Code) que fue creado en su versin original en el Dartmouth
College, con el propsito de servir a aquellas personas que estaban interesadas
en iniciarse en algn lenguaje de programacin. Luego de sufrir varias
modificaciones, en el ao 1978 se estableci el BASC estndar.
La sencillez del lenguaje gan el desprecio de los programadores avanzados por
considerarlo "un lenguaje para principiantes".
Primero fue GW-BASC, luego se transform en QuickBASC y actualmente se lo
conoce como Visual Basic y la versin ms reciente es la 6 que se incluye en el
paquete Visual Studio 6 de Microsoft. Esta versin combina la sencillez del BASC
con un poderoso lenguaje de programacin Visual que juntos permiten desarrollar
robustos programas de 32 bits para Windows. Esta fusin de sencillez y la esttica
permiti ampliar mucho ms el monopolio de Microsoft, ya que el lenguaje slo es
compatible con Windows, un sistema operativo de la misma empresa.
Visual Basic ya no es ms "un lenguaje para principiantes" sino que es una
perfecta alternativa para los programadores de cualquier nivel que deseen
desarrollar aplicaciones compatibles con Windows.
Este ejemplo realiza una consulta a una base de datos oracle mediante RDO
(Microsoft Remote Data Object 2.0) y ODBC.
Para ejecutarlo correctamente se deben seguir los siguientes pasos:
- 60 -
1. Guardar todos los archivos de este programa ejemplo (*.vbp, *.frm, *.bas)
en alguna carpeta del disco duro
2. nstalar en el cliente los drivers de ODBC de Oracle, por ejemplo instalando
un cliente oracle (SQL * Plus...)
3. r al panel de control
4. ra ODBC
5. En la pestaa DSN de sistema, pulsar "Agregar"
6. Seleccionar "Oracle ODBC Driver" y pulsar "Finalizar"
7. Escribir algn identificativo en "Data Source Name" y pulsar "OK"
8. Ejecutar el proyecto Visual Basic
9. Si la conexin es a la base de datos por defecto, el parmetro "Connect" del
OpenDatabase puede especificarse como:
DSN=oracle;odbc;uid=scott;pwd=tiger
10. Si la conexin es a una base de datos remota, el parmetro "Connect" del
OpenDatabase puede especificarse como:
DSN=oracle;odbc;database=ORCL@tcp-loopback;uid=scott;pwd=tiger
donde tcp-loopback es un identificativo de cadena de conexin del fichero
tnsnames.ora
Tcp-loopback.world =
(DESCRPTON =
(ADDRESS_LST =
(ADDRESS =
(PROTOCOL = TCP)
(Host = 127.0.0.1)
(Port = 1521)
)
)
(CONNECT_DATA = (SD = ORCL)
)
)
C%igo #&ente
A continuacin se muestra el cdigo de los ficheros que componen el proyecto
rdo_ora.vbp
Type=Exe
Reference=*\G{EE008642-64A8-11CE-920F-
08002B369A33}#2.0#0#C:\WNNT\System32\msrdo20.dll#Microsoft Remote Data
Object 2.0
Module=bas_rdo_ora; rdo_ora.bas
Startup="Sub Main"
HelpFile=""
Command32=""
Name="rdo_ora"
HelpContextD="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
- 61 -
RevisionVer=0
AutoncrementVer=0
ServerSupportFiles=0
VersionCompanyName="Universidad de Deusto"
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugnfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
ThreadPerObject=0
MaxNumberOfThreads=1
rdo_ora.bas
Attribute VB_Name = "bas_rdo_ora"
Option Explicit
Global rdoEnvironment1 As rdoEnvironment
Global rdoConnection1 As rdoConnection
Sub main()
Dim rs1 As rdoResultset
Set rdoEnvironment1 = rdoEngine.rdoEnvironments(0)
Set rdoConnection1 = rdoEnvironment1.OpenConnection("oracle", False, True,
"DSN=oracle;odbc;database=ORCL@tcp-loopback;uid=scott;pwd=tiger")
'Set rdoConnection1 = rdoEnvironment1.OpenConnection("oracle", False, True,
"DSN=oracle;odbc;uid=scott;pwd=tiger")
Set rs1 = rdoConnection1.OpenResultset("select * from emp") ' por defecto es
forward-only
MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
rs1.MoveNext
MsgBox rs1("EMPNO") & "-" & rs1("ENAME") & "-" & rs1("JOB")
'rs1.MovePrevious 'Esta instruccion producira un error porque el tipo de rs1 es
forward-only
Set rs1 = rdoConnection1.OpenResultset("select * from emp", rdOpenStatic)
MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
rs1.MoveNext
MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
rs1.MovePrevious
MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
Set rs1 = rdoConnection1.OpenResultset("select * from emp", rdOpenKeyset)
MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
End
End Sub
- 62 -
SQL SERVER
Microsoft SQL Server 7.0 constituye un lanzamiento determinante para los
productos de bases de datos de Microsoft, continuando con la base slida
establecida por SQL Server 6.5. Como la mejor base de datos para Windows NT,
SQL Server es el RDBMS de eleccin para una amplia gama de clientes
corporativos y Proveedores ndependientes de Software (SVs) que construyen
aplicaciones de negocios. Las necesidades y requerimientos de los clientes han
llevado a la creacin de innovaciones de producto significativas para facilitar la
utilizacin, escalabilidad, confiabilidad y almacenamiento de datos.

12. MOSTRAR UN EJEMPLO PRCTCO DE UNA APLCACN
El ejemplo que se va a desarrollar es el Sistema de Control de Vajillas, se va a
disear en Designer, el case de Oracle y se utilizar el De2elo#er para desarrollar la
aplicacin.
La descripcin del Ejemplo es el siguiente:
SSTEMA CONTROL DE VAJLLAS
La alquiladora de vajillas "Nava, requiere de un sistema de cmputo. Este sistema
debe de incluir los mdulos para el control de inventarios, pedidos y facturacin.
Para tal efecto se deben de tomar en cuenta las siguientes consideraciones:
Un pedido puede contener uno o varios productos.
Una factura puede tener uno o varios productos correspondientes a uno o
varios pedidos.
Un cliente puede rentar uno o varios productos.
Un producto puede ser rentado a varios clientes.
Por lo que las entidades originales a considerar, junto con sus atributos son los
siguientes:
PRODUCTO, con atributos cveprod, costorentaprod, existenciaprod,
cantidadprod, descprod y colorprod.
CLENTE, con atributos cvecte, nombrecte, domcte, telcte y
nombreadicional.
PEDDO, con atributos cvepedido y fechapedido.
FACTURA, con atributos cvefact, fechafact y montofact.
Con base en los argumentos y en las entidades descritas, realiza las siguientes
actividades:
a. Disea el MER, considerando la siguiente caracterstica:
Un producto (en su totalidad) o diferentes productos, pueden facturarse en
una sola factura o en varias facturas. Por ejemplo un pedido puede contener los
siguientes productos: 100 sillas, 20 mesas y 20 manteles, y este puede facturarse
de la siguiente manera: factura 1 (F1) 100 sillas, factura 2 (F2) 20 mesas y 20
manteles. Es decir, el total de cada producto NECESARAMENTE debe estar en
- 63 -
una factura, y esta a su vez puede contener adicionalmente ms productos (en su
totalidad).
El Modelo Entidad-Relacin es el siguiente:
El Prototipo de Pantalla de Pedidos es el siguiente:
Siste!a e Control e Va"illas
No. Peio$ Fec'a$
No. e Cliente$
No!(re el Cliente$
Total el Peio$ )
Total Cost o Unitario Cantia C*e. Pro&cto Descripci%n
Grabar Borrar Cancelar
Alcance:
La aplicacin a desarrollar comprender la captura de los pedidos y la elaboracin
de las facturas.
Consideraciones y Validaciones:
Se generar en automtico el No. de Pedido y se pondr en automtico la fecha del
pedido, al introducir el nmero de cliente, se va a desplegar el nombre del cluente.
Al seleccionar una clave de producto, se desplegar su descripcin y el costo
unitario de la renta. Se capturar la cantidad a rentar y se desplegar en automtico
el total de la renta del producto. El total del pedido se va a ir actualizando
automticamente cuando se d la alta de un producto.Un pedido no se podr borrar
si existe una factura ligada a l.
- 64 -
13. EXPLCAR SU LENGUAJE DE PROGRAMACN NATVO CON
EJEMPLOS PRCTCOS EN EL CASO DE SQL LSTAR SUS
EXTENSONES Y AGREGADOS
PL/SQL es una extensin procedural de Oracle para el estndar SQL. PL/SQL es
naturalmente eficiente con el uso y manipulacin de SQL. Es una herramienta que
trabaja del lado del servidor y se almacena en un lenguaje procedural, es fcil de
usar y al igual que SQL es robusto, portable y seguro.
Del lado del servidor PL/SQL no necesita de instalaciones explicitas, es una parte
implcita en la BD Oracle y en los documentos tales como Furthermore, el
compilador PL/SQL y el interprete estn integrados en el Oracle Developer, lo cual
proporciona a los desarrolladores un modelo consistente de desarrollo liberable
tanto en el cliente como en el servidor. Adicionalmente PL/SQL almacena
procedimientos que pueden ser llamados desde un nmero de clientes Oracle
tales como Pro*C o Oracle Call nterface, y tambin desde Oracle Reports y
Oracle Forms (Developer).
Lenguaje SQL y PL/SQL.
Caractersticas de SQL.
El lenguaje SQL es una abreviatura de Structured Query Language (Lenguaje de
Estructuras de Consultas) y es una herramienta que se utiliza para organizar,
gestionar y recuperar datos que se encuentran almacenados en una base de
datos y que tambin se utiliza para poder interaccionar con estas y que trabaja con
las bases de datos relacionales, que fue propuesto por el Dr. E.F. Codd, quien
propuso el modelo relacional para los sistemas de bases de datos en 1970.
El modelo relacional contiene los siguientes componentes:
Una coleccin de objetos o relaciones.
Poner las operaciones para actuar en las relaciones.
ntegridad de los datos con precisin y consistencia.
Oracle fue el primer fabricante que ofreci un producto que usaba el lenguaje de
consulta estructurado (SQL), basado en el ingls, esto permite a los usuarios
finales extraer su informacin por si mismos.
El servidor ORACLE 7 soporta el estndar ANS para SQL, y contiene las
extensiones, SQL es el lenguaje empleado para comunicarse con el servidor para
acceder, manipular y controlar los datos de acceso.
El lenguaje de consultas de Oracle es un lenguaje estructurado, tiene reglas de
gramtica y de sintaxis, pero son parecidas a las del idioma ingls. Por lo tanto
Oracle es capaz de responder a cuestiones como: cul es el nombre? de la
persona que tiene el nmero de Clave = 3; de una manera rpida y sencilla,
utilizando palabras clave como son select (seleccionar), from (de), where (donde),
cuyas palabras ayudan a Oracle a comprender la peticin y lograr una respuesta
correcta.
En la siguiente figura podemos ver cmo funciona SQL, el sistema informtico
tiene una base de datos que almacena informacin importante, este programa
- 65 -
informtico controla la base de datos y recibe el nombre de Sistema Manejador de
Bases de Datos (Data Base Management System) o DBMS.
Cuando requerimos de recuperar datos de alguna base de datos, hacemos uso del
lenguaje SQL para realizar nuestras peticiones. El DBMS procesa las peticiones
SQL, entonces recupera los datos solicitados y los enva de nuevo, a este proceso
de solicitar datos y recibir los resultados de la base de datos se le denomina
consulta (query) a la base de datos, de ah que el lenguaje SQL signifique
Structured Query Language.

Lo que hace que SQL sea un lenguaje que es fcil de comprender y una
herramienta completa para poder gestionar datos, y podemos mencionar algunas
de las principales caractersticas de SQL:
Su portabilidad a travs de los sistemas informticos. Los datos que
provienen de bases de datos basadas en SQL pueden ser extradas
remitidas de bases de datos institucionales o personales.
Los estndares SQL. Ha sido publicado un estndar oficial para SQL por
El American National Standards nstitute (ANS) y la international
Standards Organization (SO), que le sirven como sello oficial de
aprobacin debido a su aceptacin en el mercado.
Fundamento relacional. El lenguaje SQL se utiliza para bases de datos
relacionales y que han tenido una gran difusin justamente por el
fundamento terico en el que se basa el modelo relacional de bases de
datos, por lo cual SQL se ha convertido en el lenguaje de bases de
datos para las bases de datos relacionales.
Estructura. Las sentencias en SQL son frases sencillas en ingls que lo
hacen fcil de comprender y aprender.
Arquitectura cliente-servidor. Una de las grandes ventajas del SQL es
que se puede implementar en una arquitectura cliente-servidor.
A continuacin se dar una perspectiva general del lenguaje, as como su
funcionamiento e ilustrando algunas de sus caractersticas importantes, cabe
mencionar que hay muchos comandos disponibles en SQL.
Sentencias
Mani#&lacin de datos;
SELECT: Esta sentencia recupera los datos en la base de datos que se
desee.
SQL> SELECT CVE,DESCRPCON
- 66 -
2 FROM TPOBEN;
CVE DESCRPCON
------------ ----------------------------------------
5402247 FERMENTADOR
5402248 BORRADORA DE CNTAS
5402253 CAMARA DE PRESON
5402254 FLAMOMETRO
5402256 EVALUADOR
5402259 EQUPO PARA ENTRENAMENTO
5402260 DEMULADOR
5402262 EQ, PARA PRUEBA DE ABLANDAMENTO
5402266 MAQ. PARA DETERMNAR OCTANAJE
5402267 EQ. P/ DETERM. CONTAMNACON ATMOSFERCA
5402268 COLUMNA DE ENFRAMENTO
5402270 TRAMPAS
5402271 CAPACTORES
5402272 SENSORES
5402273 REFRGERADOR
14 rows selected.
La sentencia select, pide dos datos, que son, la clave (CVE) del bien as
como la descripcin de ste, que se encuentran en una tabla llamada
TPOBEN.
NSERT: Aade nuevas filas de datos a la base de datos.
DELETE: Suprime filas de datos de la base de datos.
UPDATE: Modifica datos existentes en la base de datos.
Definicin de datos;
CREATE TABLE: Aade una nueva tabla a la base de datos.
DROP TABLE: Suprime una tabla de la base de datos.
ALTER TABLE: Modifica la estructura de una tabla existente.
CREATE VEW: Aade una nueva vista a la base de datos.
DROP VEW: Suprime una lista de la base de datos.
CREATE NDEX: Construye un ndice para una columna.
DROP NDEX: Suprime el ndice para una columna.
CREATE SYNONYM: Define un alias para un nombre de tabla.
DROP SYNONYM: Suprime un alias para un nombre de tabla.
LABEL: Define el ttulo de una columna.
%ontrol de transacciones;
COMMT: Finaliza la transaccin actual.
ROLLBACK: Aborta la transaccin actual.
Caractersticas de PL/SQL.
El PL/SQL es un lenguaje de procedimientos para SQL para escribir aplicaciones
lgicas y para poder manipular los datos fuera de la base de datos.
En la siguiente figura se muestra el bloque de una estructura en PL/SQL y que
est formado por:
- 67 -
Header . Contiene los nombres de los subprogramas, tipos y
argumentos, slo usados por los subprogramas.
Declaration . Contiene los identificadores locales para el bloque.
Executable . Contiene las sentencias SQL y las sentencias de control
PL/SQL.
Exception . La seccin EXCEPTON de un bloque PL/SQL es el punto al
que se transfiere el control del programa siempre que se active un
indicador de excepcin. Los indicadores de excepcin son definidos por
el usuario o excepciones del sistema activadas automticamente por
PL/SQL.
PL/SQL significa Procedural Language/SQL, es un lenguaje de programacin que
se utiliza para acceder a bases de datos ORACLE. PL/SQL est integrado con el
servidor de bases de datos, de modo que el cdigo PL/SQL, puede ser procesado
de forma rpida y eficiente. Como su nombre lo indica, PL/SQL ampla la
funcionalidad de SQL aadiendo estructuras de las que pueden encontrarse en
otros lenguajes procedimentales, como:
Variables y tipos (tanto predefinidos como definidos por el usuario).
Estructuras de control, como bucles y rdenes F-Then-Else.
Procedimientos y funciones.
Tipos de objetos y mtodos(en PL/SQL versin 8 o superior).
Estructuras de Control PL/SQL.
PL/SQL, como otros lenguajes de tercera generacin, tiene diversas
estructuras de control que permiten controlar el comportamiento del bloque a
medida que ste se ejecuta. Estas estructuras incluyen las rdenes condicionales
y los bucles.
>,BTA/=B/)S/
La sintaxis para una orden F-THEN-ELSE es:
F eC#resinD!ooleana1 THEN
sec&enciaDdeDrdenes1;
[ ELSF eC#resinD!ooleana2 THEN
sec&enciaDdeDrdenes2E ]
[ ELSE
sec&enciaDdeDrdenesF; ]
END F;
Donde las Expresiones booleanas son:
- 68 -
Todas las estructuras de control PL/SQL (excepto GOTO) incluyen expresiones
booleanas, tambin denominadas condiciones. Una expresin booleana es una
expresin que tiene como resultado un valor booleano (TRUE, FALSE o NULL).
As que de la sintaxis de F-THEN-ELSE, la expresin_booleana es cualquier
expresin que d como resultado un valor booleano. Las clusulas ELSF y ELSE
son opcionales, y puede haber tantas clusulas ELSF como se desee. Y
finalmente se termina la condicin F con un END F.
$<%)/S
PL/SQL permite ejecutar rdenes de forma repetida, utilizando los bucles. Existen
cuatro tipos de bucles: bucles simples, bucles WHLE y bucles FOR numricos.
Bucles simples
Son el tipo de bucle ms bsico. Su sintaxis es:
LOOP
sec&enciaDdeDrdenes;
END LOOP;
Para este caso la sec&enciaDdeDrdenes se ejecutar indefinidamente, puesto
que este bucle no tiene ninguna condicin de parada, pero para poder finalizar
este bucle se puede agregar la condicin EXT, cuya sintaxis es:
EXT [ WHEN condicin ];
Bucles WHLE
La sintaxis de un bucle WHLE es:
WHLE condicin LOOP
sec&enciaDdeDrdenes;
END LOOP;
La condicin se evala antes de cada iteracin del bucle. Si es verdadera, se
ejecuta la sec&enciaDdeDrdenes. Si la condicin es falsa o nula, el bucle termina
y el control se transfiere a lo que est a continuacin de la orden END LOOP.
Bucles FOR numricos
El nmero de iteraciones de los bucles simples y de los bucles WHLE no se
conoce de antemano, sino que depende la condicin de bucle. Los bucles FOR
numricos, por el contrario, tienen un nmero de iteraciones definido. La sintaxis
es:
FOR contadorD!&cle N [ REVERSE ] lmiteDinferior lmiteDs&#erior
LOOP
sec&enciaDdeDrdenes
END LOOP;
Donde contadorD!&cle es la variable de ndice declarada de modo explcito,
lmiteDinferior y lmite s&#erior especifican el nmero de iteraciones y
sec&enciaDdeDrdenes es el contenido del bucle.
Los lmites del bucle slo se evalan una vez. Dichos valores determinan el
nmero total de iteraciones, en las que contadorD!&cle vara entre los valores
lmiteDinferior y lmiteDs&#erior incrementndose en una unidad cada vez ms,
hasta que el bucle se completa.
Si se incluye la palabra clave REVERSE en el bucle FOR, el ndice del bucle
realizar las iteraciones desde el lmite superior al lmite inferior.
- 69 -
Procedimientos y Funciones.
Los procedimientos y funciones de PL/SQL, se comportan de manera muy similar
a los procedimientos y funciones de otros lenguajes de tercera generacin. A los
procedimientos y funciones se les denomina tambin colectivamente
subprogramas.
Creacin de un procedimiento
La sintaxis para la orden CREATE OR REPLACE PROCEDURE es:
CREATE [ OR REPLACE ] PROCEDURE nom!reD#rocedimiento
[ (arg&mento [ { N | OUT | N OUT } ] ti#o,
.
arg&mento [ { N | OUT | N OUT } ] ti#o ) ] { S | AS }
c&er#oD#rocedimiento
Donde nom!reD#rocedimiento es el nombre del procedimiento que se quiere
crear, arg&mento es el nombre de un parmetro del procedimiento, ti#o es el tipo
del parmetro asociado y c&er#oD#rocedimiento es un bloque PL/SQL, que
contiene el cdigo del procedimiento.
Los parmetros formales pueden tener tres modos: N, OUT o N OUT, si no se
especifica el modo de un parmetro formal, se adopta, por defecto, el modo N.
N . El valor del procedimiento real se pasa al procedimiento cuando ste
es invocado. Cuando termina el procedimiento, y se devuelve el control
al entorno que realiz la invocacin, el parmetro real no sufre cambios.
OUT . Se ignora cualquier valor que tenga el parmetro real cuando se
llama al procedimiento . Dentro del procedimiento, el parmetro formal
se considera como de slo escritura, no puede ser ledo, sino que tan
slo pueden asignrsele valores. Cuando termina el procedimiento y se
devuelve el control al entorno que realiz la llamada, los contenidos del
parmetro formal se asignan al parmetro real.
N OUT. Este modo es una combinacin de N y OUT. El valor del
parmetro real se pasa al procedimiento cuando ste es invocado.
Dentro del procedimiento, el parmetro formal puede ser tanto ledo
como escrito. Cuando termina el procedimiento y se devuelve el control
al entorno que realiz la llamada, los contenidos del parmetro formal se
asignan al parmetro real.
Sintaxis de las Funciones
La sintaxis para crear una funcin almacenada es muy similar a la de un
procedimiento:
CREATE [ OR REPLACE ] FUNCTON nom!reDf&ncin
[ (arg&mento [ { N | OUT | N OUT } ] ti#o,
arg&mento [ { N | OUT | N OUT } ] ti#o ) ]
RETURN ti#oDretorno { S | AS }
c&er#oDf&ncin
Donde nom!reDf&ncin es el nombre de la funcin, arg&mento y ti#o son iguales
que para un procedimiento, ti#oDretorno es el tipo del valor que devuelve la
- 70 -
funcin y c&er#oDf&ncin es un bloque PL/SQL que contiene el cdigo de la
funcin.
Cursores
Para procesar una orden SQL. ORACLE asigna un rea de memoria que recibe el
nombre de rea de contexto. Esta rea contiene las informaciones necesarias
para completar el procesamiento, incluyendo el nmero de filas procesadas por la
orden, un puntero a la versin analizada de la orden y, en el caso de consultas, el
conjunto activo, que es el conjunto de filas resultado de la consulta.
Un cursor es un puntero al rea de contexto, mediante el cursor, un programa
PL/SQL puede controlar el rea de contexto y lo que en ella suceda a medida que
se procesa la orden.
Manejo de cursores
El conjunto de filas resultantes de una consulta con la sentencia S/)/%T, como
vimos anteriormente, puede estar compuesto por ninguna, una o varias filas,
dependiendo de la condicin que define la consulta. Para poder procesar
individualmente cada fila de la consulta debemos definir un cursor (que es un rea
de trabajo de memoria) que contiene los datos de las filas de la tabla consultada
por la sentencia S/)/%T.
Los pasos para el manejo de cursores, tema novedoso en la programacin de
1racle con 8)/S.), son:
- Definir el cursor, especificando la lista de parmetros con sus
correspondientes tipos de datos y estableciendo la consulta a realizar con la
sentencia S/)/%T.
- Abrir el cursor para inicializarlo, siendo ste el momento en que se realiza la
consulta.
- Leer una fila del cursor, pasando sus datos a las variables locales definidas
a tal efecto.
- Repetir el proceso fila a fila hasta llegar a la ltima.
- Cerrar el cursor una vez que se termin de procesar su ltima fila.
Declaracin de un cursor
La declaracin de un cursor define su nombre, y asocia el cursor con una orden
SELECT. La sintaxis es:
CURSOR empleados S
select * from VistaEmpleado
where to_number(Expe) = to_number(vClave);
De donde empleados es el nombre del cursor y a partir del SELECT es la
consulta que el cursor procesar.
Paquetes.
Es una estructura PL/SQL que permite almacenar juntos una serie de objetos
relacionados. Un paquete tiene dos partes diferenciadas, la especificacin y el
cuerpo del paquete, cada una de ellas se almacena por separado en el diccionario
de datos. a diferencia de los procedimientos y funciones, que pueden ser
almacenados en la base de datos, un paquete no puede ser local, slo puede
almacenarse.
Especificacin de un paquete
- 71 -
La especificacin o cabecera del paquete contiene informacin, acerca del
contenido del paquete y no contiene el cdigo de los procedimientos. La sintaxis
general para la creacin de una cabecera es la siguiente.
%reate or re#lace #ac"age !ien= is
GsRutaMenu
varchar2(200):='http://gtid.imp.mx:8025/hard/plsql/inventario.';
GsRutaMenuVar varchar2(200);
GsRutaProc
varchar2(200):='http://gtid.imp.mx:8025/hard/plsql/procGeneralN.';
GsRutaBien varchar2(200):='http://gtid.imp.mx:8025/hard/plsql/bienN.';
GnClavenv1 number(6):= 6420;
GnClavenv2 number(6) := 13767;
Procedure Pidenv(vClave in varchar2, vPw in varchar2, vClaveSU in
VARCHAR2 default '0');
Procedure AsignaAUsuario(vNonv in varchar2,vClave in varchar2, vPw
in varchar2, vClaveSU in VARCHAR2 default '0');
Procedure confirmaAsignacion(vClave in varchar2,vNonv in
varchar2,vPw in varchar2, vClaveSU in VARCHAR2 default '0');
Procedure RegresaAVerifica(vNonv N VARCHAR2);
end;
De donde !ien= es el nombre del paquete y los elementos del paquete esta
conformado por especificaciones de procedimientos y funciones, variables, etc. y
finalmente se termina la cabecera del paquete con un end.
Cuerpo del paquete
El cuerpo del paquete es un objeto del diccionario de datos distinto de la cabecera.
El cuerpo no puede ser compilado a menos que se haya previamente compilado la
cabecera correspondiente.
create or replace package body bienN is
Procedure Pidenv(vClave in varchar2, vPw in varchar2, vClaveSU in
VARCHAR2 default '0') is
CURSOR empleados S
select * from VistaEmpleado
where to_number(Expe) = to_number(vClave);
si_hay number;
usuario varchar2(40);
BEGN
procGeneralN.niFor;
si_hay:=0;
for reg in empleados loop
si_hay := si_hay + 1;
usuario := reg.Nomb;
end loop;
if si_hay = 0 then
procGeneralN.MError('Usted no es empleado activo en el MP');
else
htp.formopen(GsRutaBien||'AsignaAUsuario','post');
htp.print('USUARO AUTORZADO '||usuario);
- 72 -
htp.print('<font face="Arial, Helvetica, sans-serif" color="#000000"
size=2>');
htp.print('N'||procGeneralN.ce('u')||'mero de inventario del Bien que desea
asignarse');
htp.br;
htp.p('<font color="blue"><B>No. de nventario :</B></font>');
htp.formtext('vNonv','7','7');
htp.formhidden('vClave',vClave);
htp.formhidden('vPw',vPw);
htp.formhidden('vClaveSU',vClaveSU);
htp.formSubmit('','ACEPTAR');
htp.formReset('CANCELAR','OnClick="history.go(-1)"');
htp.print('<font color="red"><B>NOTA:</B></font> El n'||
procGeneralN.ce('u')||'mero de inventario es el que aparece en la placa que
tiene el c'||procGeneralN.ce('o')||'digo de barras.');
htp.br;
htp.print('Si su bien no lo tiene, favor de reportarlo a la Coordinaci'||
procGeneralN.ce('o')||'n de Almacenes e nventarios, indicando su ubicaci'||
procGeneralN.ce('o')||'n.');
htp.br;
procGeneralN.eMail_nventarios;
htp.formClose;
end if;
GsRutaMenuVar:=GsRutaMenu||'menu?vClave='||vClave||chr(38)||'vPw='||
vPw||chr(38)||'vClaveSU='||vClaveSU;
procGeneralN.FinFor(GsRutaMenuVar);
end;
El cuerpo del paquete contiene el cdigo correspondiente a las declaraciones
formales incluidas en la cabecera. Cualquier declaracin formal de la cabecera del
paquete debe estar en el cuerpo del paquete. La especificacin del procedimiento
o funcin debe ser la misma en ambos sitios, incluyendo el nombre del
subprograma, los nombres de sus parmetros y los modos de stos.
Programacin PL/SQL.
Oracle es un producto que usa el lenguaje de consulta estructurado (SQL), y una
de los lenguajes nativos con los que cuenta Oracle es PL/SQL, lo que permite una
trasparencia entre el Servidor Oracle, la herramienta PL/SQL , otras herramientas
como son Designer Developer y el propio Web-Server. El programar con PL/SLQ
permite generar aplicaciones muy diversas, eficaces y rpidas, por ser un lenguaje
embebido de Oracle que soporta SQL de una forma muy transparente.
Ejemplos del uso de SQL dinmicos, Funciones y Procedimientos PL/SQL y
Cursores en Oracle.
SQL dinmico
Ejemplos de generacin de SQL mediante SQL
create table persona (nombre varchar2 (20));
- 73 -
insert into persona values ('pepe');
insert into persona values ('rosa');
insert into persona values ('juan');
select nombre from persona;
select 'hola ' || nombre from persona;
select nombre, nombre from persona;
select nombre || ' es ' || nombre "Algunas tautologas" from persona;
select nombre from persona;
create user begoa identified by begoa;
grant connect, resource to begoa;
select 'create user ' || nombre || ' identified by ' || nombre || ';' from persona;
select 'grant connect, resource to ' || nombre || ';' from persona;
set heading off
set feedback off
spool c:\ejemplo0001.sql
select 'create user ' || nombre || ' identified by ' || nombre || ';' from persona;
select 'grant connect, resource to ' || nombre || ';' from persona;
spool off
set feedback on
set heading on
Funciones PL/SQL
Ejercicio 1. Crear una funcin pl/sql que duplica la cantidad recibida como
parmetro
--Funcin que duplica la cantidad recibida como parmetro
CREATE OR REPLACE FUNCTON duplicador(valor number) RETURN
number S
BEGN
return (valor * 2);
END;
/
show errors
var x number;
EXEC :x := duplicador(5);
print x
Ejercicio 2. Crear una funcin pl/sql llamada factorial que devuelva el factorial de
un nmero, por ejemplo 5! = 1 * 2 * 3 * 4 * 5 = 120
--Clculo del factorial de un nmero
CREATE OR REPLACE FUNCTON factorial (pNum number ) RETURN
number S
BEGN
if pNum = 0 then
return 1;
else
return pNum * factorial(pNum - 1);
end if;
END;
- 74 -
/
show errors
var x number;
EXEC :x := factorial(5);
print x;
Procedimientos PL/SQL
Ejercicio 1. Crear un procedimiento pl/sql que muestra los nmeros desde el 1
hasta el valor pasado como parmetro.
--Mostrar los nmeros del 1 al parametro
CREATE OR REPLACE PROCEDURE mostrarNumeros1Ub (Ub number )
S
vCont number;
BEGN
-- vContamos de 1 a Ub
vCont := 0;
loop
vCont := vCont + 1;
exit when vCont > Ub;
dbms_output.put_line('teracin nmero ' || vCont);
end loop;
END;
/
show errors
set serveroutput on;
EXEC mostrarNumeros1Ub(5);
Ejercicio 2. Modificar el procedimiento del Ejercicio 1 para que muestre nmeros
desde un valor inferior hasta uno superior con cierto salto.
--Mostrar los nmeros del Lb a Ub con un salto
CREATE OR REPLACE PROCEDURE mostrarNumerosLbUbStep (pLb
N number,
pUb N number, pStep N number DEFAULT 1) S
vCont number;
BEGN
-- contamos de pLb a pUb
vCont := pLb-pStep;
loop
vCont := vCont + pStep;
exit when vCont > pUb;
dbms_output.put_line('teracin nmero ' || to_char((vCont-
pLb+pStep)/pStep));
end loop;
END;
/
show errors
set serveroutput on;
- 75 -
EXEC mostrarNumerosLbUbStep(1990,1995,0.5);
EXEC mostrarNumerosLbUbStep(1990,1995,0.1);
EXEC mostrarNumerosLbUbStep(1990,1995,2);
Ejercicio 3. Modificar el procedimiento del Ejercicio 1 para que inserte los nmeros
en una tabla.
--creacin de objetos
create table numeros(numero number);
delete from numeros;
insert into numeros values(1);
insert into numeros values(2);
insert into numeros values(3);
--Mostrar los nmeros del 1 al parametro
CREATE OR REPLACE PROCEDURE mostrarNumeros1Ub (Ub number)
S
vCont number;
BEGN
-- vContamos de 1 a Ub
vCont := 0;
loop
vCont := vCont + 1;
exit when vCont > Ub;
insert into numeros values(vCont);
--dbms_output.put_line('teracin nmero ' || vCont);
end loop;
END;
/
show errors
set serveroutput on;
EXEC mostrarNumeros1Ub(5);
Cursores SQL
Ejemplo de cursor SQL
--Este procedimiento contiene un cursor SQL que recorre y muestra
--los nmeros de la tabla NUMEROS que sean menores o iguales al parmetro
CREATE OR REPLACE PROCEDURE recorreNumeros1 (pUb N number
DEFAULT 100) is
vNum number;
CURSOR cNumeros S
SELECT numero FROM NUMEROS WHERE NUMEROS.numero <= pUb;
BEGN
OPEN cNumeros;
loop
FETCH cNumeros NTO vNum;
exit when cNumeros%NOTFOUND;
dbms_output.put_line('Nmero ' || vNum);
end loop;
CLOSE cNumeros;
END;
- 76 -
/
show errors
set serveroutput on;
delete from numeros;
EXEC insertaNumerosLbUbStep(1,10);
select * from numeros;
EXEC recorreNumeros1(5);
Otra forma de codificarlo es:
--Este procedimiento contiene un cursor SQL que recorre y muestra
--los nmeros de la tabla NUMEROS que sean menores o iguales al parmetro
CREATE OR REPLACE PROCEDURE recorreNumeros2 (pUb N number
DEFAULT 100) is
CURSOR cNumeros S
SELECT numero, texto FROM NUMEROS WHERE NUMEROS.numero <=
pUb;
regNum cNumeros%ROWTYPE;
BEGN
OPEN cNumeros;
loop
FETCH cNumeros NTO regNum;
exit when cNumeros%NOTFOUND;
dbms_output.put_line('Nmero ' || regNum.numero || ' ' || regNum.texto);
end loop;
CLOSE cNumeros;
END;
/
show errors
set serveroutput on;
delete from numeros;
EXEC insertaNumerosLbUbStep(1,10);
select * from numeros;
EXEC recorreNumeros2(5);
- 77 -
BBLOGRAFA Y FUENTES DE NFORMACN
"Guia para Desarrolladores de Oracle "
Autor Carol McCullough-Dieter
Edit. Anaya Multimedia
"Oracle Manual de administrador"
Autor: Kevin Loney
Edit.: Mc. Graw Hill
"Oracle 7 Manual de Referencia
Autor: George Koch
Edit.: Mc. Graw-Hill
http://otn.oracle.com/tech/linux/content.html
http://www.redcientifica.com/oracle
http://otn.oracle.com/products/oracle9i/datasheets/iots/iot_ds.html
http://otn.oracle.com/products/oracle9i/datasheets/advanced_security/aso_rel2.htm
l
http://otn.oracle.com/products/oracle9i/datasheets/ols/OLS9iR2_ds.html
http://otn.oracle.com/tech/pl_sql/content.html
- 78 -

También podría gustarte