You are on page 1of 36

1 Conceptos iniciales

La base de datos Oracle9i provee muchas caractersticas tiles y poderosas. Muchas de estas caractersticas estn
incorporadas al nivel de SQL. SQL ha sido adoptado por la mayora de los sistemas de gestin de base de datos relacionales
(RDBMS). ANSI (American National Standards Institute) ha estado perfeccionando estndares del lenguaje SQL en los
ltimos 20 aos. Oracle, como muchas otras compaas, ha adoptado el estndar ANSI de SQL y lo ha extendido para
incluir un gran nmero de funcionalidades adicionales.

El desarrollo de software para la gestin de informacin ha transitado por diferentes etapas, desde implementaciones sobre
un sistema de archivos hasta las bases de datos relacionales y relacionales objeto. En la actualidad existen complejos
sistemas de gestin de base de datos (DBMS), como Oracle9i Server, los cuales proveen funcionalidades de almacenamiento
y acceso eficiente a datos, y diversas otras funcionalidades relacionadas a la gestin integral de datos.

Con el advenimiento de la teora de objetos y la proliferacin del paradigma de orientacin a objetos como base para el
desarrollo de aplicaciones de software, surge en el campo de las bases de datos la necesidad de adaptar un modelo para
mapear en forma directa, en la base de datos, los objetos manipulados por la aplicacin de software. En este sentido,
surgen las bases de datos objeto relacionales (ORDBMS) como una adaptacin de las bases de datos relacionales
brindando, a travs de una capa de objetos, una interfase orientada a objetos que permite almacenar, acceder y recuperar
datos objeto. Orace9i Server, adems de continuar dando soporte a la tecnologa relacional, tambin soporta la tecnologa
objeto relacional brindando todas las funcionalidades necesarias para la gestin de datos objeto.

1.1 Introduccin
En la figura 1 se resenta una clasificacin de los contenidos tratados en esta subunidad teniendo en cuenta la relacin de
los mismos con el Material del Estudiante (kit).
Esta clasificacin sugiere diferentes momentos de lectura, estudio y revisin entre los contenidos de este currculo y el
Material del Estudiante (Kit). Segn esta clasificacin los contenidos pueden ser de:
Lectura Previa: Se sugiere la lectura de estos contenidos antes de abordar los subtemas, temas o unidad asociados
al Material del Estudiante (Kit).

Lectura Complementaria: Se sugiere la lectura de estos contenidos como complemento a los subtemas,
temas o unidad asociados al Material del Estudiante (Kit).
Lectura Adicional: Se sugiere la lectura posterior de estos contenidos como material adicional a los tratados en
el Material del Estudiante (Kit).

Prcticas : Actividades de laboratorios e interactivas incluidas como prctica adicional al Material del Estudiante
(Kit).

1.1.1 Objetivos
Esta seccin brinda una visin general acerca de una base de datos Oracle cubriendo los aspectos bsicos, tericos y
fsicos de bases de datos relacionales, implementacin Oracle RDBMS y ORDBMS.
Tambin se abordar el modelado de datos, una introduccin al lenguaje de consultas SQL y beneficios del lenguaje PL/SQL.

1.1.2 Cuestionario de Iniciacin


Lectura Previa
Coloque el cursor sobre los botones numerados que aparecen a la izquierda para visualizar las preguntas de iniciacin. Si
desea, puede desplegar su respuesta.

1.1.3 Descripcin de Base de Datos


