Está en la página 1de 58

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: Investigacin Preliminar, Anlisis, Diseo,
Implementacin e Instalacin.
CASE se define tambin como:

Conjunto de mtodos, utilidades y tcnicas que facilitan la automatizacin del


ciclo de vida del desarrollo de sistemas de informacin, completamente o en
alguna de sus fases.

La sigla genrica para una serie de programas y una filosofa de desarrollo de


software que ayuda a automatizar el ciclo de vida de desarrollo de los sistemas.

Una innovacin en la organizacin, un concepto avanzado en la evolucin de


tecnologa con un potencial efecto profundo en la organizacin. Se puede ver al
CASE como la unin de las herramientas automticas de software y las
metodologas de desarrollo de software formales.

Variaciones en el significado deCASE.

Computer
Aided
Assisted
Automated
Software Systems
Engineering

La realizacin 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 coordinacin
de los eventos que necesitan ser mejorados en el ciclo de desarrollo de software.
La mejor razn para la creacin de estas herramientas fue
el incremento en la velocidad de desarrollo de los sistemas.
Por esto, las compaas pudieron desarrollar sistemas sin
encarar el problema de tener cambios en las necesidades
del negocio, antes de finalizar el proceso de desarrollo.
Tambin permite a las compaas competir ms 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 tambin permiten a los


ms tiempo para el anlisis y diseo y
tiempo para codificar y probar.

analistas
minimizar

tener
el

La introduccin de CASE integradas est comenzando a tener un impacto


significativo en los negocios y sistemas de informacin de las organizaciones.
Con un CASE integrado, las organizaciones pueden desarrollar rpidamente
sistemas de mejor calidad para soportar procesos crticos del negocio y asistir en el
desarrollo y promocin intensiva de la informacin 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 diseado.


Automatizar el dibujo de diagramas.
Ayudar en la documentacin del sistema.
Ayudar en la creacin de relaciones en la Base de Datos.
Generar estructuras de cdigo.

La principal ventaja de la utilizacin de una herramienta CASE, es la mejora de la


calidad de los desarrollos realizados y, en segundo trmino, el aumento de la
productividad. Para conseguir estos dos objetivos es conveniente contar con una
organizacin y una metodologa de trabajo, adems de la propia herramienta.
La mejora de calidad se consigue reduciendo sustancialmente muchos de los
problemas de anlisis y diseo, inherentes a los proyectos de mediano y gran
tamao (lgica del diseo, coherencia, consolidacin, etc.). La mejora de
productividad se consigue a travs de la automatizacin de determinadas tareas,
como la generacin de cdigo y la reutilizacin de objetos o mdulos.
GLOSARIO DE DEFINICIONES BSICAS DE CASE:
CASE: Ayuda por Computadora a la Ingeniera de Software.
TECNOLOGIA CASE: Una tecnologa del software que mantiene una disciplina de la
ingeniera automatizada para el desarrollo de software, mantenimiento y direccin
de proyecto, incluye metodologas 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 comn y corren en un ambiente computacional comn.
KIT de HERRAMIENTAS CASE: Un conjunto de herramientas CASE integradas que
se han diseado para trabajar juntas y automatizar (o proveer ayuda automatizada
alciclo de desarrollo de software, incluyendo el anlisis, diseo, codificacin y
pruebas.

METODOLOGIA CASE: Un automatizable metodologa estructurada que define una


disciplina e ingeniera como un acercamiento a todos o algunos aspectos del
desarrollo y mantenimiento de software.
PUESTO DE TRABAJO para CASE: Una estacin de trabajo tcnica, diseada 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 lnea, que proveen una plataforma operativa
para las Herramientas Case.
HISTORIA DE LAS HERRAMIENTAS CASE
Las Herramientas CASE tienen su inicio con el simple procesador de palabras que
fue usado para crear y manipular documentacin. En los aos setentas vieron la
introduccin de tcnicas grficas y diagramas de flujo de estructuras de datos.
Sobre este punto, el diseo y especificaciones en forma pictrica han sido
extremadamente complejos y consuman mucho tiempo para realizar cambios.
La introduccin de las herramientas CASE para ayudar
eneste proceso ha permitido que los diagramas puedan
ser fcilmente creados y modificados, mejorando la
calidad delos diseos 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 diseo
de flujo de datos y anlisis estructural, hecho posible a
travs de las mejoras en las Herramientas CASE.
Pronto se reemplazaron los paquetes grficos por paquetes especializados que
habilitan la edicin, actualizacin e impresin en mltiples versiones de diseo.
Eventualmente, las herramientas grficas integradas con diccionarios de base de
datos para producir poderosos diseos y desarrollar herramientas, podran sostener
ciclos completos de diseo de documentos.
Como un paso final, la verificacin de errores y generadores
de casos de pruebas fueron incluidos para validar el diseo
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 paradiagramacin ya existan.
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 seran beneficiadas por la ayuda de las CASE.
Estos beneficios consistan, por ejemplo, en el aumento en la productividad. El
objetivo en 1985 para muchos vendedores era producir software ms rpidamente.

Las herramientas del CASE seran una familia de mtodos favorablemente


estructurados para planeamiento, anlisis y diseo. Esto llevara a la generacin
automtica de cdigo para desarrollo de software va una especificacin
formalmente diseada. Esto traera como beneficio:

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


El entorno de produccin de documentacin para software mejora la
comunicacin, mantenimiento y actualizacin.
Hace el trabajo de diseo de software ms fcil y agradable.
La promesa futura de reemplazar realmente a los ingenieros de software
especializados.
Reduccin del costo de produccin de software.
Con estos objetivos en mente, la industria destin millones en produccin de
Herramientas CASE.

As como esta enorme suma de dinero fue gastada en Herramientas CASE,


hubotambin trabajo de investigacin 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.
Evolucin de las Herramientas CASE
A inicios de los 80s :

A mediados de los 80s :

Ayuda en la documentacin por computadora.


Diagramacin asistida por computadora.
Herramientas de anlisis y diseo.
Diseo automtico de anlisis y pruebas.
Repositorios automticos de informacin desistemas.
Generacin
automtica
especificaciones de diseo.

A inicios de los 90s :

de

cdigo

desde

Metodologa Inteligente.
Interface de Usuario reusable como una metodologa
de desarrollo.

4. Clasificacin de las HerramientasCase


No existe una nica clasificacin de herramientas CASE y, en ocasiones, es difcil
incluirlas en una clase determinada. Podran 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 funcin 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 tambin CASE workbench.
2.

Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) ofrontend, orientadas a la automatizacin y soporte de las actividades desarrolladas
durante las primeras fases del desarrollo: anlisis y diseo.

