Está en la página 1de 63

I.

INTRODUCCIN

Oracle Database 10g Express Edition (Oracle Database XE) es una versin gratuita de una de las bases de datos del tipo relacional, Oracle ha demostrado ser una de las ms eficientes herramientas en la gestin de grandes cantidades de informacin. . Oracle Database XE es fcil de instalar y fcil de manejar. Con Oracle Database XE, se utiliza una interfaz intuitiva basada en navegador, para administrar la base de datos, crear tablas, vistas y otros objetos de esquema, los datos de importacin, la exportacin, y la vista de tabla; con esta versin la ejecucin de consultas, scripts SQL y la generacin de informes es ms intuitiva y ms amigable. Oracle Database XE incluye Oracle DB HTML 2.1, un entorno declarativo, de desarrollo grfico para crear aplicaciones web centradas en bases de datos. Adems con esta versin se puede utilizar otros productos populares de Oracle para el desarrollo de aplicaciones o incluir aplicaciones de terceros para desarrollar sus aplicaciones de robustas.

II.

TEMAS Y SUBTEMAS

Tema I Elementos esenciales de las bases de datos 1.1 Resultados del Aprendizaje El participante aprender e identificar las partes principales de la ventana de trabajo del manejador. Conocer los principios del proceso de anlisis y diseo de una base de datos relacional. 1.2 Introduccin 1.2.1 Bases de Datos Definicin de una base de datos Una base de datos es un conjunto de archivos interrelacionados entre s, cuyo propsito es servir de almacn a grandes volmenes de informacin.

Caractersticas de las base de datos Las principales caractersticas de una base de datos son las siguientes: Se componen de tablas Cada tabla es nica Una tabla es un conjunto de registros o filas Cada registro se compone de campos o columnas 1

Un registro tiene el mismo nmero de columnas No hay un orden al guardar los registros No hay un orden al guardar las tablas La informacin puede ser almacenada o recuperada utilizando el lenguaje de consulta estndar (Structured Query Language)

Modelos de base de datos Dentro de la ciencia de la computacin a travs del tiempo se han ido definiendo distintos modelos de bases de datos, que de acuerdo a sus caractersticas inherentes cada uno de ellos ha permitido resolver los problemas de eficiencia y eficacia que rodean a la extraccin y manipulacin de datos. Los principales modelos de bases de datos pueden verse en la siguiente tabla:
Modelo Caractersticas

Jerrquico Red

Estructura los archivos de datos mediante padres e hijos (esquema de rbol) Los archivos de datos se encuentran definidos al mismo nivel y se mantienen relacionados todos entre s. Los archivos son organizados a travs de dimensiones , conformando al menos cubos de informacin de tres dimensiones como mnimo. La informacin de los archivos se representa mediante objetos, tal como se realiza en la programacin orientada a objetos (clases, herencia, polimorfismo etc.) Los archivos de informacin se interrelacin a travs de relaciones o reglas de asociacin.

Multidimensional

Orientado a Objetos

Relacional

Visualmente los modelos pueden verse de la siguiente forma:

Administrador de base de datos Para poder administrar la informacin contenida en los archivos de una base de datos es indispensable disponer de un programa que permita que la bsqueda, la extraccin y manipulacin de la informacin se realice de la manera ms eficiente y que siempre garantice la consistencia y confiabilidad de la informacin, este programa se conoce como Administrador de Bases de Datos. As podemos definir al Administrador de base de datos como el software dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Es decir, es el medio por medio del cual podemos comunicarnos con la base de datos.

Caractersticas de un administrador de base de datos Las principales caractersticas de un administrador de base de datos son: Capacidad para almacenar y modificar altos volmenes de datos: el programa de be permitir registrar informacin diversa con un propsito en particular (por ejemplo, una lista de recetas o los clientes de una empresa); debe tambin facilitar las tareas de registro, actualizacin y eliminacin de los datos que contiene. Debe realizar bsquedas de los datos que almacena: debe permitir ubicar un dato de forma fcil y rpida. Por ejemplo, buscar los clientes de apellido "Gmez" que residan en la localidad cuyo cdigo postal es 50200. Permite analizar e imprimir informacin: debe permitir realizar clculos con los datos almacenados; por ejemplo, calcular qu porcentaje de las ventas totales fue realizado en la zona de Rancagua. Requiere del manejo de altos volmenes de datos: debe permitir manejar con relativa facilidad grandes volmenes de datos, por ejemplo cambiar el encargado de ventas de todos los clientes de una zona. Debe compartir datos: es preciso que permita que ms de un usuario acceda simultneamente a los mismos datos.

1.2.2 Oracle Database10g Caractersticas de Oracle Database 10g Oracle ofrece una infraestructura robusta para la gestin de informacin para pequeas y medianas empresas, misma que es conocida como Oracle Database 10g. Esta versin dispone de todo lo necesario para crear aplicaciones. Ente sus principales caractersticas se encuentran las siguientes: Es escalable Robusta, de alta disponibilidad y de arquitectura segura Ofrece un modelo de desarrollo Permite el uso de SQL PL/SQL ,Java y XML Es gratuita Hace uso de una pgina de administracin basada en una interfaz de web muy intuitiva Permite la inclusin de lenguajes de terceros ara el desarrollo de aplicaciones

1.2.3 Proceso de desarrollo de Sistemas A partir de una necesidad de automatizacin es posible utilizar una base de datos dentro de un proceso de desarrollo de sistemas, Oracle hace referencia a las siguientes fases dentro de un ciclo normal de desarrollo:

Estrategia y anlisis Diseo Construccin y documentacin Transicin Produccin


Estrategia y anlisis: Permite definir los requerimientos y especificaciones que deber contener el sistema Diseo: Consiste en realizar el diseo de la base de datos de acuerdo a lo recabado en la fase de estrategia y anlisis. Se recomienda implementar el modelado de datos para obtener el diseo inicial de la base de datos. Construccin y documentacin: Construccin del prototipo, creacin de la base de datos, implementacin del cdigo y documentacin de las especificaciones tcnicas. 5

Transicin: Refinamiento del prototipo, realizacin de pruebas y ajustes. Produccin: Se deja el producto en operacin a cargo de los usuarios finales, se monitorea el desempeo y se realizan adecuaciones.

1.3 Introduccin a la arquitectura de Oracle 10g 1.3.1 Arquitectura Una base de datos de Oracle es un conjunto de datos organizados segn el modelo relacional. Donde cada servidor de Oracle est constituido por una base de datos y una instancia. Una instancia es el conjunto de estructuras de memoria (SGA) y procesos en background que se ejecutan en el servidor: Procesos de usuario: Ejecutan el cdigo de una aplicacin. Procesos de Oracle: Atienden a los procesos de usuario y realizan el mantenimiento de la BD.

1.3.2 Estructura de la base de datos Archivos de datos y espacios de tablas Oracle almacena lgicamente los datos en unas estructuras llamadas tablespaces, las cuales se almacenan fsicamente en archivos o datafiles (Archivos de datos). Una base de datos se compone de una o ms tablespaces. Cada tablespace a su vez se forma de uno o ms archivos de datos. Oracle cuenta con un perfil especial llamado SYSTEM creado automticamente durante el proceso de instalacin. Utilizado para la propia gestin de la BD Las tablespaces constituyen la ventana a travs de la cual los usuarios y diseadores de la BD ven los datos almacenados en los archivos de datos. El administrador de la base de datos es el encargado de mantener las relaciones entre las tablas y los archivos de datos.

Objetos Un objeto Oracle es un elemento creado y almacenado en la base de datos. Ejemplos: tablas, vistas, sinnimos, ndices, secuencias, clusters etc. Tablas: Unidad bsica de almacenamiento de datos. Consta de un nmero fijo de columnas que describen los atributos de la entidad que representa la tabla. Cada columna es de un tipo de datos y se identifica por un nombre. Sobre la tabla se pueden imponer restricciones. o Tipos de restricciones: Clave primaria (PRIMARY KEY) Valor nulo no admitido (NOT NULL) Columna exclusiva (UNIQUE) Valor por omisin (DEFAULT). Clave ajena (FOREIGN KEY). Esquema: Es el conjunto de objetos que posee una cuenta. Para referirnos a un objeto determinado deberemos indicar a que esquema pertenece: nom_esquema.nom_objeto. Vistas: Una vista es bsicamente un subconjunto de las columnas y/o filas de una tabla (u otras vistas). Se define como una consulta y es tratada como una tabla. Una vista no almacena datos, slo se almacena la consulta que la define. Secuencias: Cada secuencia genera una serie nica de nmeros. til en la generacin nica de claves. Pueden ser cclicas o crecer hasta un valor mximo

