1. 1 Introducción a
Oracle 11g
OBJETIVOS
•Brindar una visión general acerca de una base de datos Oracle cubriendo los aspectos
básicos, teóricos y físicos de bases de datos relacionales, implementación Oracle RDBMS y
ORDBMS.
•Comprender la importancia de un buen modelado de datos, una introducción al lenguaje de
consultas SQL, entre otros temas importantes que marcan los conceptos elementales que
debe de ser manejados.
La base de datos Oracle 11g provee muchas características útiles y poderosas. Muchas
de estas características están incorporadas al nivel de SQL. SQL ha sido adoptado por la
mayoría de los sistemas de gestión de base de datos relacionales (RDBMS).
ANSI (American National Standards Institute) ha estado perfeccionando estándares del
lenguaje SQL en los últimos 20 años. Oracle, como muchas otras compañías, ha
adoptado el estándar ANSI de SQL y lo ha extendido para incluir un gran número de
funcionalidades adicionales.
El desarrollo de software para la gestión de información 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 gestión de base de datos (DBMS), como
Oracle 11g, los cuales proveen funcionalidades de almacenamiento y acceso eficiente a
datos, y diversas otras funcionalidades relacionadas a la gestión integral de datos.
1 INTRODUCCIÓN
2. 2 DESCRIPCIÓN DE BASE DE DATOS
Una base de datos es una colección de datos relacionados. Por dato se entiende a un
hecho conocido que puede ser almacenado y que posee un significado implícito. Por
ejemplo, considere los nombres, números de teléfono y direcciones de un conjunto de
personas almacenados en una libreta de direcciones o en una computadora personal.
Esto es una colección de datos relacionados con un significado implícito, de esta forma,
es una base de datos.
La definición precedente es genérica, sin embargo, el uso común del término base de
datos es usualmente más restringido. Una base de datos posee las siguientes
propiedades implícitas:
En resumen, una base de datos posee alguna fuente a partir de la cual se derivan los
datos, algún grado de interacción con el mundo real, y una audiencia que está
activamente interesada en los contenidos de la base de datos.
Un Sistema de Gestión de Base de Datos (DBMS – Database
Management System) es una colección de programas de
software que permite crear y mantener una base de datos. De
esta forma, el DBMS es un sistema de software de propósito
general que facilita el proceso de definir, construir y
manipular bases de datos para diferentes aplicaciones.
3. Definir una base de datos consiste de especificar los tipos de datos, estructuras y
restricciones para los datos que serán 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 específicos,
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 propósito general para implementar una
base de datos computarizada. Uno podría escribir su propio conjunto de programas para
crear y mantener la base de datos, en efecto, creando su propio software DBMS de
propósito general. En cualquier caso, ya sea que se utilice un DBMS de propósito
general o no, usualmente se emplea una considerable cantidad de software para
manipular la base de datos. La base de datos propiamente dicha más 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 información 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 cómo se
almacenan y mantienen los datos. Oracle 11g es un software DBMS de propósito
general (figura 1.1).
4. 3 DESCRIPCIÓN 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. (figura 1.2)
RDBMS ORDBMS
SISTEMA DE
ARCHIVOS
OODBMS
PARADIGMAS
DBMS´S
CONSULTAS
SIN
CONSULTAS
DATOS
SIMPLES
DATOS
COMPLEJOS
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 gestión de base de datos
relacional ( RDBMS ) varían desde simples consultas incluyendo una única tabla de
base a consultas complicadas de múltiples tablas incluyendo uniones, anidamiento,
diferencia o unión de conjuntos, y otras. Oracle 11g es un RDBMS que implementa
todas las características relacionales más funcionalidades enriquecidas, como ser:
commits rápidos, backup y recuperación, conectividad escalable, bloque a nivel de
filas, consistencia de lectura, particionamiento de tablas, paralelización de consultas,
bases de datos en clúster, exportación e importación de datos, entre otras.
La principal desventaja de bases de datos relacionales ocurre debido a su
inhabilidad de manejar áreas de aplicación como bases de datos espaciales (ej.:
CAD), aplicaciones que manipulan imágenes, y otros tipos de aplicaciones que
incluyen la interrelación compleja de datos.
5. La ambición de representar objetos complejos ha provocado el desarrollo de sistemas
orientados a objeto incluyendo características de orientación 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 reutilización de definiciones existentes para crear nuevos objetos), etc.
Una base de datos orientada a objetos emplea un modelo de datos que soporta
características de orientación a objeto y tipos de datos abstractos. Bases de datos
orientadas a objeto utilizan el poderío de los lenguajes de programación orientados a
objeto para proporcionar capacidades de programación de base de datos. Un sistema de
gestión 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 estándar para bases de datos
relacionales.
La principal desventaja de ODBMS es la mala performance en la manipulación y acceso
a datos. No como en RDBMS, la optimización de consultas en OODBMS es altamente
compleja. OODBMS también 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 características de
orientación a objeto en RDBMSs. Toda la información 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.
Oracle 11g es un ORDBMS, el mismo implementa un sistema de tipos objeto como una
extensión al modelo relacional. La interfase tipo objeto brindada por Oracle 11g continúa
dando soporte a la funcionalidad de base de datos relacional y, además, SQL y otras
varias interfases de programación, 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.
3 TIPOS DE DATOS QUE GESTIONA UNA BASE DE
DATOS ORACLE
Oracle 11g 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 imágenes, videos, archivos
de sonido, etc.
6. La categoría de datos semiestructurados abarca al mundo XML, donde se utiliza marcación
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. Oracle 11g provee servicios de base de
datos para gestionar y servir datos almacenados fuera de la base datos, ya sea disponibles
a través de la web, almacenados en el sistema de archivos local o remoto, o en cualquier
otro medio de almacenamiento secundario.
Por otro lado, Oracle 11g soporta en su totalidad el modelado de datos de empresa, o datos
estructurados. Dentro de esta última clasificación se encuentra al conjunto de tipos de dato
predefinidos incluidos en la base de datos, y a los tipos objeto.
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. Oracle 11g posee
varios tipos de datos predefinidos para satisfacer los requerimientos de una aplicación.
Oracle 11g también soporta tipos de dato ANSI y DB2. Los tipos de dato predefinidos en
Oracle pueden ser clasificados de manera genérica en caracteres, numéricos, long y raw,
fecha y hora, objetos largos, y row ID. Los tipos de dato predefinidos y su utilización son
tratados más adelante .
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
más 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 tecnología de objetos que incluye Oracle 11g es un nivel de abstracción construido sobre
tecnología 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 publicación.
7. 4 NIVELES DE ABSTRACCIÓN DE DATOS
Una característica fundamental de una base de datos es que la misma provee un nivel de
abstracción de datos ocultando detalles acerca del almacenamiento de datos que no son
necesarios para la mayoría de los usuarios de base de datos. Dicha abstracción es
provista a través de un modelo de datos.
Un modelo de datos es una colección 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 mayoría de los modelos de datos también incluyen un conjunto
de operaciones básicas para especificar recuperaciones y actualizaciones realizadas
sobre la base de datos.
8. 5 EL MODELO ENTIDAD – RELACIÓN
El modelo entidad relación (ER) es un modelo de datos conceptual de alto nivel. Este
modelo, y sus extensiones, frecuentemente es utilizado para el diseño conceptual de
aplicaciones de base de datos, y muchas herramientas de diseño de base de datos
emplean sus conceptos.
El modelo ER datos como entidades, son relaciones entre entidades y atributos. El objeto
básico 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 física (una
persona determinada, un auto, una casa, un empleado), o puede ser un objeto con una
existencia conceptual (una compañía, un trabajo, un curso universitario).
Cada entidad posee atributos; propiedades de interés que describen a la entidad. Por
ejemplo, una entidad empleado puede ser descrita por su apellido y nombre, edad,
dirección, salario y tarea realizada. Una entidad particular poseerá un valor para cada uno
de sus atributos 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 compañía que posee cientos de empleados puede desear almacenar
información 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 colección (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
colección 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. Por ejemplo, EMPLEADO se refiere tanto
a un tipo de entidad como al conjunto de todos los empleados almacenados en la base de
datos.
9. Una relación entre dos o más entidades representa una interacción entre las entidades.
Existen varias relaciones implícitas entre tipos entidad. Una relación 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 cuestión. Un tipo relación entre tipos entidad define un conjunto de
asociaciones (conjunto de relaciones) entre entidades de esos tipos
Como ocurre con tipos entidad y conjuntos de entidades, un tipo relación y su
correspondiente conjunto de relaciones son citados por el mismo nombre. Informalmente,
cada relación perteneciente al conjunto de relaciones es una asociación de entidades,
donde la asociación incluye una entidad de cada uno de los tipos de entidades participantes.
Dichas relaciones instancias representan el hecho que las entidades participantes están
relacionadas en alguna forma en el dominio de problema correspondiente. Por ejemplo, la
relación WORKS_FOR entre los tipo entidad EMPLOYEE y DEPARTMENT asocia cada
empleado con el departamento en el cual el mismo trabaja.
10. 6 EL MODELO DE DATOS RELACIONAL
El modelo de datos relacional utiliza el concepto de relación matemática, la cual puede
representarse como una tabla de valores como su bloque de construcción básico. Dicho
modelo se basa en la teoría de conjuntos y la lógica de predicados de primer orden, y sus
principales características son la simplicidad y su fundamentación matemática. Oracle 11g
es un sistema de base de datos comercial que provee una implementación de este
modelo.
El modelo relacional representa la base de datos como una colección de relaciones,
donde cada relación se asemeja a una tabla de valores o archivo plano de registros.
Cuando una relación es pensada como una tabla de valores, cada fila en la tabla
representa una colección 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 relación en el mundo real. El nombre de la tabla y el nombre
de las columnas son utilizados para facilitar la interpretación 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 cómo 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 terminología formal del modelo relacional, una fila es
denominada una tupla, un encabezado de columna es
denominado un atributo, y una tabla es denominada una relación.
El tipo de dato describiendo los tipos de valores que pueden
aparecer en cada columna es denominado dominio.
11. 7 ELEMENTOS QUE COMPONEN UNA TABLA
La terminología utilizada en el modelo relacional es la siguiente:
Tabla: La tabla es la estructura de almacenamiento básica en un Sistema de
Administración 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 unívocamente y un conjunto de columnas. Una vez que
se crea una tabla, se le pueden insertar filas de datos válidos. 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 también 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 precisión (sólo para el tipo de dato
NUMBER).Todos los valores de una columna determinada tienen el mismo tipo de datos,
y éstos están extraídos de un conjunto de valores legales llamado el dominio de la
columna. Las columnas de una tabla están dispuestas en un orden específico 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.
12. Fila: Una fila es una combinación de valores de columnas de una tabla (por ejemplo, la
información acerca de un cliente en la tabla Clientes). Una fila a menudo se denomina
“tupla” o “registro”. Cada tabla tiene cero o más filas, conteniendo cada una un único valor
en cada columna. Las filas están desordenadas; por defecto, los datos están dispuestos de
acuerdo a cómo se insertaron.
Campo: Un campo se encuentra en la intersección 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 más
pequeños.
Clave primaria: Una clave primaria es una columna o conjunto de columnas que identifican
unívocamente cada fila de una tabla (por ejemplo, un número de cliente). Una tabla tiene
una única clave primaria y debe contener un valor.
Clave foránea: Una clave foránea 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 diseño de la base de datos relacional. Una tabla puede contener más de una
clave foránea. Una combinación clave primaria/clave foránea crea una relación padre/hijo
entre las tablas que las contienen.
Las figuras muestran gráficamente lo expresado anteriormente.
13. 8 TIPOS DE SENTENCIAS SQL
Las sentencias SQL se dividen en las siguientes categorías:
•Sentencias de Lenguaje de Definición 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 Manipulación 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 específicos
dentro de la base de datos (GRANT, REVOKE).
•Sentencias de Control de Transacciones: manejan los cambios hechos por los
comandos del lenguaje de manipulación de datos. Los cambios a los datos pueden ser
agrupados en transacciones lógicas (COMMIT, ROLLBACK, SAVEPOINT).
•Sentencias de Control de Sesión: permiten que un usuario controle las propiedades de
la sesión corriente, incluyendo la posibilidad de habilitar o deshabilitar roles, y cambiar la
configuración del lenguaje (ALTER SESSION, SET ROLE).
•Sentencias de Control de Sistema: cambian las propiedades de una instancia de
Oracle 11g. Permiten cambiar diferentes parámetros de configuración, tal como el número
mínimo de servidores compartidos, matar una sesión determinada y ejecutar otras tareas
(ALTER SYSTEM, ALTER SESSION, etc.).
•Sentencias de SQL embebido: permite la incorporación de sentencias DDL, DML y de
control de transacciones en un programa escrito en lenguaje procedural (OPEN, CLOSE,
FETCH, EXECUTE, etc.).