3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) oback-end,


dirigidas a las ltimas fases del desarrollo: construccin eimplantacin.
4. Juegos de herramientas o Tools-Case, son el tipo ms simple de
herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de
este grupo se encontraran las herramientas de reingeniera, orientadas a la fase
de mantenimiento.
TIPO DE
CASE

VENTAJAS

DESVENTAJAS

Integra el ciclo de vida.

I Case

Upper
Case

Lower
Case

No es tan eficiente para soluciones


simples,
sino
para
soluciones
Permite lograr importantes mejoras complejas.
de productividad amediano plazo.
Depende del Hardware y del Software.
Permite un eficiente soporte al
mantenimiento de sistemas.
Es costoso.
Mantiene la consistencia de los
sistemas a nivel corporativo.
Se utiliza en plataforma PC,es Permite mejorar la calidad de
aplicable a diferentes entornos,
sistemas,
pero
no
mejora
productividad.
Menor costo
No permite la integracin del ciclo
vida.
Permite lograr importantes mejoras No garantiza la consistencia de
de productividad acorto plazo.
resultados a nivel corporativo.
Permite un eficiente soporte
mantenimiento desistemas.

los
la
de
los

al No garantiza la eficienciadel Anlisis y


Diseo.

No permite la integracindel 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 concepcin del sistema
de informacin, hasta el anlisis, diseo y la generacin delos mismos programas.

Las herramientas I-CASE se basan en una metodologa. Tienen un repositorio y


aportan tcnicas estructuradas para todas las fases del ciclo de vida. Estas son las
caractersticas que les confieren su mayor ventaja: una mejora de la calidad de los
desarrollos.
Beneficios del I - Case:
Desarrollo
Tradicional
nfasis en la codificacin nfasis
y pruebas de programas. ydiseo.

Case
en

I Case
anlisis nfasis
en
modelamientoempresarial.

el

Especificaciones
basadas en papel.

Especificaciones
Especificaciones
basadas
en
basadas en diagramas diagramas
automatizados
y
automatizados.
perfectamente integrados a travs de
las diferentes etapas dedesarrollo.
Codificacin manual de Generacin automtica Generacin automtica de cdigos y
programas.
de cdigos, programas totalmente integrada con laestacin
fuente.
de trabajo de diseo representacin
grfica de las estructuras de cdigos.
Documentacin manual. Generacin automtica Generacin
automtica
de
de documentacin.
documentacin.
Mantenimiento
de Mantenimiento
de Mantenimiento de especificaciones
programas fuentes.
especificaciones
de de diseo y regeneracin de cdigos
diseo y regeneracin de
cdigos
Uso de una enciclopedia (coordinador
de conocimientos) para concentrar
toda la informacin de las diferentes
estaciones de trabajo en forma
integrada.

Juego de Herramientas o Tools Case.


Estn formadas por un conjunto de herramientas orientadas cada una de ellas a
resolver una determinada fase del desarrollo. El ensamblaje de las mismas se
efecta 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.
6

En el mercado actual se pueden citar, entre otras, algunas herramientas


distribuidas por fases de desarrollo como para:
Anlisis y Diseo

Prokit Workbench de McDonnell-Douglas


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

Diseo 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

Programacin
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 clasificacin, utilizando la funcionalidad como criterio principal, es
lasiguiente:
Herramientas de planificacin de sistemas de gestin. Sirven para
modelizar los requisitos de informacin estratgica de una organizacin.
Proporcionan un "metamodelo" del cual se pueden obtener sistemas de
informacin especficos. Su objetivo principal es ayudar a comprender mejor cmo
se mueve la informacin entre las distintas unidades organizativas. Estas
herramientas proporcionan una ayuda importante cuando se disean nuevas
estrategias para los sistemas de informacin y cuando los mtodos y sistemas
actuales no satisfacen las necesidades de la organizacin.
Herramientas de anlisis y diseo. Permiten al desarrollador crear un
modelo del sistema que se va a construir y tambin la evaluacin de la validez y
consistencia de este modelo. Proporcionan un grado de confianza en la
representacin del anlisis y ayudan a eliminar errores con anticipacin.

Herramientas de anlisis y diseo (Modelamiento).


Herramientas de creacin de prototipos y de simulacin.
Herramientas para el diseo y desarrollo de interfaces.
Mquinas de anlisis y diseo (Modelamiento).

Herramientas de programacin. Se engloban aqu los compiladores, los