Sinnimos: Identificador alternativo para denotar un objeto. Se utilizan para: enmascarar el nombre y propietario de un objeto, dar transparencia a objetos remotos de BD distribuidas y simplificar sentencias SQL.

ndices: Proporcionan un acceso ms rpido a los datos. Una vez creados son mantenidos por Oracle y utilizados para la recuperacin de datos. Se pueden crear hasta un mximo de 32 columnas. Implementacin de ndices mediante B+ trees que por ser rboles balanceados igualan el tiempo de acceso a cualquier fila.

Clusters: Agrupamiento de tablas que se almacenan juntas fsicamente. Ventajas: o Se reduce el acceso a disco cuando estn involucradas esas tablas o Las columnas comunes se almacenan una sola vez. Procedimientos, funciones, paquetes: Funciones y procedimientos son bloques de sentencias PL/SQL que se almacenan en el diccionario de datos. Se pueden agrupar procedimientos y funciones en paquetes.

Disparadores: Procedimientos que se ejecutan cuando se produce un evento en la BD. Se utilizan para aumentar la integridad referencial, conseguir mayor seguridad o mejorar las opciones de auditora. Enlaces de BD: Sirven para especificar una va de acceso a un objeto situado en una BD remota.

1.3.3 Autenticacin en Oracle 10g Como en cualquier otro administrador de base de datos Oracle, permite el manejo y administracin de distintos perfiles de acceso a la base de datos, con la finalidad de salvaguardar la integridad y seguridad de los objetos de la base de datos. Cuando se realiza la instalacin de Oracle 10g, en automtico se realiza la creacin de cuentas administrativas a partir de las cuales se podr realizar la administracin y creacin de nuevas usuarios. Estas cuentas son: system sys En el siguiente apartado se describirn los pasos que se deben seguir para poder autentificarse como el administrador.

Autentificndose como administrador

1. Abra la ventana de acceso de base de datos principal de la pgina: a. En W indows, desde el men Inicio, seleccione Programas (o Todos los programas), a continuacin, Oracle Database 10g Express Edition, y luego ir a la base de datos la pgina principal 2. En la ventana Base de datos de inicio una pgina, introduzca la siguiente informacin a. Nombre de usuario: system. b. Contrasea: oracle 3. Haga clic en Iniciar sesin. La base de datos Oracle XE pgina de inicio aparece.

10

Habilitar la cuenta de ejemplo Para iniciar con los ejercicios de la aplicacin, es necesario iniciar la sesin como un usuario de base de datos. Oracle Database XE viene con un usuario de base de datos de ejemplo llamada de recursos humanos. Este usuario posee un nmero de tablas de bases de datos en un esquema de ejemplo que se puede utilizar para crear aplicaciones para un departamento de Recursos Humanos. Sin embargo, por razones de seguridad, esta cuenta de usuario est bloqueada as que ser necesario desbloquear esta cuenta antes de poder construir una aplicacin de ejemplo. Para desbloquear la cuenta de usuario se debern seguir estos pasos:

1. Asegrese de que est siendo iniciado sesin como el administrador de base de datos, como se describe en la seccin anterior. 2. Haga clic en el icono de Administracin y, a continuacin, haga clic en base de datos de usuario. 3. Haga clic en el icono de esquema de recursos humanos para mostrar la informacin del usuario para recursos humanos.

4. En Administrar la base de datos de usuario, introduzca los siguientes datos: a. Contrasea y Confirmar contrasea: Introduzca la contrasea hr. b. Estado de la cuenta: Seleccione desbloqueado. c. Funciones: Asegrese de que tanto CONNECT y RECURSOS estn habilitadas.

11

5. Haga clic en Modificar usuario. 6. Cierre la sesin del usuario system 7. Inicie sesin con el usuario HR

1.3.4 Pgina principal La pgina principal del administrador, tiene una interfaz en HTLM que ha sido diseada para facilitar la navegacin entre las herramientas de administracin:

Las secciones se sta pantalla son las siguientes: Administracin-Gestin de cuentas de usuario de base de datos, administrar la memoria, el almacenamiento y las conexiones de red, supervisar la actividad de base de datos y la informacin de configuracin vista. Examinador de objetos: para ver, crear, modificar, buscar y eliminar base de datos de objetos. Uso de PL / SQL editor para editar y compilar los paquetes, procedimientos, funciones y desencadenadores tiempo que se aprovechan de los informes de errores.

12

SQL-Acceso de las siguientes herramientas de SQL: Comandos SQL-Ejecutar comandos SQL y annimo bloques PL / SQL. Ejecutar secuencias de comandos y se guarda las consultas. SQL Scripts: para crear, editar, ver, ejecutar y borrar archivos de script. Cargar y descargar scripts de su sistema de archivos local. Construir consultas SQL usando una interfaz grfica de usuario. Ver resultados de la consulta con formato y guardar las consultas. Utilidades de datos-de carga y descarga, generar DDL, ver informes de objetos, y restaurar la base de datos de objetos cados. 1.3.5 Navegacin en los mens Usted puede navegar en el Oracle Database XE en su interfaz grfica de usuario haciendo clic en los iconos grandes en la Pgina de Inicio de base de datos y en las pginas de navegacin. Al utilizar estos iconos, usted tiene dos opciones: Al hacer clic en el icono: Haga clic en el icono para ir a la pgina indicada por el nombre del icono. Es posible que tenga que hacer clic en un nmero de estos iconos, descendiendo una pgina a la vez en la jerarqua de la pgina, antes de llegar a su pgina de destino. Seleccin desde el men del icono: Haga clic en la flecha hacia abajo del lado derecho del icono para ver un men, a continuacin, seleccione una opcin en el men o desde cualquiera de sus submens.

13

Tema II Lenguaje SQL 2.1 Resultados El participante conocer las caractersticas del lenguaje SQL y aprender a las formas en cmo puede ejecutar los enunciados en la interfaz de Oracle 10g. 2.2 Introduccin Oracle ha mantenido los estndares de la industria por ello a lo largo de sus distintas versiones ha incorporado el lenguaje SQL como la herramienta de extraccin de datos oficial en sus manejadores de datos. SQL es el lenguaje non procedural para acceder a una base de datos. Este lenguaje permite estructurar comandos de instrucciones SQL para realizar distintas tareas, como recuperar datos de tablas. El lenguaje SQL se encarga de automatizar la forma de navegar la base de datos y realizar la tarea deseada. Todas las operaciones de una base de datos, incluyendo la versin de Oracle Database 10g se realizan mediante sentencias SQL. 2.3 Aplicaciones del SQL 2.3.1 Aplicaciones del SQL Con las instrucciones SQL se pueden realizar las siguientes acciones: Consultar, insertar y actualizar datos en las tablas Realizar clculos, almacenar e imprimir de los resultados de consulta 2.3.2 Clasificacin de los enunciados de SQL Las instrucciones SQL se dividen en varias categoras, de acuerdo a los estndares internacionales dictados los la American National Standars Institute (ANSI) e International Standards Oragnization (ISO): Lenguaje de manipulacin de datos (DML) Estas declaraciones de consultas, insertar, actualizar y eliminar datos en las tablas. Control de transacciones declaraciones Estas declaraciones confirmar o revertir el procesamiento de transacciones. Un grupo de cambios que realiza se conoce como una transaccin. Data Definition Language (DDL) Estas declaraciones crear, modificar, eliminar base de datos y objetos.

A continuacin se muestran los enunciados bsicos de SQL ANSI y una breve descripcin:

14

Un enunciado o instruccin consiste en parte de SQL y palabras reservadas, que tienen un significado especial en SQL y no puede ser utilizado para cualquier otro propsito.e algunas tcnicas que puede utilizar para incluir informacin en la nueva base de datos. Un ejemplo de un enunciado sera: SELECT last_name, department_id FROM employees; A partir de este captulo se describirn los principales enunciados de SQL que se consideran como los fundamentales para realizar las funciones de administracin de las bases de datos. 2.3.3 Recomendaciones al escribir enunciados de SQL Los enunciados de SQL pueden ser construidos fcilmente si se siguen las siguientes recomendaciones: Los enunciado no son sensitivos a maysculas o minsculas a menos que se especifique Los enunciados pueden ser capturados en una o ms lneas Las palabras reservadas no pueden ser divididas o abreviadas Las clusulas debern en la medida de lo posible escribirse en una nueva lneas para mejorar la lectura Se recomienda que las palabras reservadas sean escritas en maysculas y las otras palabras en minsculas