Una base de datos es una coleccin de datos relacionados. Por dato se entiende a un hecho conocido que puede ser
almacenado y que posee un significado implcito. Por ejemplo, considere los nombres, nmeros de telfono y direcciones
de un conjunto de personas almacenados en una libreta de direcciones o en una computadora personal. Esto es una
coleccin de datos relacionados con un significado implcito, de esta forma, es una base de datos.
La definicin precedente es genrica, sin embargo, el uso comn del trmino base de datos es usualmente ms restringido.
Una base de datos posee las siguientes propiedades implcitas:
Una base de datos representa algn aspecto del mundo real, algunas veces denominado universo de discurso o
dominio de problema. Cambios en el dominio correspondiente son reflejados en la base de datos.
Una base de datos es una coleccin de datos lgica y coherente con un significado inherente. Una recoleccin de
datos aleatoria no es una base de datos.
Una base de datos es diseada, construida y cargada con datos para un propsito especfico. Existe un grupo de
usuarios y un conjunto de aplicaciones preconcebidas en las cuales dichos usuarios estn interesados.
En resumen, una base de datos posee alguna fuente a partir de la cual se derivan los datos, algn grado de interaccin
con el mundo real, y una audiencia que est activamente interesada en los contenidos de la base de datos.
Un Sistema de Gestin de Base de Datos (DBMS - Database Management System) es una coleccin de programas de
software que permite crear y mantener una base de datos. De esta forma, el DBMS es un sistema de software de propsito
general que facilita el proceso de definir, construir y manipular bases de datos para diferentes aplicaciones.
Definir una base de datos consiste de especificar los tipos de datos, estructuras y restricciones para los datos que sern
almacenados en la base de datos. Construir la base de datos es el proceso de almacenar los datos propiamente dichos
en un medio de almacenamiento controlado por el DBMS. Manipular una base de datos incluye funciones tales como:
consultar la base de datos para recuperar datos especficos, actualizar la base de datos para reflejar cambios ocurridos
en el mundo real, y generar reportes a partir de los datos.
No es necesario utilizar un software DBMS de propsito general para implementar una base de datos computarizada. Uno
podra escribir su propio conjunto de programas para crear y mantener la base de datos, en efecto, creando su propio
software DBMS de propsito general. En cualquier caso, ya sea que se utilice un DBMS de propsito general o no, usualmente
se emplea una considerable cantidad de software para manipular la base de datos. La base de datos propiamente dicha
ms el software DBMS conforman un Sistema de Base de Datos - .
Un DBMS proporciona un entorno conveniente y eficiente para ser utilizado al extraer y almacenar informacin en la base
de datos. Un sistema de bases de datos proporciona a los usuarios una vista abstracta de los datos ocultando ciertos detalles
de cmo se almacenan y mantienen los datos. Oracle9i Server es un software DBMS de propsito general.

1.1.4 Descripcin de Servidor de aplicaciones (IAS)


La arquitectura de bases de datos tradicional cliente/servidor est basada en un modelo de dos capas.
Este modelo consiste de una capa cliente y un servidor de bases de datos . El procesamiento de las
tareas y la lgica de aplicacin son compartidos entre el servidor de bases de datos y el cliente.
Existen muchas desventajas para este modelo. Los clientes en un modelo de dos capas son clientes
gruesos, donde se encuentra la mayora del procesamiento y lgica de aplicacin. Esto produce un
alto costo de mantenimiento de los clientes. Adems, los clientes pueden ser de diferentes plataformas,
para lo cual es necesario hacer el deployment (despliegue) de la aplicacin para cada plataforma
especfica.

El modelo de tres capas resuelve los problemas del modelo de dos capas. En un modelo de tres capas,
existe una capa entre los clientes y el servidor de base de datos . Esta capa del medio es un servidor
de aplicacin que contiene el grueso de la lgica de aplicacin. Los clientes en este modelo son clientes
delgados. Con esta arquitectura, la lgica de aplicacin est ubicada en una nica capa lo cual facilita
el mantenimiento de la misma.

Application Server es un servidor de aplicaciones confiable, escalable, seguro ubicado en la capa del
medio (middle-tier). Application Server brinda una infraestructura que puede crecer en base a las
necesidades de la empresa u organizacin.
Application Server posibilita a los usuarios implementar aplicaciones mediante una arquitectura de
mltiples capas (multitiered). La capa del medio (middle-tier) posee la lgica de la aplicacin enviando
respuestas a las consultas realizadas por los clientes (normalmente navegadores Web). Una tercera
capa (tier) contiene a la base de datos, de esta manera el procesamiento de transacciones en la misma
puede ser optimizado.
Mediante los servicios que brinda Application Server se puede dar soporte a las distintas etapas que
implica construir un e-business (3).

1.1.5 Descripcin de RDBMS y ORDBMS


