You are on page 1of 55

MÓDULO

HERRAMIENTAS CASE
¿QUÉ SON LAS HERRAMIENTAS CASE?

Se puede definir a las Herramientas CASE como un conjunto de programas y


ayudas que dan asistencia a los analistas, ingenieros de software y
desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un
Software. Como es sabido, los estados en el Ciclo de Vida de desarrollo de un
Software son: Investigación Preliminar, Análisis, Diseño, Implementación e
Instalación.

CASE se define también como:

Conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del
desarrollo de sistemas de información, completamente o en alguna de sus fases.

La sigla genérica para una serie de programas y una filosofía de desarrollo de software que ayuda a
automatizar el ciclo de vida de desarrollo de los sistemas.

Una innovación en la organización, un concepto avanzado en la evolución de tecnología con un


potencial efecto profundo en la organización. Se puede ver al CASE como la unión de las
herramientas automáticas de software y las metodologías de desarrollo de software formales.

Variaciones en el significado deCASE. Computer


Aided Assisted Automated
Software Systems
Engineering

La realización de un nuevo software requiere que las tareas sean organizadas y completadas en forma
correcta y eficiente. Las Herramientas CASE fueron desarrolladas para automatizar esos procesos y
facilitar las tareas de coordinación de los eventos que necesitan ser mejorados en el ciclo de desarrollo
de software.

La mejor razón para la creación de estas herramientas fue el incremento


en la velocidad de desarrollo de los sistemas. Por esto, las compañías
pudieron desarrollar sistemas sin encarar el problema de tener cambios en
las necesidades del negocio, antes de finalizar el proceso de desarrollo.

También permite a las compañías competir más efectivamente usando estos


sistemas desarrollados nuevamente para compararlos con sus necesidades de
negocio actuales. En un mercado altamente competitivo, esto puede hacer la
diferencia entre el éxito y el fracaso.

Las herramientas CASE también permiten a los analistas tener más tiempo para el
análisis y diseño y minimizar el tiempo para codificar y probar.

La introducción de CASE integradas está comenzando a tener un impacto


significativo en los negocios y sistemas de información de las organizaciones.

1
Con un CASE integrado, las organizaciones pueden desarrollar rápidamente sistemas de mejor calidad
para soportar procesos críticos del negocio y asistir en el desarrollo y promoción intensiva de la
información de productos y servicios.

Estas herramientas pueden proveer muchos beneficios en todas las etapas del proceso de desarrollo de
software, algunas de ellas son:

Verificar el uso de todos los elementos en el sistema diseñado.


Automatizar el dibujo de diagramas.
Ayudar en la documentación del sistema.
Ayudar en la creación de relaciones en la Base de Datos.
Generar estructuras de código.

La principal ventaja de la utilización de una herramienta CASE, es la mejora de la calidad de los


desarrollos realizados y, en segundo término, el aumento de la productividad. Para conseguir estos dos
objetivos es conveniente contar con una organización y una metodología de trabajo, además de la
propia herramienta.

La mejora de calidad se consigue reduciendo sustancialmente muchos de los problemas de análisis y


diseño, inherentes a los proyectos de mediano y gran tamaño (lógica del diseño, coherencia,
consolidación, etc.). La mejora de productividad se consigue a través de la automatización de
determinadas tareas, como la generación de código y la reutilización de objetos o módulos.

GLOSARIO DE DEFINICIONES BÁSICAS DE CASE:

CASE: Ayuda por Computadora a la Ingeniería de Software.

TECNOLOGIA CASE: Una tecnología del software que mantiene una disciplina de la ingeniería
automatizada para el desarrollo de software, mantenimiento y dirección de proyecto, incluye
metodologías estructuradas automatizadas y herramientas automatizadas.

HERRAMIENTA CASE: Una herramienta del software que automatiza (por lo menos en parte) una parte
del ciclo de desarrollo de software.

SISTEMA CASE: Un conjunto de herramientas CASE integradas que comparten una interface del usuario
común y corren en un ambiente computacional común.

KIT de HERRAMIENTAS CASE: Un conjunto de herramientas CASE integradas que se han diseñado para
trabajar juntas y automatizar (o proveer ayuda automatizada alciclo de desarrollo de software,
incluyendo el análisis, diseño, codificación y pruebas.

METODOLOGIA CASE: Un automatizable metodología estructurada que define una disciplina e


ingeniería como un acercamiento a todos o algunos aspectos del desarrollo y mantenimiento de
software.

PUESTO DE TRABAJO para CASE: Una estación de trabajo técnica, diseñada a 32 bits o computadora
personal equipada con Herramientas Case que automatiza variasfunciones del ciclo.

PLATAFORMA de HARDWARE para CASE: Una arquitectura de hardware con uno, dos o tres sistemas
puestos en línea, que proveen una plataforma operativa para las Herramientas Case.

2
HISTORIA DE LAS HERRAMIENTAS CASE

Las Herramientas CASE tienen su inicio con el simple procesador de palabras que fue usado para crear y
manipular documentación. En los años setentas vieron la introducción de técnicas gráficas y diagramas
de flujo de estructuras de datos. Sobre este punto, el diseño y especificaciones en forma pictórica han
sido extremadamente complejos y consumían mucho tiempo para realizar cambios.

La introducción de las herramientas CASE para ayudar eneste proceso


ha permitido que los diagramas puedan ser fácilmente creados y
modificados, mejorando la calidad delos diseños de software. Los
diccionarios de datos, un documento muy usado que mantiene los
detalles de cada tipo de dato y los procesos dentro de un sistema, son el
resultado directo de la llegada del diseño de flujo de datos y análisis
estructural, hecho posible a través de las mejoras en las Herramientas
CASE.

Pronto se reemplazaron los paquetes gráficos por paquetes especializados que habilitan la edición,
actualización e impresión en múltiples versiones de diseño. Eventualmente, las herramientas gráficas
integradas con diccionarios de base de datos para producir poderosos diseños y desarrollar
herramientas, podrían sostener ciclos completos de diseño de documentos.

Como un paso final, la verificación de errores y generadores de casos de


pruebas fueron incluidos para validar el diseño del software. Todos estos
procesos pueden saberse integrados en una simple herramienta CASE que
soporta todo el ciclo de desarrollo.

La primera herramienta comercial se remonta a 1982, aunque algunos


especialistas indican que algunos ejemplos de herramientas
paradiagramación ya existían.

No fue sino hasta 1985 en que las herramientas CASE se volvieron realmente importantes en el proceso
de desarrollo de software. Los proveedores prometieron a la Industria que muchas actividades serían
beneficiadas por la ayuda de las CASE.

Estos beneficios consistían, por ejemplo, en el aumento en la productividad. El objetivo en 1985 para
muchos vendedores era producir software más rápidamente.

Las herramientas del CASE serían una familia de métodos favorablemente estructurados para
planeamiento, análisis y diseño. Esto llevaría a la generación automática de código para desarrollo de
software vía una especificación formalmente diseñada. Esto traería como beneficio:

Una mejora en la calidad, fiabilidad, utilidad y rendimiento.


El entorno de producción de documentación para software mejora la comunicación, mantenimiento
y actualización.
Hace el trabajo de diseño de software más fácil y agradable.
La promesa futura de reemplazar realmente a los ingenieros de software especializados.
Reducción del costo de producción de software.
Con estos objetivos en mente, la industria destinó millones en producción de Herramientas CASE.

Así como esta enorme suma de dinero fue gastada en Herramientas CASE, hubotambién trabajo de
investigación a nivel mundial en diferentes instituciones como Universidades, Instituciones
Gubernamentales y de Defensa. La industria de Herramientas CASE está creciendo y está tomando cada
vez mayor importancia.

3
Evolución de las Herramientas CASE

Ayuda en la documentación por computadora.


A inicios de los 80’s :
Diagramación asistida por computadora.
Herramientas de análisis y diseño.

A mediados de los 80’s : Diseño automático de análisis y pruebas.


Repositorios automáticos de información desistemas.
Al final de los 80’s :
Generación automática de código desde especificaciones de diseño.

Metodología Inteligente.
A inicios de los 90’s :
Interface de Usuario reusable como una metodología de desarrollo.

4. Clasificación de las HerramientasCase

No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase
determinada. Podrían clasificarse atendiendo a:
Las plataformas que soportan.
Las fases del ciclo de vida del desarrollo de sistemas que cubren.
La arquitectura de las aplicacionesque producen.
Su funcionalidad.

Las herramientas CASE, en función de las fases del ciclo de vida abarcadas, se pueden agrupar de la
forma siguiente:

1. Herramientas integradas, I-CASE (Integrated CASE, CASE integrado): Abarcan todas las fases del
ciclo de vida del desarrollo de sistemas. Son llamadas también CASE workbench.

2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) ofront-end, orientadas a la
automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo:
análisis y diseño.

3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) oback-end, dirigidas a las últimas
fases del desarrollo: construcción eimplantación.

4
4. Juegos de herramientas o Tools-Case, son el tipo más simple de herramientas CASE. Automatizan
una fase dentro del ciclo de vida. Dentro de este grupo se encontrarían las herramientas de
reingeniería, orientadas a la fase de mantenimiento.

TIPO DE CASE VENTAJAS DESVENTAJAS


Integra el ciclo de vida. No es tan eficiente para soluciones simples, sino
para soluciones complejas.
Permite lograr importantes mejoras de
productividad amediano plazo. Depende del Hardware y del Software.
I – Case
Permite un eficiente soporte al mantenimiento Es costoso.
de sistemas.

Mantiene la consistencia de los sistemas a nivel


corporativo.
Se utiliza en plataforma PC,es aplicable a Permite mejorar la calidad de los sistemas, pero
Upper Case diferentes entornos, no mejora la productividad.

Menor costo No permite la integración del ciclo de vida.


Permite lograr importantes mejoras de No garantiza la consistencia de los resultados a
productividad acorto plazo. nivel corporativo.
Lower Case
Permite un eficiente soporte al mantenimiento No garantiza la eficienciadel Análisis y Diseño.
desistemas.
No permite la integracióndel ciclo de vida.