editores y los depuradores de los lenguajes de programacin convencionales.
7

Ejemplos de estas herramientas son:

Herramientas de codificacin convencionales.


Herramientas de codificacin de cuarta generacin.
Herramientas de programacin orientadas a los objetos.

Herramientas de integracin y prueba: Sirven de ayuda a la adquisicin,


medicin, simulacin y prueba de los equipos lgicos desarrollados. Entre lasms
utilizadas estn:
Herramientas de anlisis esttico.
Herramientas de codificacin de cuarta generacin.
Herramientas de programacin orientadas a los objetos.
Herramientas de gestin de prototipos. Los prototipos son utilizados
ampliamente en el desarrollo de aplicaciones, para la evaluacin de
especificaciones de un sistema de informacin, o para un mejor entendimiento
de cmo los requisitos de un sistema de informacin se ajustan a los objetivos
perseguidos.
Herramientas
de
mantenimiento:
demantenimiento se puede subdividir en:

La

categora

de

herramientas

Herramientas de ingeniera inversa.


Herramientas de reestructuracin y anlisis de cdigo.
Herramientas de reingeniera.

Herramientas de gestin de proyectos. La mayora de las herramientas


CASE de gestin de proyectos se centran en un elemento especfico de la
gestin del proyecto, en lugar de proporcionar un soporte global para la
actividad de gestin. Utilizando un conjunto seleccionado de las mismas
sepuede: realizar estimaciones de esfuerzo, coste y duracin, hacer un
seguimiento continuo del proyecto, estimar la productividad y la calidad, etc.
Existen tambin herramientas que permiten al comprador del desarrollo de un
sistema, hacer un seguimiento que va desde los requisitos del pliego de
prescripciones tcnicas 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:

Herramientas de planificacin de proyectos.


Herramientas de seguimiento de requisitos.
Herramientas de gestin y medida.

Herramientas de soporte. Se engloban en esta categora las herramientas


que recogen las actividades aplicables en todo el proceso de desarrollo,como las
que se relacionan a continuacin:

Herramientas de documentacin.
Herramientas para software de sistemas.
Herramientas de control de calidad.
8

Herramientas de bases de datos.

Otra clasificacin, diferencia las funciones CASE en cinco grupos:


Repositorio.
Funcionan en torno a un repositorio central, siendo ste el ncleo 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-relacin, esquemas de bases de datos, diseos de pantallas, etc. El
repositorio es un concepto ms amplio que el de diccionario de datos y soporta a
los dems grupos de funciones. No es fcil encontrar en el mercado productos Case
con funcionalidades estrictamente a las de repositorio, ya que, a pesar de su
innegable importancia, tienen un carcter auxiliar de los dems grupos de
funciones. Cualquier sistema Case poseer un repositorio propio o bien, trabajar
sobre un repositorio suministrado por otro fabricante o vendedor.
Re-ingeniera.
Los sistemas Case permiten establecer una relacin estrecha y fuertemente
formalizable entre los productos generados a lo largo de distintas fases del ciclo de
vida, permitiendo actuar en el sentido especificaciones-cdigo (ingeniera "directa")
y tambin en el contrario (ingeniera "inversa"). Ello facilita la realizacin de
modificaciones en la fase ms adecuada en cada caso y su traslado a las dems. Al
conjunto de facilidades proporcionadas por la ingeniera directa e "inversa" se le
denomina "re-ingeniera".
Soporte del ciclo de vida.
El ciclo de vida de una aplicacin o de un sistema de informacin se compone de
varias etapas, que van desde la planificacin de su desarrollo hasta su
implantacin, mantenimiento y actualizacin. Aunque el nmero de fases puede ser
variable enfuncin del nivel de detalle que se adopte, pueden de modo simplificado,
identificarselas siguientes:

Planeamiento.
Anlisis y Diseo.
Implantacin (programacin y pruebas).
Mantenimiento y actualizacin.

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 autonoma 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 nmero ms o menos amplio de metodologas de desarrollo.

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 comunicacin, soporte a la creacin, modificacin e
intercambio de documentacin, 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 diferenciacin.
Mejora continua de calidad.
9

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 tambin, en la mejora de la calidad de los
desarrollos realizados. Determinados sistemas Case enfatizan ms sobre este punto
que sobre el anterior, introduciendo herramientas que permiten ejercer un control
intenso de garanta de calidad del software desarrollado desde las primeras fases
de su ciclo devida.
Rango de las Herramientas Case

Algunas Herramientas CASE son slo para la fase de Diseo.

Otras,

son

slo

generadoras de Cdigo

Algunas Herramientas de Anlisis y Diseo


tienen una visin de Desarrollo orientada
aprocesos sin la capacidad de modelamiento.

Algunas proveen Herramientas para el modelamiento sin


incluir los procesos de Anlisiso Diseo.

COMPONENTES Y FUNCIONALIDADES DE UNA HERRAMIENTACASE


A continuacin se describen los principales componentes de una herramienta
CASEy sus funcionalidades.
Repositorio
Base de datos central de una herramienta CASE. El repositorio ampla el concepto
de diccionario de datos para incluir toda la informacin que se va generando a lo
largo del ciclo de vida del sistema, como por ejemplo: componentes de anlisis y
diseo (diagramas de flujo de datos, diagramas entidad-relacin, esquemas de

10

bases de datos, diseos de pantallas), estructuras de programas, algoritmos, etc.


En algunas referencias se le denomina Diccionario de Recursos de Informacin.
La mayora de herramientas CASE poseen un repositorio propio o bien trabajan
sobre un repositorio suministrado por otro fabricante o vendedor.
Apoyndose en la existencia del repositorio se efectan comprobaciones de
integridad y consistencia:

Que no existan datos no definidos.


Que no existan datos auto definidos (datos que se emplean en una definicin
pero que no han sido definidos previamente).
Que todos los alias (referencias a un mismo dato empleando nombres distintos)
sean correctos y estn actualizados.
Las caractersticas ms importantes de un repositorio son:
o

Tipo de informacin. Que contiene alguna metodologa concreta, datos,


grficos, procesos, informes, modelos o reglas.

Tipo de controles. Si incorpora algn mdulo de gestin de cambios, de


mantenimiento de versiones, de acceso por clave, de redundancia de
lainformacin.

La gestin de cambios y el mantenimiento de versiones, ayudarn en el caso de


que convivan diferentes versiones de la misma aplicacin, o se tengan que realizar
cambios en la versin en produccin y en la de desarrollo, simultneamente.
Tipo de actualizacin. Si los cambios en los elementos de anlisis o diseose ven
reflejados en el repositorio en tiempo real o mediante un procesopor lotes (batch).
Esto ser importante en funcin a la necesidad de que los cambios sean visibles por
todos los usuarios, en el acto.
Reutilizacin de mdulos para otros
diseos. El repositorio es la clave para
identificar, localizar y extraer cdigo
para su reutilizacin.
Posibilidad
de
exportacin
e
importacin para extraer informacin
del repositorio y tratarla con otra
herramienta (formateo de documentos,
mejorade presentacin) o incorporar al
repositorio, informacin generada por
otrosmedios.
Interfases automticas con otros repositorios o bases de datos externos.
Mdulos de diagramacin y modelizacin
Algunos de los diagramas y modelosutilizados con mayor frecuencia son:
Diagrama de flujo de datos.
Modelo entidad - interrelacin.
Historia de la vida de las entidades.
11

Diagrama Estructura de datos.


Diagrama Estructura de cuadros.
Tcnicas matriciales.

Algunas caractersticas referentes a los diagramas son:

Nmero mximo de niveles para poder soportar diseos complejos.

Nmero mximo de objetos que se pueden incluir para no encontrarse limitado


en el de grandes aplicaciones.

Nmero de diagramas distintos en pantalla o al mismo tiempo en diferentes


ventanas.

Dibujos en formato libre con la finalidad de aadir comentarios, dibujos,


informacin adicional para aclarar algn punto concreto del diseo.

Actualizacin del repositorio por cambios en los diagramas. Siempre resulta ms


fcil modificar de forma grfica un diseo y que los cambios queden reflejados
en el repositorio.

Control sobre el tamao, fuente y emplazamiento de los textos en el diagrama.

Comparaciones entre grficos de distintas versiones. De esta forma ser ms


fcil identificar qu diferencias existen entre las versiones.

Inclusin de pseudocdigo, que servir de base a los programadores para


completar el desarrollo de la aplicacin.

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 diseo, el aspecto que tendr la aplicacin una vez
desarrollada. Ello facilitar la aplicacin de los cambios que se consideren
necesarios, todava en la fase de diseo.
La herramienta ser tanto ms til, cuanto ms rpidamente permita la
construccin del prototipo y por tanto antes, se consiga la implicacin del usuario
final en el diseo de la aplicacin. Asimismo, es importante poder aprovechar como
base el prototipo para la construccin del resto de la aplicacin. Actualmente, es
imprescindible utilizar productos que incorporen esta funcionalidad por la
cambiante tecnologa ynecesidades de los usuarios.
Los prototipos han sido utilizados ampliamente en el desarrollo de sistemas
tradicionales, ya que proporcionan una realimentacin inmediata, que ayudan a
determinar los requisitos del sistema. Las herramientas CASE estn bien dotadas,
engeneral, para crear prototipos con rapidez y seguridad.
Generador de cdigo
Normalmente se suele utilizar sobre ordenadores personales o estaciones de
trabajo, por lo que el paso posterior del cdigo al host puede traer problemas, al
tener que compilar en ambos entornos.
12

Las caractersticas ms importantes de los generadores de cdigo son:

Lenguaje generado. Si se trata de un lenguaje estndar o un lenguajepropietario.

Portabilidad del cdigo generado. Capacidad para poder ejecutarlo en diferentes


plataformas fsicas y/o lgicas.

Generacin del esqueleto del programa o del programa completo. Si nicamente


genera el esqueleto ser necesario completar el resto mediante programacin.

Posibilidad de modificacin del cdigo generado. Suele ser necesario acceder


directamente al cdigo generado para optimizarlo o completarlo.

Generacin del cdigo asociado a las pantallas e informes de la aplicacin.

Mediante esta caracterstica se obtendr la interfase de usuario de la aplicacin.


Mdulo generador de documentacin
El mdulo generador de la documentacin se alimenta del repositorio para
transcribirlas especificaciones all contenidas.
Algunas caractersticas de los generadores de documentacin son:

Generacin automtica a partir de los datos del repositorio, sin necesidad de un


esfuerzo adicional.

Combinacin de informacin textual y grfica, lo que hace ms fcil su


comprensin.

Generacin de referencias cruzadas. Con ello se podr localizar fcilmente en


qu partes de la aplicacin se encuentra un determinado objeto o elemento, con
el fin de analizar el impacto de un cambio o identificar los mdulos afectados por
un determinado error.

Ayuda de tratamiento de textos. Facilidad para la introduccin de textos


complementarios a la documentacin que se genera de forma automtica.

Interfase con otras herramientas: procesadores de textos, editores grficos, etc.