Michael Stonebraker, en el paper "Object-Relational DBMS: The Next Wave," clasifica a las aplicaciones de bases de datos
en cuatro tipos: datos simples sin consulta, datos simples con consulta, datos complejos sin consulta, y datos complejos con
consultas. Estos cuatro tipos describen sistemas de archivos, DBMSs relacionales, DBMS orientados a objeto, y DBMSs
objeto relacionales, respectivamente (1).

Una base de datos relacional est compuesta de muchas relaciones en la forma de tablas de dos dimensiones compuestas
por filas y columnas conteniendo tuplas (o registros) relacionadas. Los tipos de consultas que atienden un sistema de gestin
de base de datos relacional ( RDBMS ) varan desde simples consultas incluyendo una nica tabla de base a consultas
complicadas de mltiples tablas incluyendo uniones, anidamiento, diferencia o unin de conjuntos, y otras. Server es un
RDBMS que implementa todas las caractersticas relacionales ms funcionalidades enriquecidas, como ser: commits rpidos,
backup y recuperacin, conectividad escalable, bloque a nivel de filas, consistencia de lectura, particionamiento de tablas,
paralelizacin de consultas, bases de datos en cluster, exportacin e importacin de datos, entre otras. La principal desventaja
de bases de datos relacionales ocurre debido a su inhabilidad de manejar reas de aplicacin como bases de datos espaciales
(ej.: CAD), aplicaciones que manipulan imgenes, y otros tipos de aplicaciones que incluyen la interrelacin compleja de
datos.
La ambicin de representar objetos complejos ha provocado el desarrollo de sistemas orientados a objeto incluyendo
caractersticas de orientacin a objeto, tales como: tipos de dato abstractos y encapsulamiento (la estructura internad de
los datos es ocultada y las operaciones externas pueden ser invocadas sobre el objeto especificado), herencia (tendiendo
a la reutilizacin de definiciones existentes para crear nuevos objetos), etc. Una base de datos orientada a objetos emplea
un modelo de datos que soporta caractersticas de orientacin a objeto y tipos de datos abstractos. Bases de datos orientadas
a objeto utilizan el podero de los lenguajes de programacin orientados a objeto para proporcionar capacidades de
programacin de base de datos. Un sistema de gestin de base datos orientado a objetos ( OODBMS ) implementa un
modelo de objeto, estandarizado por ODMG (Object Database Management Group), que consiste de tipos de dato, constructores
de tipo, etc., similar al modelo estndar para bases de datos relacionales. La principal desventaja de ODBMS es la mala
performance en la manipulacin y acceso a datos. No como en RDBMS, la optimizacin de consultas en OODBMS es
altamente compleja. OODBMS tambin sufren problemas de escalabilidad, y no son capaces de soportar sistemas de gran
escala.

El principal objetivo de un ORDBMS es brindar los beneficios tanto del modelo relacional como del modelo de objetos,
tales como: escalabilidad y soporte de tipos de dato enriquecidos. ORDBMSs emplean un modelo de datos que incorpora
caractersticas de orientacin a objeto en RDBMSs. Toda la informacin es almacenada en tablas, pero algunas de las
entradas tabulares en la base de datos pueden poseer estructuras de datos enriquecidas o complejas (tipos de dato
abstractos). Un ORDBMS soporta una forma extendida de SQL. Las extensiones son necesarias debido a que ORDBMS
dan soporte a tipos de dato abstractos.
Server es un ORDBMS, el mismo implementa un sistema de tipos objeto como una extensin al modelo relacional. La
interfase tipo objeto brindada por Server contina dando soporte a la funcionalidad de base de datos relacional y, adems,
SQL y otras varias interfases de programacin, incluyendo PL/SQL, Java, OCI ( Oracle Call Interface), etc., han sido
enriquecidas con nuevas extensiones para dar soporte a objetos. El resultado es un modelo objeto relacional, el cual
es intuitivo y ofrece la riqueza de una interfase objeto, al mismo tiempo que preserva la concurrencia y el rendimiento de
una base de datos relacional (2)

1.1.6 Tipos de datos que gestiona una BD Oracle