15

2.3.4 Ejecucin de enunciados de SQL En Oracle 10g es posible realizar la creacin y ejecucin de instrucciones SQL con ayuda de las herramientas conocidas como: pgina de comandos SQL, pgina Script Editor o Lnea de comandos SQL (SQL * Plus). La pgina de comandos SQL es una interfaz simple y fcil de usar. Ejecucin de instrucciones SQL en la pgina comandos SQL Para introducir y ejecutar instrucciones SQL en la pgina de comandos SQL: 1. Ingrese a la pgina principal de base de datos. Para ejecutar los ejemplos de esta gua, inicie la sesin como usuario HR con la contrasea para el HR cuenta. 2. En la pgina de base de datos, haga clic en el icono de SQL para mostrar la pgina SQL. 3. Haga clic en el icono de comandos SQL para mostrar los comandos de la pgina de SQL. 4. En los comandos de la pgina de SQL, escriba la siguiente instruccin: SELECT * FROM departments; Tenga en cuenta que las instrucciones SQL se terminan con un punto y coma (;) en los ejemplos. El punto y coma es necesaria para ejecutar las instrucciones SQL en una secuencia de comandos SQL o desde la lnea de SQL smbolo del sistema, pero es opcional en la pgina de comandos SQL. 5. Seleccionar (resaltar) la instruccin SQL que desea ejecutar, a continuacin, haga clic en Ejecutar para ejecutar la instruccin y mostrar los resultados.

16

6. Si desea guardar las instrucciones SQL para su uso futuro, haga clic en el botn Guardar. 7. En el campo Nombre, escriba un nombre para las instrucciones SQL guardado. Tambin puede introducir una descripcin opcional. Haga clic en el botn Guardar para guardar la instruccin SQL. 8. Para acceder a guardar las instrucciones SQL, haga clic en la ficha SQL guardada y seleccione el nombre de la instruccin SQL guardada que desea acceder. Desplegando la estructura de una tabla En SQL Plus es posible ver la estructura de una tabla, para ello es necesario utilizar el comando llamado DESCRIBE. Este comando mostrar las columnas y tipos de datos de una tabla. Su sintaxis es la siguiente: DESC[RIBE] tablename Por ejemplo: DESCRIBE employees;

17

Tema III Enunciado de Seleccin de Datos 3.1 Resultados El participante desarrollar las habilidades para: Crear enunciados en lenguaje SQL que le permitan realizar la seleccin de datos. 3.2 Introduccin La accin ms importante que puede llevarse a cabo en la gestin de la base de datos consiste en la posibilidad de recuperar la informacin que se tiene almacenada en ella, esta extraccin de datos es lo que hace valiosa a una base de datos pues en cualquier momento se est garantizando que la informacin es consistente y es recuperable en cualquier momento, en este captulo el participante aprender cmo es posible realizar la recuperacin de datos a partir del enunciado de seleccin de datos. 3.3 Enunciado de Seleccin de Datos El enunciado de Seleccin de datos llamado SELECT es el enunciado ms poderoso y verstil que se dispone en el lenguaje de SQL. Pues permite obtener la informacin de la base de datos respetando siempre la integridad y consistencia de la informacin.

3.3.1 Capacidades del Select El enunciado de seleccin trabaja directamente con los objetos llamados tablas de la base de datos, es importante recordar que en el modelo bidimensional las tablas se visualizan como la estructura formada por renglones y columnas, tal como se ve en la siguiente figura:

18

Con las tablas el enunciado Select permite realizar las siguientes operaciones con los registros:

Proyeccin: Seleccionar algunas columnas de una tabla Seleccin: Elegir solo algunos renglones de una tabla Join: Realizar la interseccin entre dos o ms tablas

19

3.3.2 Recuperacin de datos en Oracle 10g Para poder ejecutar un enunciado de seleccin bastar con seguir los siguientes pasos: 1. Conectarse o iniciar sesin en la consola de Oracle 2. Elegir la opcin de SQL 3. Y seleccionar la opcin de comandos de SQL 4. En la seccin del editor se deber escribir el enunciado y al terminar 5. Se deber dar un clic en el botn llamado Ejecutar para ver el resultado de la extraccin de datos

3.3.3 Sintaxis Bsica Como todo lenguaje el enunciado select debe respetar ciertas reglas sintcticas y semnticas para tener coherencia y significado, de forma tal que su sintaxis puede verse de la siguiente forma:

20

3.3.4 Uso de alias de columna Cuando se muestra el resultado de una consulta, SQL utiliza normalmente el nombre de la columna seleccionada como el ttulo de la columna. Puede cambiar un ttulo de la columna utilizando un alias de columna para hacer el ttulo ms descriptivo y fcil de entender. Se puede especificar el alias tras el nombre en la columna SELECT lista que utiliza un espacio como separador. Si el alias contiene espacios o caracteres especiales, como signo de nmero # o signo de dlar $, o si es entre maysculas y minsculas, escriba el alias entre comillas "". Ejemplo: uso de un alias de columna para una posicin descriptiva en una consulta SQL

SELECT employee_id "Employee ID number", last_name "Apellido" , FROM employees;

3.3.5 Expresiones Aritmticas Es posible modificar la forma en cmo se muestran los datos de una consulta, en especial cuando es necesario realizar algn clculo matemtico que este baso en una columna de una tabla. Para estos casos es posible utilizar operadores aritmticos, mismos que pueden afectar a una columna, un valor constante o bien utilizar operadores aritmticos. Los operadores aritmticos que se utilizan en SQL son: Operador Descripcin Suma Resta Multiplicacin Divisin

+ * /

Estos operadores pueden utilizarse en cualquier sentencia de SQL exceptuando su uso en la clusula FROM.

Precedencia de Operadores Si una expresin aritmtica contiene ms de un operador, se utilizar el orden de precedencia de operadores para que la expresin pueda ser evaluada. Dicho orden puede verse en la siguiente figura:

/
21

El orden de evaluacin ser de izquierda a derecha, de manera que: La multiplicacin tiene mayor prioridad sobre la suma y la resta El uso de parntesis forzarn a priorizar y clasificar las expresiones

Por ejemplo sin uso de parntesis: SELECT last_name, salary, 12*salary+100 FROM employees;

SELECT last_name, salary, 12*(salary+100) FROM employees;

3.3.6 Definicin del valor NULL Si un rengln de una tabla no tiene definido un valor para una columna se dice que tiene un valor nulo o NULL. Es decir un valor NULL se refiere a un dato que no se tiene disponible, que no ha sido asignado, que es desconocido o que no aplica. Es importante recalcar que un valor NULL no equivale a un valor de cero o de espacio. Se recomienda que durante el diseo de la base de datos se evite el uso de valores NULL pues en algunos casos este valor se omite en datos calculados o de conteos. Ejemplo:

SELECT last_name, salary, commission_ptc FROM employees;

SELECT last_name, salary, 12*salary*commission_ptc FROM employees;

3.3.7 Operador de Concatenacin Un operador de concatenacin permite: Unir columnas o cadenas de caracteres a otras columnas Se representa por dos barras verticales || El resultado de una concatenacin es una expresin de tipo cadena

Ejemplo: SELECT last_name||job_id AS Employees 22

FROM employees;

Uso de literales Es posible que durante el uso de enunciados de seleccin sea necesario incluir frases o constantes dentro de alguna expresin, a estas frases o constantes se les conocer como Cadenas de Literales. Por ejemplo: SELECT last_name | | es un | | job_id AS Employee Details FROM employees;

Al usar este tipo de literales se debe tomar en cuenta lo siguiente: Las cadenas de literales pueden ser incluidas en la sentencia SELECT Estas cadenas de debern estar encerradas entre comillas simples

3.3.8 Restriccin de datos Clusula WHERE La clusula WHERE utiliza operadores de comparacin para identificar las filas de una tabla especfica que cumpla con ciertas condiciones para as restringir la salida de registros Los operadores de comparacin son las enumeradas en la siguiente tabla. Operadores de Comparacin Operador =, !=, <> =,! =, <> >, >=, <, <= >,> =, <, <= BETWEEN ... AND ... LIKE IN ( ), NOT IN ( ) IN (), NOT IN () IS NULL, IS NOT NULL Definicin Prueba de igual a igual no, no es igual a Prueba de una mayor que, mayor o igual que, menor que, menor que o igual a Comprueba si hay un rango entre los valores y entre ellos dos Busca una coincidencia en una cadena, con el comodn% smbolos (cero o varios caracteres) o _ (un carcter) Revisa que los valores se encuentren dentro de una lista de valores Comprueba si un valor es nulo, no es nulo