13

BASE DE DATOS
DEFINICIN.
Una Base de Datos (BD) es una coleccin de datos que estn lgicamente
relacionados entre s. Los datos estn estructurados segn un modelo de BD que
refleja las relaciones y restricciones que tienen estos datos en el mundo real. La
descripcin y la definicin de los datos estn 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 diseados especficamente
para cada aplicacin, de tal manera que si un dato es utilizado por ms de una
aplicacin aparecer repetido en dos o ms ficheros. Adems, 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 segn un modelo que refleja las caractersticas que tienen
en el mundo real, y ese modelo permite que cualquier proceso pueda tratar los
datos.

Descripcin centralizada de los datos.


La definicin de los datos se almacena en la misma BD, de manera que los
tratamientos no tienen que especificar de nuevo la definicin de los datos.
Adems, esto ofrece una mejor y ms normalizada documentacin de la
informacin.

Eficiencia en la estructuracin de los datos.


Al estar los datos estructurados segn un modelo, no se producen redundancias
de datos, es decir, que el mismo dato no aparece en dos o ms ficheros. Esto
evita 3 problemas:
o

Por un lado no se desperdicia espacio de memoria almacenando la misma


informacin varias veces.

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


ficheros.

14

Se evita la corrupcin de la BD, ya que al modificar un dato habra que


hacerlo en todos los ficheros en que aparece, y si no se modifica en alguno
de los ficheros, la BD sera inconsistente.

Mayor nivel informtico


Los sistemas de BD ofrecen herramientas ms potentes y ms sencillas para la
modificacin de los datos. Los sistemas de BD estn integrados en los sistemas
de desarrollo de 4 Generacin. En contra, los sistemas por ficheros pertenecen
a los sistemas de 3 Generacin.
ELEMENTOS DE UNA BASE DDE DATOS.

Los datos: es el conjunto de datos que estructurados y almacenados en un soporte


magntico u ptico de acceso directo. A este conjunto de datos es lo que suele
denominarse Base de Datos.
La metabase: es la informacin 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 informacin que necesita sobre los
datos almacenados y su funcionamiento. Los elementos fundamentales de la
metabase son:
o

Catalogo o diccionario de datos.Contiene la descripcin lgica de cada uno


de los datos, es decir, contiene la descripcin desde el punto de vista del
usuario. Esta informacin es: tipo de dato, fichero en que se encuentra, relacin
entre ficheros, etc.

Directorio de datos. Contiene la descripcin fsica de los datos, que permite


pasar de la representacin externa a la interna.

Sistema de seguridad, que es a dos niveles, la seguridad lgica que contiene


y controla los permisos de acceso de los usuarios a los datos, o seguridad fsica,
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.

El software de gestin de sistema: tambin 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, ncleo 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 fsicamente.
2. Lenguaje de definicin de datos (DDL) y lenguaje de manipulacin de
datos (DML).
3. Utilidades de administracin de la BD. Facilitan las tareas de
mantenimiento y seguridad de la BD. Estos programas realizan tareas como
por ejemplo: modificacin del tamao del fichero, realizar copias de
seguridad, herramientas para la exportacin e importacin de datos,
estadsticas de utilizacin de los datos.
4. Herramientas de desarrollo Es el conjunto de lenguajes para el desarrollo
de aplicaciones.
15

El administrador de la BD (BDA): Es la persona cuya misin es asegurar la


calidad y permitir el uso de los datos, diseando la BD de manera que el diseo
de su estructura lgica y la implementacin de su estructura fsica responda lo
mejor posible a las necesidades de los distintos usuarios.
4GL
ORAC
LE
DASE
II

C
JAVA

CLIENT
ES

FORMS

SQL

SGBD

BASE DE
DATOS

REPOR
SYSAD

Diccionar
io de
datos

Privilegio Directori
s
o

LOG

CARACTERSTICAS 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 fsicos, por
ejemplo, fallos en la memoria RAM o de disco, cadas del sistema, interrupcin de la
energa, etc., o lgicos, 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 caractersticas: 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 comn que provoca la
inconsistencia de la BD es cuando una operacin lgica se traduce en varias
acciones en la BD, de tal manera que la operacin slo 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 atmica, es decir, o se realizan todas las operaciones que componen la
transaccin o ninguna de ellas.
Cuando hay que deshacer las acciones de una transaccin 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 recuperacin se
le denomina recuperacin en caliente.
Otro tipo de fallo que se puede sufrir es el que afecta a la memoria del disco. En
este caso la informacin se recuperara desde una copia de respaldo o Backup,
que conserva el estado de los datos en una fecha determinada. A esta operacin
se la denomina recuperacin en fro.

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

Operaciones que atentan contra las reglas de integridad:


Existencial o Referencial. Las restricciones de integridad son definidas en
el momento del diseo de la BD, de modo que el SGBD vela por que se
cumplan, no permitiendo operaciones que la violen.

Interferencias por accesos concurrentes. Los datos, el sistema lo


soluciona con el mecanismo de bloqueos.

Confidencialidad: La confidencialidad se refiere a la proteccin 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
poltica de empresa, no decisiones tcnicas.
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 criptografa,
de tal manera que los datos estn 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 auditora, 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.

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 fsicas 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 tipologas para
implementar la estructura cliente-servidor:

El cliente y el servidor se ejecutan en la misma mquina.

APLICACIO
NES
SGBD

DATOS

El servidor y el cliente estn en distintas mquinas (proceso distribuido).


Requiere de un sistema de comunicaciones.
17

APLICACIO
NES