Server gestiona todo tipo de datos, desde datos de empresa (datos que modelan entidades del mundo real, o datos objeto)
hasta datos semiestructurados y no estructurados. Como datos no estructurados se clasifican a imgenes, videos, archivos
de sonido, etc. La categora de datos semiestructurados abarca al mundo XML, donde se utiliza marcacin de datos para
dar cierto grado de "estructura" o autodescribir a los datos en s mismos. Tanto los datos no estructurados como los
semiestructurados pueden ser almacenados dentro de la base de datos o fuera de la misma. Server provee servicios de
base de datos para gestionar y servir datos almacenados fuera de la base datos, ya sea disponibles a travs de la web,
almacenados en el sistema de archivos local o remoto, o en cualquier otro medio de almacenamiento secundario.
Por otro lado, Server soporta en su totalidad el modelado de datos de empresa, o datos estructurados. Dentro de esta
ltima clasificacin se encuentra al conjunto de tipos de dato predefinidos incluidos en la base de datos, y a los tipos objeto
(1).

Cuando se crea una tabla para almacenar datos en la base de datos, es necesario especificar un tipo de dato para cada
una de las columnas definidas. Server posee varios tipos de datos predefinidos para satisfacer los requerimientos de
una aplicacin. Server tambin soporta tipos de dato ANSI y DB2. Los tipos de dato predefinidos en Oracle pueden ser
clasificados de manera genrica en caracteres, numricos, long y raw, fecha y hora, objetos largos, y row ID. Los tipos de
dato predefinidos y su utilizacin son tratados ms adelante (2).

Tipos objeto Oracle son tipos de datos definidos por el usuario que hacen posible modelar entidades complejas del mundo
real, tales como clientes y rdenes de compra, como entidades unitarias ("objetos") en la base de datos. Un tipo objeto
es una clase de tipo de dato. Los mismos pueden utilizarse de la misma manera en que se trata a los tipos de dato ms
familiares, como VARCHAR2 y NUMBER. Por ejemplo, es posible definir un tipo objeto como el tipo de dato en una columna
de una tabla relacional.

La tecnologa de objetos que incluye Server es un nivel de abstraccin construido sobre tecnologa relacional Oracle.
Nuevos tipos objeto pueden ser creados desde cualquier tipo de dato predefinido o tipo objeto previamente definido. Los
metadatos de los tipos definidos por el usuario son almacenados en un esquema que se encuentra disponible para SQL,
PL/SQL, Java, y otras interfases de publicacin.

1.1.7 Modelo de Datos


Una caracterstica fundamental de una base de datos es que la misma provee un nivel de abstraccin de datos ocultando
detalles acerca del almacenamiento de datos que no son necesarios para la mayora de los usuarios de base de datos.
Dicha abstraccin es provista a travs de un modelo de datos .
Un modelo de datos es una coleccin de conceptos que pueden ser utilizados para describir la estructura de una base de
datos. La estructura de una base de datos est conformada por los tipos de datos, las relaciones entre los datos, y las
restricciones que existen sobre los datos. La mayora de los modelos de datos tambin incluyen un conjunto de operaciones
bsicas para especificar recuperaciones y actualizaciones realizadas sobre la base de datos.

1.1.8 Categoras de Modelos de Datos


Los modelos de datos existentes pueden ser categorizados de acuerdo a los tipos de conceptos que utilizan para describir
la estructura de la base de datos.
?
Modelos de datos conceptuales o de alto nivel: Proveen conceptos cercanos a la forma en que la mayora de los
usuarios perciben los datos.
?
Modelos de datos fsicos o de bajo nivel: Proveen conceptos que describen cmo se almacenan los datos en el
medio de almacenamiento. Dichos conceptos generalmente son comprendidos y manejados por usuarios administradores
de base de datos, y no por usuarios finales.
?
Modelos de datos representacionales o de implementacin: Proveen conceptos que pueden ser entendidos por
usuarios finales pero y que a la vez son cercanos a la forma en que los datos estn organizados en la computadora. Dichos
modelos ocultan algunos detalles acerca del almacenamiento de datos pero pueden ser implementados en un sistema de
computacin de forma directa.
Modelos de datos conceptuales utilizan conceptos tales como: entidades, atributos y relaciones. Modelos de datos fsicos
representan informacin en la forma de formatos de registros, ordenamiento de registros, y caminos de acceso. Un camino
de acceso es una estructura que hace eficiente la bsqueda de registros particulares en una base de datos.
Modelos de datos representacionales o de implementacin son los modelos utilizados frecuentemente por los DBMSs
comerciales tradicionales, tales como: Oracle9i Server (1). Esta categora incluye a los modelos de datos relacionales,
ampliamente utilizados en la actualidad, y a los modelos de datos legados o heredados utilizados en el pasado (modelo
de datos de red y modelo de datos jerrquico) (2). Este tipo de modelo representa datos utilizando estructuras de registros
y, de esta forma, generalmente son denominados modelos de datos basados en registros.

