Sei sulla pagina 1di 3

BDoracle 10/9/06 9:45 PM Page 76

Base de datos Oracle S.O.A. Base de datos

Oracle
Por Pablo Berro
Director de Consultoría dos físicamente los datos y facilitar la
Familia de Producto Oracle 10 g
y del departamento Ágiles administración de grandes volúmenes
Snoop Consulting de información.
● Buena Performance para el acceso a la

información. Los DBMS deben proveer


la inteligencia necesaria para acceder a
los datos en forma óptima. Una herra-
mienta fundamental deseablemente
provista por el DBMS es el optimizador
de consultas. Existen dos tipos: Optimi-
zadores Basados en Reglas y Optimiza-
dores Basados en Costos. Su función es
la de definir, por ejemplo, cual es el me-
jor índice a utilizar para acceder a los
datos ante el pedido de ejecución de un
SQL.
● Protección ante errores. Existen dos

tipos fundamentales de errores:


A pesar de que Oracle es especialmente conocido en el mundo de las Bases de Datos empresariales, el Rele- a. Errores humanos: por ejemplo un
ase 10g ofrece soluciones para diferentes necesidades del mercado, desde computación móvil hasta Servi- usuario que elimina un conjunto de re-

l
as Bases de Datos son, desde ha- prestaciones se requieren de un Databa- dores para almacenar Terabytes. La edición Standard One es una opción muy atractiva para soluciones me- gistros por error
ce tiempo, una herramienta am- se Management System (DBMS). dianas.Tiene todas las características de la base de Standard a un precio mucho menor; la única diferencia b. Errores físicos y corrupciones:
pliamente usada en el mundo de Una base de datos se puede definir reside en restricciones de licenciamiento en cuanto a cantidad de usuarios y procesadores. Con esta solución por ejemplo un disco rígido que tiene
IT. De hecho, es difícil pensar hoy como una colección de información or- Oracle esta atacando el mundo de las pequeñas y medianas empresas en donde hoy no es fuerte. fallas
en día en aplicaciones empresa- ganizada de manera tal que un progra- Para ambos casos, los DBMS deben
riales que no requieran bases de datos. ma pueda fácilmente seleccionar y al- tando la definición de reglas de negocio ● Manejo de transacciones. El DBMS de- ofrecer opciones de backup y recovery
En este ámbito, los líderes del mercado macenar información de la misma. Aún básicas que deben respetarse. En gene- be permitir ejecutar en forma atómica adecuadas. Es deseable que las mismas
son Oracle, SQL Server de Microsoft y de una definición tan simple como la ral los DBMS proveen: un conjunto de operaciones sobre los puedan ser realizadas en línea, evitando
DB2 e Informix de IBM sin dejar de men- presentada, se desprenden una serie de a. Restricciones sobre las filas vali- datos. Las aplicaciones, generalmente tiempos de downtime.
cionar la tendencia creciente en el uso requerimientos básicos para un DBMS das. Por ejemplo: El sueldo de un em- confirman o rechazan las transacciones El avance de la tecnología en los úl-
de bases de datos Open Source como que lo diferencian claramente de un pleado no puede ser negativo. ejecutadas mediante COMMIT o ROLL- timos años, el uso extensivo de Internet
MySQL y PostgreSQL. simple repositorio de información co- b. Integridad referencial. Las reglas BACK respectivamente. Hasta que la para aplicaciones de negocios y la nece-
Oracle es sin duda muy fuerte en el mo puede ser una serie de archivos pla- de integridad referencial permiten defi- transacción no haya sido confirmada (o sidad de disponibilidad 7*24 agregan
ámbito de las aplicaciones empresaria- nos o bases de datos xBase. nir restricciones tales como: el departa- rechazada), el DBMS no podrá modifi- nuevas exigencias a las bases de datos
les con grandes bases de datos. Por lo Un servidor de base de datos debe mento de un empleado debe ser escogi- car efectivamente los datos y el resto de tales como:
tanto, cualquiera sea la arquitectura y resolver problemas de manejo de la in- do de una lista de los departamentos los usuarios concurrentes no podrán le- ● Alta disponibilidad