SG

APLICACIO
NES

DATO
S

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

APLICACIO
NES
APLICACIO
NES

SGB
D

RED DE
COMUNICACI
ONES

SGB
D DATO

DATO
S

APLICACIO
NES

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
mquina, pero la parte de cliente se reparte en 2 niveles: 1 mquina servidor de
aplicaciones y 1 mquina cliente.

MODELO DE DATOS.
El objetivo de cualquier sistema de informacin es representar, mediante una
abstraccin del mundo real, toda la informacin necesaria para el cumplimiento de
sus fines. Estos fines pueden ser obtener facturas, controlar stocks de almacn,
gestionar las matrculas de un centro educativo.
Esta abstraccin se realiza mediante un modelo de datos que es un conjunto de
mtodos y reglas que indican cmo se ha de almacenar la informacin y cmo se ha
de manipular los datos.
Existen 2 tipos de modelos:
18

Modelo conceptual. Es una representacin de la realidad no comprometida con


ningn entorno informtico. El modelo conceptual ms popular es el modelo
entidad relacin de Chen.

Modelo lgico. Determina unos criterios de almacenamiento y de operaciones


de manipulacin de datos dentro de un tipo de entorno informtico. Los SGBD
comerciales se basan en un modelo lgico concreto y determinan en parte el
modelo fsico.

Histricamente, los modelos lgicos de datos son:

Modelo
Modelo
Modelo
Modelo

jerrquico (IMS [IBM]).


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

EL MODELO RELACIONAL DE DATOS


El modelo relacional constituye el fundamento terico de los SGBD comerciales ms
utilizados en la actualidad.

19

El modelo relacional es propuesto por CODD en la dcada de 1970. Es un modelo de


datos basado en la teora matemtica de las relaciones, en la que los datos se
estructuran en el mbito lgico en forma de relaciones.
Uno de los objetivos fundamentales del modelo relacional es que la estructura
lgica de los datos es independiente de su almacenamiento interno. As, el modelo
no contempla en absoluto los aspectos fsicos 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 combinacin
componentes, que son estructurales, de integridad y de manipulacin.

de

ESTRUCTURA DEL MODELO


Las estructuras de datos estn formadas por tablas o relaciones, filas o tuplas,
columnas o atributos y claves primarias y claves ajenas.
SISTEMA
FICHEROS
Fichero
Registro
Campo

DE

TEORA
RELACIONAL
Relacin
Tupla
Atributo

SGBD
RELACIONALES
Tabla
Fila
Columna

Una tabla es una matriz rectangular dispuesta en filas y columnas y se puede


representar de dos formas:

Representacin tabular:
MATR

NOM

Estudiante
CURSO

ESPEC.

PARAL

DIR

REPRES.

Representacin 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, DIRECCIN, CODCICLO)


Las caractersticas de las tablas son:
En una tabla no hay filas repetidas.
Las filas no estn ordenadas dentro de la tabla por ningn criterio.
En una tabla no hay dos columnas con el mismo nombre.
En una celda de la tabla puede haber como mximo 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 unvoca. Una clave candidata ha de ser irreductible, es decir,
que ningn 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
segn el modelo no puede haber dos filas iguales.
20

Clave primaria. (Primary Key, PK). De entre todas las claves candidatas, el
diseador ha de elegir una de ellas como clave primaria, por criterios ajenos al
modelo relacional, siguiendo criterios propios del sistema de informacin. El
resto de las claves candidatas pasarn a llamarse claves alternativas (AK). La
clave primaria es de gran importancia enel modelo, pues es la que permite la
relacin 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 ampla con tablas
virtuales llamadas Vistas o Views.
Vista. Es una tabla derivada de otras tablas, que se representa dentro del sistema
por su definicin, pero que no posee datos almacenados propios separados de las
tablas reales. Son una visin 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 decisin que atae al BDA
para mejorar el rendimiento del sistema. Los ndices son lgica y fsicamente
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 automticamente 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 vlidos en el sistema de informacin.
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 ningn valor, sino que es una marca que se aplica a una columna para indicar
que no tiene asignado ningn 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 definicin. Hay una serie de reglas para evitar
estos estados incorrectos, que se indican en el momento de la definicin de la
BD, especificando qu debe hacer el sistema en caso de borrado o
modificacin que atente contra la integridad referencial. Hay las siguientes
posibilidades:
21

Operacin restringida: (Restrict) No se permite borrar filas ni modificar


el valor de su clave primaria si existen FKs que contengan su valor.

Operacin con propagacin en cascada: (Cascade) El borrado o la


modificacin de la PK lleva consigo el borrado o modificacin de las filas
con los mismos valores en la FK.

Operacin con puesta a nulos: (Set Null) El borrado o modificacin de las


filas de la tabla que contiene la PK provoca la asignacin de un valor nulo
en las FKs con el mismo valor.

Operacin con puesta a valor por defecto: (Set Default) El borrado o


modificacin de las filas de la tabla que contiene la PK provoca la
asignacin de un valor por defecto en las FKs 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 informacin es vlida.
Estas restricciones de usuario pueden estar relacionadas en el diccionario de la
BD o bien estar soportadas como procedimientos o disparadores. Una restriccin
de usuario ha de tener un nombre, el predicado que ha de ser satisfecho y una
respuesta a la operacin que intenta violar la restriccin.
MANIPULACIN DE LOS DATOS.

Codd defini 3 sistemas matemticos pertenecientes al lgebra de conjuntos, para