23

3.3.9 Clasificacin de los datos Clusula ORDER BY Usted puede utilizar SELECT con la ORDER BY clusula para recuperar y mostrar registros de una tabla ordenada de (ordenar) por una columna especificada en la tabla. La columna especificada en la ORDER BY clusula no tiene por qu ser en el SELECT lista de columnas que desea mostrar. Usted puede especificar el orden de clasificacin como ASC para ascender o DESC para descender. El orden predeterminado es ascendente, lo que significa: Los valores numricos se muestran con los valores ms bajos primero, como 1 a 999. Los valores de caracteres se muestran en orden alfabtico, como un primer y ltimo Z. Los valores de fecha se muestran con la mayor brevedad primer valor, como 01-junio-93 antes del 01-junio-95. Nulo (vaco) se muestran los valores de una duracin de secuencias ascendentes y descendentes primero de secuencias. Ejemplo: SELECT * FROM employees WHERE manager_id = 122 ORDER BY employee_id; 3.3.10 Usando condiciones para valores NULOS Para obtener la lista de registros que tienen incluido un valor de nulo en alguna de sus columnas es necesario utilizar las condiciones: IS NULL o IS NOT NULL Estas condiciones evaluaran una columna con valores nulos y si esta contiene dichos valores se mostrarn datos en la pantalla. Estas condiciones debern incluirse en la clusula WHERE. Por ejemplo: SELECT * FROM employees WHERE commission_ptc IS NULL;

3.3.11 Condiciones Lgicas Una condicin lgica combina el resultado de dos condiciones para producir un resultado, estas condiciones lgicas utilizan operadores lgicos. En SQL se disponen de los siguientes operadores: AND OR NOT 24

Para la evaluacin de las condiciones lgicas los operadores basan su comportamiento en tablas de verdad, mismas que se muestran a continuacin:
AND VERDAD FALSO NULL VERDAD VERDAD FALSO NULL FALSO FALSO FALSO FALSO NULL NULL FALSO NULL

Or VERDAD FALSO NULL

VERDAD VERDAD VERDAD VERDAD

FALSO VERDAD FALSO NULL

NULL VERDAD NULL NULL

Not

VERDAD FALSO

FALSO VERDAD

NULL NULL

3.3.12 Reglas de precedencia Las reglas de precedencia determinan el orden en el que las expresiones sern evaluadas o calculadas. La tabla siguiente muestra el orden de evaluacin: Orden de evaluacin 1 2 3 4 5 6 7 8 Operador Operadores aritmticos Operadores de concatenacin Condiciones de comparacin IS [NOT] NULL, LIKE, [NOT] IN [NOT] BETWEEN Condicin NOT Condicin AND Condicin OR

Para modificar este orden ser necesario usar parntesis para cambiar su evaluacin.

25

Tema IV Funciones de SQL 4.1 Resultados Al terminar el captulo el participante ser capaz de conocer y utilizar las distintas funciones de SQL, aplicar estas funciones a enunciados del tipo SELECT. 4.2 Introduccin Las funciones constituyen el bloque bsico y ms poderoso que se dispone en SQL para manipular los datos. A lo largo de este captulo se presentarn las funciones de un rengln, de agrupacin, de tipo carcter, numricas y de fechas que permitirn manipular los datos. 4.3 Funciones de SQL 4.3.1 Las funciones de SQL Las funciones se consideran una de las caractersticas ms poderosas de SQL, ya que estas permiten realizar lo siguiente: Permiten realizar clculos sobre los datos Pueden modificar a solo un conjunto de registros Trabajan con grupos de datos Permiten dar formato a fechas y nmeros Permiten la conversin de datos

Entrada

Salida

Funcin
Ejecucin

arg 1 arg 2 arg n

Resultado

26

4.3.2 Tipos de funciones de SQL Existen dos tipos de funciones: Funciones de un solo rengln: Operan solo sobre un rengln, es decir regresaran el resultado por cada rengln afectado. Funciones de mltiple rengln: Pueden manipular grupos de renglones dando un solo resultado por grupo, estas funciones se conocen tambin como funciones de agrupacin.

Funciones
mltiple rengln

un solo rengln

El uso de las funciones deber realizarse en la clusula del SELECT, de acuerdo a la siguiente sintaxis: SELECT nombre_funcin[argumento],[columna] FROM tabla [WHERE] [ORDER BY]

27

4.3.3 Funciones de un solo rengln Este tipo de funciones trabajan de forma individual con cada rengln que sea afectado por la funcin. Este tipo de funciones pueden recibir uno o ms argumentos y regresan un solo valor para cada registro. Las funciones de un solo rengln a su vez se clasifican en las siguientes categoras:

Caracter

Generales

Funciones de un solo rengln

Nmericas

Conversin

Fecha

Funciones de tipo carcter Estas funciones trabajan con tipos de datos cadena. A continuacin se listan las funciones de esta categora y su descripcin: Funcin
LOWER

Descripcin
Convierte a minsculas

Sintaxis
LOWER(columna) Ejemplo: LOWER(Hola) = hola UPPER(columna) Ejemplo: UPPER (Hola) = HOLA INITCAP(columna) Ejemplo: INITCAP(hola)=Hola CONCAT(columna1, columna2) Ejemplo: CONCAT(Hola,amigo)= Holaamigo SUBSTR(cadena, pos_inicial, num_caracteres) Ejemplo: SUBSTR(HolaMundo,1,4)=Hola LENGTH(columna) Ejemplo: LENGTH(Hola)=4

UPPER

Convierte a maysculas

INITCAP

Capitaliza la primera letra de una cadena Concatena cadenas

CONCAT

SUBSTR

Extrae caracteres de una cadena

LENGTH

Obtiene el largo de una cadena

28

Funcin
INSTR

Descripcin
Encuentra la posicin de un carcter en una cadena Coloca el valor alineado a la derecha o a la izquierda

Sintaxis
INSTR(columna, cadena) Ejemplo: INSTR(HolaMundo, M)=5 LPAD(columna,posiciones,caracter) RPAD(columna,posiciones,caracter) Ejemplo: LPAD(salario,10,*)=*****24000 RPAD(salario,10,*)= 24000***** TRIM(carcter FROM columna) Ejemplo: TRIM(H FROM HolaAmigo)= olaAmigo REPLACE(columna, cadena_buscada,cadena_reemplazo) Ejemplo: REPLACE(HolaAmigo, Hola,Bye)=ByeAmigo

LPAD | RPAD

TRIM

Elimina el carcter de una cadena

REPLACE

Reemplaza el texto buscado en una cadena

Funciones de tipo numrico Las funciones de tipo numrico solo trabajan y devuelven resultados con datos numricos. La lista de funciones numricas son: Funcin
ROUND

Descripcin
Redondea un valor a una posicin decimal especifica Trunca el valor especificado a un decimal

Sintaxis
ROUND(columna, decimal) Ejemplo: ROUND(45.926, 2) = 45.93 TRUNC(columna, decimal) Ejemplo: TRUNC(45.926, 2)=45.92 MOD(divisor, dividendo ) Ejemplo: MOD(1600,300)=100

TRUNC

MOD

Devuelve el residuo de la divisin

Funciones de tipo fecha En Oracle las fechas se almacenan internamente en un formato numrico que representa el siglo, el ao, mes, da, hora, minuto y segundos. El formato estndar de despliegue es el DD-MM-YY, el rango de fechas vlido en Oracle va del 1 de Enero del ao 4712 A.C hasta el 31 de Diciembre del ao 9999 D.C. De manera interna Oracle almacena una fecha en el siguiente orden: Siglo 19 Ao 94 Mes 06 Da 07 Hora 5 Minuto 10 Segundo 43

En Oracle se utiliza la funcin SYSDATE para obtener la fecha y hora actual del servidor de base de datos.

29