I - CASE
El I-CASE se concibe como el conjunto decuatro herramientas que tocan las disciplinas que van desde la
estrategia de la empresa, y la concepción del sistema de información, hasta el análisis, diseño y la
generación delos mismos programas.

Las herramientas I-CASE se basan en una metodología. Tienen un repositorio y aportan técnicas
estructuradas para todas las fases del ciclo de vida. Estas son las características que les confieren su
mayor ventaja: una mejora de la calidad de los desarrollos.

Beneficios del I - Case:


Desarrollo Tradicional Case I – Case
Énfasis en la codificación y Énfasis en análisis ydiseño. Énfasis en el modelamientoempresarial.
pruebas de programas.
Especificaciones basadas en Especificaciones basadas en Especificaciones basadas en diagramas
papel. diagramas automatizados. automatizados y perfectamente integrados a
través de las diferentes etapas dedesarrollo.

5
Codificación manual de Generación automática de Generación automática de códigos y
programas. códigos, programas fuente. totalmente integrada con laestación de
trabajo de diseño representación gráfica de las
estructuras de códigos.
Documentación manual. Generación automática de Generación automática de documentación.
documentación.
Mantenimiento de programas Mantenimiento de Mantenimiento de especificaciones de diseño
fuentes. especificaciones de diseño y y regeneración de códigos
regeneración de códigos
Uso de una enciclopedia (coordinador de
conocimientos) para concentrar toda la
información de las diferentes estaciones de
trabajo en forma integrada.

Juego de Herramientas o Tools Case.


Están formadas por un conjunto de herramientas orientadas cada una de ellas a resolver una
determinada fase del desarrollo. El ensamblaje de las mismas se efectúa por medio de una serie de
interfaces que adaptan las salidas producidas por cada una de ellas de forma que sirva como entrada en
la siguiente.

En el mercado actual se pueden citar, entre otras, algunas herramientas distribuidas por fases de
desarrollo como para:
Análisis y Diseño

Prokit Workbench de McDonnell-Douglas


Desing Aid Nastec
Analyst/Designer Tolkit de Yourdon
Excelerator de Index Technology
Pose de Computer System Advisers

Diseño de Archivos y Base de Datos

Chen Toolkit de Chen & Associates


IDMS/Architec de Cullinet Software
Autmate Plus de LBMS
Case Designer de Oracle
Synon
Oracle
Informix

Programación
APS de Sage Software
Tranforms de Transform Logic
TelonPansophic System
Decase de DEC COBOL 2/ Worbench de Micro Focus
Snap CASE para AS/400

Otra posible clasificación, utilizando la funcionalidad como criterio principal, es lasiguiente:

Herramientas de planificación de sistemas de gestión. Sirven para modelizar los requisitos de


información estratégica de una organización.

6
Proporcionan un "metamodelo" del cual se pueden obtener sistemas de información específicos. Su
objetivo principal es ayudar a comprender mejor cómo se mueve la información entre las distintas
unidades organizativas. Estas herramientas proporcionan una ayuda importante cuando se diseñan
nuevas estrategias para los sistemas de información y cuando los métodos y sistemas actuales no
satisfacen las necesidades de la organización.

Herramientas de análisis y diseño. Permiten al desarrollador crear un modelo del sistema que se va
a construir y también la evaluación de la validez y consistencia de este modelo. Proporcionan un
grado de confianza en la representación del análisis y ayudan a eliminar errores con anticipación.

Herramientas de análisis y diseño (Modelamiento).


Herramientas de creación de prototipos y de simulación.
Herramientas para el diseño y desarrollo de interfaces.
Máquinas de análisis y diseño (Modelamiento).

Herramientas de programación. Se engloban aquí los compiladores, los editores y los depuradores
de los lenguajes de programación convencionales.

Ejemplos de estas herramientas son:

Herramientas de codificación convencionales.


Herramientas de codificación de cuarta generación.
Herramientas de programación orientadas a los objetos.

Herramientas de integración y prueba: Sirven de ayuda a la adquisición, medición, simulación y


prueba de los equipos lógicos desarrollados. Entre lasmás utilizadas están:

Herramientas de análisis estático.


Herramientas de codificación de cuarta generación.
Herramientas de programación orientadas a los objetos.

Herramientas de gestión de prototipos. Los prototipos son utilizados ampliamente en el desarrollo


de aplicaciones, para la evaluación de especificaciones de un sistema de información, o para un
mejor entendimiento de cómo los requisitos de un sistema de información se ajustan a los objetivos
perseguidos.

Herramientas de mantenimiento: La categoría de herramientas demantenimiento se puede


subdividir en:

Herramientas de ingeniería inversa.


Herramientas de reestructuración y análisis de código.
Herramientas de reingeniería.

Herramientas de gestión de proyectos. La mayoría de las herramientas CASE de gestión de


proyectos se centran en un elemento específico de la gestión del proyecto, en lugar de proporcionar
un soporte global para la actividad de gestión. Utilizando un conjunto seleccionado de las mismas
sepuede: realizar estimaciones de esfuerzo, coste y duración, hacer un seguimiento continuo del
proyecto, estimar la productividad y la calidad, etc.

Existen también herramientas que permiten al comprador del desarrollo de un sistema, hacer un
seguimiento que va desde los requisitos del pliego de prescripciones técnicas inicial, hasta el trabajo
de desarrollo que convierte estos requisitos en un producto final. Se incluyen dentro de las
herramientas de control de proyectos las siguientes:

7
Herramientas de planificación de proyectos.
Herramientas de seguimiento de requisitos.
Herramientas de gestión y medida.

Herramientas de soporte. Se engloban en esta categoría las herramientas que recogen las
actividades aplicables en todo el proceso de desarrollo,como las que se relacionan a continuación:

Herramientas de documentación.
Herramientas para software de sistemas.
Herramientas de control de calidad.
Herramientas de bases de datos.

Otra clasificación, diferencia las funciones CASE en cinco grupos:

Repositorio.
Funcionan en torno a un repositorio central, siendo éste el núcleo fundamental que contiene todas las
definiciones de objeto y sus relaciones. Los objetos pueden se respecificaciones del sistema en forma de
diagramas de flujo de datos, diagramas entidad-relación, esquemas de bases de datos, diseños de
pantallas, etc. El repositorio es un concepto más amplio que el de diccionario de datos y soporta a los
demás grupos de funciones. No es fácil encontrar en el mercado productos Case con funcionalidades
estrictamente a las de repositorio, ya que, a pesar de su innegable importancia, tienen un carácter
auxiliar de los demás grupos de funciones. Cualquier sistema Case poseerá un repositorio propio o bien,
trabajará sobre un repositorio suministrado por otro fabricante o vendedor.

Re-ingeniería.
Los sistemas Case permiten establecer una relación estrecha y fuertemente formalizable entre los
productos generados a lo largo de distintas fases del ciclo de vida, permitiendo actuar en el sentido
especificaciones-código (ingeniería "directa") y también en el contrario (ingeniería "inversa"). Ello facilita
la realización de modificaciones en la fase más adecuada en cada caso y su traslado a las demás. Al
conjunto de facilidades proporcionadas por la ingeniería «directa» e "inversa" se le denomina "re-
ingeniería".

Soporte del ciclo de vida.


El ciclo de vida de una aplicación o de un sistema de información se compone de varias etapas, que van
desde la planificación de su desarrollo hasta su implantación, mantenimiento y actualización. Aunque el
número de fases puede ser variable enfunción del nivel de detalle que se adopte, pueden de modo
simplificado, identificarselas siguientes:

Planeamiento.
Análisis y Diseño.
Implantación (programación y pruebas).
Mantenimiento y actualización.

Los sistemas Case pueden cubrir la totalidad de estas fases o bien especializarse en algunas de ellas. En
este último caso se pueden distinguir sistemas de "alto nivel"("Upper Case"), orientados a la autonomía
y soporte de las actividades correspondientes a las dos primeras fases y, sistemas de "bajo nivel"
("Lower Case"), dirigidos hacia las dos últimas. Los sistemas de "alto nivel" pueden soportar un número
más o menos amplio de metodologías de desarrollo.

8
Soporte de proyecto.
Este tipo de funciones hace referencia al soporte de actividades que se producen durante el desarrollo,
derivadas fundamentalmente del trabajo en grupos, tales como facilidades de comunicación, soporte a
la creación, modificación e intercambio de documentación, herramientas personales, controles de
seguridad, etc. Los sistemas Case pueden conceder a estas cuestiones una importancia variable por lo
cual elsoporte de proyecto constituye un factor de diferenciación.

Mejora continua de calidad.


Aunque frecuentemente se asocia a los sistemas Case con la mejora de la productividad en el desarrollo
de aplicaciones, debe tenerse en cuenta que una delas principales ventajas estriba también, en la
mejora de la calidad de los desarrollos realizados. Determinados sistemas Case enfatizan más sobre este
punto que sobre el anterior, introduciendo herramientas que permiten ejercer un control intenso de
garantía de calidad del software desarrollado desde las primeras fases de su ciclo devida.

Rango de las Herramientas Case

Algunas Herramientas CASE son sólo para la fase de Diseño.

Otras, son sólo generadoras de Código

Algunas Herramientas de Análisis y Diseño tienen una visión de Desarrollo


orientada aprocesos sin la capacidad de modelamiento.

Algunas proveen Herramientas para el modelamiento sin incluir los procesos


de Análisiso Diseño.

COMPONENTES Y FUNCIONALIDADES DE UNA HERRAMIENTACASE

A continuación se describen los principales componentes de una herramienta CASEy sus


funcionalidades.

9
Repositorio
Base de datos central de una herramienta CASE. El repositorio amplía el concepto de diccionario de
datos para incluir toda la información que se va generando a lo largo del ciclo de vida del sistema, como
por ejemplo: componentes de análisis y diseño (diagramas de flujo de datos, diagramas entidad-
relación, esquemas de bases de datos, diseños de pantallas), estructuras de programas, algoritmos, etc.
En algunas referencias se le denomina Diccionario de Recursos de Información.