manipular los datos estructurados segn el modelo relacional. Estos lenguajes son
equivalentes entre s, y tienen en comn que no son lenguajes navegacionales, es
decir, que no actan sobre filas individuales, sino que son lenguajes de
especificacin que actan sobre conjuntos de filas.
Estos lenguajes son: lgebra relacional orientada a tuplas, Clculo relacional
orientado a Tuplas
y Clculo relacional orientado a dominios.
Los lenguajes DML de los SGBD comerciales se basan en uno o varios de estos
lenguajes matemticos. Por ejemplo, el SQL est basado en el lgebra relacional y
en el clculo relacional orientado a tuplas.

INTRODUCCIN A SQL.
SQL
Es un lenguaje que permite expresar operaciones de definicin de estructura de
datos, de autorizaciones de acceso a los datos y de consulta y actualizacin de
datos almacenados en la BD relacionales. La palabra SQL est formada por las
iniciales inglesas Structured Query Languaje.
La 1 versin SQL la desarroll IBM en la dcada de los 70. Ante el xito de esta
primera versin, otras empresas como ORACLE, DIGITAL o UNISYS desarrollaron sus
22

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 BDs 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 organizacin ISO
(International Standard Organization).
Las caractersticas principales del SQL frente a los sistemas tradicionales son:

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

Tiene una fuerte base terica matemtica, lo que le da una gran capacidad
expresiva con una estructura muy simple. Ello permite mediante una sola
sentencia expresar consultas complejas que tradicionalmente requeran de uno
o varios programas.

Se puede utilizar de forma interactiva, lo que permite realizar consultas no


planificadas, es decir, que no estn incluidas en programas, por lo que los
mismos usuarios finales pueden acceder directamente a los datos.

CMO 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 programacin: en un lenguaje de 3 o 4
generacin 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 anfitrin y puede ser C, JAVA, PL/SQL... Hay dos tcnicas para
utilizar SQL embebido en programas:
1. SQL esttico. Donde las sentencias SQL incluidas en el programa no pueden
cambiar durante la ejecucin.
2. SQL dinmico. Donde una sentencia SQL puede ser modificada total o
parcialmente por el propio programa durante su ejecucin.
PARA QUE SIRVE SQL.
El SQL se compone de 3 sublenguajes:
1. Lenguaje de definicin 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
o
o

Create: para crear objetos.


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

2. Lenguajes de manipulacin de datos (DML). Permite aadir, modificar,


borrar y consultar datos de la BD. Las sentencias son:
o
o
o
o

Select: para consultar datos de una o varias tablas.


Insert: para aadir una o varias filas en una tabla.
Update: para modificar el valor de columnas de una o varias filas de una
tabla.
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
o
o
o

Grant: para otorgar autorizaciones de acceso.


Revoke: para retirar autorizaciones de acceso.
Commit: para confirmar transacciones.
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 clusula o una funcin.

Nombres de tablas. vistas o columnas, inventadas por los creadores de la BD


que se asignan en el momento de la creacin.

Nombres de variables huspedes. Son nombres de variables de programa


que se insertan dentro de una sentencia.

Constantes. Pueden ser numricos o alfanumricos entre comillas simples.

Signos delimitadores. Parntesis,


aritmticas, espacios en blanco.

operadores

relacionales,

operaciones

INTRODUCCIN A LA ARQUITECTURA DE ORACLE 10G


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:

24

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

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:
Se reduce el acceso a disco cuando estn 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 auditora.
Enlaces de BD:
Sirven para especificar una va de acceso a un objeto situado en una BD remota
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:

En Windows, 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
Nombre de usuario: system
26

Contrasea: oracle
3. Haga clic en Iniciar sesin. La base de datos Oracle XE pgina de inicio aparece.

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
5. Haga clic en Modificar usuario.
6. Cierre la sesin del usuario system
27

7. Inicie sesin con el usuario HR1

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

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.

28

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.
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 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

LENGUAJE SQL

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.
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

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
29

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:

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
delas bases de datos.
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.

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


30

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 necesario 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.

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.

31

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 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;
ENUNCIADO DE SELECCIN DE DATOS
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.
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

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:

32

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
Recuperacin de datos en Oracle 10gPara 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

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:

33

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

Descripci
n
Suma
Resta
Multiplicaci
n
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:
34

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

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
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
Definicin
=, !=, <> =,! =, <> 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
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
IS NULL, IS NOT Comprueba si un valor es nulo, no es nulo
NULL
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:

36

Los valores numricos se muestran con los valores ms bajos primero,


como1 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,
como01-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;
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;

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

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
37

NULL
NULL
FALSO
NULL

0R
VERDAD
FALSO
NULL

VERDAD
VERDAD
VERDAD
VERDAD

FALSO
VERDAD
FALSO
NULL

NULL
VERDAD
NULL
NULL

NOT

VERDAD
FALSO

FALSO
VERDAD

NULL
NULL

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.
FUNCIONES DE SQL
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.
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


38

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
ARG

FUNCIN

EJECUCIN

EJECUCIN

RESULTADO

ARG

ARG

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.

El uso de las funciones deber realizarse en la clusula del SELECT, de