las herramientas de programación que formación y por lo tanto debe proveer: definidos para la empresa en donde tra- er valores modificados por transaccio- ● Escalabilidad

utilicemos en alguno de nuestros pro- ● Acceso concurrente a la información baja. En las bases de datos relacionales nes no completas. ● Disponibilidad controlada

yectos, es muy probable que nos tope- en un ambiente multiusuario. Los DBMS típicamente se implementan mediante ● Seguridad. Control de acceso a la in- ● Adherencia a estándares

mos con una Base de datos Oracle. deben soportar muchos usuarios acce- las FOREIGN KEYS. formación mediante la definición de ● Portabilidad

Desde este lugar de explorador, de diendo a los datos desde diversas apli- c. Integridad a nivel de conjuntos de usuarios y permisos sobre los datos a ● Replicación y distribución

hecho, exploraremos las características caciones, minimizando la contención y Filas. Las restricciones típicas provistas los que pueden acceder. ● Acceso mediante diferentes lenguajes:

de Oracle. garantizando consistencia. El servidor por los DBMS son las Claves primarias y ● Conectividad. Acceso al servidor de No solo SQL sino XML y Web Services
debe resolver problemas típicos de con- Claves únicas. Es deseable que se pue- base de datos mediante protocolos es- ● Posibilidad de programación en len-

Bases de Datos currencia tales como Phantom Reads, dan definir reglas de negocio mas com- tándares tales como TCP/IP. guajes estándares: No solo PL/SQL sino
A pesar de lo conocidas que son las Dirty Reads, Locking, etc. plicadas. Las mismas son implementa- ● Manejo de grandes cantidades de in- también Java o .Net
bases de datos para los programadores, ● Integridad. Un DBMS debe preservar das muchas veces mediante la ejecución formación. El DBMS debe hacer trans- ● Soporte para Objetos y Content Mana-

puede ser difícil definirlas y señalar qué la integridad de la información posibili- de código almacenado en TRIGGERS. parente el modo en que están almacena- gement

Publicado en Nex IT - N°29 – Septiembre 05 76 77


BDoracle 10/9/06 9:45 PM Page 78

Base de datos Oracle Oracle Base de datos

Las Bases de Datos Oracle tro del entorno de la Base de Datos Ora- Java Stored Procedures les de sesiones Java concurrentes. una consulta SQL (figura 1). extractValue(res,'/Resource/ContentType')='text/
xml';
Oracle fue pionero en Base de Datos cle y por lo tanto heredan todas las ven- Oracle permite desarrollar Stored ● El código Java es altamente portable y La base de datos define un tipo de
Relacionales desde su primera versión tajas de la base de datos: excelente per- Procedures en Java. Java Stored Proce- puede ser instalado en cualquier base objeto nativo denominado XMLType Esta función puede ser usada en
en 1978, hasta Oracle 10g en 2003. Hoy formance, escalabilidad, alta disponibi- dures es código Java que se ejecuta de datos Oracle. que es usado para almacenar XML en la consultas SQL o en la definición de vis-
Oracle promueve su “Grid Database” lidad, transaccionalidad, etc. dentro de la Base de Datos Oracle. Para ● La JVM de Oracle incluye un compila- base de datos. Oracle provee de un nú- tas para darle un formato relacional a
implementada con Real Application Además de la API PL/SQL, AQ imple- esto, la base de datos incluye una JVM dor nativo que permite compilar el Có- mero importante de funciones para ac- los datos almacenados dentro de los
Clusters (RAC), una solución probada menta JMS y puede utilizarse desde la compatible con la especificación J2SE digo Java una vez, almacenarlo en la ba- documentos XML.
CREATE VIEW libros (Title, Description) AS
de clusters de bases de datos que brin- API Java. 1.4.x. se de datos en código ejecutable nativo Figura 1. SELECT extractValue(value(x),'/Libro/Title') as
da, en forma transparente, escalabili- ● Manejo de Procesos - DBMS_JOB: Pro- Es posible, además, llamar a código y de esta forma, obtener excelente ren- title,
dad, alta disponibilidad y excelente ren- vee la posibilidad de definir procesos y Java desde PL/SQL y viceversa. dimiento.
extractValue(value(x),'/Libro/Description') as
dimiento. Exploremos las característi- agendar su ejecución a intervalos perió- Con esta característica el programa- description
cas más relevantes de Oracle para los dicos. dor puede, por ejemplo, implementar XML En la base de datos FROM myTable x;