La mayoría de herramientas CASE poseen un repositorio propio o bien trabajan sobre un repositorio
suministrado por otro fabricante o vendedor.

Apoyándose en la existencia del repositorio se efectúan comprobaciones de integridad y consistencia:

Que no existan datos no definidos.


Que no existan datos auto definidos (datos que se emplean en una definición pero que no han sido
definidos previamente).
Que todos los alias (referencias a un mismo dato empleando nombres distintos) sean correctos y
estén actualizados.

Las características más importantes de un repositorio son:

o Tipo de información. Que contiene alguna metodología concreta, datos, gráficos, procesos,
informes, modelos o reglas.

o Tipo de controles. Si incorpora algún módulo de gestión de cambios, de mantenimiento de


versiones, de acceso por clave, de redundancia de lainformación.

La gestión de cambios y el mantenimiento de versiones, ayudarán en el caso de que convivan diferentes


versiones de la misma aplicación, o se tengan que realizar cambios en la versión en producción y en la
de desarrollo, simultáneamente.

Tipo de actualización. Si los cambios en los elementos de análisis o diseñose ven reflejados en el
repositorio en tiempo real o mediante un procesopor lotes (batch). Esto será importante en función a la
necesidad de que los cambios sean visibles por todos los usuarios, en el acto.

Reutilización de módulos para otros diseños. El


repositorio es la clave para identificar, localizar y
extraer código para su reutilización.

Posibilidad de exportación e importación para


extraer información del repositorio y tratarla con
otra herramienta (formateo de documentos,
mejorade presentación) o incorporar al
repositorio, información generada por
otrosmedios.

Interfases automáticas con otros repositorios o bases de datos externos.

Módulos de diagramación y modelización


Algunos de los diagramas y modelosutilizados con mayor frecuencia son:

Diagrama de flujo de datos.


Modelo entidad - interrelación.
Historia de la vida de las entidades.

10
Diagrama Estructura de datos.
Diagrama Estructura de cuadros.
Técnicas matriciales.

Algunas características referentes a los diagramas son:

Número máximo de niveles para poder soportar diseños complejos.

Número máximo de objetos que se pueden incluir para no encontrarse limitado en el de grandes
aplicaciones.

Número de diagramas distintos en pantalla o al mismo tiempo en diferentes ventanas.

Dibujos en formato libre con la finalidad de añadir comentarios, dibujos, información adicional para
aclarar algún punto concreto del diseño.

Actualización del repositorio por cambios en los diagramas. Siempre resulta más fácil modificar de
forma gráfica un diseño y que los cambios queden reflejados en el repositorio.

Control sobre el tamaño, fuente y emplazamiento de los textos en el diagrama.

Comparaciones entre gráficos de distintas versiones. De esta forma será más fácil identificar qué
diferencias existen entre las versiones.

Inclusión de pseudocódigo, que servirá de base a los programadores para completar el desarrollo de
la aplicación.

Posibilidad de deshacer el último cambio, facilitando que un error no conlleve perder el trabajo
realizado.

Herramienta de prototipado
El objetivo principal de esta herramienta es poder mostrar al usuario, desde los momentos iniciales del
diseño, el aspecto que tendrá la aplicación una vez desarrollada. Ello facilitará la aplicación de los
cambios que se consideren necesarios, todavía en la fase de diseño.

La herramienta será tanto más útil, cuanto más rápidamente permita la construcción del prototipo y por
tanto antes, se consiga la implicación del usuario final en el diseño de la aplicación. Asimismo, es
importante poder aprovechar como base el prototipo para la construcción del resto de la aplicación.
Actualmente, es imprescindible utilizar productos que incorporen esta funcionalidad por la cambiante
tecnología ynecesidades de los usuarios.

Los prototipos han sido utilizados ampliamente en el desarrollo de sistemas tradicionales, ya que
proporcionan una realimentación inmediata, que ayudan a determinar los requisitos del sistema. Las
herramientas CASE están bien dotadas, engeneral, para crear prototipos con rapidez y seguridad.

Generador de código
Normalmente se suele utilizar sobre ordenadores personales o estaciones de trabajo, por lo que el paso
posterior del código al host puede traer problemas, al tener que compilar en ambos entornos.

Las características más importantes de los generadores de código son:

Lenguaje generado. Si se trata de un lenguaje estándar o un lenguajepropietario.

11
Portabilidad del código generado. Capacidad para poder ejecutarlo en diferentes plataformas físicas
y/o lógicas.

Generación del esqueleto del programa o del programa completo. Si únicamente genera el
esqueleto será necesario completar el resto mediante programación.

Posibilidad de modificación del código generado. Suele ser necesario acceder directamente al
código generado para optimizarlo o completarlo.

Generación del código asociado a las pantallas e informes de la aplicación.

Mediante esta característica se obtendrá la interfase de usuario de la aplicación.

Módulo generador de documentación

El módulo generador de la documentación se alimenta del repositorio para transcribirlas


especificaciones allí contenidas.

Algunas características de los generadores de documentación son:

Generación automática a partir de los datos del repositorio, sin necesidad de un esfuerzo adicional.

Combinación de información textual y gráfica, lo que hace más fácil su comprensión.

Generación de referencias cruzadas. Con ello se podrá localizar fácilmente en qué partes de la
aplicación se encuentra un determinado objeto o elemento, con el fin de analizar el impacto de un
cambio o identificar los módulos afectados por un determinado error.

Ayuda de tratamiento de textos. Facilidad para la introducción de textos complementarios a la


documentación que se genera de forma automática.

Interfase con otras herramientas: procesadores de textos, editores gráficos, etc.

12
BASE DE DATOS

DEFINICIÓN.
Una Base de Datos (BD) es una colección de datos que están lógicamente relacionados entre sí. Los
datos están estructurados según un modelo de BD que refleja las relaciones y restricciones que tienen
estos datos en el mundo real. La descripción y la definición de los datos están almacenados en la misma
BD. Los tratamientos que se realizan con los datos han de conservar la integridad y la seguridad de la
BD.

VENTAJAS DE LOS SISTEMAS DE BD SOBRE LOS SISTEMAS DE FICHEROS

 Independencia de los datos respecto de los tratamientos y viceversa.

A los sistemas de ficheros tradicionales se les llama “Sistemas Orientados al Proceso”, ya que los
datos se almacenan en ficheros diseñados específicamente para cada aplicación, de tal manera que
si un dato es utilizado por más de una aplicación aparecerá repetido en dos o más ficheros. Además,
si se modifica el tratamiento que realiza un proceso sobre los datos es necesario reestructurar los
ficheros. Por tanto, en estos sistemas de ficheros los datos son dependientes de los tratamientos
que se realizan sobre ellos.

A los sistemas de BD se les llama “Sistemas Orientados al Dato”, ya que los datos se estructuran
según un modelo que refleja las características que tienen en el mundo real, y ese modelo permite
que cualquier proceso pueda tratar los datos.

 Descripción centralizada de los datos.

La definición de los datos se almacena en la misma BD, de manera que los tratamientos no tienen
que especificar de nuevo la definición de los datos. Además, esto ofrece una mejor y más
normalizada documentación de la información.

 Eficiencia en la estructuración de los datos.

Al estar los datos estructurados según un modelo, no se producen redundancias de datos, es decir,
que el mismo dato no aparece en dos o más ficheros. Esto evita 3 problemas:

o Por un lado no se desperdicia espacio de memoria almacenando la misma información varias


veces.

o Se ahorra tiempo de proceso al no tener que modificar el dato en varios ficheros.

o Se evita la corrupción de la BD, ya que al modificar un dato habría que hacerlo en todos los
ficheros en que aparece, y si no se modifica en alguno de los ficheros, la BD sería inconsistente.

 Mayor nivel informático

Los sistemas de BD ofrecen herramientas más potentes y más sencillas para la modificación de los
datos. Los sistemas de BD están integrados en los sistemas de desarrollo de 4ª Generación. En
contra, los sistemas por ficheros pertenecen a los sistemas de 3ª Generación.

ELEMENTOS DE UNA BASE DDE DATOS.

Los datos: es el conjunto de datos que estructurados y almacenados en un soporte magnético u óptico
de acceso directo. A este conjunto de datos es lo que suele denominarse Base de Datos.

13
La metabase: es la información sobre los datos de la BD. Es imprescindible para que el sistema
autodocumentado pueda suministrar a los usuarios, al administrador de la BD y al sistema gestor de BD
(SGBD) la información que necesita sobre los datos almacenados y su funcionamiento. Los elementos
fundamentales de la metabase son:

o Catalogo o diccionario de datos.Contiene la descripción lógica de cada uno de los datos, es decir,
contiene la descripción desde el punto de vista del usuario. Esta información es: tipo de dato,
fichero en que se encuentra, relación entre ficheros, etc.

o Directorio de datos. Contiene la descripción física de los datos, que permite pasar de la
representación externa a la interna.

o Sistema de seguridad, que es a dos niveles, la seguridad lógica que contiene y controla los permisos
de acceso de los usuarios a los datos, o seguridad física, que consiste en registrar en unos ficheros
llamados log o dietario las operaciones realizadas en la BD, con el objeto de poder deshacerlas en
caso de error.

o El software de gestión de sistema: también llamado logical. Es el conjunto de programas,


procedimientos, lenguajes, etc. capaces de realizar todos los tratamientos exigidos para el
funcionamiento del sistema. Estos elementos son:

1. Sistema gestor de BD, núcleo de un sistema de BD. Permite que el usuario pueda crear,
actualizar y recuperar los datos contenidos en la BD, es decir, interpreta las órdenes del usuario
y la ejecuta físicamente.

2. Lenguaje de definición de datos (DDL) y lenguaje de manipulación de datos (DML).

3. Utilidades de administración de la BD. Facilitan las tareas de mantenimiento y seguridad de la


BD. Estos programas realizan tareas como por ejemplo: modificación del tamaño del fichero,
realizar copias de seguridad, herramientas para la exportación e importación de datos,
estadísticas de utilización de los datos.