acuerdo a la siguiente sintaxis:
SELECT nombre_ funcin [argumento],[columna]
FROM table
[WHERE][ORDER BY
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
39

argumentos y regresan un solo valor para cada registro. Las funciones de un


solo rengln a su vez se clasifican en las siguientes categoras:

NUMRICA
S

FUNCIONES
DE UN SOLO
RENGLON

CARACTER

GENERALE
S

FECHA

CONVERSI
N

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

DESCRIPCIN

LOWER

Convierte a minsculas

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
Encuentra la posicin de
un carcteren una cadena

NSTR

DETALLE
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
INSTR(columna,cadena)
Ejemplo:INSTR(HolaMundo,M)=5

40

LPAD |
RPAD

Coloca el valor alineado


a la derecha o a la
izquierda

LPAD(columna,posiciones,caracter)RP
AD(columna,posiciones,caracter)
Ejemplo:LPAD(salario,10,*)=*****240
00RPAD(salario,10,*)= 24000*****

TRIM

Elimina el carcter de
una cadena

REPLACE

Reemplaza el texto
buscado en una cadena

TRIM(carcter
FROMcolumna)Ejemplo:TRIM(H
FROM HolaAmigo)= olaAmigo
REPLACE(columna,cadena_buscada,c
adena_reemplazo)
Ejemplo:REPLACE(HolaAmigo,Hola,
Bye)=ByeAmigo

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

TRUNC

Trunca el valor a un decimal


especificado
Devuelve el residuo de la
divisin

MOD

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

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 9999D.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
Su sintaxis es la siguiente:
SELECT SYSDATE
FROM DUAL;
41

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:

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

Oracle puede convertir de manera automtica los siguientes tipos de datos:


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

TO_NUMBER

FUNCIN
TO_NUMB
ER
TO_DATE

TO_CHAR

TO_DATE

DESCRIPCIN

DETALLE

Convierte una cadena


con dgitos en un
nmero

TO_NUMBER(char,[fmt],[nlsparams])
Ejemplo:TO_NUMBER(23.5)=23.5

Convierte una cadena


en una representacin
de fecha
Convierte un numero
o fecha en unVarchar2

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

Dnde fmt, corresponde a un modelo de formato de fecha. En Oracle los


elementos de este formato son:

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
Convierte un valor NULL c un
nuevo valor

43

DETALLE
NVL(expresion1,expresion2)
Ejemplo:NLV(comisin,0)
NVL(fecha_nacimiento,01-JAN-

98)
NVL(puesto, Sin puesto)
NVL2

NULLIF

COALESCE

Si la espresin1 no es nula,
regresa la espresin2, pero
si la expresin1 es nula se
regresa la expresin3

NVL2(expresion1, expresion2,
expresion3)

Compara dos expresiones


y regresa nulo si son
iguales o la primera
expresin si no son iguales
Regresa el primer valor no
nulo de la lista

NULLIF(expresion1, expresion2)
Ejemplo:
NULLIF(salario, bono)

Ejemplo:NVL2(comisin,comisin+10
0,0)

COALESCE(expresion1,
expresion2, ,
expresionN)
Ejemplo:COALESCE(comisin,
salario, 10)

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.
44

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:

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:

45

Visto a modo de ejemplo:

OBTENCIN DE DATOS DE MLTIPLES TABLAS


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

46

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 delos 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 figura:

47

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.

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 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.

48

Equijoins
Son las uniones entre tablas que utilizan las llaves primarias y forneas para
realizarla 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

Outer Joins
49

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 OuterJoin por la Derecha y el Full Outer Join.
La sintaxis de cada uno de estos se muestra a continuacin:

SUBCONSULTAS
Introduccin
Supongamos que nos enfrentamos a la siguiente situacin: se nos ha pedido
generarla 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
50

se requiere conocer o identificar un valor desconocido para que al usarlo se


puedan obtener datos adicionales se le conocen como problemas de
subconsultas.
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 inici en el captulo 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 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:

MANIPULACIN DE DATOS
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.

52

Lenguaje de Manipulacin de Datos


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.
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

53

Este enunciado permite la actualizacin de los datos de la base de datos, su sintaxis


bsica es la siguiente:

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.
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.
La sintaxis del enunciado MERGUE es la siguiente:

54

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 us un enunciado COMMIT o ROLLBACK
Se ejecut un enunciado DDL como CREATE
Se utiliz 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:

55

Dnde se emplean los siguientes comandos:


FUNCIN
COMMIT

SAVEPOINT name
ROLLBACK
ROLLBACK TO
SAVEPOINT Name

DESCRIPCIN
Termina la transaccin actual realizando todos
que los cambios temporales se realicen
permanentemente
Coloca un punto de retorno
Termina la transaccin actual descartndolos
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.

DEFINICIN 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.

56

En ORACLE el diccionario de datos est implementado mediante un conjunto de


tablas y vistas que almacenan la informacin sobre la BD, y en ellas slo puede
escribir el SGBD. Los usuarios pueden acceder a las vistas del diccionario de
datos mediante SQL para consultar.
La mayora de las vistas del diccionario aparecen en conjuntos de 3, que
contienen informacin similar y que se diferencian con el prefijo.
El prefijo USER_ visualizar slo los objetos creados por el propio usuario.
El prefijo ALL_ visualizar los objetos sobre los que el usuario tiene algn tipo de
permiso.
El Prefijo DBA_ visualizar todos los objetos que hay en el SGBD. Este tipo de
vistas slo 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 descripcin 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 descripcin de las tablas creadas en el


diccionario de datos.

DBA, ALL, USER_CONSTRAINTS: contienen la descripcin de las restricciones


definidas sobre las tablas.

DBA, ALL, USER_USERS: contienen la descripcin 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 descripcin de una tabla
concreta.
Este comando es DESC.
SQL> DESC nombre_tabla;
2. LENGUAJE DE DEFINICIN 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
o
o

CREATE: que define y crea objetos en la BD.


DROP: que elimina un objeto existente en la BD.
ALTER: que modifica la definicin 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.

57

También podría gustarte