Su sintaxis es la siguiente: SELECT SYSDATE FROM DUAL; Operaciones aritmticas con las fechas Dado que las fechas se almacenan como nmeros es posible realizar con ellas operaciones aritmticas para manipular sus valores, las operaciones que pueden realizarse con este tipo de datos son: Operacin Fecha + nmero Fecha nmero Fecha Fecha Fecha + numero /24 Resultado Fecha Fecha Nmero de das Fecha Descripcin Suma un nmero de das a una fecha Resta a una fecha un nmero de das Extrae una fecha de otra Agrega un nmero de horas a una fecha

Funciones de Fecha Las funciones de fecha que Oracle tiene implementadas son: Funcin
MONTHS_BETWEEN

Descripcin
Encuentra el nmero de meses trascurridos entre dos fechas

Sintaxis
MONTHS_BETWEEN(fecha1, fecha2) Ejemplo: MONTHS_BETW EEN(01-SEP-95, 11-Jan94) = 19.67 ADD_MONTHS(fecha,n) Ejemplo: ADD_MONTHS(11-JAN-94,6)=11-JUL-94 NEXT_DAY(fecha,char) Ejemplo: NEXT_DAY(01-SEP-95,FRIDAY)=08-SEP95 LAST_DAY(fecha) Ejemplo: LAST_DAY(01-FEC-95)=28-FEB-95 ROUND (fecha[,fmt]) Ejemplo: ROUND (25-JUL-95,MONTH) = 01-AGU-95 ROUND (25-JUL-95,YEAR) = 01-JUN-96 TRUNC(fecha[, fmt]) Ejemplo: TRUNC(25-JUL-95,MONTH ) = 01-JUL-95 TRUNC(25-JUL-95,YEAR) = 01-JAN-95

ADD_MONTHS

Agrega n meses a una fecha

NEXT_DAY

Determina el siguiente da de la semana

LAST_DAY

Determina el ltimo da del mes

ROUND

Redondea una fecha

TRUNC

Regresa una porcin de una fecha

Funciones de conversin En algunos casos se requiere convertir la salida de algunas de las columnas mediante el cambio de tipo de datos, esta conversin en Oracle puede realizarse de dos formas: Conversin Implcita Conversin Explcita

30

Oracle puede convertir de manera automtica los siguientes tipos de datos: De Varchar o char a Nmero De Varchar2 o char a Fecha De nmero a Varchar2 De Fecha a Varchar2 Para aquellos casos en que se deseen realizar conversiones que no son automticas de deber recurrir a la conversin explicita, misma que se sigue de acuerdo al siguiente diagrama: TO_NUMBER TO_DATE

TO_CHAR

TO_CHAR

Funcin
TO_NUMBER

Descripcin
Convierte una cadena con dgitos en un nmero Convierte una cadena representacin de fecha en una

Sintaxis
TO_NUMBER(char,[fmt],[nlsparams]) Ejemplo: TO_NUMBER(23.5)=23.5 TO_DATE (char,[fmt],[nlsparams]) Ejemplo: TO_DATE('23-02-10','YY-MM-DD')=10/02/23 TO_CHAR (numero|fecha,[fmt],[nlsparams]) Ejemplo: TO_CHAR(SYSDATE,'MM-DD-YY')=08-02-10 TO_CHAR(253.2) = 253.2

TO_DATE

TO_CHAR

Convierte un numero o fecha en un Varchar2

Dnde fmt, corresponde a un modelo de formato de fecha. En Oracle los elementos de este formato son:

31

Elemento YYYY MM MONTH MON DY DAY DD DDD WW o w

Descripcin Ao completo Dos dgitos del mes Nombre del mes Mes abreviado en 3 letras Da de la semana abreviado en 3 letras Nombre del da de la semana Da del Mes en 2 dgitos Da del ao Semana del ao o mes

Funciones Generales Este tipo de funciones traban con cualquier tipo de dato y son utilizadas como para el manejo de excepciones. La lista de funciones es la siguiente: Funcin
NVL

Descripcin

Sintaxis

NVL2

NULLIF

COALESCE

Convierte un valor NULL c un nuevo NVL(expresion1, expresion2) valor Ejemplo: NLV(comisin,0) NVL(fecha_nacimiento,01-JAN-98) NVL(puesto, Sin puesto) Si la espresin1 no es nula, regresa NVL2(expresion1, expresion2, expresion3) la espresin2, pero si la expresin1 Ejemplo: NVL2(comisin,comisin+100,0) es nula se regresa la expresin3 Compara dos expresiones y regresa NULLIF(expresion1, expresion2) nulo su son iguales o la primera Ejemplo: expresin si no son iguales NULLIF(salario, bono) Regresa el primer valor no nulo de la COALESCE(expresion1, expresion2, lista expresionN) Ejemplo: COALESCE(comisin, salario, 10)

32

4.3.4 Funciones de mltiple rengln Las funciones que utilizan una entrada de mltiples renglones para obtener un solo resultado tambin se conocen como funciones de agregacin o agrupacin ya que por su naturaleza permiten manipular un grupo de datos y devolver un solo resultado.

La sintaxis para emplear este tipo de funciones es de la siguiente forma:

Como puede apreciarse las funciones de agrupacin se debern colocan en la clusula SELECT. 33

Tambin debe notarse que aparece una nueva clusula llamada Group by, misma que puede o no ser empleada segn se requiera afectar a un grupo o grupos de datos. Dado que es fcil incurrir en ciertos errores al momento de agrupar se recomienda hacer uso de la siguiente regla: Si el enunciado SELECT contiene columnas que no estn afectadas por alguna funcin de agrupacin, se deber agregar la clusula GROUP BY y listar en este rengln todas las columnas que no estn afectadas por alguna funcin de agrupacin. Por ejemplo:

Las funciones de agrupacin que Oracle dispone son las siguientes: Funcin
AVG

Descripcin
Obtiene el promedio e ignara valores nulos Cuenta el nmero de renglones

Sintaxis
AVG([Distinct | All] n ) Ejemplo: AVG(salario) COUNT({* [| Distinct | All ] expresion}) Ejemplo: COUNT(*) COUNT(id_job) COUNT(Distinct(last_name)) MAX([Distinct | All] expresion ) Ejemplo: MAX(salario) MAX(Fecha) MIN([Distinct | All] expresion ) Ejemplo: MIN(salario) MIN(Fecha) SUM([Distinct | All] expresion ) Ejemplo: SUM(salario)

COUNT

MAX

Obtiene el valor mximo, ignora los nulos

MIN

Obtiene el valor mnimo, ignora los nulos

SUM

Obtiene la suma de valores e ignora los nulos

34

Excluyendo grupos de resultados En ocasiones es necesario delimitar los grupos de datos que se obtienen de las agrupaciones, es decir, es probable que de un grupo que estn aplicando agrupaciones solo se requieran algunas de ellas, en SQL se utiliza la clusula HAVING con este propsito.

La sintaxis de esta clusula se muestra a continuacin:

Visto a modo de ejemplo:

35

Tema V Obtencin de datos de Mltiples Tablas 5.1 Resultados Al terminar este captulo el participante ser capaz de estructurar enunciados de seleccin de datos que accedan a ms de una tabla, podr identificar los datos que usualmente no se pueden obtener con las intersecciones o uniones de tablas habituales. 5.2 Introduccin El algunas ocasiones es necesario obtener informacin de ms de dos tablas, o se requiere complementar la informacin relacionada los datos de distintas tablas, para estos casos se hace uso de intersecciones entre tablas. 5.3 Obteniendo datos de distintas tablas En captulos anteriores se ha visto que el enunciado SELECT ayuda en la obtencin y desplegado de los datos contenidos en alguna tabla. Ahora se ver como este enunciado con ayuda de ndices permite unir varias tablas para obtener informacin complementaria. Este tipo de unin de tablas no es ms que una combinacin de datos, para obtenerla se necesita tener vinculadas algunos renglones entre tablas dependientes, esto se logra mediante la incorporacin de Llaves Primarias (PK) y Llaves Forneas (Fk). Grficamente esta relacin puede verse como se muestra en el siguiente diagrama:

36

5.3.1 Uniendo dos o ms tablas El unir varias tablas se vuelve una tarea til cuando se necesitan ver los datos que se almacena en varias de ellas. Por ejemplo, la tabla employees contiene informacin de los empleados y del nmero de departamento donde estn, pero no se conocen los nombres de dichos departamentos. Si deseamos obtener los datos de los empleados y del departamento deberemos unir las tablas utilizando el ID del departamento. Es decir tendremos que estructurar un enunciado con la siguiente sintaxis:

Tambin es importante considerar que al recuperar datos de varias tablas, de forma explcita (como en la grfica anterior), es necesario que se identifique explcitamente a qu tabla pertenece cada columna a fin de evitar errores de ambigedad (Esto es importante cuando las tablas contienen columnas con el mismo nombre). Al igual que en el caso del uso de alias en las columnas, es posible asignar un alias a una tabla con el fin de acelerar la escritura de los enunciados as como el de mantenerlos legibles. El uso de alias y su sintaxis puede verse en la siguiente firgura:

37

Observe el uso de alias en las tablas para identificar de forma explcita las columnas por tabla. Un alias de tabla se utiliza, en lugar del nombre de la tabla, para simplificar y reducir el tamao del cdigo SQL. Importante: Si las columnas con el mismo nombre tienen tipos de datos diferentes, se produce un error.

38

Ejemplos: SELECT employee_id, last_name, first_name, department_id, department_name, manager_id FROM employees NATURAL JOIN departments; SELECT e.employee_id, e.last_name, e.first_name, e.manager_id, department_id, d.department_name, d.manager_id FROM employees e JOIN departments d USING (department_id);

5.3.2 Tipos de uniones En SQL se han clasificado las uniones de tablas de la siguiente forma: Producto Cartesiano Equijoins Non Equijoins Outer joins Producto Cartesiano Es la unin que resulta de omitir las condiciones o relaciones de igualdad entre dos o ms tablas. Este tipo de uniones resulta ser de un costo computacional alto debido a que los registros involucrados se combinarn entre las tablas mencionadas creando un conjunto de datos que muchas veces no tiene sentido.

39

Equijoins Son las uniones entre tablas que utilizan las llaves primarias y forneas para realizar la combinacin de registros. Este es el tipo de uniones ms comunes dentro del modelo relacional de bases de datos.

No Equijoins Son las combinaciones o uniones de tablas que no necesariamente utilizan las llaves primarias y forneas para realizar la combinacin de registros, en su lugar utilizan operadores de comparacin para obtener el conjunto de resultados. Los operadores que utiliza el no quijoin son: <=, >= y el BETWEEN

40

Outer Joins La combinacin de conjuntos como los joins tienen un detalle, si un rengln no satisface con la condicin de unin este no se mostrar en los resultados. Estos renglones comnmente se conocen como renglones perdidos, pues a pesar de que existen en las tablas estos no pueden visualizarse. En la realidad estos renglones perdidos suelen ser necesarios en la generacin de reportes, por ello Oracle ha dispuesto de un operador para que estos renglones puedan ser visualizados y mostrados al ejecutarse una seleccin de datos. Los outer joins, se clasifican en dos categoras: Outer join porla izquierda, el Outer Join por la Derecha y el Full Outer Join. La sintaxis de cada uno de estos se muestra a continuacin:

41

49

Tema VI Subconsultas 6.1 Resultados Al culminar este captulo el participante ser capaz de describir y reconocer los problemas que pueden solucionarse con una subconsulta o subquery. Y ser capaz de distinguir los distintos tipos de Subconsultas o subquerys. 6.2 Introduccin Supongamos que nos enfrentamos a la siguiente situacin: se nos ha pedido generar la lista de aquellos empleados que ganan ms que la empleada llamada Smirna. Para resolver este problemas se nota que es importante conoce cunto gana Smirna, una vez obtenido su salario ser posible identificar quienes son los que ganan ms que esta cantidad. Es as que este tipo de problemas donde se requiere conocer o identificar un valor desconocido para que al usarlo se puedan obtener datos adicionales se le conocen como problemas de subconsultas. 6.3 Subconsultas 6.3.1 Como identificar las subconsultas. Para identificar cuando podemos usar subconsultas, bastar con iniciar con un anlisis previo del problema y trataremos de dividirlo en dos secciones, que llamaremos consulta principal (Query principal) y la subconsulta (subquery). Para el ejemplo con que se inicio en el captulo podemos verlo de la siguiente manera:

50

6.3.2 Sintaxis de las subconsultas Como puede observarse, una subconsulta es un enunciado SELECT que est incluido en otro enunciado SELECT. Este tipo de enunciados son muy tiles cuando los datos que se requieren seleccionar dependen de la condicin aplicada a otra tabla. La sintaxis para usar una subconsulta es la siguiente:

Donde expresin ser la condicin que deber cumplirse de acuerdo al operador que se est utilizando. En SQL las subconsultas manejan distintos operadores de acuerdo al tipo de subconsultas que se vaya a generar, estos operadores como puede apreciarse en la ilustracin anterior se dividen en Operadores de un Registro y de Mltiples registros. Esta clasificacin de operadores corresponde a su vez de acuerdo al tipo de subconsulta que de vaya a implementar, en SQL se tienen las siguientes categoras de subconsultas:

51

La regla de oro que debe seguirse en el uso de las subconsultas es la siguiente: Utilizar operadores de un solo registro para subconsultas de un solo registro y usar operadores de varios registros para subconsultas de mltiples renglones. Algunas recomendaciones que se deben tomar en cuenta al momento de usar subconsultas son las siguientes:

52

Tema VII Manipulacin de Datos 7.1 Resultados El participante ser capaz de describir los enunciados del tipo DML, insertara datos a objetos tipo tabla, actualizar y borrara registros, combinar tablas y aprender el control de transacciones. 7.2 Introduccin Los enunciados DML son la parte esttica de SQL. Estos enunciados se utilizan para cuando se desea agregar, actualizar o borrar registros de la base de datos. Al conjunto de enunciados DML le conoceremos como una transaccin y a lo largo de este captulo aprenderemos como estructurar enunciados DML y cmo podemos controlar su ejecucin a travs de transacciones. 7.3 Lenguaje de Manipulacin de Datos 7.3.1 Enunciados DML Los enunciados de lenguaje de manipulacin de datos (DML) son los siguientes: INSERT: Permite agregar un registro UPDATE: Permite actualizar los datos de un registro DELETE: Permite eliminar registros de una tabla Estos tres enunciados permiten en realidad la gestin de informacin dentro de una base de datos. A continuacin se dar a conocer su sintaxis y sus reglas de uso. 7.3.2 Enunciado INSERT La sintaxis de este enunciado es la siguiente:

53

En los casos donde no sea necesario registrar todos los datos, el enunciado puede modificarse de la siguiente forma para que solo se registren algunas columnas:

7.3.3 Enunciado UPDATE Este enunciado permite la actualizacin de los datos de la base de datos, su sintaxis bsica es la siguiente:

54

7.3.4 Enunciado DELETE Este enunciado permite eliminar un registro de una tabla, su sintaxis es la siguiente:

Es importante sealar que se deber tener cuidado al eliminar los registros de las bases de datos, pues esta accin no permite deshacer la accin realizada de manera natural. Cuando se realice la eliminacin de los datos, es importante considerar que si se infringen las reglas de integridad referencial se originar un error de integridad al realizar la accin de eliminacin. 7.3.5 Enunciado MERGE Este enunciado permite actualizar o insertar un rengln de manera condicional en una tabla. Este enunciado es el resultado de combinar los enunciados Insert y Update al mismo tiempo, sin embargo es importante sealar que este es un enunciado determinstico y que no ser posible actualizar el mismo rengln en mltiples ocasiones con este enunciado.

55

La sintaxis del enunciado MERGE es la siguiente:

7.3.6 Transacciones en la Base de Datos El manejador de base de datos de Oracle tiene como una de sus principales tareas el de asegurar la consistencia de las transacciones que se realizan en la base de datos. Las transacciones por su parte dan flexibilidad y control cuando se cambian los datos, asegurando la consistencia de los datos si el proceso del usuario o el sistema llega a fallar. En realidad una transaccin consiste en el conjunto de enunciados DML que pueden realizar cambios sobre los datos. Una transaccin inicia cuando se detecta el primer enunciado DML y termina cuando algo de lo siguiente ocurre: Se uso un enunciado COMMIT o ROLLBACK Se ejecuto un enunciado DDL como CREATE Se utilizo un enunciado DCL Si el usuario termino sesin Si el equipo o el sistema operativo falla En Oracle existe un sistema explcito de control de transacciones, mismo que permite que el usuario o programador determine cada cuando ejecutar o cancelar una transaccin. Visualmente este sistema se ve como lo muestra la siguiente figura:

56

Tiempo

COMMIT Transaccin DELETE SAVEPOINT A INSERT UPDATE SAVEPOINT B INSERT