4. Herramientas de desarrollo Es el conjunto de lenguajes para el desarrollo de aplicaciones.

 El administrador de la BD (BDA): Es la persona cuya misión es asegurar la calidad y permitir el uso


de los datos, diseñando la BD de manera que el diseño de su estructura lógica y la implementación
de su estructura física responda lo mejor posible a las necesidades de los distintos usuarios.

4GL

ORACLE
C DASE II
SQL
CLIENTES

JAVA BASE DE DATOS


SQL SGBD
FORMS

REPORTS
Diccionario
SYSADM Privilegios Directorio LOG
de datos

14
CARACTERÍSTICAS DE LOS SISTEMAS GESTORES DE BASE DE DATOS (SGBD)

Los sistemas de BD proporcionan mecanismos para proteger los datos contra fallos que los alteren y
corrompan. Los fallos que pueden alterar los datos son físicos, por ejemplo, fallos en la memoria RAM o
de disco, caídas del sistema, interrupción de la energía, etc., o lógicos, como fallos del programa o del
SO o del SGBD. El tercer tipo de fallo es el fallo humano, que puede ser intencionado o no intencionado.

Para proteger los datos, el SGBD debe tener 3 características: seguridad, integridad y confidencialidad.

 Seguridad: Se trata de recuperar un estado consistente de los datos ante fallos que los destruyen
total o parcialmente. Un caso muy común que provoca la inconsistencia de la BD es cuando una
operación lógica se traduce en varias acciones en la BD, de tal manera que la operación sólo tiene
sentido cuando se realizan todas las acciones. Este problema lo soluciona el SGBD con las
transacciones, a saber, secuencias de operaciones que han de ejecutarse de forma atómica, es decir,
o se realizan todas las operaciones que componen la transacción o ninguna de ellas.

Cuando hay que deshacer las acciones de una transacción inconclusa el sistema se apoya en el
fichero log, que es un fichero en el que el sistema va grabando todas las operaciones que se realizan
sobre la BD. A este tipo de recuperación se le denomina recuperación en caliente.

Otro tipo de fallo que se puede sufrir es el que afecta a la memoria del disco. En este caso la
información se recuperaría desde una copia de respaldo o Backup, que conserva el estado de los
datos en una fecha determinada. A esta operación se la denomina recuperación en frío.

 Integridad: El objetivo de la integridad es lograr que los datos contenidos sean correctos.
Para ello el SGBD debe detectar y corregir las operaciones incorrectas que introduzcan
inconsistencias en la BD. Hay dos tipos de operaciones que pueden afectar a la integridad de los
datos:

o Operaciones que atentan contra las reglas de integridad: Existencial o Referencial. Las
restricciones de integridad son definidas en el momento del diseño de la BD, de modo que el
SGBD vela por que se cumplan, no permitiendo operaciones que la violen.

o Interferencias por accesos concurrentes. Los datos, el sistema lo soluciona con el


mecanismo de bloqueos.

 Confidencialidad: La confidencialidad se refiere a la protección de los datos contra accesos de


usuarios no autorizados. Las decisiones sobre a qué usuarios se les debe permitir realizar
operaciones sobre qué objetos son decisiones de política de empresa, no decisiones técnicas.

Para que el control de accesos se pueda ejecutar, es necesario que los usuarios del sistema se
identifiquen mediante un login y un password, y los privilegios, permisos y autorizaciones han de
estar registrados en la BD.

Los sistemas que requieren una gran seguridad utilizan sistemas de criptografía, de tal manera que
los datos están grabados en la BD cifrados, siendo necesario conocer la clave para descifrarlos.

Por último, otro mecanismo para mantener la seguridad en la confidencialidad es facilitar la


auditoría, registrando en unos ficheros auditores todos los accesos de los usuarios a los datos,
pudiendo detectar a posteriori accesos no permitidos y por tanto mejorar el sistema de seguridad.

15
ARQUITECTURA CLIENTE-SERVIDOR

Un sistema de BD posee una estructura compuesta por 2 partes: Un servidor (backend) y un conjunto de
clientes (frontend).

El servidor ofrece servicios para realizar operaciones físicas sobre los datos, es decir, el servidor el
propio SGBD.

Los clientes son aplicaciones ejecutadas en torno al SGBD, en los que se realizan varias operaciones,
sobre todo de interfaz de usuario y tratamientos procedimentales, pero cuando requieren acceder a los
datos se comunican con el servidor, que atiende los requerimientos y Existen varias tipologías para
implementar la estructura cliente-servidor:

 El cliente y el servidor se ejecutan en la misma máquina.

APLICACIONES

SGBD
DATOS

 El servidor y el cliente están en distintas máquinas (proceso distribuido). Requiere de un sistema de


comunicaciones.

APLICACIONES
SGBD
APLICACIONES
DATOS

 Existen varios servidores, y cada uno de ellos contiene parte de la BD. (BD’s distribuidas).

APLICACIONES
SGBD
RED DE DATOS
APLICACIONES COMUNICACION
ES

APLICACIONES
SGBD
DATOS

 Arquitectura a 3 niveles (World Wide Web). Se usa en aplicaciones de la web, tanto en intranet
como en internet. Aquí el servidor se instala en una máquina, pero la parte de cliente se reparte en
2 niveles: 1 máquina servidor de aplicaciones y 1 máquina cliente.

16
MODELO DE DATOS.

El objetivo de cualquier sistema de información es representar, mediante una abstracción del mundo
real, toda la información necesaria para el cumplimiento de sus fines. Estos fines pueden ser obtener
facturas, controlar stocks de almacén, gestionar las matrículas de un centro educativo.

Esta abstracción se realiza mediante un modelo de datos que es un conjunto de métodos y reglas que
indican cómo se ha de almacenar la información y cómo se ha de manipular los datos.

Existen 2 tipos de modelos:

 Modelo conceptual. Es una representación de la realidad no comprometida con ningún entorno


informático. El modelo conceptual más popular es el modelo entidad relación de Chen.

 Modelo lógico. Determina unos criterios de almacenamiento y de operaciones de manipulación de


datos dentro de un tipo de entorno informático. Los SGBD comerciales se basan en un modelo
lógico concreto y determinan en parte el modelo físico.

Históricamente, los modelos lógicos de datos son:

 Modelo jerárquico (IMS [IBM]).


 Modelo en red (CODASYL).
 Modelo relacional (ORACLE, DB II [IBM], INFORMIX, INGRES, SQL SERVER).
 Modelo orientado a objetos (Eiffel).

17
EL MODELO RELACIONAL DE DATOS

El modelo relacional constituye el fundamento teórico de los SGBD comerciales más utilizados en la
actualidad.
El modelo relacional es propuesto por CODD en la década de 1970. Es un modelo de datos basado en la
teoría matemática de las relaciones, en la que los datos se estructuran en el ámbito lógico en forma de
relaciones.

Uno de los objetivos fundamentales del modelo relacional es que la estructura lógica de los datos es
independiente de su almacenamiento interno. Así, el modelo no contempla en absoluto los aspectos
físicos de la BD, que queda en manos de los constructores de SGBD comerciales, que tienen como
directrices el mejor rendimiento posible de sus sistemas.

El modelo relacional se puede considerar como una combinación de 3 componentes, que son
estructurales, de integridad y de manipulación.

ESTRUCTURA DEL MODELO


Las estructuras de datos están formadas por tablas o relaciones, filas o tuplas, columnas o atributos y
claves primarias y claves ajenas.

SISTEMA DE FICHEROS TEORÍA RELACIONAL SGBD RELACIONALES


Fichero Relación Tabla
Registro Tupla Fila
Campo Atributo Columna

Una tabla es una matriz rectangular dispuesta en filas y columnas y se puede representar de dos formas:

 Representación tabular:

Estudiante
MATR NOM CURSO ESPEC. PARAL DIR REPRES.

18
 Representación en forma de Tupla, que consiste en representar la tabla mediante el nombre de la
tabla seguido por los atributos separados por comas, subrayando los atributos que son clave
principal.

Estudiante (DNI, NUMEXP, NOMBRE, FECHA, DIRECCIÓN, CODCICLO)

Las características de las tablas son:


 En una tabla no hay filas repetidas.
 Las filas no están ordenadas dentro de la tabla por ningún criterio.
 En una tabla no hay dos columnas con el mismo nombre.
 En una celda de la tabla puede haber como máximo 1 valor.

En cuanto a las claves se definen los siguientes conceptos:

 Clave candidata. Es un subconjunto de columnas de la tabla que identifican cada fila de forma
unívoca. Una clave candidata ha de ser irreductible, es decir, que ningún subconjunto de las
columnas que forman la clave candidata sea a su vez clave candidata. En toda tabla hay al menos 1
clave candidata, ya que según el modelo no puede haber dos filas iguales.

 Clave primaria. (Primary Key, PK). De entre todas las claves candidatas, el diseñador ha de elegir
una de ellas como clave primaria, por criterios ajenos al modelo relacional, siguiendo criterios
propios del sistema de información. El resto de las claves candidatas pasarán a llamarse claves
alternativas (AK). La clave primaria es de gran importancia enel modelo, pues es la que permite la
relación entre las tablas.

 Clave ajena. (Foreing Key, FK). Es un conjunto de columnas de una tabla T2 cuyos valores han de
coincidir con los valores de la PK de otra tabla T1. Las tablas T1 y T2 pueden ser la misma.

La estructura del modelo relacional en los SGBD relacionales se amplía con tablas virtuales llamadas
Vistas o Views.

Vista. Es una tabla derivada de otras tablas, que se representa dentro del sistema por su definición,
pero que no posee datos almacenados propios separados de las tablas reales. Son una visión distinta de
los datos almacenados en las tablas. Algunas vistas pueden ser actualizables y otras no.

Otro elemento estructural de los SGBD relacionales son los índices.

Índice. Es una estructura opcional asociada a columnas de una tabla, que permite acelerar el acceso a
los datos de la tabla. El que exista índices es totalmente transparente a los programadores y usuarios,
pero el SGBD utiliza siempre los índices existentes. Así, el hecho de definir índices es una decisión que
atañe al BDA para mejorar el rendimiento del sistema. Los índices son lógica y físicamente
independientes de las tablas a las que se asocia, así que se pueden crear y eliminar índices sin que por
ello se vean afectados los datos de la tabla. El SGBD ORACLE crea automáticamente un índice asociado a
cada columna definida como clave primaria o alternativa.