1.1.9 El modelo Entidad - Relacin


El modelo entidad relacin (ER) es un modelo de datos conceptual de alto nivel. Este modelo, y sus extensiones, frecuentemente
es utilizado para el diseo conceptual de aplicaciones de base de datos, y muchas herramientas de diseo de base de datos
emplean sus conceptos.

El modelo ER datos como entidades, son relaciones entre entidades y atributos. El objeto bsico que el modelo ER representa
es una entidad, la cual es una "cosa" del mundo real con existencia independiente. Una entidad puede ser un objeto con
existencia fsica (una persona determinada, un auto, una casa, un empleado), o puede ser un objeto con una existencia
conceptual (una compaa, un trabajo, un curso universitario). Cada entidad posee atributos; propiedades de inters que
describen a la entidad. Por ejemplo, una entidad empleado puede ser descrita por su apellido y nombre, edad, direccin,
salario y tarea realizada. Una entidad particular poseer un valor para cada uno de sus atributos (1). Los valores de los
atributos que describen cada entidad se tornan la mayor parte de los datos que son almacenados en una base de datos.

Una base de datos normalmente contiene grupos de entidades que son similares. Por ejemplo, una compaa que posee
cientos de empleados puede desear almacenar informacin similar para cada uno de sus empleados. Estas entidades
"empleado" comparten el mismo conjunto de atributos, pero cada entidad posee sus propios valores para cada atributo.
Un tipo entidad define una coleccin (o conjunto) de entidades que poseen los mismos atributos. Cada tipo entidad en la
base de datos es descrita por su nombre y atributos. La coleccin de todas las entidades de un tipo entidad particular en
la base de datos en un momento determinado es denominado conjunto de entidades, usualmente citado por el mismo
nombre del tipo entidad correspondiente (2). Por ejemplo, EMPLEADO se refiere tanto a un tipo de entidad como al conjunto
de todos los empleados almacenados en la base de datos.

Una relacin entre dos o ms entidades representa una interaccin entre las entidades. Existen varias
relaciones implcitas entre tipos entidad. Una relacin existe cuando un atributo de un tipo entidad hace
referencia a otro tipo entidad. Por ejemplo, el atributo MANAGER del tipo entidad DEPARTMENT hace
referencia al empleado que gerencia el departamento en cuestin. Un tipo relacin entre tipos entidad
define un conjunto de asociaciones (conjunto de relaciones) entre entidades de esos tipos (3). Como
ocurre con tipos entidad y conjuntos de entidades, un tipo relacin y su correspondiente conjunto de
relaciones son citados por el mismo nombre. Informalmente, cada relacin perteneciente al conjunto
de relaciones es una asociacin de entidades, donde la asociacin incluye una entidad de cada uno
de los tipos entidad participantes. Dichas relaciones instancias representan el hecho que las entidades
participantes estn relacionadas en alguna forma en el dominio de problema correspondiente. Por
ejemplo, la relacin WORKS_FOR entre los tipo entidad EMPLOYEE y DEPARTMENT asocia cada
empleado con el departamento en el cual el mismo trabaja.

1.1.10 El modelo de Datos Relacional


El modelo de datos relacional utiliza el concepto de relacin matemtica, la cual puede representarse como una tabla de
valores como su bloque de construccin bsico. Dicho modelo se basa en la teora de conjuntos y la lgica de predicados
de primer orden, y sus principales caractersticas son la simplicidad y su fundamentacin matemtica. Oracle9i Server es
un sistema de base de datos comercial que provee una implementacin de este modelo (1) y (2).