ROLLBACK al SAVEPOINT B ROLLBACK al SAVEPOINT A ROLLBACK

Dnde se emplean los siguientes comandos: Funcin


COMMIT

Descripcin
Termina la transaccin actual realizando todos que los cambios temporales se realicen permanentemente Coloca un punto de retorno Termina la transaccin actual descartando los cambios hechos Regresa la transaccin a un punto especfico de retorno, descarta los cambios hechos y puntos de retorno creados antes del punto de retorno.

SAVEPOINT name ROLLBACK ROLLBACK TO SAVEPOINT name

57

Tema VIII Administracin de Bases de Datos 8.1 Resultados El participante ser capaz de describir los objetos principales de una base de datos, crear tablas, conocer los tipos de datos que pueden emplearse, eliminara y destruir objetos de tipo tabla. 8.2 Introduccin Una base de datos de Oracle puede contener mltiples estructuras de datos. Cada estructura deber estar delimitada durante la fase de diseo de la base de datos. A lo largo de este captulo se abordar la descripcin de los objetos principales de las bases de datos y se ver la forma de administrarlos en el servidor de base de datos. 8.3 Objetos de la Base de Datos 8.3.1 Objetos bsicos de una Base de Datos Los objetos principales de una base de datos son: Tablas: Encargadas de almacenar los datos. Vistas: Subconjunto de datos referentes a una o ms tablas Secuencia: Generador numrico de identificadores ndice: Provee de alto desempeo a algunas consultas de SQL Sinnimo: Permite colocar nombres alternos a los objetos 8.3.2 Creacin de Tablas Antes de crear un objeto de Tipo Tabla en la base de datos es importante considerar las siguientes reglas al momento de asignarles un nombre: Deben comenzar con una letra Su nombre deber estar entre 1 y 30 caracteres de largo Debern contener los caracteres A-Z, a-z. 0-9, _ , $ y el # nicamente. No se podr utilizar un mismo nombre para dos objetos Su nombre no deber ser una palabra reservada.

Para poder crear una tabla, ser necesario utilizar el enunciado CREATE TABLE, que pertenece a la familia DCL (Data Control Language)

58

La sintaxis de este enunciado es la siguiente:

8.3.3 Las tablas en la base de datos En Oracle se pueden distinguir dos tipos de tablas: Tablas del usuario: Es una coleccin de tablas creadas por el usuario que almacenan informacin Diccionario de Datos: Es una coleccin de tablas que son creadas y en mantenimiento por el servidor de Oracle, contienen informacin de la base de datos. El usuario propietario es SYS. Oracle permite la consulta del diccionario de datos que pertenece a un usuario utilizando los siguientes objetos en un enunciado de seleccin de registros: USER_TABLES USER_OBJECTS USER_CATALOG o CAT

Un ejemplo sera: SELECT * FROM CAT;

59

8.3.4 Tipos de Datos Oracle dispone de los siguientes tipos de datos para crear las estructuras de tipo tabla en la base de datos: Tipo de Dato
VARCHAR2(size) CHAR(size) NUMBER(p,s) DATE TIMESTAMP LONG CLOB RAW (size) LONG RAW BLOB BFILE ROWID

Descripcin
Carcter de longitud variable Carcter de longitud fija Nmero de longitud variable, p= precisin, s= escala Valor de fecha y hora Fecha con fraccin de segundos Cadena de longitud variable hasta 2 GB Carcter hasta de 4 GB Dato binario de longitud dada por size, e valor mximo de size es de 2000 Dato binario de longitud variable hasta de 2GB Dato binario hasta de 4 GB Dato binario almacenado en un archivo externo hasta de 4GB Un nmero en base 64 que representa la direccin nica de cada registro en su tabla

8.3.5 Eliminacin de una Tabla Si se desea eliminar una tabla de la base de datos se deber ejecutar el comando DROP TABLE para que el objeto quede eliminado del esquema. Es importante recordar que al momento de eliminar una tabla, su informacin se pierde al mismo tiempo que los ndices que esta haya podido contener. La sintaxis del enunciado es la siguiente:

60

Algunas consideraciones al momento de eliminar una tabla son las siguientes: Ejecutar este enunciado si se desea eliminar todos la informacin de la tabla Las vistas y sinnimos relacionados a la tabla quedan en el esquema pero sern invlidos por hacer referencia a un objeto que ya no existe Si existiera alguna transaccin pendiente esta se finaliza con COMMIt Otra alternativa para eliminar el contenido de una tabla es el comando TRUNCATE, el cual solo elimina la informacin de la tabla dejando su estructura en el esquema. Al utilizar este comando no es posible deshacer la transaccin por lo que es vital mantener cuidado de ejecutar este comando. La sintaxis de TRUNCATE es la siguiente:

8.3.6 Validaciones en el servidor En Oracle existe una objeto llamado constraint que permite prevenir la entrada de datos invlidos a las tablas. Los constraints sirven para: Forzar el cumplimiento de reglas a nivel de tabla cuando se inserta, se actualiza o se borra informacin Previene el borrado de la tabla si esta tiene dependencias con otras tablas

61

Los tipos de constraints que maneja Oracle 10g son los siguientes: Constraint
NOT NULL UNIQUE

Descripcin
Especifica que la columna no puede tener valores nulos Especifica que una columna o combinacin de columnas deben tener valores nicos para todos los renglones de la tabla Identifica como nico a cada rengln de la tabla Establece una referencia fornea con otra tabla y fuerza a una relacin entre tablas Especifica una condicin que debe ser cumplida

PRIMARY KEY FOREING KEY CHECK

8.3.7 Creacin de Vistas Una vista es una tabla lgica que ha sido creada a partir de otra tabla o vista. En ella no se contiene datos como tales, es ms bien como una representacin de una ventana a travs de la cual podemos visualizar los datos. El uso de las vistas tiene ciertas ventajas tales como: Restringen el acceso a los datos, porque solo muestran datos selectivos Pueden ser utilizadas para realizar subconsultas y descomponer enunciados complicados Proveen independencia a los programadores Sin embargo es importante considerar que una vista al ser un objeto virtual este queda restringido a lo siguiente: No es posible hacer uso de enunciados DML en una vista

8.3.8 Otros Objetos de la base de datos La secuencias Una secuencia es un objeto que permite generar de forma automtica nmeros nicos, de ah que casi siempre se destine a crear llaves primarias en las tablas. La creacin de estos objetos trae beneficios contiguos ya que disminuyen el trabajo a los programadores y la asignacin de llaves primarias se vuelve ms eficiente. Dentro de las secuencias se utilizan dos Pseudocolumnas llamadas: NEXTVAL: Permite obtener el siguiente valor de la secuencia CURVAL: Obtiene el valor actual de la secuencia

62

ndices Un ndice es un objeto del esquema que puede aumentar la velocidad de extraccin de los registros mediante el uso de apuntadores. Tambin reducen la lectura y escritura al disco duro pues hacen uso de un acceso de ruta crtica. Son independientes de las tablas que indexan y el servidor automticamente les da mantenimiento para mantener en ptimo funcionamiento la base de datos. Sinnimos Para hacer referencia a una tabla que es propiedad de otro usuario se requiere colocar como prefijo el nombre de la tabla con el nombre del propietario, es decir se debe calificar al objeto para poder accederlo. El uso de sinnimos elimina esta tarea de calificar a los objetos, haciendo que el desarrollador tenga una referencia sencilla a objetos que no son de su propiedad.

8.3.9 Control de Acceso a la Base de datos Como administrador de la base de datos, es preciso mantener un control de seguridad que vigile el acceso a la base de datos. En esta versin ser posible mantener el control mediante: El control de acceso a la base de datos Dando acceso a objetos especficos de la base de datos Creando sinnimos a los objetos de la base de datos La seguridad de la base de datos esta clasificada en dos grandes categoras: seguridad del sistema y seguridad de los datos. La primera se refiere al control de acceso a la base de datos y al sistema mediante el control de usuarios y contraseas, en cambio la segunda se refiere a la seguridad sobre los objetos de la base de datos y las acciones que los usuarios pueden hacer en ellos. De manera que Oracle refiere a la seguridad mediante el uso de: Privilegios: Son los permisos autorizados para ejecutar ciertas instrucciones de SQL. El ms alto nivel se refiere al DBA de la base de datos. Esquemas: Es el conjunto de objetos como tablas, vistas y secuencias, mismo que es propiedad de un usuario. El esquema lleva el mismo nombre que el del usuario propietario.

