Académique Documents
Professionnel Documents
Culture Documents
HERRAMIENTAS CASE
¿QUÉ SON LAS HERRAMIENTAS CASE?
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.
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.
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.
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:
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.
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.
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.
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:
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
Metodología Inteligente.
A inicios de los 90’s :
Interface de Usuario reusable como una metodología de desarrollo.
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.
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.
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.
En el mercado actual se pueden citar, entre otras, algunas herramientas distribuidas por fases de
desarrollo como para:
Análisis y Diseño
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
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 programación. Se engloban aquí los compiladores, los editores y los depuradores
de los lenguajes de programación convencionales.
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.
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".
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.
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.
o Tipo de información. Que contiene alguna metodología concreta, datos, gráficos, procesos,
informes, modelos o reglas.
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.
10
Diagrama Estructura de datos.
Diagrama Estructura de cuadros.
Técnicas matriciales.
Número máximo de objetos que se pueden incluir para no encontrarse limitado en el de grandes
aplicaciones.
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.
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.
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 automática a partir de los datos del repositorio, sin necesidad de un esfuerzo adicional.
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.
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.
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.
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.
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 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.
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.
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.
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.
4GL
ORACLE
C DASE II
SQL
CLIENTES
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.
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.
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:
APLICACIONES
SGBD
DATOS
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.
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.
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.
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.
Í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.
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 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.
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:
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.
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.
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.
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:
2. Lenguajes de manipulación de datos (DML). Permite añadir, modificar, borrar y consultar datos de
la BD. Las sentencias son:
Lenguaje de control de datos (DCL). Permite asignar y retirar autorizaciones de acceso a los datos y
controlar transacciones. Estas sentencias son:
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.
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:
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:
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.
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
system
sys
En el siguiente apartado se describirán los pasos que se deben seguir para poder autentificarse como el
administrador.
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.
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.
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:
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
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.
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.
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:
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.
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:
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.
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.
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:
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
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.
Operador Descripción
+ Suma
- Resta
* Multiplicación
/ División
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:
* + - /
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;
Operador de Concatenación
Un operador de concatenación permite:
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;
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.
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
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;
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:
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
Reglas de precedencia
Las reglas de precedencia determinan el orden en el que las expresiones serán evaluadas o
calculadas.
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.
Las funciones se consideran una de las características más poderosas de SQL, ya que estas
permiten realizar lo siguiente:
ENTRADA FUNCIÓN
EJECUCIÓN
ARG 1
EJECUCIÓN RESULTADO
ARG 2
ARG 3
Funciones de un solo renglón: Operan solo sobre un renglón, es decir regresaran el resultado
por cada renglón afectado.
36
El uso de las funciones deberá realizarse en la cláusula del SELECT, de acuerdo a la siguiente
sintaxis:
NUMÉRICAS
CARACTER FECHA
FUNCIONES
DE UN SOLO
RENGLON
GENERALES CONVERSIÓN
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
38
De manera interna Oracle almacena una fecha en el siguiente orden:
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;
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
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
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.
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:
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.
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:
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;
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.
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.
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:
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.
49
Lenguaje de Manipulación de Datos
Enunciados DML
Los enunciados de lenguaje de manipulación de datos (DML) son los siguientes:
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.
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:
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
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.
DICTIONARY o DICT: contiene la descripción de las tablas y vistas que componen el diccionario.
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.
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;
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:
Los objetos de la BD a los que afectan estas instrucciones son: tablas, vistas, índices, restricciones,
usuarios, roles, etc.
54