programadores. ● Encriptación - DBMS_OBSFUSCA- un trigger directamente en Java: Los documentos con formato XML
CREATE OR REPLACE PROCEDURE Before_delete
Programación en la base de da- TION_TOOLKIT: Provee encriptación y se han convertido rápidamente, entre Se pueden crear índices para mejo-
(Id IN NUMBER, Ename VARCHAR2)
tos desencriptación de datos utilizando IS language Java otros importantes usos, en el lenguaje rar la velocidad de acceso a la informa-
Otra característica en donde Oracle fue name 'thjvTriggers.beforeDelete estándar para intercambio de datos de ción almacenada dentro de los docu-
(oracle.sql.NUMBER, oracle.sql.CHAR)';
Figura 2.
pionero, es en la posibilidad de progra- negocios. Sin embargo, la mayoría de mentos, incorporando una ventaja
mar dentro de la base de datos. Esto es CREATE OR REPLACE TRIGGER Pre_del_trigger los datos del negocio, son almacenados substancial a otras formas de almacena-
BEFORE DELETE ON Tab
una opción muy valiosa pues permite en bases de datos relacionales tal como miento y recuperación de información
FOR EACH ROW
que ciertas porciones de código se eje- CALL Before_delete (:old.Id, :old.Ename) Oracle 10g. Esto implica un salto impor- de contenido de XML.
CREATE INDEX by_title ON myTable x
cuten directamente en el DBMS, cerca / tante entre la información de origen do-
(extractValue(value(x),'/Libro/Title'));
de los datos. Optando por programar al- cumental (usualmente almacenada en
gunas reglas de negocio y lógica de la import java.sql.* el disco rígido) y datos relacionales al- Imagen: llamando a un Web Service externo La base de datos provee un paquete
aplicación en la base de datos, se logran import java.io.* macenados en la base de datos. con un conjunto de procedimientos pa-
import oracle.sql.*
desde dentro de la base de datos
ciclo de vida. De esta forma
excelentes niveles de rendimiento. import oracle.oracore.* Es difícil obtener información basa-
PL/SQL da en relaciones de datos en documen- Figura 3.
public class thjvTriggers
PL/SQL es el lenguaje más utilizado pa- DES (Data Encryption Standard) tos almacenados en disco y datos den-
{
ra este fin, pues fue ofrecido como op- ● Comunicación y sincronización en- public state void tro de la base de datos. Los datos alma-
ción de programación por Oracle desde tre procesos: Oracle provee infraes- beforeDelete (NUMBER old_id, CHAR old_name) cenados en documentos no están inde-
Throws SQLException, CoreException
la versión 6 en 1989. Se trata de un len- tructura para programación concu- {
xados y usualmente son de recupera-
guaje estructurado con SQL embebido, rrente. Una de las herramientas más Connection conn = ción ineficiente.
JDBCConnection.defaultConnection();
especialmente diseñado para procesa- utilizadas para tal fin, es el package Oracle provee una característica
Statement stmt = conn.CreateStatement();
miento de la información. DBMS_PIPE, que le permite a un proce- String sql = "insert into logtab values que permite construir un puente ro- ceder, extraer y consultar la informa- ra realizar las operaciones básicas de
Lo que hace a PL/SQL especialmen- so enviar mensajes sobre un pipe (o ("+ old_id.intValue() +", '"+ busto y eficiente entre los dos forma- ción usando expresiones XPath. Oracle XML DB (XDB_Utilities). Este pa-
old_ename.toString() + ", BEFORE DELETE');
te potente es la amplia variedad de utili- tubo) que otros procesos pueden reci- stmt.executeUpdate (sql);
tos de información. Dicha característi- El “XML Repository” es el lugar de quete permite operar Bfiles, CLOBs,
tarios, librerías e infraestructura que bir. De esta forma, es posible sincroni- stmt.close(); ca aparece a partir de la versión Ora- almacenamiento de los XML y cuenta DOM, y Oracle XML DB Resource. Tam-
return;
Oracle provee con la base de datos y zar sesiones concurrentes. Otros pac- cle 9i Release 2 y se denomina Oracle con un mecanismo de carpetas y seguri- bién cuenta con un paquete
}
que se pueden utilizar desde el lengua- kages útiles son DBMS_ALERT y { XML DB Repository. Esta característi- dad dentro de la base. Desde la base de (DBMS_XMLGEN) que permite crear do-
je. Podemos nombrar entre otros los si- DBMS_LOCK que proveen otros meca- ca permite almacenar los documentos datos se pueden consultar vistas para cumentos XML desde cualquier consul-
guientes Packages: nismos de sincronización. Los Java Stored Procedures tienen XML directamente en la base de datos determinar que se encuentra almacena- ta SQL por medio de una asociación del
∑ Advanced Queueing - DBMS_AQ: ● Acceso a archivos externos: Desde las siguientes ventajas: Oracle y, una vez almacenado, se per- do en el repositorio. Por ejemplo, la vis- resultado de una consulta a un XML.
Un potente sistema de Colas distribuido PL/SQL y a través de los packages ● No hace falta conocer PL/SQL para mite las consultas de los documentos ta “resource_view” retorna una fila por Oracle también, incluye dentro de
con la Base de Datos similar a MQSeries UTL_FILE y DBMS_LOB el programador programar sobre Bases de Datos Ora- centradas en el XML o de una manera cada por cada documento o folder en el la base de datos un conjunto de parsers
o MSMQ. Oracle AQ provee Comunica- puede acceder a archivos externos a la cle. Podemos, por ejemplo desarrollar relacional. repositorio (figura3). para procesar documentos XML alma-
ción entre procesos punto a punto o Pu- base de datos. triggers en Java en lugar de PL/SQL. Almacenar un documento XML en la Existen algunas funciones que permi- cenados en LOBs.
blish-subscribe, Propagación de mensa- ● Oracle Workflow: Motor de Workflow ● Podemos diseñar una aplicación en base de datos consiste, simplemente, ten realizar consultas sobre el contenido
jes a sistemas externos a través de In- incluido con la base de datos donde en todas sus capas usemos pura- en guardarlo en un directorio del servi- de los documentos de los XML dentro de Web Services
ternet, Transformación de mensajes, ● Herramientas para Web: Podemos mente Java. dor mapeado con WEBDAV a nuestra la base de datos. Por ejemplo, la función La tecnología de Web Services es
etc. La ventaja fundamental de AQ resi- programar en PL/SQL paginas web o ● La JVM tiene la misma escalabilidad li- PC. Para consultar los datos de los XML extractValue, que permite obtener un va- usualmente accedida a través de servi-
de en que los mensajes se manejan den- PL/SQL Pages. neal que la Base de datos y soporta mi- almacenados solo tenemos que realizar lor de un tag XML dado un xpath. dores de aplicaciones. Sin embargo, en

Originalmente publicado en revista .CODE 78 79


BDoracle 10/9/06 9:45 PM Page 80

Base de datos Oracle

SELECT product, country, sales


un entorno heterogéneo y ambientes tencial para ser utilizada para DataWa- FROM sales_tab
WHERE country IN ('BRASIL', 'ARGENTINA')
desconectados, hay una creciente nece- rehousing. Desde Oracle 8i ofrece, entre
GROUP BY product, country
sidad de acceder a Stored Procedures y otras características interesantes, am- MODEL
metadatos a través de Web Services. plias posibilidades de explotación de la PARTITION BY (product) DIMENSION BY (coun-
try) MEASURES (SUM(sales) AS sales)
Oracle 10g posibilita esto con los Data- información como son las extensiones RULES UPSERT
base Web Services que funcionan en de SQL para OLAP: (sales['DIFF BRASIL-ARGENTINA'] =
dos direcciones: ● SQL para Agregaciones: CUBE, RO- sales['BRASIL'] - sales['ARGENTINA']);

● Habilitan la base de datos como pro- LLUP, GROUPING SETS Otros entornos y formas de acceder
veedor de Web Services. Como tal, ● SQL Análisis y Reportes: Ranking, Fun- a Oracle
Oracle puede publicar PL/SQL, Java ciones LAG/LEAD, Funciones, de Venta- Además de PL/SQL y Java Stored
Stored Procedures, AQ, Operaciones na, etc. Procedures, Oracle puede ser accedido
de Base de Datos convencionales, etc. ● SQL Para Modelos: Cláusula MODEL desde ODBC o JDBC y permite utilizar
Oracle 10g lo hace posible con JPublis- (a partir de 10g) otros lenguajes y entornos tales como:

Menú de alternativas

A la hora de tomar una decisión sobre que herramientas utilizar para el ¿Qué criterio podemos utilizar?
desarrollo de una aplicación tenemos que optar por la opción más conve- La respuesta no es simple, pues depende de los requerimientos de la apli-
niente en cuanto a facilidad de programación, necesidades de alto rendi- cación, del cliente y de nuestros conocimientos técnicos. Pero, disponer de
miento, cantidad de usuarios, etc. un menú de alternativas para cada situación puede ayudarnos. Aquí van
cuales son las alternativas mas adecuadas y usadas para cada caso.

her, que genera wrappers Java y los Ejemplo: Supongamos que tenemos ● Oracle Data Provider for .NET

instala automáticamente para ser ac- que mostrar a partir de una tabla de ven- (ODP.NET): una implementación de da-
cedidos a través del Servlet de Web tas un cuadro de doble entrada similar a ta-provider para Bases de Datos Oracle.
Services de OC4J. una planilla Excel con las ventas de los Utiliza APIs nativas a Oracle y de esta
● Habilitan la base de datos como con- países Brasil y Argentina. En las filas que- forma un acceso seguro y rápido desde
sumidor de Web Services. Desde dentro remos tener el producto y las columnas el cualquier aplicación .NET. Usa y hereda
de la base de datos se puede codificar país. clases e interfaces disponibles en el fra-
en SQL, PL/SQL o Java invocando a un mework de .NET.
Web Service externo. Con esto, el pro- Argentina Brasil Diferencia ● Oracle Objects for OLE (OO4O): per-

gramador podría, por ejemplo, realizar Producto 1 1.000 2.000 1.000 mite fácil acceso a la base de datos con
una consulta donde, en lugar de consul- Producto 2 500 600 100 cualquier lenguaje que soporte Micro-
tar una tabla física convencional, se soft COM Automation y tecnología Acti-
consulta el resultado dinámico de un Este tipo de consultas pueden ser veX tales como Visual Basic, Visual C++,
Web Service. muy complicadas y lo poco eficientes. Visual Basic For Applications, IIS Active
Por suerte, Oracle 10g tiene la cláusula Server Pages y otros.
SQL Para OLAP MODEL que nos provee una solución ● Pro*C/C++ - Pro*COBOL: precompila-

Uno de los aspectos en donde Ora- simple para este problema: dores que permiten embeber código SQL
cle es especialmente fuerte es en su po- dentro de programas C++ o COBOL.

Originalmente publicado en revista .CODE 80

Potrebbero piacerti anche