RESTRICCIONES DEL MODELO (INTEGRIDAD)


El modelo relacional tiene una serie de restricciones, es decir, estructura u ocurrencias no permitidas.
Las restricciones pueden ser inherentes al modelo (restricciones de integridad) y restricciones de
usuario, que son unos predicados definidos sobre columnas o filas que deben ser verificados por el
sistema para determinan si son válidos en el sistema de información.

19
Restricciones inherentes al modelo: Son:

 Regla de integridad de identidad o existencial. que dice que ninguna columna de las que forman
parte de la PK puede tener un valor nulo. Un nulo no es ningún valor, sino que es una marca que se
aplica a una columna para indicar que no tiene asignado ningún valor.

 Regla de integridad referencial. que dice que una FK debe tener un valor de la clave primaria de la
tabla con la que se relaciona, o bien tener valor nulo.

o Reglas para FK: Cualquier estado de la BD que no satisfaga la integridad referencial es incorrecto
por definición. Hay una serie de reglas para evitar estos estados incorrectos, que se indican en el
momento de la definición de la BD, especificando qué debe hacer el sistema en caso de borrado
o modificación que atente contra la integridad referencial. Hay las siguientes posibilidades:

 Operación restringida: (Restrict) No se permite borrar filas ni modificar el valor de su clave


primaria si existen FK’s que contengan su valor.

 Operación con propagación en cascada: (Cascade) El borrado o la modificación de la PK lleva


consigo el borrado o modificación de las filas con los mismos valores en la FK.

 Operación con puesta a nulos: (Set Null) El borrado o modificación de las filas de la tabla que
contiene la PK provoca la asignación de un valor nulo en las FK’s con el mismo valor.

 Operación con puesta a valor por defecto: (Set Default) El borrado o modificación de las filas
de la tabla que contiene la PK provoca la asignación de un valor por defecto en las FK’s con el
mismo valor.

 Restricciones de usuario: es un predicado definido sobre columnas o filas que han de ser verificadas
por el sistema para determinar si la información es válida. Estas restricciones de usuario pueden
estar relacionadas en el diccionario de la BD o bien estar soportadas como procedimientos o
disparadores. Una restricción de usuario ha de tener un nombre, el predicado que ha de ser
satisfecho y una respuesta a la operación que intenta violar la restricción.

MANIPULACIÓN DE LOS DATOS.

Codd definió 3 sistemas matemáticos pertenecientes al álgebra de conjuntos, para manipular los datos
estructurados según el modelo relacional. Estos lenguajes son equivalentes entre sí, y tienen en común
que no son lenguajes navegacionales, es decir, que no actúan sobre filas individuales, sino que son
lenguajes de especificación que actúan sobre conjuntos de filas.

Estos lenguajes son: Álgebra relacional orientada a tuplas, Cálculo relacional orientado a Tuplas
y Cálculo relacional orientado a dominios.

Los lenguajes DML de los SGBD comerciales se basan en uno o varios de estos lenguajes matemáticos.
Por ejemplo, el SQL está basado en el álgebra relacional y en el cálculo relacional orientado a tuplas.

20
INTRODUCCIÓN A SQL.
SQL
Es un lenguaje que permite expresar operaciones de definición de estructura de datos, de
autorizaciones de acceso a los datos y de consulta y actualización de datos almacenados en la BD
relacionales. La palabra SQL está formada por las iniciales inglesas Structured Query Languaje.

La 1ª versión SQL la desarrolló IBM en la década de los 70. Ante el éxito de esta primera versión, otras
empresas como ORACLE, DIGITAL o UNISYS desarrollaron sus propios lenguajes SQL, tanto para micro-
ordenadores, mini-ordenadores y mainframes, lo que ha llevado a que sea una herramienta
ampliamente utilizada en el mundo de las BD’s relacionales. Esta tendencia se vio consolidada debido a
que ANSI (American National Standard Institute) desarrolló sus propias especificaciones para el lenguaje
SQL, que posteriormente fueron aceptadas por la organización ISO (International Standard
Organization).

Las características principales del SQL frente a los sistemas tradicionales son:

 Permite manejar conjunto de registros en lugar de registro a registro.

 Tiene una fuerte base teórica matemática, lo que le da una gran capacidad expresiva con una
estructura muy simple. Ello permite mediante una sola sentencia expresar consultas complejas que
tradicionalmente requerían de uno o varios programas.

 Se puede utilizar de forma interactiva, lo que permite realizar consultas no planificadas, es decir,
que no están incluidas en programas, por lo que los mismos usuarios finales pueden acceder
directamente a los datos.

CÓMO SE USA SQL.

Las sentencias se pueden dirigir al sistema de 2 formas:

Modo interactivo: la sentencia se escribe directamente en la pantalla del ordenador, se ejecuta y sobre
la misma pantalla aparecen los resultados de la consulta.

SQL embebido en un lenguaje de programación: en un lenguaje de 3ª o 4ª generación se insertan


sentencias SQL para acceder a los datos de una BD relacional, y los resultados del acceso son recogidos
por el programa que los tratará, por ejemplo, para listarlos. Al lenguaje donde se insertan sentencias
SQL se le llama lenguaje anfitrión y puede ser C, JAVA, PL/SQL... Hay dos técnicas para utilizar SQL
embebido en programas:

1. SQL estático. Donde las sentencias SQL incluidas en el programa no pueden cambiar durante la
ejecución.

2. SQL dinámico. Donde una sentencia SQL puede ser modificada total o parcialmente por el propio
programa durante su ejecución.

PARA QUE SIRVE SQL.

El SQL se compone de 3 sublenguajes:

21
1. Lenguaje de definición de datos (DDL). Permite crear, alterar y eliminar objetos de la BD, como
tablas, vistas, índices, restricciones, usuarios, disparadores, etc. Estas tareas son propias del DBA.
Las sentencias son:

o Create: para crear objetos.


o Alter: para alterar objetos ya creados de la BD.
o Drop: para eliminar objetos de la BD.

2. Lenguajes de manipulación de datos (DML). Permite añadir, modificar, borrar y consultar datos de
la BD. Las sentencias son:

o Select: para consultar datos de una o varias tablas.


o Insert: para añadir una o varias filas en una tabla.
o Update: para modificar el valor de columnas de una o varias filas de una tabla.
o Delete: para borrar filas de una tabla.

Lenguaje de control de datos (DCL). Permite asignar y retirar autorizaciones de acceso a los datos y
controlar transacciones. Estas sentencias son:

o Grant: para otorgar autorizaciones de acceso.


o Revoke: para retirar autorizaciones de acceso.
o Commit: para confirmar transacciones.
o Rollback: para anular transacciones.

ELEMENTOS DE UNA SENTENCIA SQL

Las sentencias SQL tienen los siguientes componentes:

o Palabras reservadas. Tienen un significado predefinido en el lenguaje. Puede ser una sentencia, una
cláusula o una función.

o Nombres de tablas. vistas o columnas, inventadas por los creadores de la BD que se asignan en el
momento de la creación.

o Nombres de variables huéspedes. Son nombres de variables de programa que se insertan dentro de
una sentencia.

o Constantes. Pueden ser numéricos o alfanuméricos entre comillas simples.

o Signos delimitadores. Paréntesis, operadores relacionales, operaciones aritméticas, espacios en


blanco.

22
INTRODUCCIÓN A LA ARQUITECTURA DE ORACLE 10G

Una base de datos de Oracle es un conjunto de datos organizados según 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 código de una aplicación.


 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 lógicamente los datos en unas estructuras llamadas tablespaces, las cuales se
almacenan físicamente en archivos o datafiles (Archivos de datos).

Una base de datos se compone de una o más tablespaces.

Cada tablespace a su vez se forma de uno o más archivos de datos. Oracle cuenta con un perfil especial
llamado SYSTEM creado automáticamente durante el proceso de instalación. Utilizado para la propia
gestión de la BD

Las tablespaces constituyen la ‘ventana’ a través de la cual los usuarios y diseñadores 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,
sinónimos, índices, secuencias, clusters, etc.

Tablas:
Unidad básica de almacenamiento de datos. Consta de un número fijo de columnas que describen los
atributos de 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.

Tipos de restricciones:

Clave primaria (PRIMARY KEY)