El modelo relacional representa la base de datos como una coleccin de relaciones, donde cada relacin se asemeja a
una tabla de valores o archivo plano de registros. Cuando una relacin es pensada como una tabla de valores, cada fila
en la tabla representa una coleccin de valores de datos relacionados. En el modelo de datos relacional, cada fila en la
tabla representa un hecho que corresponde a una entidad o relacin en el mundo real. El nombre de la tabla y el nombre
de las columnas son utilizados para facilitar la interpretacin del significado de los valores en cada fila de la tabla. Por
ejemplo, la tabla EMPLOYEE es denominada de esta manera ya que cada fila representa hechos acerca de una entidad
empleado en particular. Los nombres de columnas especifican cmo interpretar los valores de datos en cada fila de acuerdo
a la columna a la cual cada valor pertenece. Todos los valores en una columna son del mismo tipo de dato.

En la terminologa formal del modelo relacional, una fila es denominada una tupla, un encabezado de columna es denominado
un atributo, y una tabla es denominada una relacin. El tipo de dato describiendo los tipos de valores que pueden aparecer
en cada columna es denominado dominio.

1.1.11 Elementos que componen una Tabla


La terminologa utilizada en el modelo relacional es la siguiente:

Tabla: La tabla es la estructura de almacenamiento bsica en un Sistema de Administracin de Base de Datos Relacional
(RDBMS).
Los datos de las tablas se almacenan en filas y columnas. Cada tabla se define con un nombre de tabla que la identifica
unvocamente y un conjunto de columnas. Una vez que se crea una tabla, se le pueden insertar filas de datos vlidos.
Las filas de las tablas pueden ser consultadas, borradas o actualizadas.

Columna: Una columna representa un tipo de datos en una tabla (por ejemplo, el nombre del cliente en la tabla Clientes).
Una columna tambin puede ser referenciada como "atributo". Cada columna tiene un nombre de columna, un tipo de dato
(tal como CHAR, DATE o NUMBER), y un ancho (que puede ser predeterminado por el tipo de dato, como en el caso de
DATE) o una escala y precisin (slo para el tipo de dato NUMBER).Todos los valores de una columna determinada tienen
el mismo tipo de datos, y stos estn extrados de un conjunto de valores legales llamado el dominio de la columna. Las
columnas de una tabla estn dispuestas en un orden especfico de izquierda a derecha. Sin embargo, el orden de stas
cuando se almacenan datos no es significativo, pero puede ser especificado cuando se los recupera.

Fila: Una fila es una combinacin de valores de columnas de una tabla (por ejemplo, la informacin acerca de un cliente
en la tabla Clientes). Una fila a menudo se denomina "tupla" o "registro". Cada tabla tiene cero o ms filas, conteniendo
cada una un nico valor en cada columna. Las filas estn desordenadas; por defecto, los datos estn dispuestos de acuerdo
a cmo se insertaron.

Campo: Un campo se encuentra en la interseccin de una fila y una columna. El campo puede contener datos. Si no hay
datos en el campo, se dice que contiene un valor nulo. Los valores de los campos no se pueden descomponer en componentes
ms pequeos.

Clave primaria: Una clave primaria es una columna o conjunto de columnas que identifican unvocamente cada fila de una
tabla (por ejemplo, un nmero de cliente). Una tabla tiene una nica clave primaria y debe contener un valor.

Clave fornea: Una clave fornea es una columna o conjunto de columnas que se refieren a una clave primaria de la misma
tabla o de otra. Se crean estas claves para reforzar las reglas de diseo de la base de datos relacional. Una tabla puede
contener ms de una clave fornea. Una combinacin clave primaria/clave fornea crea una relacin padre/hijo entre las
tablas que las contienen.

Las figuras 1 y 2 muestran grficamente lo expresado anteriormente.

1.1.12 El Lenguaje de Consulta Estructurada (SQL)


Diseado e implementado originariamente por IBM, SQL (Structured Query Language) es actualmente el lenguaje estndar
para bases de datos relacionales comerciales. Esfuerzos de estandarizacin llevados a cabo por ANSI (American National
Standard Institute) e ISO (International Standards Organization) han producido diferentes versiones estndar de SQL (1).