63

III.

CONCLUSIN FINAL

Oracle Database 10g, resulta ser uno de los administradores de base de datos relacionales ms robustos y vanguardistas, su aplicacin en las actividades diarias agilizan la gestin de datos y manejo de la informacin. Oracle 10G, cuenta entre sus principales caractersticas, la posibilidad de auto administrarse, organizarse en clusters y manejar la administracin de su almacenamiento a travs de la tecnologa Grid Computing.

64

IV.

GLOSARIO TRMINO DEFINICIN Un conjunto de objetos que puede incluir las tablas, las consultas, los formularios, los informes, las macros y los mdulos de cdigo diseados para trabajar conjuntamente para facilitar el uso de una base de datos. Generalmente, una aplicacin de base de datos se implementa en un grupo de usuarios. Una cadena que no contiene ningn carcter. Se puede usar una cadena de longitud cero para indicar que se sabe que no existe un valor para un campo. Para especificar las cadenas de longitud cero, se escribe un par de comillas dobles sin espacio entre ellas (""). Una expresin que define un comando SQL, como SELECT, UPDATE o DELETE, e incluye clusulas como WHERE y ORDER BY. Las cadenas o instrucciones SQL suelen usarse en las consultas y en las funciones de agregado. Un campo definido en una consulta que muestra el resultado de una expresin en vez de mostrar los datos almacenados. El valor se vuelve a calcular cada vez que cambia un valor de la expresin. Un campo en el rea de columna de la vista Tabla dinmica. Los elementos de los campos de columna aparecen en la parte superior de una lista de tabla dinmica. Los campos de columna internos son los ms prximos al rea de detalle; los campos de columna externos se muestran por encima de los campos de columna internos. Un campo que contiene datos resumidos en la vista Tabla dinmica o Grfico dinmico. Un campo de datos suele contener datos numricos. Un campo que resume datos del origen del registro subyacente. Un campo de totales puede usar una funcin de resumen, por ejemplo, Suma o Recuento, o una expresin para calcular los valores de resumen. Un campo que contiene un valor Null. Un campo Null no es igual que un campo que contiene una cadena de longitud cero (" ") o un campo con un valor de 0. Caracteres que se usan en las consultas y expresiones para incluir todos los registros, nombres de archivo u otros elementos que comiencen con caracteres especficos o que coincidan con un determinado modelo. Uno o ms campos de tabla (columnas) que hacen referencia al campo de clave principal o a campos de otra tabla. Una clave externa indica cmo se relacionan las tablas. 65

aplicacin de base de datos

cadena de longitud cero

cadena o instruccin SQL

campo calculado

campo de columna

campo de datos

campo de totales

campo Null

caracteres comodn

clave externa

TRMINO

DEFINICIN Uno o ms campos (columnas) cuyos valores identifican cada registro de una tabla de forma nica. Una clave principal no puede permitir valores Null y siempre debe tener un ndice nico. Una clave principal se usa para relacionar una tabla con claves externas de otras tablas. Una ubicacin dentro de una tabla de base de datos que almacena un tipo de datos en particular. El conjunto de informacin que corresponde a un determinado idioma y pas. El nombre colectivo que se le da a una tabla, objetos Recordset de tipo conjunto de registros dinmicos e instantnea, que son conjuntos de registros que se comportan como objetos. Una pregunta acerca de los datos almacenados en las tablas o una solicitud para realizar una accin en los datos. Una consulta puede unir los datos de varias tablas para que sirvan como origen de datos para un formulario o informe. Representacin grfica de cualquier parte del esquema de una base de datos. Puede ser una imagen completa o parcial de la estructura de la base de datos. Incluye tablas, las columnas que stas contienen y las relaciones entre las tablas. Una herramienta que genera un informe con informacin detallada acerca de los objetos en una base de datos. Para las relaciones que exigen la integridad referencial entre tablas, la eliminacin de todos los registros relacionados en la tabla o las tablas relacionadas cuando se elimina un registro en la tabla principal. Copiar datos y objetos de base de datos en otra base de datos, archivo de hoja de clculo o formato de archivo, de manera que otra base de datos u otro programa pueda usar los datos o los objetos de base de datos. Se pueden exportar datos a diferentes bases de datos, programas y formatos de archivo compatibles. Una consulta que toma los parmetros de entrada y devuelve un resultado como un procedimiento almacenado. Tipos: escalar (de varias instrucciones; devuelve un valor), en lnea (una instruccin; un valor de tabla que se puede actualizar) y tabla (de varias instrucciones; valor de tabla). Una funcin como Suma, Recuento, Promedio o Var que se usa para calcular totales. Una consulta que toma los parmetros de entrada y devuelve un resultado de forma similar a un procedimiento almacenado. Tipos: escalar (de varias instrucciones; devuelve un valor), en lnea (una instruccin; un valor de tabla que se puede actualizar) y tabla (de varias instrucciones; valor de tabla). Una caracterstica que acelera la bsqueda y la ordenacin en una tabla segn los valores de las claves y que exige la unicidad 66

clave principal

columna configuracin regional

conjunto de registros

consulta

diagrama de base de datos Documentador de base de datos

eliminacin en cascada

exportar

funcin

funcin de agregacin

funcin definida por el usuario

ndice

TRMINO

ndice nico

DEFINICIN en las filas de una tabla. La clave principal de una tabla se indiza automticamente. Algunos campos no se pueden indizar debido a su tipo de datos, por ejemplo objeto OLE o datos adjuntos. Un ndice que se define mediante la especificacin de la propiedad Indizado de un campo en S (sin duplicados). Un ndice nico no permitir entradas duplicadas en el campo indizado. Al configurar un campo como clave principal, el campo se define automticamente como nico. Las reglas que se siguen para mantener las relaciones definidas entre tablas al agregar, actualizar o eliminar registros. Minimizar la duplicacin de informacin en una base de datos relacional mediante el diseo eficaz de la tabla. Para normalizar la base de datos, se puede usar el asistente Analizador de tablas. Un valor que se puede especificar en un campo o usar en expresiones o consultas para indicar que faltan datos o que los datos son desconocidos. En Visual Basic, la palabra clave NULL indica un valor Null. Algunos campos, como los campos de clave principal, no pueden contener un valor Null. Un operador que se usa para comparar dos valores o expresiones. Por ejemplo, < (menor que), > (mayor que) y = (igual a). Un conjunto de atributos que especifica qu tipo de acceso tiene un usuario a los datos u objetos de una base de datos. Una asociacin que se establece entre campos comunes (columnas) de dos tablas. Puede ser una relacin uno a uno, uno a varios o varios a varios. Una asociacin entre dos tablas en la que un registro de ambas tablas puede estar relacionado con muchos registros de la otra tabla. Para establecer una relacin varios a varios, se debe crear una tercera tabla y agregarle los campos de clave principal de las otras dos tablas. Una asociacin entre dos tablas en la que el valor de la clave principal de cada registro de la tabla principal corresponde al valor del campo o los campos concordantes de un solo registro de la tabla relacionada. Una asociacin entre dos tablas en la que el valor de la clave principal de cada registro de la tabla principal corresponde al valor del campo o los campos concordantes de varios registros de la tabla relacionada. Una instruccin SQL SELECT dentro de otra consulta de seleccin o acciones. Un objeto de base de datos que almacena los datos en registros (filas) y campos (columnas). Generalmente, los datos son sobre una categora determinada de cosas, como empleados o pedidos. El proceso de comprobar si los datos especificados cumplen 67

integridad referencial

normalizar

Null

operador de comparacin permisos

relacin

relacin de varios a varios

relacin uno a uno

relacin uno a varios

subconsulta

tabla validacin

TRMINO

DEFINICIN ciertas condiciones o limitaciones. Un valor que se escribe automticamente en un campo o control cuando se agrega un nuevo registro. Puede aceptar el valor predeterminado o puede especificar un valor para reemplazarlo.

valor predeterminado

68

V.

BIBLIOGRAFA

Hernandez, Michael J. Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design, Second Edition. Addison-Wesley Professional. 2003. Fleming, Candace C. von Halle, Barbara. Handbook of Relational Database Design. AddisonWesley Professional. 1989. Riordan, Rebecca M. Designing Effective Database Systems. Addison-W esley Professional. 2005. Bryla Bob; Loney Kevin Oracle Database 10g Manual del administrador, McGRAWHILL/INTERAMERICANA DE ESPAA, S.A.U. 2009 http://www.oracle.com

69

70