Valor nulo no admitido (NOT NULL)
Columna exclusiva (UNIQUE)
Valor por omisión (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 básicamente 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, sólo se almacena la
consulta que la define.

23
Secuencias:
Cada secuencia genera una serie única de números. Útil en la generación única de claves. Pueden ser
cíclicas o crecer hasta un valor máximo

Sinónimos:
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 más rápido a los datos. Una vez creados son mantenidos por Oracle y utilizados
para la recuperación de datos. Se pueden crear hasta un máximo de 32 columnas. Implementación 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 físicamente.

Ventajas:
Se reduce el acceso a disco cuando están involucradas esas tablas
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 auditoría.

Enlaces de BD:
Sirven para especificar una vía de acceso a un objeto situado en una BD remota

Autenticación en Oracle 10g:


Como en cualquier otro administrador de base de datos Oracle, permite el manejo y administración 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 instalación de Oracle 10g, en automático se
realiza la creación de cuentas administrativas a partir de las cuales se podrá realizar la administración y
creación de nuevas usuarios. Estas cuentas son:

 system
 sys

En el siguiente apartado se describirán los pasos que se deben seguir para poder autentificarse como el
administrador.

Autentificándose como administrador

1. Abra la ventana de acceso de base de datos principal de la página:

 En Windows, desde el menú Inicio, seleccione Programas (o Todos los programas), a


continuación, Oracle Database 10g Express Edition, y luego ir a la base de datos la página
principal

2. En la ventana Base de datos de inicio una página, introduzca la siguiente información

24
Nombre de usuario: system
Contraseña: oracle
3. Haga clic en Iniciar sesión. La base de datos Oracle XE página de inicio aparece.

Habilitar la cuenta de ejemplo


Para iniciar con los ejercicios de la aplicación, es necesario iniciar la sesión 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 número 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 aplicación de ejemplo. Para desbloquear la cuenta de usuario se deberán
seguir estos pasos:

1. Asegúrese de que está siendo iniciado sesión como el administrador de base de datos, como se
describe en la sección anterior.

2. Haga clic en el icono de Administración y, a continuación, haga clic en base de datos de usuario.

3. Haga clic en el icono de esquema de recursos humanos para mostrar la información


del usuario para recursos humanos

4. En Administrar la base de datos de usuario, introduzca los siguientes datos:

a. Contraseña y Confirmar contraseña: Introduzca la contraseña hr.


b. Estado de la cuenta: Seleccione desbloqueado.
c. Funciones: Asegúrese de que tanto CONNECT y RECURSOS están habilitadas

5. Haga clic en Modificar usuario.


6. Cierre la sesión del usuario system
7. Inicie sesión con el usuario HR1

25
Página principal
La página principal del administrador, tiene una interfaz en HTLM que ha sido diseñada para facilitar la
navegación entre las herramientas de administración:

Las secciones se ésta pantalla son las siguientes:

Administración: Gestión 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
información de configuración 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

SQL: Acceso de las siguientes herramientas de SQL:

Comandos SQL. Ejecutar comandos SQL y anónimo 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.

26
Construir consultas SQL usando una interfaz gráfica 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 caídos.

Navegación en los menús. Usted puede navegar en el Oracle


Database XE en su interfaz gráfica de usuario haciendo clic en los
iconos grandes en la Página de Inicio de base de datos y en las páginas
de navegación. Al utilizar estos iconos, usted tiene dos opciones:

Al hacer clic en el icono: Haga clic en el icono para ir a la página


indicada por el nombre del icono .Es posible que tenga que hacer clic
en un número de estos iconos, descendiendo una página a la vez en la
jerarquía de la página, antes de llegará su página de destino.

Selección desde el menú del icono: Haga clic en la flecha hacia abajo
del lado derecho del icono para ver un menú, a continuación,
seleccione una opción en el menú o desde cualquiera de sus
submenús

LENGUAJE SQL
Introducción
Oracle ha mantenido los estándares de la industria por ello a lo largo de sus distintas versiones ha
incorporado el lenguaje SQL como la herramienta de extracción 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 versión de Oracle Database 10g se
realizan mediante sentencias SQL.

Aplicaciones del SQL


Con las instrucciones SQL se pueden realizar las siguientes acciones:

 Consultar, insertar y actualizar datos en las tablas


 Realizar cálculos, almacenar e imprimir de los resultados de consulta

Clasificación de los enunciados de SQL


Las instrucciones SQL se dividen en varias categorías, de acuerdo a los estándares internacionales
dictados los la American National Standars Institute (ANSI) e International Standards Oragnization (ISO):

Lenguaje de manipulación 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 transacción.

27
Data Definition Language (DDL)
Estas declaraciones crear, modificar, eliminar base de datos y objetos.
A continuación se muestran los enunciados básicos de SQL ANSI y una breve descripción:

Un enunciado o instrucción consiste en parte de SQL y palabras reservadas, que tienen un significado
especial en SQL y no puede ser utilizado para cualquier otro propósito. E algunas técnicas que puede
utilizar para incluir información en la nueva base de datos. Un ejemplo de un enunciado sería:

SELECT last_name, department_id FROM employees;

A partir de este capítulo se describirán los principales enunciados de SQL que se consideran como los
fundamentales para realizar las funciones de administración delas bases de datos.

Recomendaciones al escribir enunciados de SQL


Los enunciados de SQL pueden ser construidos fácilmente si se siguen las siguientes recomendaciones:

 Los enunciado no son sensitivos a mayúsculas o minúsculas a menos que se especifique


 Los enunciados pueden ser capturados en una o más líneas.
 Las palabras reservadas no pueden ser divididas o abreviadas
 Las cláusulas deberán en la medida de lo posible escribirse en una nueva líneas para mejorar la
lectura.
 Se recomienda que las palabras reservadas sean escritas en mayúsculas y las otras palabras en
minúsculas.

Ejecución de enunciados de SQL


En Oracle 10g es posible realizar la creación y ejecución de instrucciones SQL con ayuda de las
herramientas conocidas como:

 Página de comandos SQL


 Página Script Editor o Línea de comandos SQL (SQL * Plus).

La página de comandos SQL es una interfaz simple y fácil de usar.

Ejecución de instrucciones SQL en la página comandos SQL


Para introducir y ejecutar instrucciones SQL en la página de comandos SQL:

28
1. Ingrese a la página principal de base de datos. Para ejecutar los ejemplos de esta guía, inicie
la sesión como usuario HR con la contraseña para el HR cuenta.

2. En la página de base de datos, haga clic en el icono de SQL para mostrar la página SQL.
3. Haga clic en el icono de comandos SQL para mostrar los comandos de la página de SQL.
4. En los comandos de la página de SQL, escriba la siguiente instrucción:

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 necesario para ejecutar las instrucciones SQL en una secuencia de
comandos SQL o desde la línea de SQL símbolo del sistema, pero es opcional en la página de
comandos SQL.

5. Seleccionar (resaltar) la instrucción SQL que desea ejecutar, a continuación, haga clic en
Ejecutar para ejecutar la instrucción y mostrar los resultados.

6. Si desea guardar las instrucciones SQL para su uso futuro, haga clic en el botón Guardar.

7. En el campo Nombre, escriba un nombre para las instrucciones SQL guardado. También
puede introducir una descripción opcional. Haga clic en el botón Guardar para guardar la
instrucción SQL.

8. Para acceder a guardar las instrucciones SQL, haga clic en la ficha SQL guardada y seleccione
el nombre de la instrucción 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 llamado
DESCRIBE. Este comando mostrará las columnas y tipos de datos de una tabla. Su sintaxis es la
siguiente:

DESCRIBE tablename
Por ejemplo:
DESCRIBE employees;

29
ENUNCIADO DE SELECCIÓN DE DATOS

Introducción
La acción más importante que puede llevarse a cabo en la gestión de la base de datos consiste
en la posibilidad de recuperar la información que se tiene almacenada en ella, esta extracción
de datos es lo que hace valiosa a una base de datos pues en cualquier momento se está
garantizando que la información es consistente y es recuperable en cualquier momento, en
este capítulo el participante aprenderá cómo es posible realizar la recuperación de datos a
partir del enunciado de selección de datos.

Enunciado de Selección de Datos


El enunciado de Selección de datos llamado SELECT es el enunciado más poderoso y versátil
que se dispone en el lenguaje de SQL.

Pues permite obtener la información de la base de datos respetando siempre la integridad y


consistencia de la información

Capacidades del Select


El enunciado de selección 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:

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

30
Proyección: Seleccionar algunas columnas de una tabla
Selección: Elegir solo algunos renglones de una tabla
Join: Realizar la intersección entre dos o más tablas

Recuperación de datos en Oracle 10gPara poder ejecutar un enunciado de selección bastará con seguir
los siguientes pasos:
1. Conectarse o iniciar sesión en la consola de Oracle
2. Elegir la opción de SQL
3. Y seleccionar la opción de comandos de SQL
4. En la sección del editor se deberá escribir el enunciado y al terminar
5. Se deberá dar un clic en el botón llamado Ejecutar para ver el resultado de la extracción de datos

Sintaxis Básica
Como todo lenguaje el enunciado select debe respetar ciertas reglas sintácticas y semánticas para tener
coherencia y significado, de forma tal que su sintaxis puede verse de la siguiente forma:

Uso de alias de columna


Cuando se muestra el resultado de una consulta, SQL utiliza normalmente el nombre de la columna
seleccionada como el título de la columna. Puede cambiar un título dela columna utilizando un alias de
columna para hacer el título más descriptivo y fácil 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 número # o signo de
dólar $, o si es entre mayúsculas y minúsculas, escriba el alias entre comillas "".

31
Ejemplo: uso de un alias de columna para una posición descriptiva en una consulta SQL

SELECT employee_id "Employee ID number", last_name "Apellido" ,


FROM employees;

Expresiones Aritméticas
Es posible modificar la forma en cómo se muestran los datos de una consulta, en especial cuando es
necesario realizar algún cálculo matemático que este baso en una columna de una tabla. Para estos
casos es posible utilizar operadores aritméticos, mismos que pueden afectar a una columna, un valor
constante o bien utilizar operadores aritméticos.

Los operadores aritméticos que se utilizan en SQL son:

Operador Descripción
+ Suma
- Resta
* Multiplicación
/ División

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


cláusula FROM.

Precedencia de Operadores
Si una expresión aritmética contiene más de un operador, se utilizará el orden de precedencia
de operadores para que la expresión pueda ser evaluada. Dicho orden puede verse en la
siguiente figura:

* + - /

El orden de evaluación será de izquierda a derecha, de manera que:

 La multiplicación tiene mayor prioridad sobre la suma y la resta


 El uso de paréntesis forzarán a priorizar y clasificar las expresiones

Por ejemplo sin uso de paréntesis:

SELECT last_name, salary, 12*salary+100


FROM employees;

SELECT last_name, salary, 12*(salary+100)


FROM employees;

Definición del valor NULL


Si un renglón 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.

32
Es importante recalcar que un valor NULL no equivale a un valor de cero o de espacio. Se
recomienda que durante el diseño 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;

Operador de Concatenación
Un operador de concatenación permite:

 Unir columnas o cadenas de caracteres a otras columnas


 Se representa por dos barras verticales ||
 El resultado de una concatenación es una expresión de tipo cadena

Ejemplo:
SELECT last_name||job_id AS “Employees
FROM employees;

Uso de literales
Es posible que durante el uso de enunciados de selección sea necesario incluir frases o
constantes dentro de alguna expresión, 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 deberán estar encerradas entre comillas simples ‘ ‘

Restricción de datos

Cláusula WHERE
La cláusula WHERE utiliza operadores de comparación para identificar las filas de una tabla
específica que cumpla con ciertas condiciones para así restringir la salida de registros.

Los operadores de comparación son las enumeradas en la siguiente tabla. Operadores de


Comparación

33
Operador Definición
=, !=, <> =,! =, <> Prueba de igual a igual no, no es igual a
>, >=, <, <= >,> =, <,<= Prueba de una mayor que, mayor o igual que, menor que, menor
que oigual a
BETWEEN ... AND ... Comprueba si hay un rango entre los valores y entre ellos dos
Busca una coincidencia en una cadena, con el comodín%
LIKE símbolos(cero o varios caracteres) o _ (un carácter)
IN ( ), NOT IN ( ) IN Revisa que los valores se encuentren dentro de una lista de valores
IS NULL, IS NOT NULL Comprueba si un valor es nulo, no es nulo

Clasificación de los datos - Cláusula ORDER BY


Usted puede utilizar SELECT con la ORDER BY cláusula 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 cláusula no tiene por qué ser en el SELECT lista de
columnas que desea mostrar.
Usted puede especificar el orden de clasificación como ASC para ascender o DESC para
descender.
El orden predeterminado es ascendente, lo que significa:

 Los valores numéricos se muestran con los valores más bajos primero, como1 a 999.
 Los valores de caracteres se muestran en orden alfabético, como un primer y último Z.
 Los valores de fecha se muestran con la mayor brevedad primer valor, como01-junio-93
antes del 01-junio-95.
 Nulo (vacío) se muestran los valores de una duración de secuencias ascendentes y
descendentes primero de secuencias.

Ejemplo:
SELECT * FROM employees WHERE manager_id = 122 ORDER BY
employee_id;

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
mostrarán datos en la pantalla. Estas condiciones deberán incluirse en la cláusula WHERE.

Por ejemplo:

SELECT *FROM employees


WHERE commission_ptc IS NULL;

34
Condiciones Lógicas
Una condición lógica combina el resultado de dos condiciones para producir un resultado, estas
condiciones lógicas utilizan operadores lógicos. En SQL se disponen de los siguientes
operadores:

 AND
 OR
 NOT

Para la evaluación de las condiciones lógicas los operadores basan su comportamiento en


tablas de verdad, mismas que se muestran a continuación:

AND VERDAD FALSO NULL


VERDAD VERDAD FALSO NULL
FALSO FALSO FALSO FALSO
NULL NULL FALSO NULL

0R VERDAD FALSO NULL


VERDAD VERDAD VERDAD VERDAD
FALSO VERDAD FALSO NULL
NULL VERDAD NULL NULL

NOT VERDAD FALSO NULL


FALSO VERDAD NULL

Reglas de precedencia
Las reglas de precedencia determinan el orden en el que las expresiones serán evaluadas o
calculadas.

La tabla siguiente muestra el orden de evaluación:

Orden de evaluación Operador


1 Operadores aritméticos
2 Operadores de concatenación
3 Condiciones de comparación
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 Condición NOT
7 Condición AND
8 Condición OR

Para modificar este orden será necesario usar paréntesis para cambiar su evaluación.

35
FUNCIONES DE SQL

Introducción
Las funciones constituyen el bloque básico y más poderoso que se dispone en SQL para
manipular los datos.

A lo largo de este capítulo se presentarán las funciones de un renglón, de agrupación, de tipo


carácter, numéricas y de fechas que permitirán manipular los datos.

Las funciones de SQL

Las funciones se consideran una de las características más poderosas de SQL, ya que estas
permiten realizar lo siguiente:

 Permiten realizar cálculos sobre los datos


 Pueden modificar a solo un conjunto de registros
 Trabajan con grupos de datos
 Permiten dar formato a fechas y números
 Permiten la conversión de datos

ENTRADA FUNCIÓN
EJECUCIÓN

ARG 1
EJECUCIÓN RESULTADO

ARG 2

ARG 3

Tipos de funciones de SQL

Existen dos tipos de funciones:

Funciones de un solo renglón: Operan solo sobre un renglón, es decir regresaran el resultado
por cada renglón afectado.

Funciones de múltiple renglón: Pueden manipular grupos de renglones dando un solo


resultado por grupo, estas funciones se conocen también como funciones de agrupación.

36
El uso de las funciones deberá realizarse en la cláusula del SELECT, de acuerdo a la siguiente
sintaxis:

SELECT nombre_ función [argumento],[columna]


FROM table
[WHERE][ORDER BY

Funciones de un solo renglón


Este tipo de funciones trabajan de forma individual con cada renglón que sea afectado por la
función. Este tipo de funciones pueden recibir uno o más argumentos y regresan un solo valor
para cada registro. Las funciones de un solo renglón a su vez se clasifican en las siguientes
categorías:

NUMÉRICAS

CARACTER FECHA
FUNCIONES
DE UN SOLO
RENGLON

GENERALES CONVERSIÓN

Funciones de tipo carácter

Estas funciones trabajan con tipos de datos cadena. A continuación se listan las funciones de
esta categoría y su descripción:

37
FUNCIÓN DESCRIPCIÓN DETALLE
LOWER Convierte a minúsculas LOWER(columna)
Ejemplo:LOWER(‘Hola’) = hola
UPPER Convierte a mayúsculas UPPER(columna)
Ejemplo:UPPER (‘Hola) = HOLA
INITCAP Capitaliza la primera letra de una INITCAP(columna)
cadena Ejemplo:INITCAP(hola’)=Hola
Concatena cadenas CONCAT(columna1,columna2)
CONCAT Ejemplo:CONCAT(‘Hola’, ’amigo’)= Holaamigo
SUBSTR Extrae caracteres de una cadena SUBSTR(cadena, pos_inicial, num_caracteres)
Ejemplo:SUBSTR(‘HolaMundo’,1,4)=Hola
LENGTH Obtiene el largo de una cadena LENGTH(columna)
Ejemplo:LENGTH(‘Hola’)=4
NSTR Encuentra la posición de un INSTR(columna,cadena)
carácteren una cadena Ejemplo:INSTR(‘HolaMundo’,’M’)=5
LPAD | RPAD Coloca el valor alineado a la LPAD(columna,posiciones,caracter)RPAD(colu
derecha o a la izquierda mna,posiciones,caracter)
Ejemplo:LPAD(salario,10,*)=*****24000RPAD(
salario,10,*)= 24000*****
TRIM Elimina el carácter de una TRIM(carácter
cadena FROMcolumna)Ejemplo:TRIM(‘H’ FROM
‘HolaAmigo’)= olaAmigo
REPLACE Reemplaza el texto buscado en REPLACE(columna,cadena_buscada,cadena_re
una cadena emplazo)
Ejemplo:REPLACE(‘HolaAmigo’,’Hola’,’Bye’)=By
eAmigo

Funciones de tipo numérico


Las funciones de tipo numérico solo trabajan y devuelven resultados con datos numéricos. La
lista de funciones numéricas son:

FUNCIÓN DESCRIPCIÓN DETALLE


ROUND Redondea un valor a una posición ROUND(columna,decimal)
decimal especifica Ejemplo:ROUND(45.926, 2) = 45.93
TRUNC Trunca el valor a un decimal TRUNC(columnadecimal)
especificado Ejemplo:TRUNC(45.926, 2)=45.92
Devuelve el residuo de la división MOD(divisor,dividendo)
MOD Ejemplo:MOD(1600,300)=100

Funciones de tipo fecha


En Oracle las fechas se almacenan internamente en un formato numérico que representa el
siglo, el año, mes, día, hora, minuto y segundos.

El formato estándar de despliegue es el DD-MM-YY, el rango de fechas válido en Oracle va del 1


de Enero del año 4712 A.C hasta el 31 de Diciembre del año 9999D.C.

38
De manera interna Oracle almacena una fecha en el siguiente orden:

Siglo Año Mes Día Hora Minuto Segundo


19 94 06 07 5 10 43

En Oracle se utiliza la función SYSDATE para obtener la fecha y hora actual del servidor de base
de datos

Su sintaxis es la siguiente:

SELECT SYSDATE
FROM DUAL;

Operaciones aritméticas con las fechas


Dado que las fechas se almacenan como números es posible realizar con ellas operaciones
aritméticas para manipular sus valores, las operaciones que pueden realizarse con este tipo de
datos son:

Funciones de conversión
En algunos casos se requiere convertir la salida de algunas de las columnas mediante el cambio
de tipo de datos, esta conversión en Oracle puede realizarse de dos formas:

39
 Conversión Implícita
 Conversión Explícita

Oracle puede convertir de manera automática los siguientes tipos de datos:

Varchar o char a Número


De Varchar2 o char a Fecha
De número a Varchar2
De Fecha a Varchar2

Para aquellos casos en que se deseen realizar conversiones que no son automáticas de deberá
recurrir a la conversión explicita, misma que se sigue de acuerdo al siguiente diagrama:

TO_NUMBER TO_DATE

FUNCIÓN DESCRIPCIÓN DETALLE


TO_NUMBER Convierte una cadena con TO_NUMBER(char,[fmt],[nlsparams])
dígitos en un número Ejemplo:TO_NUMBER(‘23.5’)=23.5
TO_DATE Convierte una cadena en TO_DATE
una representación de (char,[fmt],[nlsparams])Ejemplo:TO_DATE('23-02-
fecha 10','YY-MM-DD')=10/02/23
TO_CHAR Convierte un numero o TO_CHAR(numero|fecha,[fmt],[nlsparams])
fecha en unVarchar2 Ejemplo:TO_CHAR(SYSDATE,'MM-DD-YY')=’08-02-10’
TO_CHAR(253.2) = ‘253.2’

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

40
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:

FUNCIÓN DESCRIPCIÓN DETALLE


NVL Convierte un valor NULL c un nuevo NVL(expresion1,expresion2)
valor Ejemplo:NLV(comisión,0)
NVL(fecha_nacimiento,‟01-JAN-98‟)
NVL(puesto, ‟Sin puesto‟)
NVL2 Si la espresión1 no es nula, NVL2(expresion1, expresion2, expresion3)
regresa la espresión2, pero si la
expresión1 es nula se regresa la Ejemplo:NVL2(comisión,comisión+100,0)
expresión3
NULLIF Compara dos expresiones y NULLIF(expresion1, expresion2)
regresa nulo si son iguales o la Ejemplo:
primera expresión si no son NULLIF(salario, bono)
iguales
COALESCE Regresa el primer valor no nulo COALESCE(expresion1, expresion2, …,
de la lista expresionN)
Ejemplo:COALESCE(comisión, salario, 10)

Funciones de múltiple renglón


Las funciones que utilizan una entrada de múltiples renglones para obtener un solo resultado
también se conocen como funciones de agregación o agrupación 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:

41
Como puede apreciarse las funciones de agrupación se deberán colocan en la cláusula SELECT.

También debe notarse que aparece una nueva cláusula llamada Group by, misma que puede o
no ser empleada según se requiera afectar a un grupo o grupos de datos.

Dado que es fácil incurrir en ciertos errores al momento de agrupar se recomienda hacer uso
de la siguiente regla:

Si el enunciado SELECT contiene columnas que no están afectadas por alguna función de
agrupación, se deberá agregar la cláusula GROUP BY y listar en este renglón todas las columnas
que no están afectadas por alguna función de agrupación.

Por ejemplo:

42
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 estén aplicando agrupaciones solo se requieran algunas
de ellas, en SQL se utiliza la cláusula HAVING con este propósito. La sintaxis de esta cláusula se
muestra a continuación:

Visto a modo de ejemplo:

OBTENCIÓN DE DATOS DE MÚLTIPLES TABLAS

Introducción
El algunas ocasiones es necesario obtener información de más de dos tablas, o se requiere
complementar la información relacionada los datos de distintas tablas, para estos casos se hace
uso de intersecciones entre tablas.

Obteniendo datos de distintas tablas


En capítulos anteriores se ha visto que el enunciado SELECT ayuda en la obtención 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 información complementaria.

Este tipo de unión de tablas no es más que una combinación de datos, para obtenerla se
necesita tener vinculadas algunos renglones entre tablas dependientes, esto se logra mediante
la incorporación de Llaves Primarias (PK) y Llaves Foráneas (Fk).

43
Gráficamente esta relación puede verse como se muestra en el siguiente diagrama:

Uniendo dos o más 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 información delos empleados y del
número de departamento donde están, 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:

También es importante considerar que al recuperar datos de varias tablas, de forma explícita
(como en la gráfica anterior), es necesario que se identifique explícitamente a qué tabla
pertenece cada columna a fin de evitar errores de ambigüedad (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 figura:

44
Observe el uso de alias en las tablas para identificar de forma explícita las columnas por tabla. Un alias
de tabla se utiliza, en lugar del nombre de la tabla, para simplificar y reducir el tamaño del código SQL.

Importante: Si las columnas con el mismo nombre tienen tipos de datos diferentes, se produce un error.

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);

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 unión que resulta de omitir las condiciones o relaciones de igualdad entre dos o más
tablas.

Este tipo de uniones resulta ser de un costo computacional alto debido a que los registros
involucrados se combinarán entre las tablas mencionadas creando un conjunto de datos que
muchas veces no tiene sentido.

45
Equijoins
Son las uniones entre tablas que utilizan las llaves primarias y foráneas para realizarla
combinación de registros.

Este es el tipo de uniones más 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
foráneas para realizar la combinación de registros, en su lugar utilizan operadores de
comparación para obtener el conjunto de resultados.

Los operadores que utiliza el no quijoin son: <=, >= y el BETWEEN

Outer Joins
La combinación de conjuntos como los joins tienen un detalle, si un renglón no satisface con la
condición de unión este no se mostrará en los resultados. Estos renglones comúnmente se

46
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 generación de reportes, por
ello Oracle ha dispuesto de un operador para que estos renglones puedan ser visualizados y
mostrados al ejecutarse una selección de datos. Los outer joins, se clasifican en dos categorías:

Outer join porla izquierda, el OuterJoin por la Derecha y el Full Outer Join.

La sintaxis de cada uno de estos se muestra a continuación:

SUBCONSULTAS

Introducción
Supongamos que nos enfrentamos a la siguiente situación: se nos ha pedido generarla lista de
aquellos empleados que ganan más que la empleada llamada Smirna.

Para resolver este problemas se nota que es importante conoce cuánto gana Smirna, una vez
obtenido su salario será posible identificar quienes son los que ganan más 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.

47
Como identificar las subconsultas.
Para identificar cuando podemos usar subconsultas, bastará con iniciar con un análisis 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 inició en el capítulo podemos verlo de la siguiente manera:

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 condición aplicada a otra tabla. La sintaxis para usar una
subconsulta es la siguiente:

Donde expresión será la condición 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 ilustración anterior se dividen en Operadores de
un Registro y de Múltiples registros.

Esta clasificación de operadores corresponde a su vez de acuerdo al tipo de subconsulta que de vaya a
implementar, en SQL se tienen las siguientes categorías de subconsultas:

48
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 múltiples renglones.
Algunas recomendaciones que se deben tomar en cuenta al momento de usar subconsultas son
las siguientes:

MANIPULACIÓN DE DATOS

Introducción
Los enunciados DML son la parte estática 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 transacción y a lo largo de este


capítulo aprenderemos como estructurar enunciados DML y cómo podemos controlar su
ejecución a través de transacciones.

49
Lenguaje de Manipulación de Datos

Enunciados DML
Los enunciados de lenguaje de manipulación 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 gestión de información dentro de una base de
datos. A continuación se dará a conocer su sintaxis y sus reglas de uso.

Enunciado INSERT
La sintaxis de este enunciado es la siguiente:

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:

Enunciado UPDATE
Este enunciado permite la actualización de los datos de la base de datos, su sintaxis básica es la
siguiente:

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

Es importante señalar que se deberá tener cuidado al eliminar los registros de las bases de datos, pues
esta acción no permite deshacer la acción realizada de manera natural.

Cuando se realice la eliminación de los datos, es importante considerar que si se infringen las reglas de
integridad referencial se originará un error de integridad al realizar la acción de eliminación.

Enunciado MERGE
Este enunciado permite actualizar o insertar un renglón 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 señalar que este es un enunciado determinístico y que no será posible actualizar
el mismo renglón en múltiples ocasiones con este enunciado.

La sintaxis del enunciado MERGUE es la siguiente:

51
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 transacción consiste en el conjunto de enunciados DML que pueden realizar
cambios sobre los datos.

Una transacción inicia cuando se detecta el primer enunciado DML y termina cuando algo de lo
siguiente ocurre:

Se usó un enunciado COMMIT o ROLLBACK


Se ejecutó un enunciado DDL como CREATE
Se utilizó un enunciado DCL
Si el usuario termino sesión
Si el equipo o el sistema operativo falla

En Oracle existe un sistema explícito de control de transacciones, mismo que permite que el
usuario o programador determine cada cuando ejecutar o cancelar una transacción.
Visualmente este sistema se ve como lo muestra la siguiente figura:

52
Dónde se emplean los siguientes comandos:

FUNCIÓN DESCRIPCIÓN
COMMIT Termina la transacción actual realizando todos que los
cambios temporales se realicen permanentemente
SAVEPOINT name Coloca un punto de retorno

ROLLBACK Termina la transacción actual descartándolos cambios


hechos
ROLLBACK TO Regresa la transacción a un punto específico de retorno,
SAVEPOINT Name descarta los cambios hechos y puntos de retorno creados
antes del punto de retorno.

DEFINICIÓN DE ESTRUCTURAS DE DATOS Y OTROS

OBJETOS DEL SISTEMA DE BD MEDIANTE SQL

1. EL DICCIONARIO DE DATOS
Un SGBD está constituido en torno a un Diccionario de Datos, que es utilizado por el sistema y por
los usuarios para controlar los objetos existentes en la BD.

En ORACLE el diccionario de datos está implementado mediante un conjunto de tablas y vistas que
almacenan la información sobre la BD, y en ellas sólo puede escribir el SGBD. Los usuarios pueden
acceder a las vistas del diccionario de datos mediante SQL para consultar.

La mayoría de las vistas del diccionario aparecen en conjuntos de 3, que contienen información
similar y que se diferencian con el prefijo.

El prefijo USER_ visualizará sólo los objetos creados por el propio usuario.
El prefijo ALL_ visualizará los objetos sobre los que el usuario tiene algún tipo de permiso.
El Prefijo DBA_ visualizará todos los objetos que hay en el SGBD. Este tipo de vistas sólo pueden ser
consultadas por un usuario que sea DBA, es decir, que tenga concedido el rol DBA.

Algunas de las vistas del diccionario de datos son:

 DICTIONARY o DICT: contiene la descripción de las tablas y vistas que componen el diccionario.

SQL> select * from dict;


Select table_name, substr(comments,1,40) from dict;

 DBA, ALL, USER_TABLES: contienen la descripción de las tablas creadas en el diccionario de datos.

 DBA, ALL, USER_CONSTRAINTS: contienen la descripción de las restricciones definidas sobre las
tablas.

 DBA, ALL, USER_USERS: contienen la descripción de los usuarios definidos en la BD.


 DBA, ALL_TABLESPACES: contienen el nombre de los TABLESPACES definidos en la BD.

El SGBD ORACLE ofrece un comando que permite ver la descripción de una tabla concreta.

53
Este comando es DESC.
SQL> DESC nombre_tabla;

2. LENGUAJE DE DEFINICIÓN DE DATOS (DDL).

El conjunto de sentencias SQL que permiten crear, alterar y eliminar las estructuras de datos y otros
objetos de la BD relacional reciben el nombre de DDL. El lenguaje DDL está basado en 3 verbos de
SQL:

o CREATE: que define y crea objetos en la BD.


o DROP: que elimina un objeto existente en la BD.
o ALTER: que modifica la definición de un objeto de la BD.

Los objetos de la BD a los que afectan estas instrucciones son: tablas, vistas, índices, restricciones,
usuarios, roles, etc.

54

You might also like