SQL es un lenguaje de base de datos integral (2); el mismo posee sentencias para la definicin, consulta y actualizacin
de datos. Adicionalmente, el mismo posee facilidades para definir vistas de base de datos, especificar restricciones de
seguridad y definir el acceso a datos, definir restricciones de integridad, y para especificar el control de transacciones.

SQL utiliza los trminos tabla, fila y columna para relacin, tupla y atributo, respectivamente.
SQL es flexible y eficiente, con caractersticas que han sido diseadas para la manipulacin de datos facilitando el
acceso y la actualizacin de bases de datos relacionales. Por ejemplo, la siguiente sentencia SQL borra de la base
de datos todos los empleados que pertenecen al departamento numero 90:
DELETE FROM employees
WHERE department_id = 90;
SQL es un lenguaje de cuarta generacin (declarativo), lo cual significa que una sentencia del lenguaje describe
lo que quiere realizarse, pero no en la manera en que debe llevarse a cabo. En la sentencia DELETE mostrada
anteriormente, por ejemplo, no es posible dilucidar de qu modo determinar la base de datos cules son los empleados
que pertenecen al departamento nmero 90 (empleados que se eliminarn de la base de datos). Probablemente, el
servidor Oracle recorrer el conjunto de todos los empleados en un cierto orden para determinar los elementos que
deben borrarse, pero en ningn momento se explicita cmo realizar dicha operacin.
Todas las operaciones realizadas sobre la informacin en una base de datos Oracle son ejecutadas utilizando sentencias
SQL. Una sentencia SQL es una cadena de caracteres SQL. Slo una sentencia SQL completa puede ser ejecutada
satisfactoriamente. Al ejecutarse un fragmento de sentencia se genera un error indicando que se requiere ms texto
(3).

1.1.13 Diferencias con PL/SQL


Teniendo en cuenta que SQL es un lenguaje de cuarta generacin (4GL) y que los lenguajes de tercera generacin,
como C y COBOL, son de naturaleza ms procedimental. Un programa escrito en un lenguaje de tercera generacin (3GL)
implementa un algoritmo paso a paso para resolver el problema (1).

Tanto los lenguajes 3GL como los 4GL tienen sus ventajas y desventajas. Los lenguajes 4GL como SQL son, por regla
general, bastante simples (comparados con los de 3GL) y tienen menos sentencias. Asimismo, aslan al usuario de los
algoritmos y estructuras de datos subyacentes. En algunos casos, sin embargo, las estructuras procedimentales disponibles
en los lenguajes 3GL resultan tiles para expresar un determinado programa. Y aqu es donde entra el PL/SQL, que
combina la potencia y flexibilidad de un lenguaje de SQL (un 4GL) con las estructuras procedimentales de un 3GL.
PL/SQL significa Procedural Language/SQL (Lenguaje Procedimental/SQL). Como su propio nombre 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 IF-THEN-ELSE

Procedimientos y funciones

Tipos de objetos y mtodos (en PL/SQL versin 8 o superior)

Las construcciones procedimentales estn perfectamente integradas con Oracle SQL, lo que da como resultado un lenguaje
potente y estructurado, combinando la flexibilidad de SQL con la potencia y configurabilidad de un 3GL. Por ejemplo si
se quiere actualizar el salario del empleado nmero 250 y de no existirse lo insertar como un nuevo empleado (2).

Trabajando con Oracle9i Server, es posible extender la funcionalidad del lenguaje SQL a travs de funciones PL/SQL
definidas por el usuario (3). Utilizando funciones PL/SQL en sentencias SQL es posible:
Incrementar la productividad brindada al usuario extendiendo el lenguaje SQL. Mejora la expresividad del lenguaje
SQL para tareas complejas o no posibles en SQL.
Mejorar la eficiencia de consultas. Funciones utilizadas en la clusula WHERE de una consulta pueden filtrar
datos utilizando criterios que, de otra forma, deberan ser evaluados por la aplicacin.
Manipular cadenas de caracteres para representar tipos de datos especiales.
Por ejemplo: latitud, longitud, temperatura, etc.
Proveer ejecucin de consultas en paralelo.
Si la consulta es paralelizada, sentencias SQL en la funcin PL/SQL pueden tambin ser ejecutadas en paralelo (utilizando
la opcin de consulta en paralelo).

1.1.14 Tipos de sentencias SQL


Sentencias SQL se dividen en las siguientes categoras (1) :

Sentencias de Lenguaje de Definicin de Datos (DDL - Data Definition Language): crean, modifican y eliminan objetos
de la base de datos (por ejemplo: CREATE, ALTER, DROP, RENAME).

Sentencias de Lenguaje de Manipulacin de Datos (DML - Data Manipulation Language): insertan, modifican, eliminan
y consultan filas de tablas de la base de datos (INSERT, UPDATE, DELETE, SELECT).

Sentencias de Lenguaje de Control de Datos (DCL - Data Control Language): permiten dar o restringir derechos de
acceso a la base de datos y a objetos especficos dentro de la base de datos (GRANT, REVOKE).

Sentencias de Control de Transacciones: manejan los cambios hechos por los comandos del lenguaje de manipulacin
de datos. Los cambios a los datos pueden ser agrupados en transacciones lgicas (COMMIT, ROLLBACK, SAVEPOINT).

Sentencias de Control de Sesin: permiten que un usuario controle las propiedades de la sesin corriente, incluyendo
la posibilidad de habilitar o deshabilitar roles, y cambiar la configuracin del lenguaje (ALTER SESSION, SET ROLE).

Sentencias de Control de Sistema: cambian las propiedades de una instancia de Oracle9i Server. Permiten cambiar
diferentes parmetros de configuracin, tal como el nmero mnimo de servidores compartidos, matar una sesin
determinada y ejecutar otras tareas (ALTER SYSTEM, ALTER SESSION, etc.).

Sentencias de SQL embebido: permite la incorporacin de sentencias DDL, DML y de control de transacciones en
un programa escrito en lenguaje procedural (OPEN, CLOSE, FETCH, EXECUTE, etc.).

1.1.17 Sntesis
Oracle surge de la teora de bases de datos relacionales, concebida por E. F. Codd en la dcada del 50, y extiende tales
conceptos en una amplia gama de direcciones, tales como: data warehousing, procesamiento de transacciones en lnea y
soporte de aplicaciones web.
El desarrollo de software para la gestin de informacin ha transitado diferentes alternativas en los ltimos aos. Primeramente,
el software que se utiliz para el almacenamiento y la recuperacin de datos se bas en sistemas de archivos como medio
de almacenamiento. Dicha solucin requiere que el programador de aplicaciones defina cmo se almacena y cmo se
recupera la informacin, utilizando un lenguaje de programacin, tal como COBOL. Luego surgieron las bases de datos en
red y las bases de datos jerrquicas, tecnologa que qued en desuso debido a su incapacidad de base para brindar eficiencia
y flexibilidad al gestionar grandes volmenes de informacin. Como cuarto paradigma de base de datos, basado en una
teora matemtica formalizada, aparecen las bases de datos relacionales; paradigma que gan rpidamente el mercado
de gestin de datos y que evolucion brindando acceso a datos rpido, flexible y seguro. Debido a su fuerte basamento
matemtico, la tecnologa relacional permiti, y contina permitiendo, el desarrollo de mecanismos de optimizacin que se
utilizan tanto en el acceso a datos como en la actualizacin de los mismos. Sin duda, el auge de las bases de datos
relacionales se debe a la adopcin de un lenguaje estndar universal, SQL, lo que brinda ventajas de integracin,
estandarizacin y eficiencia, a la vez que posibilita el acceso a datos de manera rpida y sencilla.
Oracle9i Server provee muchas caractersticas tiles y poderosas, muchas de las cuales estn incorporadas al nivel de SQL.
Adems, Oracle9i Server posee un lenguaje procedural interno a la base de datos que posibilita la extensin de SQL.
Este tema abord conceptos de bases de datos relacionales y objeto relacionales, introdujo el lenguaje de consulta estructurado
estndar SQL, seal las diferencias que este ltimo posee para con un lenguaje procedural (como PL/SQL), y profundiz
en los modelos de datos.

You might also like