Está en la página 1de 176

Programación para Desarrollo de

Software With Oracle

MATERIAL TÉCNICO
DE APOYO
Programación para Desarrollo de Software With Oracle

TAREA N°01

DISEÑA BD IDENTIFICANDO ENTIDADES, ATRIBUTOS Y RELACIONES.

• Entidades y Atributos.

✓ Modelos conceptuales y físicos

Se refieren a la forma en que se diseñan y gestionan las bases de datos. Los


modelos conceptuales y físicos son dos etapas clave en el proceso de diseño
de bases de datos. A continuación, se explica cada uno de ellos:

1. Modelo Conceptual:
▪ El modelo conceptual es la etapa inicial del diseño de una base de
datos.
▪ En esta etapa, se crea una representación abstracta de la
estructura de la base de datos sin preocuparse por los detalles
técnicos de implementación.
▪ Los elementos clave en el modelo conceptual son las **entidades**
y sus **atributos**.
▪ Una entidad es una representación abstracta de un objeto o
concepto del mundo real, como "cliente," "producto" o "pedido."
Las entidades se representan mediante rectángulos en un
diagrama de entidad-relación (ER).
▪ Los atributos son las características o propiedades de una entidad.
Por ejemplo, un cliente puede tener atributos como "nombre,"
"dirección" y "número de teléfono."
▪ Las relaciones entre las entidades también se modelan en esta
etapa, indicando cómo están relacionadas las entidades entre sí.
▪ No se preocupa por los aspectos físicos de almacenamiento o
rendimiento en esta etapa.

2. Modelo Físico:
▪ El modelo físico es la etapa en la que se traduce el modelo
conceptual en una estructura de base de datos real y se consideran
aspectos de implementación.
▪ En esta etapa, se decide cómo se almacenarán los datos en el
sistema de gestión de bases de datos Oracle.
▪ Se definen detalles como los tipos de datos que se utilizarán para
los atributos, la creación de índices, las restricciones de integridad,
la partición de tablas y otros aspectos técnicos.

2
Programación para Desarrollo de Software With Oracle

▪ El modelo físico se centra en la eficiencia y el rendimiento de la


base de datos, asegurando que se optimice para las consultas y
operaciones requeridas.

El modelo conceptual se enfoca en la representación abstracta de las


entidades y atributos de la base de datos, mientras que el modelo físico se
ocupa de la implementación real y los detalles técnicos. El diseño de la base
de datos en Oracle generalmente implica la creación de un modelo
conceptual primero y luego la traducción de ese modelo en un modelo físico
que se ajuste a las necesidades de rendimiento y almacenamiento de datos
de la aplicación. Oracle ofrece herramientas y funcionalidades para ayudar
en ambas etapas del proceso de diseño de bases de datos.

✓ Entidades, instancias, atributos e identificadores

En Oracle y en la gestión de bases de datos en general, los conceptos de


entidades, instancias, atributos e identificadores son fundamentales para
diseñar y modelar la estructura de una base de datos relacional.

1. Entidades:
▪ Una entidad es una representación abstracta de un objeto o
concepto del mundo real que se almacena en la base de datos.
▪ En el contexto de Oracle, las entidades se suelen representar
mediante tablas en una base de datos relacional.
▪ Ejemplos de entidades podrían ser "clientes," "productos,"
"empleados," etc.
▪ Cada entidad tiene atributos que describen sus características o
propiedades.

2. Instancias:
▪ Una instancia de una entidad es un registro o una fila específica en
la tabla que representa esa entidad.
▪ Por ejemplo, si tienes una entidad "clientes," cada fila en la tabla
de clientes representa una instancia de un cliente individual.

3. Atributos:
▪ Los atributos son las características o propiedades que describen
una entidad.
▪ Cada entidad tiene uno o más atributos que capturan información
específica sobre ella.
▪ Por ejemplo, para la entidad "clientes," los atributos podrían incluir
"nombre," "dirección," "teléfono," etc.
▪ Los atributos pueden tener tipos de datos específicos, como texto,
número, fecha, etc., según la información que representen.

3
Programación para Desarrollo de Software With Oracle

4. Identificadores:
▪ Un identificador es un atributo (o conjunto de atributos) que permite
identificar de manera única cada instancia de una entidad.
▪ En otras palabras, el identificador asegura que no haya duplicados
en la tabla y que cada fila se pueda distinguir de las demás.
▪ En Oracle, es común utilizar una clave primaria como identificador
de una entidad. Una clave primaria es un atributo o conjunto de
atributos que garantiza la unicidad y se utiliza para indexar y
relacionar los datos.

En Oracle, la creación de tablas que representan entidades y la definición de


atributos y claves primarias se realizan utilizando el lenguaje SQL (Structured
Query Language). Por ejemplo, para crear una tabla que represente la
entidad "clientes" con atributos como "nombre," "dirección" y un identificador
único, podrías utilizar una sentencia SQL similar a la siguiente:

Figura N° 1 Creando una tabla en Oracle

En este ejemplo, "id_cliente" se utiliza como el identificador único de la


entidad "clientes." Cada fila de esta tabla representa una instancia de un
cliente, y los atributos "nombre" y "dirección" describen las propiedades de
cada cliente.

✓ Modelado de relaciones entre entidades y ERD

El modelado de relaciones entre entidades y los Diagramas de Entidad-


Relación (ERD, por sus siglas en inglés) son aspectos fundamentales en el
diseño de bases de datos en Oracle y en la mayoría de los sistemas de
gestión de bases de datos relacionales.

4
Programación para Desarrollo de Software With Oracle

Modelado de Relaciones entre Entidades: El modelado de relaciones entre


entidades se refiere a la forma en que las entidades se relacionan entre sí en
una base de datos. Esto implica definir cómo una entidad está vinculada a
otra en función de las asociaciones y relaciones que existen en el mundo
real.

1. Relaciones:
▪ Las relaciones representan conexiones entre entidades. Pueden
ser de uno a uno, uno a muchos o muchos a muchos.
▪ Por ejemplo, en un sistema de gestión de ventas, un cliente puede
tener una relación de "uno a muchos" con pedidos, lo que significa
que un cliente puede realizar varios pedidos.

2. Cardinalidad:
▪ La cardinalidad describe cuántas instancias de una entidad pueden
estar relacionadas con otra entidad.
▪ Por ejemplo, en una relación "uno a muchos" entre clientes y
pedidos, la cardinalidad indica que un cliente puede tener varios
pedidos.

3. Participación:
▪ La participación indica si la existencia de una entidad está
condicionada por su relación con otra entidad.
▪ Puede ser "opcional" o "obligatoria". Por ejemplo, en una relación
entre profesores y cursos, la participación puede ser opcional si un
profesor puede o no estar asociado con un curso.

Diagramas de Entidad-Relación (ERD): Los Diagramas de Entidad-


Relación son herramientas visuales utilizadas para representar el modelo de
datos de una base de datos. En Oracle, los ERD se crean típicamente
utilizando software de modelado de bases de datos como Oracle SQL
Developer Data Modeler o herramientas similares. Los ERD ayudan a
visualizar y comunicar la estructura de la base de datos, incluyendo las
relaciones entre entidades. Algunos elementos comunes en un ERD son:

1. Entidades:
▪ Se representan como rectángulos en el diagrama.
▪ Cada entidad se nombra y se describen sus atributos.

2. Atributos:
▪ Se representan dentro de las entidades con sus respectivos
nombres y tipos de datos.

5
Programación para Desarrollo de Software With Oracle

3. Relaciones:
▪ Se muestran como líneas que conectan entidades.
▪ Se etiquetan con la cardinalidad y participación para indicar la
naturaleza de la relación.

4. Claves Primarias y Foráneas:


▪ Las claves primarias se resaltan para indicar qué atributo (o
conjunto de atributos) se utiliza como identificador único de una
entidad.
▪ Las claves foráneas se utilizan para mostrar cómo las entidades se
relacionan a través de sus atributos clave primaria y clave foránea.

El modelado de relaciones y la creación de ERD son pasos esenciales en el


diseño de bases de datos en Oracle, ya que ayudan a comprender y planificar
la estructura de la base de datos antes de implementarla. Esto facilita la
creación de tablas y la definición de claves primarias y foráneas en Oracle,
lo que asegura la integridad de los datos y permite consultas eficientes.

6
Programación para Desarrollo de Software With Oracle

TAREA N°02

DISEÑA BD PARA DISTINTOS TIPOS, O DISTINTOS NEGOCIOS.


• Arcos, jerarquías y modelado recursivo.

✓ Arcos

Se refieren a las relaciones entre los nodos o elementos en una jerarquía.


Estos enlaces son esenciales para definir cómo los elementos se conectan y
forman la estructura jerárquica.
1. Arcos en Jerarquías:
▪ En el contexto de las jerarquías, los "arcos" se refieren a las
relaciones que establecen la conexión entre los diferentes niveles
o nodos en la jerarquía.
▪ Cada "arco" representa una relación de padre a hijo en la jerarquía.
Por ejemplo, en una jerarquía de organización empresarial, un
"arco" podría representar la relación entre un empleado y su
supervisor (el empleado es el "hijo" y el supervisor es el "padre").

✓ Jerarquías y relaciones recursivas

Las jerarquías y las relaciones recursivas son conceptos fundamentales en


el modelado de datos cuando se trata de representar estructuras que tienen
una naturaleza jerárquica, como árboles de organizaciones, árboles
genealógicos o categorías de productos. En Oracle, puedes modelar
jerarquías y relaciones recursivas utilizando técnicas y consultas específicas.

1. Tabla Jerárquica:
▪ Para representar una jerarquía en Oracle, generalmente se utiliza una
sola tabla que contiene registros que hacen referencia a sí mismos a
través de una columna especial que indica la relación jerárquica. Esta
columna suele llamarse "ID_Padre" o similar.
▪ Cada registro en la tabla representa un nodo en la jerarquía y tiene un
identificador único. Los nodos que tienen un valor en la columna
"ID_Padre" están relacionados con el nodo padre correspondiente en
la jerarquía.

2. Recursión en Consultas SQL:


▪ Oracle permite realizar consultas recursivas para recuperar datos de
una tabla jerárquica. Esto se hace utilizando la cláusula `CONNECT
BY` y la cláusula `PRIOR` en una consulta SQL.

7
Programación para Desarrollo de Software With Oracle

▪ La cláusula `CONNECT BY` se utiliza para especificar las condiciones


de búsqueda de la relación recursiva, y `PRIOR` se utiliza para hacer
referencia al valor del nodo padre.
▪ Por ejemplo, para recuperar todos los niveles de una jerarquía,
puedes usar una consulta como esta:

Figura N° 2 Recuperación de niveles de jerarquía

Esta consulta comenzará en los nodos sin padre (nivel superior) y luego
seguirá recursivamente las relaciones para obtener todos los niveles de la
jerarquía.

3. Índices y Rendimiento:
▪ Cuando trabajas con jerarquías grandes, es importante considerar el
rendimiento de las consultas recursivas. Puedes utilizar índices
adecuados y estrategias de optimización para mejorar la eficiencia de
las consultas.

4. Mantenimiento de Jerarquías:
▪ Además de recuperar datos, también debes considerar cómo se
insertarán, actualizarán y eliminarán registros en una tabla jerárquica
de manera que se mantenga la integridad de la jerarquía.
▪ Oracle ofrece diversas estrategias y técnicas para manejar estas
operaciones de mantenimiento.

5. Aplicaciones:
▪ El modelado de jerarquías y relaciones recursivas se utiliza en una
variedad de aplicaciones, desde la representación de estructuras
organizativas hasta la creación de árboles genealógicos y la
categorización de productos en tiendas en línea.

Oracle proporciona herramientas y técnicas efectivas para trabajar con


jerarquías y relaciones recursivas en bases de datos.

8
Programación para Desarrollo de Software With Oracle

TAREA N°03

ELABORA UNA BD RELACIONAL

• Mapping.

✓ Introducción a los conceptos de bases de datos relacionales

La introducción a los conceptos de bases de datos relacionales en Oracle es


un punto fundamental para comprender cómo se almacenan, gestionan y
acceden a los datos en un sistema de gestión de bases de datos relacional
(RDBMS) como Oracle Database.

1. Base de Datos Relacional:


▪ Una base de datos relacional es un sistema de gestión de bases
de datos que organiza los datos en tablas o relaciones, donde cada
tabla representa una entidad y sus atributos.
▪ En Oracle, las tablas se utilizan para almacenar datos y se
relacionan entre sí mediante claves primarias y foráneas.

2. Tablas:
▪ Las tablas son objetos fundamentales en una base de datos
relacional de Oracle.
▪ Cada tabla está formada por columnas y filas.
▪ Las columnas representan los atributos o campos de la entidad
que la tabla representa.
▪ Las filas, también conocidas como registros, contienen los datos
reales.

3. Relaciones:
▪ Las relaciones definen cómo las tablas se relacionan entre sí.
▪ En Oracle, las relaciones se establecen mediante el uso de claves
primarias y foráneas.
▪ Una clave primaria es un conjunto de uno o más atributos que
identifica de manera única cada fila en una tabla.
▪ Una clave foránea es un atributo en una tabla que hace referencia
a la clave primaria de otra tabla, estableciendo una relación entre
ellas.

9
Programación para Desarrollo de Software With Oracle

4. Normalización:
▪ La normalización es un proceso de diseño que se utiliza para
organizar las tablas de una base de datos relacional de manera
eficiente y libre de redundancias.
▪ El objetivo es minimizar la duplicación de datos y garantizar la
integridad de los datos.

5. SQL (Structured Query Language):


▪ SQL es el lenguaje utilizado para interactuar con bases de datos
relacionales, incluyendo Oracle.
▪ Se utiliza para realizar consultas (SELECT), insertar datos
(INSERT), actualizar datos (UPDATE), eliminar datos (DELETE) y
para definir y manipular la estructura de las tablas (CREATE,
ALTER, DROP).

6. Integridad de Datos:
▪ La integridad de datos es un principio fundamental en las bases de
datos relacionales de Oracle.
▪ Se refiere a la garantía de que los datos almacenados en la base
de datos sean precisos y cumplan con las restricciones definidas,
como claves primarias, claves foráneas y restricciones únicas.

7. Índices:
▪ Los índices son estructuras que se utilizan para mejorar el
rendimiento de las consultas al acelerar la búsqueda de datos en
una tabla.
▪ En Oracle, puedes crear índices en columnas específicas para
agilizar la recuperación de datos.

8. Transacciones y Control de Concurrencia:


▪ Oracle proporciona mecanismos para gestionar transacciones y
controlar la concurrencia de múltiples usuarios que acceden y
modifican los datos simultáneamente.

9. Seguridad y Privilegios:
▪ Oracle Database ofrece funciones de seguridad avanzadas para
proteger los datos mediante la asignación de privilegios y roles a
usuarios y roles.

Estos conceptos proporcionan una base sólida para comprender cómo se


estructuran, almacenan y manipulan los datos en una base de datos
relacional en Oracle. Con un conocimiento adecuado de estos conceptos,
puedes diseñar y gestionar eficazmente bases de datos en Oracle para
satisfacer las necesidades de tu aplicación o negocio.

10
Programación para Desarrollo de Software With Oracle

✓ Mapeo básico: el proceso de transformación

El objetivo principal del mapeo básico es tomar datos de una fuente y


convertirlos en un formato compatible con el destino. Aquí tienes información
sobre el proceso de mapeo básico en Oracle:

1. Definición de Requisitos:
▪ Antes de iniciar el proceso de mapeo, es esencial comprender los
requisitos de la transformación de datos. Esto implica conocer las
estructuras de datos de la fuente y el destino, así como los tipos
de datos y las reglas de negocio que se aplican.

2. Identificación de Fuentes y Destino:


▪ Identifica claramente las fuentes de datos y el destino al que
deseas transferir los datos. En Oracle, las fuentes pueden ser
bases de datos, archivos planos, sistemas de terceros, entre otros.

3. Mapeo de Columnas:
▪ Para cada campo o columna en la fuente de datos, debes
determinar a qué campo o columna en el destino se asignará. Esto
implica hacer coincidir los nombres de las columnas, tipos de datos
y formatos de datos según sea necesario.

4. Transformaciones de Datos:
▪ En muchos casos, los datos de la fuente deben someterse a
transformaciones antes de ser cargados en el destino. Estas
transformaciones pueden incluir:
▪ Conversión de tipos de datos: Cambiar los tipos de datos de una
columna para que coincidan con los del destino.
▪ Limpieza de datos: Eliminar datos duplicados o incorrectos,
rellenar campos vacíos, etc.
▪ Concatenación o separación de columnas: Combinar o dividir
datos de columnas en la fuente.
▪ Aplicación de reglas de negocio: Aplicar lógica de negocio
personalizada para transformar los datos.

5. Validación de Datos:
▪ Antes de cargar los datos transformados en el destino, es
importante realizar validaciones para asegurarse de que los datos
cumplan con las reglas y restricciones definidas para el destino.

11
Programación para Desarrollo de Software With Oracle

6. Extracción y Carga (ETL):


▪ Una vez que los datos se han transformado y validado, pueden ser
extraídos de la fuente y cargados en el destino. Esto se hace
típicamente a través de procesos de ETL (Extracción,
Transformación y Carga).

7. Automatización:
▪ Para procesos de mapeo repetitivos o de gran volumen, es común
automatizar el proceso de mapeo básico utilizando herramientas
ETL o scripts personalizados en Oracle.

8. Registro y Seguimiento:
▪ Es importante llevar un registro de las transformaciones realizadas,
los errores y los problemas encontrados durante el proceso de
mapeo. Esto facilita la solución de problemas y la auditoría de
datos.

9. Optimización y Rendimiento:
▪ Para procesos de mapeo de datos a gran escala, es crucial
optimizar el rendimiento para garantizar una transferencia eficiente
de datos entre la fuente y el destino.

El mapeo básico es un paso crítico en proyectos de integración de datos y


migración de datos en Oracle, ya que asegura que los datos se transformen
adecuadamente para adaptarse a las estructuras y reglas de negocio del
destino. Un proceso de mapeo cuidadosamente diseñado y ejecutado es
esencial para garantizar la calidad y la consistencia de los datos en el sistema
de destino.

✓ Mapeo de relaciones

Se refiere al proceso de definir y establecer relaciones entre tablas en una


base de datos relacional. Estas relaciones se utilizan para modelar la forma
en que los diferentes conjuntos de datos se conectan y se relacionan entre
sí. El mapeo de relaciones es esencial para diseñar bases de datos efectivas
y asegurarse de que los datos se almacenen y recuperen de manera
coherente y precisa.

12
Programación para Desarrollo de Software With Oracle

1. Tipos de Relaciones:
En Oracle, hay varios tipos de relaciones que puedes definir entre tablas:

▪ Relación Uno a Uno (1:1): En este tipo de relación, una fila en una
tabla está relacionada con una y solo una fila en otra tabla. Esto se
logra generalmente a través de la clave primaria y la clave foránea.

▪ Relación Uno a Muchos (1:N): En esta relación, una fila en una


tabla está relacionada con múltiples filas en otra tabla. Por ejemplo,
una tabla de "Clientes" puede estar relacionada con múltiples
"Órdenes" de clientes.

▪ Relación Muchos a Uno (N:1): Es el inverso de la relación uno a


muchos. Múltiples filas en una tabla se relacionan con una sola fila
en otra tabla.

▪ Relación Muchos a Muchos (N:N): En este tipo de relación,


múltiples filas en una tabla están relacionadas con múltiples filas
en otra tabla a través de una tabla de enlace intermedia. Por
ejemplo, una tabla de "Estudiantes" puede estar relacionada con
múltiples "Clases" y, a su vez, una "Clase" puede tener varios
"Estudiantes".

2. Claves Primarias y Claves Foráneas:


Para establecer relaciones entre tablas en Oracle, generalmente se
utilizan claves primarias y claves foráneas:

▪ Clave Primaria**: Es un conjunto de uno o más atributos que


identifican de manera única cada fila en una tabla. Cada tabla debe
tener una clave primaria.

▪ Clave Foránea**: Es un atributo en una tabla que hace referencia


a la clave primaria de otra tabla. La clave foránea establece una
relación entre las dos tablas.

3. Modelado de Relaciones:
El proceso de mapeo de relaciones implica identificar las entidades y
atributos relevantes, determinar cómo se relacionan entre sí y definir las
claves primarias y foráneas adecuadas para representar estas relaciones.
Esto se puede hacer utilizando herramientas de modelado de bases de
datos o escribiendo consultas SQL para crear las tablas y establecer las
relaciones.

13
Programación para Desarrollo de Software With Oracle

4. Consulta de Datos Relacionados:


Una vez que se han definido las relaciones, puedes utilizar consultas SQL
JOIN para recuperar datos relacionados de múltiples tablas. Esto te
permite realizar consultas complejas y obtener información de manera
eficiente de tablas relacionadas.

5. Integridad Referencial:
Oracle Database proporciona soporte para garantizar la integridad
referencial, lo que significa que se aplicarán reglas para mantener la
coherencia de los datos en las relaciones. Esto incluye la eliminación en
cascada (cuando se elimina una fila en una tabla principal, se eliminan
automáticamente las filas relacionadas en las tablas secundarias) y otras
restricciones de integridad.

El mapeo de relaciones en Oracle es un proceso esencial en el diseño de


bases de datos relacionales. Permite definir cómo las tablas se relacionan
entre sí mediante el uso de claves primarias y foráneas, lo que facilita la
consulta y la manipulación de datos relacionados en la base de datos. Una
comprensión sólida de este concepto es fundamental para diseñar y
gestionar eficazmente bases de datos en Oracle.

✓ Mapeo de subtipos

Se refiere a una técnica utilizada en la programación de bases de datos


relacionales para modelar jerarquías de clases o entidades de manera
eficiente. Esto se utiliza principalmente en el contexto de bases de datos que
admiten herencia o polimorfismo, donde las entidades pueden tener subtipos
o subclases con atributos adicionales o modificaciones en relación con la
entidad base.

1. Jerarquía de tablas: En una jerarquía de clases o entidades, se crean


tablas separadas para representar cada subtipo. Cada tabla contiene los
atributos específicos del subtipo, así como una clave primaria que
también es una clave foránea que se relaciona con la tabla principal que
representa la entidad base. La tabla principal contendrá los atributos
compartidos por todos los subtipos.

2. Herencia y polimorfismo: El mapeo de subtipos permite la herencia y el


polimorfismo en la base de datos. Puede consultar y manipular los datos
de las entidades base y subtipos a través de una única interfaz, lo que
facilita el manejo de la jerarquía.

14
Programación para Desarrollo de Software With Oracle

3. Tipos de relaciones: En Oracle, esta técnica se puede implementar de


varias maneras, incluyendo:

▪ Single Table Inheritance (STI): Todos los subtipos comparten una


sola tabla con columnas adicionales para los atributos específicos
del subtipo. Se utiliza una columna de discriminación para
identificar el tipo de cada fila.

▪ Joined Table Inheritance (JTI): Cada subtipo tiene su propia tabla


con una relación de clave foránea con la tabla de la entidad base.
No se utiliza una columna de discriminación, ya que la relación
entre las tablas indica el tipo.

▪ Table-per-Hierarchy (TPH): Todos los subtipos se almacenan en


una sola tabla con una columna de discriminación. Los atributos
específicos de cada subtipo pueden ser nulos en las filas
correspondientes a otros subtipos.

4. Ventajas: El mapeo de subtipos permite un diseño de base de datos más


flexible y extensible, ya que se pueden agregar nuevos subtipos sin
modificar la estructura de las tablas existentes. También simplifica las
consultas que involucran múltiples subtipos, ya que pueden tratarse como
una única entidad.

5. Desventajas: Puede haber un mayor uso de espacio de almacenamiento


debido a la duplicación de columnas en las tablas de subtipos. Además,
las consultas que involucran joins entre múltiples tablas de subtipos
pueden ser más complejas y lentas que las consultas en una sola tabla.

El mapeo de subtipos es una técnica importante en el diseño de bases de


datos cuando se trabaja con jerarquías de clases o entidades. Oracle ofrece
varias formas de implementarlo, y la elección depende de los requisitos
específicos de su aplicación y de las consideraciones de rendimiento y
mantenimiento.

15
Programación para Desarrollo de Software With Oracle

TAREA N°04

CREA Y PRESENTA PROYECTOS DE BD

• Crear proyectos de base de datos

✓ Ciclo de vida de desarrollo de sistemas

Se refiere a la metodología o enfoque que se utiliza para planificar, diseñar,


desarrollar, implementar y mantener sistemas de software utilizando las
tecnologías y herramientas proporcionadas por Oracle Corporation. Oracle
ofrece una variedad de productos y soluciones para el desarrollo de
aplicaciones empresariales, bases de datos y sistemas, y su ciclo de vida de
desarrollo de sistemas se adapta a estas tecnologías.

1. Requisitos: En esta fase, se recopilan y documentan los requisitos del


sistema. Esto implica la comprensión de las necesidades del negocio, la
identificación de los objetivos y la definición de los requisitos funcionales
y no funcionales.

2. Diseño: En esta etapa, se crea un diseño detallado del sistema. Esto


puede incluir la arquitectura de la base de datos, el diseño de la interfaz
de usuario, la definición de flujos de trabajo y la planificación de la
seguridad.

3. Desarrollo: Durante esta fase, se desarrollan las aplicaciones y


componentes del sistema utilizando las herramientas y tecnologías de
Oracle, como Oracle Database, Oracle Application Express (APEX), Java,
PL/SQL, entre otros. Los desarrolladores escriben código, realizan
pruebas unitarias y aseguran que el sistema cumpla con los requisitos.

4. Pruebas: En esta etapa, se realizan pruebas exhaustivas para garantizar


que el sistema funcione correctamente y cumpla con los requisitos. Esto
puede incluir pruebas de unidad, pruebas de integración, pruebas de
rendimiento y pruebas de aceptación del usuario.

5. Implementación: Una vez que el sistema ha pasado las pruebas


satisfactoriamente, se implementa en el entorno de producción. Esto
puede incluir la migración de datos, la configuración de servidores y la
capacitación de usuarios.

16
Programación para Desarrollo de Software With Oracle

6. Mantenimiento y Soporte**: Después de la implementación, se


proporciona soporte continuo y se realizan actualizaciones y mejoras
según sea necesario. Esto asegura que el sistema siga funcionando de
manera eficiente y se adapte a las cambiantes necesidades del negocio.

Oracle ofrece herramientas y productos específicos para cada una de estas


fases, como Oracle Developer Suite, Oracle APEX, Oracle Database, Oracle
Fusion Middleware, entre otros. Además, Oracle también promueve
enfoques ágiles y DevOps para el desarrollo de sistemas, lo que implica
ciclos de desarrollo más cortos y una colaboración más estrecha entre los
equipos de desarrollo y operaciones.

Es importante destacar que el ciclo de vida de desarrollo de sistemas en


Oracle puede variar según el proyecto y las necesidades específicas de la
organización, pero estas son las fases generales que se siguen en la mayoría
de los proyectos de desarrollo de software.

✓ Descripción general del proyecto y primeros pasos

La "Descripción general del proyecto y primeros pasos" en Oracle se refiere


al proceso inicial de planificación y establecimiento de los fundamentos para
un proyecto que involucra tecnologías y soluciones de Oracle. Antes de
comenzar a desarrollar o implementar una solución específica, es esencial
comprender claramente el alcance, los objetivos, los recursos necesarios y
otros aspectos clave del proyecto. A continuación, te proporciono una
descripción general de los pasos comunes que se siguen en esta etapa:

1. Definición de Objetivos y Alcance del Proyecto:


▪ Identificar y documentar los objetivos del proyecto: ¿Qué se espera
lograr con la implementación de la solución Oracle?
▪ Determinar el alcance del proyecto: ¿Qué funcionalidades y
componentes estarán incluidos en la solución? ¿Cuál será su
extensión y límites?
2. Identificación de Stakeholders:
▪ Identificar todas las partes interesadas (stakeholders) en el
proyecto, tanto internas como externas.
▪ Establecer comunicación y colaboración efectiva con los
stakeholders para asegurar una comprensión común de los
objetivos y expectativas.
3. Formación de un Equipo de Proyecto:
▪ Reclutar y asignar a los miembros del equipo de proyecto,
incluyendo roles como el líder del proyecto, desarrolladores,
administradores de bases de datos, analistas de negocio y otros
expertos necesarios.

17
Programación para Desarrollo de Software With Oracle

4. Planificación del Proyecto:


▪ Crear un plan de proyecto que incluya un cronograma detallado,
asignación de recursos, estimación de costos y riesgos
potenciales.
▪ Definir las fases del proyecto y los entregables esperados en cada
etapa.

5. Evaluación de Tecnologías Oracle:


▪ Determinar qué tecnologías y productos de Oracle son adecuados
para cumplir con los objetivos del proyecto.
▪ Evaluar la necesidad de adquirir licencias de software y hardware
de Oracle.

6. Análisis de Requisitos Iniciales:


▪ Iniciar el proceso de recopilación y análisis de requisitos para
comprender las necesidades del negocio y del usuario final.
▪ Documentar los requisitos iniciales que servirán como base para el
diseño y desarrollo subsiguientes.

7. Selección de Arquitectura y Diseño Inicial:


▪ Definir una arquitectura inicial de alto nivel para la solución Oracle,
considerando factores como la escalabilidad, la disponibilidad y el
rendimiento.
▪ Realizar un diseño preliminar de la solución.

8. Establecimiento de Procedimientos y Políticas:


▪ Definir los procedimientos y políticas que regirán el desarrollo,
implementación y gestión de la solución Oracle, incluyendo
prácticas de seguridad, copias de seguridad y políticas de acceso.

9. Presupuesto y Financiamiento:
▪ Establecer un presupuesto para el proyecto, incluyendo los costos
de licencias, hardware, recursos humanos y otros gastos
asociados.
▪ Identificar fuentes de financiamiento y asegurar el respaldo
financiero necesario.

10. Aprobación del Plan:


▪ Presentar el plan de proyecto, la descripción general y los
presupuestos a los patrocinadores y partes interesadas clave para
su aprobación.

18
Programación para Desarrollo de Software With Oracle

11. Inicio del Proyecto:


▪ Una vez que se ha obtenido la aprobación, dar inicio al proyecto
formalmente y comenzar con las fases de diseño y desarrollo de la
solución Oracle.

Esta fase inicial del proyecto es fundamental para establecer una base sólida
y garantizar que todos los participantes tengan una comprensión clara de lo
que se espera lograr. Proporciona la dirección y estructura necesarias para
el éxito continuo del proyecto basado en tecnologías de Oracle.

A continuación, brindaremos un ejemplo de un proyecto que implica la


implementación de una base de datos Oracle en una empresa:

a. Proyecto: Implementación de una Base de Datos Oracle para la


Gestión de Inventarios.

b. Objetivos:
▪ Mejorar el seguimiento y control de los niveles de inventario de
la empresa.
▪ Optimizar la eficiencia en la gestión de existencias y reducir
pérdidas debido a productos obsoletos o faltantes.
▪ Facilitar la generación de informes y análisis de inventario en
tiempo real.

c. Alcance:
▪ La solución incluirá la creación de una base de datos Oracle
que almacene información detallada sobre productos,
proveedores, transacciones de inventario y ubicaciones de
almacenamiento.
▪ La implementación abarcará todos los departamentos de la
empresa involucrados en la gestión de inventarios.
▪ Se proporcionarán interfaces de usuario para la entrada y
consulta de datos de inventario.

d. Stakeholders:
▪ Director de Operaciones.
▪ Gerente de Logística.
▪ Gerente de TI.
▪ Personal de almacén y logística.
▪ Proveedores de hardware y software de Oracle.
e. Equipo de Proyecto:
▪ Líder del Proyecto: John Doe.
▪ Desarrolladores de Bases de Datos: María Pérez y David
Smith.

19
Programación para Desarrollo de Software With Oracle

▪ Analista de Negocios: Laura Johnson.


▪ Administrador de Bases de Datos Oracle: Carlos González.

f. Planificación del Proyecto:


▪ Duración estimada del proyecto: 6 meses.
▪ Presupuesto estimado: $150,000.
▪ Cronograma con fases de análisis, diseño, desarrollo, pruebas
y despliegue.
▪ Evaluación de riesgos, incluyendo posibles interrupciones
operativas durante la implementación.

g. Tecnologías Oracle:
▪ Oracle Database 19c.
▪ Oracle SQL Developer para desarrollo y administración de la
base de datos.

h. Análisis de Requisitos Iniciales:


▪ Reuniones con departamentos de logística y almacén para
comprender las necesidades específicas de seguimiento de
inventario.
▪ Documentación de los tipos de datos requeridos, flujos de
trabajo actuales y futuros y requisitos de informes.

i. Selección de Arquitectura y Diseño Inicial:


▪ Arquitectura de tres capas con una base de datos Oracle
centralizada y aplicaciones de interfaz de usuario basadas en
la web.
▪ Diseño preliminar de la estructura de la base de datos,
incluyendo tablas para productos, transacciones y usuarios.

j. Procedimientos y Políticas:
▪ Políticas de seguridad para restringir el acceso a datos
sensibles.
▪ Procedimientos de copias de seguridad regulares para
garantizar la integridad de los datos.

k. Presupuesto y Financiamiento:
▪ El presupuesto de $150,000 cubrirá licencias de Oracle,
hardware de servidor, costos de desarrollo y capacitación del
personal.

l. Aprobación del Plan:


▪ Presentación del plan aprobado ante el Comité Ejecutivo de la
empresa.

20
Programación para Desarrollo de Software With Oracle

m. Inicio del Proyecto:


▪ Inicio de la fase de análisis y diseño de la base de datos Oracle.

Este es solo un ejemplo simplificado, pero ilustra cómo se pueden aplicar los
pasos mencionados en la descripción general de un proyecto que involucra
tecnologías Oracle. Cada proyecto puede ser único en cuanto a sus
objetivos, alcance y requisitos, pero estos pasos generales ayudan a
establecer una base sólida para su ejecución exitosa.

✓ Gestión de proyectos de presentación

A continuación, proporcionaremos una descripción general de cómo las


herramientas de Oracle, como Oracle Business Intelligence (OBI) o Oracle
Analytics, pueden utilizarse en la gestión de proyectos de presentación:

1. Recopilación de Datos y Análisis: Utiliza Oracle Business Intelligence o


Oracle Analytics para recopilar datos relevantes y realizar análisis que
respalden la creación de la presentación. Estas herramientas pueden
conectarse a diversas fuentes de datos para obtener información clave.

2. Diseño de la Presentación: Utiliza herramientas de creación de informes


y visualización de datos en Oracle para diseñar las diapositivas de la
presentación. Puedes crear gráficos, tablas y visualizaciones interactivas
para comunicar de manera efectiva la información.

3. Colaboración y Revisión: Oracle proporciona capacidades de


colaboración que permiten a los equipos trabajar juntos en la creación de
presentaciones. Puedes compartir los informes y las visualizaciones con
los miembros del equipo para obtener comentarios y revisiones.

4. Seguimiento y Control: Utiliza las capacidades de seguimiento y control


de proyectos en Oracle para mantener un registro de las versiones de la
presentación, realizar un seguimiento de los cambios y asegurarte de que
el proyecto de presentación avance de acuerdo con el cronograma.

5. Distribución y Presentación: Una vez que la presentación esté lista,


puedes utilizar las herramientas de Oracle para distribuir el contenido a
los interesados y, si es necesario, presentar la información en reuniones
o sesiones informativas.
Oracle ofrece una amplia gama de herramientas y soluciones que pueden
ser útiles en la gestión de proyectos de presentación.

21
Programación para Desarrollo de Software With Oracle

✓ Componentes de la presentación final


Se refieren a los elementos que se utilizan para crear y mostrar la interfaz de
usuario de una aplicación en una base de datos Oracle. Estos componentes
son esenciales para diseñar y construir aplicaciones basadas en bases de
datos que permitan a los usuarios interactuar con los datos de manera
efectiva.

1. Formularios: Los formularios son interfaces de usuario que permiten a los


usuarios ingresar y modificar datos en una base de datos Oracle. Oracle
Forms es una herramienta popular para desarrollar formularios que se
ejecutan en aplicaciones cliente-servidor o web.

2. Informes: Los informes son componentes que se utilizan para presentar


datos en formato tabular o gráfico. Oracle Reports es una herramienta
que permite diseñar y generar informes basados en datos de una base de
datos Oracle.

3. Páginas web: Oracle permite crear aplicaciones web utilizando


tecnologías como Oracle Application Express (APEX) o Java Server
Pages (JSP). Estas aplicaciones web pueden contener formularios,
informes y otros elementos de interfaz de usuario.

4. Componentes de interfaz de usuario en APEX: En Oracle APEX, los


componentes de interfaz de usuario incluyen elementos como cuadros de
texto, botones, listas desplegables y gráficos que se pueden agregar y
personalizar en las páginas web de la aplicación.

5. Gráficos: Oracle ofrece capacidades para generar gráficos interactivos


basados en datos de la base de datos. Estos gráficos pueden ayudar a
los usuarios a visualizar la información de manera más efectiva.

6. Paneles de control: Los paneles de control (dashboards) son páginas o


áreas de una aplicación que muestran una vista consolidada de datos
importantes. Pueden incluir gráficos, tablas y otros elementos para
proporcionar una visión general rápida de la información clave.

7. Componentes personalizados: En algunas aplicaciones, es posible que


necesites desarrollar componentes de presentación personalizados
utilizando lenguajes de programación como Java o JavaScript para
satisfacer requisitos específicos de la interfaz de usuario.

Estos componentes de presentación final son fundamentales para desarrollar


aplicaciones que permitan a los usuarios interactuar con los datos
almacenados en una base de datos Oracle de manera eficiente y efectiva.

22
Programación para Desarrollo de Software With Oracle

• Presentación de proyectos de bases de datos

✓ Creación de tablas para la presentación final

La creación de tablas en Oracle es un paso fundamental en el diseño de una


base de datos relacional y es crucial para la presentación final de datos en
aplicaciones. Las tablas son estructuras que almacenan datos de manera
organizada en filas y columnas, y representan entidades o relaciones
específicas en la base de datos.

1. Definición de la estructura de la tabla:


▪ Nombre de la tabla: Debes asignar un nombre descriptivo a la
tabla.
▪ Columnas: Define las columnas que compondrán la tabla y
especifica sus nombres, tipos de datos y restricciones. Los tipos
de datos pueden ser numéricos, de texto, de fecha, etc.
▪ Restricciones: Puedes aplicar restricciones como claves primarias,
claves foráneas, restricciones únicas o restricciones de verificación
para garantizar la integridad de los datos.

2. Clave primaria:
▪ Define una o más columnas como clave primaria. Esto garantiza
que cada fila en la tabla tenga un valor único en esa columna o
conjunto de columnas. La clave primaria se utiliza para identificar
de manera única cada registro.

3. Clave foránea (Foreign Key):


▪ Si tienes relaciones entre tablas, puedes definir claves foráneas en
una tabla para establecer vínculos con registros en otra tabla. Esto
permite mantener la integridad referencial de los datos.

4. Índices:
▪ Puedes crear índices en las columnas que se utilizan con
frecuencia en consultas para mejorar el rendimiento de las
búsquedas. Los índices aceleran la recuperación de datos.

5. Particionamiento:
▪ En bases de datos grandes, puedes utilizar el particionamiento
para dividir una tabla en particiones más pequeñas basadas en
ciertos criterios (por ejemplo, por fecha o rango de valores). Esto
puede mejorar la administración y el rendimiento de consultas.

23
Programación para Desarrollo de Software With Oracle

6. Almacenamiento y espacio en disco:


▪ Define la cantidad de espacio de almacenamiento asignado a la
tabla y la forma en que se gestionarán los datos en el disco, como
tablespaces y esquemas de almacenamiento.

7. Seguridad y permisos:
▪ Establece permisos adecuados para la tabla para controlar quién
puede ver, insertar, actualizar o eliminar datos en ella. Oracle
permite administrar la seguridad a nivel de usuario y rol.

8. Creación de la tabla:
▪ Utiliza la sentencia SQL `CREATE TABLE` para crear la tabla en
la base de datos. Asegúrate de que la sintaxis sea correcta y de
que se apliquen las restricciones necesarias.

Ejemplo de creación de una tabla en Oracle:

Figura N° 3 Creación de una tabla en Oracle

Una vez que la tabla se ha creado, puedes utilizarla para almacenar y


presentar datos en aplicaciones Oracle mediante consultas SQL y
herramientas de desarrollo como Oracle Forms, Oracle APEX o cualquier
otra aplicación personalizada que interactúe con la base de datos.

✓ Preparación de documentación escrita

La preparación de documentación escrita en Oracle se refiere a la creación


de documentación detallada y completa relacionada con una base de datos
Oracle, sus objetos, procesos y procedimientos. Esta documentación es
esencial para facilitar la comprensión, el mantenimiento y la administración
eficiente de la base de datos.

24
Programación para Desarrollo de Software With Oracle

1. Propósito de la documentación:
▪ La documentación escrita tiene varios propósitos clave en Oracle:
➢ Facilitar la comprensión: Ayuda a los desarrolladores,
administradores y usuarios a comprender la estructura de la
base de datos y cómo interactuar con ella.
➢ Apoyar el mantenimiento: Permite realizar cambios y
mejoras de manera controlada y planificada.
➢ Facilitar la solución de problemas: Facilita la identificación y
corrección de problemas y errores.
➢ Cumplimiento y auditoría: Puede ser requerida para cumplir
con regulaciones y estándares de seguridad.

2. Contenido de la documentación:
▪ La documentación escrita en Oracle puede incluir los siguientes
elementos:
➢ Diagramas de diseño de la base de datos: Representación
visual de la estructura de la base de datos, incluyendo
tablas, relaciones y objetos.
➢ Diccionario de datos: Lista detallada de todas las tablas,
columnas, tipos de datos y restricciones en la base de datos.
➢ Descripciones de objetos: Información sobre cada objeto de
la base de datos, incluyendo su propósito, estructura y uso.
➢ Procedimientos y scripts: Instrucciones detalladas sobre
cómo realizar tareas específicas, como respaldos,
restauraciones y mantenimiento.
➢ Documentación de seguridad: Detalles sobre las políticas y
medidas de seguridad implementadas en la base de datos.
➢ Documentación de rendimiento: Información sobre el
rendimiento de la base de datos y cómo optimizar consultas
y procesos.

3. Herramientas de documentación:
▪ Oracle ofrece herramientas como Oracle SQL Developer, que
permite generar automáticamente documentación de base de
datos, incluyendo diagramas ER (Entity-Relationship) y
descripciones de objetos.
▪ También puedes utilizar herramientas de generación de
documentación de terceros o crear documentación personalizada
utilizando aplicaciones de procesamiento de texto.

4. Mantenimiento y actualización:
▪ La documentación debe mantenerse actualizada a medida que se
realizan cambios en la base de datos. Esto asegura que la
documentación sea precisa y útil en todo momento.

25
Programación para Desarrollo de Software With Oracle

▪ Es importante asignar responsabilidades para la actualización de


la documentación y establecer un proceso de revisión periódica.

5. Acceso y distribución:
▪ La documentación debe estar disponible para todas las partes
interesadas, incluyendo desarrolladores, administradores y
usuarios. Puede distribuirse en formato impreso o electrónico, o
estar disponible en una ubicación centralizada en línea.

La preparación de documentación escrita en Oracle es una práctica esencial


para garantizar la integridad, la seguridad y la eficiencia de una base de
datos. Proporciona una referencia valiosa para todos los involucrados en el
desarrollo, mantenimiento y uso de la base de datos, lo que facilita la
colaboración y la gestión de proyectos de base de datos exitosos.

✓ Preparación de materiales visuales

La preparación de materiales visuales en Oracle se refiere a la creación de


representaciones visuales de datos, diagramas, gráficos y otros elementos
que ayudan a comprender y presentar información relacionada con sistemas,
bases de datos, arquitecturas y procesos que involucran tecnología Oracle.
Estos materiales visuales son útiles para comunicar conceptos técnicos y
facilitar la toma de decisiones.

1. Diagramas de arquitectura:
▪ Los diagramas de arquitectura representan la estructura y los
componentes de una solución de Oracle, incluyendo servidores,
bases de datos, aplicaciones y las relaciones entre ellos. Estos
diagramas ayudan a los equipos técnicos y a los stakeholders a
comprender la disposición de los recursos y cómo interactúan
entre sí.

2. Diagramas de flujo de procesos:


▪ Los diagramas de flujo de procesos muestran las secuencias de
actividades y tareas en un proceso de negocio o técnico que
involucra tecnología Oracle.

3. Modelos entidad-relación (ER):


▪ Los modelos ER representan la estructura de una base de datos
Oracle, incluyendo tablas, columnas y las relaciones entre ellas.
Estos modelos son esenciales para diseñar y comprender la
arquitectura de la base de datos.

26
Programación para Desarrollo de Software With Oracle

4. Gráficos de rendimiento:
▪ Los gráficos de rendimiento muestran métricas clave de
rendimiento de una base de datos Oracle, como la utilización de
CPU, el tiempo de respuesta de las consultas y el uso de recursos.
Estos gráficos ayudan a identificar problemas de rendimiento y
tomar decisiones informadas para su optimización.

5. Gráficos de tendencias y análisis:


▪ Los gráficos de tendencias muestran la evolución de datos a lo
largo del tiempo, lo que es útil para identificar patrones y
tendencias. Pueden utilizarse en informes y presentaciones para
respaldar análisis y decisiones estratégicas.

6. Tableros de control (dashboards):


▪ Los tableros de control son interfaces visuales que muestran
información clave de manera consolidada y en tiempo real. Oracle
ofrece herramientas como Oracle Business Intelligence (OBIEE) y
Oracle APEX para crear tableros de control personalizados.

7. Visualización de datos:
▪ La visualización de datos implica el uso de gráficos, mapas y otros
elementos visuales para representar datos de manera efectiva.
Puedes utilizar herramientas como Oracle Data Visualization para
crear visualizaciones interactivas.
8. Documentación técnica visual:
▪ Los materiales visuales también pueden formar parte de la
documentación técnica, incluyendo manuales, guías de usuario y
documentación de diseño de sistemas Oracle.

La preparación de materiales visuales en Oracle es esencial para comunicar


de manera efectiva información técnica y facilitar la toma de decisiones
informadas. Estos materiales son útiles para equipos técnicos, ejecutivos y
usuarios finales, y pueden contribuir significativamente al éxito de proyectos
relacionados con tecnología Oracle.

✓ Presentaciones finales

Se refieren a la etapa de un proyecto de tecnología que implica la


comunicación de los resultados y hallazgos relacionados con un proyecto,
aplicación o solución basada en la tecnología Oracle. Estas presentaciones
son esenciales para compartir información clave con los stakeholders,
equipos de proyecto y otros interesados, y pueden tomar varias formas, como
informes, demostraciones, sesiones de capacitación o reuniones formales. A
continuación, mostraremos información al respecto:

27
Programación para Desarrollo de Software With Oracle

1. Objetivos de las presentaciones finales:


▪ Comunicación de resultados: Las presentaciones finales permiten
mostrar los resultados obtenidos a lo largo del proyecto, como la
funcionalidad de la aplicación, el rendimiento del sistema y los
beneficios logrados.
▪ Validación de requerimientos: Se utilizan para verificar que la solución
implementada cumple con los requerimientos iniciales del proyecto.
▪ Capacitación y transferencia de conocimientos: Pueden incluir
sesiones de capacitación para usuarios finales y equipos de soporte
técnico.
▪ Aprobación y toma de decisiones: En algunas presentaciones, se
busca la aprobación o la toma de decisiones críticas por parte de los
stakeholders.

2. Contenido de las presentaciones finales:


▪ Descripción del proyecto: Incluye una visión general del proyecto, los
objetivos, el alcance y el cronograma.
▪ Demostración de la aplicación: Se muestra la funcionalidad de la
aplicación en acción, lo que puede incluir casos de uso, flujos de
trabajo y ejemplos prácticos.
▪ Resultados y logros: Se presentan los resultados obtenidos, como
mejoras en el rendimiento, eficiencia o ahorro de costos.
▪ Lecciones aprendidas: Es importante compartir las lecciones
aprendidas durante el proyecto, tanto las experiencias positivas como
las áreas de mejora.
▪ Plan de soporte y mantenimiento: Se discuten los planes futuros para
el soporte técnico, mantenimiento y actualización de la solución
Oracle.

3. Formatos de presentaciones finales:


▪ Informes escritos: Pueden incluir documentación detallada sobre el
proyecto, sus resultados y recomendaciones.
▪ Sesiones de demostración: Se pueden llevar a cabo demostraciones
en vivo de la aplicación o sistemas Oracle.
▪ Reuniones formales: Las reuniones cara a cara o en línea con
stakeholders son comunes para presentaciones finales.
▪ Materiales visuales: Se pueden utilizar diapositivas de presentación,
gráficos y diagramas para ilustrar puntos clave.

4. Audiencia y stakeholders:
▪ Las presentaciones finales deben adaptarse a la audiencia específica.
Esto puede incluir a ejecutivos, usuarios finales, equipos técnicos y
otros stakeholders clave.

28
Programación para Desarrollo de Software With Oracle

5. Seguimiento y retroalimentación:
▪ Después de la presentación final, es importante recopilar
retroalimentación de los stakeholders y seguir el proceso de cierre del
proyecto, que puede incluir la aceptación formal.

Las presentaciones finales en Oracle son un paso crítico en la finalización


exitosa de un proyecto. Ayudan a asegurar que los resultados se comuniquen
de manera efectiva, se validen con los interesados y se preparen para la
siguiente fase, que puede incluir la implementación, la capacitación y el
soporte continuo. La calidad de las presentaciones finales puede influir en la
percepción del éxito del proyecto y en la satisfacción de los stakeholders.

29
Programación para Desarrollo de Software With Oracle

TAREA N°05

REALIZA CONSULTAS BÁSICAS DE BD

• Introducción.
✓ Oracle Application Express

Oracle Application Express (Oracle APEX), anteriormente conocido como


Oracle HTML DB, es una plataforma de desarrollo de aplicaciones web
basada en Oracle Database. APEX permite a los desarrolladores crear
aplicaciones web empresariales de manera rápida y eficiente, utilizando SQL
y PL/SQL, sin necesidad de conocimientos profundos de programación web.

1. Arquitectura:
▪ Oracle APEX se ejecuta en el servidor de aplicaciones Oracle
Database y aprovecha las capacidades de base de datos para la
lógica empresarial y el almacenamiento de datos.
▪ Utiliza una arquitectura modelo-vista-controlador (MVC) para separar
la lógica de presentación de la lógica de negocio.

2. Características principales:
▪ Desarrollo rápido de aplicaciones: Permite a los desarrolladores
crear aplicaciones web de forma rápida mediante una interfaz de
usuario web y generadores de aplicaciones.
▪ Integración con Oracle Database: Aprovecha las capacidades de
seguridad, escalabilidad y rendimiento de Oracle Database.
▪ Soporte para múltiples tipos de datos: Admite una amplia variedad
de tipos de datos, incluyendo datos estructurados y no
estructurados.
▪ Personalización y temas: Permite personalizar la apariencia de las
aplicaciones utilizando temas predefinidos o personalizados.
▪ Componentes de interfaz de usuario: Ofrece una amplia gama de
componentes para crear formularios, informes, gráficos y
calendarios.
▪ Seguridad y autenticación: Proporciona capacidades de seguridad
integradas, incluyendo autenticación, autorización y cifrado.
▪ Soporte para dispositivos móviles: Las aplicaciones creadas con
APEX son responsivas y se adaptan automáticamente a diferentes
dispositivos y tamaños de pantalla.
▪ Integración de datos: Permite integrar datos de diversas fuentes,
incluyendo bases de datos externas y servicios web.

30
Programación para Desarrollo de Software With Oracle

3. Desarrollo de aplicaciones en APEX:


▪ El desarrollo de aplicaciones en APEX se basa en la creación de
páginas web que contienen componentes de interfaz de usuario,
como formularios, informes y gráficos.
▪ Los desarrolladores pueden definir la lógica empresarial utilizando
SQL y PL/SQL, lo que facilita la interacción con la base de datos.
▪ APEX proporciona un entorno de desarrollo integrado (IDE) que
incluye editores de código, diseñadores de páginas y herramientas
de prueba.

4. Implementación y administración:
▪ Las aplicaciones desarrolladas en APEX se pueden implementar
en el servidor de aplicaciones Oracle Database.
▪ APEX incluye herramientas de administración para el despliegue,
la monitorización y la gestión de aplicaciones.
▪ Ofrece capacidades de seguimiento y rendimiento para identificar
problemas y optimizar el rendimiento de las aplicaciones.
5. Comunidad y recursos:
▪ APEX cuenta con una activa comunidad de usuarios y
desarrolladores, lo que facilita el acceso a recursos de aprendizaje,
foros de soporte y complementos adicionales.
▪ Oracle proporciona documentación detallada, tutoriales y videos
para ayudar a los desarrolladores a aprender y utilizar APEX.

Oracle APEX es una herramienta poderosa para crear aplicaciones web


empresariales de manera eficiente y escalable en el entorno de Oracle
Database. Es especialmente útil para proyectos que requieren un desarrollo
rápido y la capacidad de aprovechar las características de una base de datos
sólida.

✓ Tecnología de base de datos relacional


Se refiere a la capacidad de Oracle Database para gestionar datos en un
formato relacional, que es uno de los modelos de datos más ampliamente
utilizados en la industria de la gestión de bases de datos. Oracle Database
es un sistema de gestión de bases de datos relacionales (RDBMS) que
ofrece un conjunto completo de características y funcionalidades para
administrar y manipular datos relacionales.

1. Modelo de datos relacional:


En un sistema de base de datos relacional, los datos se organizan en tablas
que consisten en filas y columnas. Cada tabla representa una entidad o
relación específica, y las relaciones entre las tablas se establecen mediante
claves primarias y claves foráneas.

31
Programación para Desarrollo de Software With Oracle

2. Tablas y esquemas:
Oracle Database utiliza tablas para almacenar datos y esquemas para
organizar y agrupar tablas relacionadas. Cada esquema en Oracle
representa un conjunto lógico de tablas y otros objetos de base de datos.

3. SQL (Structured Query Language):


SQL es el lenguaje estándar utilizado para interactuar con bases de datos
relacionales. Oracle Database admite SQL para realizar operaciones de
consulta, inserción, actualización y eliminación de datos, así como para
definir y modificar objetos de base de datos como tablas, vistas y
procedimientos almacenados.

4. Integridad referencial:
Oracle Database garantiza la integridad referencial mediante la
implementación de claves primarias y claves foráneas. Las claves foráneas
establecen relaciones entre tablas y garantizan la consistencia de los datos.

5. Transacciones ACID:
Oracle Database garantiza la consistencia de los datos mediante el
cumplimiento de las propiedades ACID (Atomicidad, Consistencia,
Aislamiento y Durabilidad) en las transacciones. Esto asegura que las
transacciones sean confiables y que los datos se mantengan en un estado
coherente.

6. Optimización de consultas:
Oracle Database utiliza un optimizador de consultas para determinar el plan
de ejecución más eficiente para las consultas SQL. Esto garantiza un
rendimiento óptimo en la recuperación de datos.

7. Seguridad y control de acceso:


Oracle Database ofrece sólidas características de seguridad que permiten la
autenticación, la autorización y el cifrado de datos para proteger la
confidencialidad e integridad de la información almacenada en la BD.

8. Almacenamiento de datos y gestión de espacio:


Oracle Database administra eficientemente el almacenamiento de datos y
permite la configuración de tablespaces y esquemas de almacenamiento
para gestionar el espacio de manera efectiva.

9. Replicación y alta disponibilidad:


Oracle Database admite tecnologías de replicación y alta disponibilidad para
garantizar la continuidad del servicio y la redundancia de datos en caso de
fallos.

32
Programación para Desarrollo de Software With Oracle

10. Escalabilidad y rendimiento:


Oracle Database es escalable y puede gestionar grandes cantidades de
datos y un alto rendimiento, lo que lo hace adecuado para aplicaciones
empresariales críticas.

La tecnología de base de datos relacional en Oracle es ampliamente utilizada


en empresas de todo el mundo para gestionar datos estructurados de manera
efectiva. Oracle Database ofrece una variedad de características y
funcionalidades avanzadas para garantizar la confiabilidad, el rendimiento y
la seguridad de las aplicaciones y sistemas que dependen de él.

✓ Anatomía de una declaración SQL

Se refiere a la estructura básica de una sentencia SQL en el sistema de


gestión de bases de datos Oracle. Las declaraciones SQL se utilizan para
realizar diversas operaciones en una base de datos, como recuperar datos,
insertar registros, actualizar información y eliminar datos.

1. SELECT: Si estás escribiendo una consulta para recuperar datos de la


base de datos, generalmente comenzarás con la palabra clave
`SELECT`. Esto indica que deseas seleccionar (recuperar) datos de una
tabla o vistas.

2. FROM: Después de la palabra clave `SELECT`, especificarás la tabla o


tablas de las que deseas recuperar datos. La palabra clave `FROM` se
utiliza para indicar la fuente de los datos. Puedes especificar una tabla
única o unirse a varias tablas utilizando cláusulas JOIN.

3. WHERE: Si deseas aplicar condiciones para filtrar los datos que se


recuperarán, puedes usar la palabra clave `WHERE`. En la cláusula
`WHERE`, puedes especificar condiciones que deben cumplirse para que
una fila se incluya en el resultado. Por ejemplo, puedes usar `WHERE`
para recuperar solo los registros que cumplan con ciertos criterios, como
"WHERE salario > 50000".

4. GROUP BY: Si deseas realizar agregaciones en los datos, como contar,


sumar o promediar, puedes usar la cláusula `GROUP BY`. Esto se utiliza
en combinación con funciones de agregación como COUNT, SUM, AVG,
etc.
5. HAVING: La cláusula `HAVING` se utiliza junto con `GROUP BY` y se
utiliza para aplicar condiciones a grupos de filas generados por la cláusula
`GROUP BY`. Es similar a `WHERE`, pero se aplica después de la
agregación.

33
Programación para Desarrollo de Software With Oracle

6. ORDER BY: Si deseas ordenar los resultados en un orden específico,


puedes utilizar la cláusula `ORDER BY`. Puedes ordenar los resultados
en orden ascendente (ASC) o descendente (DESC) en función de una o
más columnas.

7. INSERT INTO: Cuando deseas agregar nuevos registros a una tabla,


utilizas la sentencia `INSERT INTO`. Especificas la tabla en la que deseas
insertar datos y luego proporcionas los valores que deseas insertar en las
columnas correspondientes.

8. UPDATE: La sentencia `UPDATE` se utiliza para modificar registros


existentes en una tabla. Indicas la tabla que deseas actualizar,
especificas qué columnas se deben modificar y proporcionas los nuevos
valores.

9. DELETE: La sentencia `DELETE` se utiliza para eliminar registros de una


tabla. Indicas la tabla de la que deseas eliminar registros y puedes utilizar
la cláusula `WHERE` para especificar las condiciones que deben
cumplirse para eliminar registros específicos.

Estos son algunos de los componentes básicos de una declaración SQL en


Oracle. La sintaxis exacta puede variar según la tarea que estés realizando
y las características específicas de tu base de datos. Es importante tener en
cuenta que las declaraciones SQL deben escribirse con precisión para evitar
errores y obtener los resultados deseados.

• SELECT and WHERE.

✓ Columnas, caracteres y filas

Son conceptos fundamentales relacionados con la estructura y el


almacenamiento de datos en una base de datos relacional. Aquí tienes
información sobre cada uno de estos conceptos:

1. Columnas:
▪ En una base de datos Oracle, una columna es un componente
fundamental de una tabla. Cada columna almacena un tipo
específico de datos, como números, cadenas de texto, fechas o
valores binarios.

▪ Cada columna tiene un nombre único dentro de una tabla y debe


tener un tipo de datos definido, que especifica qué tipo de valores
puede almacenar.

34
Programación para Desarrollo de Software With Oracle

▪ Las columnas también pueden tener restricciones, como


restricciones de clave primaria, restricciones de clave foránea o
restricciones de verificación, que definen reglas para los datos
almacenados en ellas.
▪ Las operaciones de consulta y manipulación de datos se realizan
principalmente a nivel de columnas. Por ejemplo, en una consulta
SQL, puedes seleccionar columnas específicas de una tabla o
modificar los valores de una columna mediante una declaración
SQL UPDATE.

2. Caracteres:
▪ Los caracteres se refieren a los datos de tipo cadena de texto
almacenados en las columnas de una tabla en Oracle.

▪ Oracle admite varios tipos de datos de caracteres, como


VARCHAR2 (cadenas de longitud variable), CHAR (cadenas de
longitud fija) y CLOB (objetos de texto largo), entre otros.

▪ La longitud de una cadena de caracteres se refiere al número de


caracteres que puede contener. Por ejemplo, una columna
VARCHAR2(50) puede almacenar una cadena de texto de hasta
50 caracteres de longitud.

▪ Puedes realizar operaciones de manipulación de cadenas de texto


en Oracle, como concatenación, conversión de mayúsculas a
minúsculas, búsqueda y reemplazo, utilizando funciones y
expresiones específicas de Oracle.

3. Filas:
▪ En una tabla de Oracle, una fila representa un registro individual
que contiene valores para cada una de las columnas definidas en
la tabla.

▪ Cada fila es única y se identifica mediante una clave primaria o una


combinación única de valores en una o más columnas.

▪ Las filas almacenan datos de manera horizontal en una tabla, y


cada columna almacena un valor específico para una fila dada.

▪ Las operaciones de inserción, actualización y eliminación de datos


se realizan a nivel de filas. Puedes agregar nuevas filas utilizando
la sentencia SQL INSERT, modificar filas existentes utilizando la
sentencia UPDATE y eliminar filas utilizando la sentencia DELETE.

35
Programación para Desarrollo de Software With Oracle

En resumen, en Oracle, las columnas definen la estructura y el tipo de datos


que se almacenan en una tabla, los caracteres se utilizan para representar
datos de cadena de texto en esas columnas, y las filas contienen los registros
individuales que conforman la información almacenada en la tabla. Estos
conceptos son fundamentales para comprender cómo se organizan y
gestionan los datos en una base de datos Oracle.

✓ Limitar filas seleccionadas

En Oracle, puedes limitar las filas seleccionadas de una consulta SQL


utilizando las cláusulas `ROWNUM`, `FETCH FIRST`, y `OFFSET`. Estas
cláusulas te permiten controlar cuántas filas deseas recuperar y, en algunos
casos, especificar un desplazamiento desde el principio del conjunto de
resultados. Aquí tienes información sobre cada una de estas opciones:

1. ROWNUM:
La cláusula `ROWNUM` se utiliza para limitar el número de filas recuperadas
en una consulta. Puedes utilizarla en combinación con la cláusula `WHERE`
para aplicar condiciones de filtrado y luego limitar el número de filas
resultantes. Por ejemplo:

Figura N° 4 Cláusula ‘ROWNUM’

El ejemplo anterior recuperará las primeras 10 filas que cumplan con la


condición especificada en la cláusula `WHERE`. Es importante mencionar
que `ROWNUM` filtra las filas después de que se hayan seleccionado de la
tabla, por lo que puede no ser adecuado si necesitas paginación precisa.

2. FETCH FIRST y OFFSET:


A partir de Oracle 12c, puedes utilizar la cláusula `FETCH FIRST` para limitar
la cantidad de filas seleccionadas y la cláusula `OFFSET` para especificar un
desplazamiento en el conjunto de resultados. Esto es especialmente útil para
implementar la paginación de resultados. Por ejemplo:

36
Programación para Desarrollo de Software With Oracle

Figura N° 5 Ejemplo de ‘FETCH FIRST’ y ‘OFFSET’

En el ejemplo anterior, se ordenan las filas según la columna


`columna_fecha`, se omite el primer conjunto de 10 filas y se seleccionan las
siguientes 5 filas. Esto es útil para implementar paginación, donde puedes
cambiar el valor de `OFFSET` y `FETCH FIRST` para mostrar diferentes
páginas de resultados.

Estas son algunas formas en las que puedes limitar las filas seleccionadas
en Oracle. La elección de la cláusula a utilizar dependerá de tus requisitos
específicos, como la versión de Oracle que estés utilizando y si necesitas
paginación o simplemente limitar un número fijo de filas en una consulta.

✓ Operadores de comparación

En Oracle, los operadores de comparación son herramientas fundamentales


para realizar comparaciones entre valores en una sentencia SQL. Estos
operadores se utilizan en las cláusulas `WHERE` y `HAVING` para
especificar condiciones que deben cumplirse para que una fila sea
seleccionada o incluida en los resultados de una consulta. A continuación, se
presentan los operadores de comparación más comunes en Oracle:

1. Igual (=): El operador de igualdad (=) se utiliza para comparar si dos


valores son iguales. Por ejemplo:

Figura N° 6 Operador de Igualdad (=)

Esta consulta seleccionará todas las filas en la tabla "empleados" donde


el valor de la columna "salario" sea igual a 50,000.

2. Diferente (!= o <>): El operador de desigualdad (!= o <>) se utiliza para


comparar si dos valores no son iguales. Por ejemplo:

37
Programación para Desarrollo de Software With Oracle

Figura N° 7 Operador de Diferente (!=)

Esta consulta seleccionará todas las filas en la tabla "productos" donde el


valor de la columna "categoria" no sea igual a "Electrónica".

3. Mayor que (>) y Menor que (<): Estos operadores se utilizan para
comparar si un valor es mayor o menor que otro valor, respectivamente.
Por ejemplo:

Figura N° 8 Operador ‘Mayor que’

Esta consulta seleccionará todas las filas en la tabla "estudiantes" donde


el valor de la columna "edad" sea mayor que 18.

4. Mayor o igual que (>=) y Menor o igual que (<=): Estos operadores se
utilizan para comparar si un valor es mayor o igual que otro valor, o si es
menor o igual que otro valor, respectivamente. Por ejemplo:

Figura N° 9 Operador ‘Menor o igual que’

Esta consulta seleccionará todas las filas en la tabla "pedidos" donde el


valor de la columna "total" sea menor o igual a 1,000.

5. BETWEEN: El operador BETWEEN se utiliza para verificar si un valor


está dentro de un rango especificado. Por ejemplo:

Figura N° 10 Operador BETWEEN

38
Programación para Desarrollo de Software With Oracle

Esta consulta seleccionará todas las filas en la tabla "productos" donde el


valor de la columna "precio" esté dentro del rango de 50 a 100.

6. IN: El operador IN se utiliza para verificar si un valor se encuentra en una


lista de valores especificada. Por ejemplo:

Figura N° 11 Operador IN

Esta consulta seleccionará todas las filas en la tabla "clientes" donde el


valor de la columna "estado" coincida con uno de los valores de la lista
('NY', 'CA', 'TX').

7. LIKE: El operador LIKE se utiliza para realizar comparaciones de patrones


en valores de texto. Puede incluir caracteres comodín como "%"
(cualquier secuencia de caracteres) o "_" (un solo carácter). Por ejemplo:

Figura N° 12 Operador LIKE

Esta consulta seleccionará todas las filas en la tabla "empleados" donde


el nombre del empleado comience con la letra "J".

Estos son algunos de los operadores de comparación más utilizados en


Oracle. Puedes combinar estos operadores con lógica booleana (AND, OR,
NOT) para construir condiciones de búsqueda más complejas y específicas
en tus consultas SQL.

• WHERE, ORDER BY e Introducción a las funciones.

✓ Comparaciones lógicas y reglas de precedencia


Las comparaciones lógicas y las reglas de precedencia son importantes para
construir condiciones más complejas en las sentencias SQL y para
determinar el orden en que se evalúan las expresiones en esas condiciones.

39
Programación para Desarrollo de Software With Oracle

Comparaciones Lógicas:

Las comparaciones lógicas se utilizan para combinar múltiples condiciones


en una expresión lógica única. Los operadores lógicos más comunes en
Oracle son:

1. AND: El operador lógico AND se utiliza para combinar dos o más


condiciones, y la expresión resultante es verdadera solo si todas las
condiciones son verdaderas. Por ejemplo:

Figura N° 13 Operador Lógico AND

Esta consulta seleccionará todas las filas en la tabla "empleados" donde


el salario sea mayor que 50,000 y el departamento sea 'Ventas'.

2. OR: El operador lógico OR se utiliza para combinar dos o más


condiciones, y la expresión resultante es verdadera si al menos una de
las condiciones es verdadera. Por ejemplo:

Figura N° 14 Operador Lógico OR

Esta consulta seleccionará todas las filas en la tabla "productos" donde la


categoría sea 'Electrónica' o 'Ropa'.

3. NOT: El operador lógico NOT se utiliza para negar una condición. Por
ejemplo:

Figura N° 15 Operador Lógico NOT

Esta consulta seleccionará todas las filas en la tabla "clientes" donde el


estado no sea 'CA'.

40
Programación para Desarrollo de Software With Oracle

Reglas de Precedencia:

Cuando se combinan múltiples condiciones con operadores lógicos en una


expresión, es importante comprender las reglas de precedencia para
determinar el orden en que se evalúan las condiciones. Las reglas de
precedencia estándar en Oracle son las siguientes:

1. NOT: El operador NOT tiene la mayor precedencia y se evalúa antes que


los operadores AND y OR. Por lo tanto, las negaciones se aplican
primero.

2. AND: El operador AND se evalúa antes que el operador OR. Si tienes una
expresión con combinaciones de AND y OR, las condiciones con AND se
evalúan antes que las condiciones con OR.

3. OR: El operador OR tiene la menor precedencia y se evalúa por último.


Si tienes una expresión que contiene condiciones con OR, estas se
evalúan después de todas las condiciones con AND y NOT.

Es importante utilizar paréntesis para controlar el orden de evaluación


cuando sea necesario y para evitar ambigüedades en las expresiones
lógicas. Puedes utilizar paréntesis para forzar que ciertas condiciones se
evalúen antes que otras. Por ejemplo:

Figura N° 16 Uso de paréntesis

En este caso, las condiciones relacionadas con el salario se evaluarán


primero debido a los paréntesis, y luego se combinarán con la condición del
departamento mediante un operador AND. Esto garantiza un control preciso
del orden de evaluación.

✓ Clasificación de filas

La clasificación de filas (o ordenación de filas) en Oracle se refiere a la


capacidad de ordenar los resultados de una consulta SQL en un orden
específico según los valores de una o más columnas. La clasificación es una
parte fundamental de las consultas SQL, ya que te permite presentar los
datos de manera organizada y relevante. En Oracle, puedes lograr la
clasificación utilizando la cláusula `ORDER BY` en tus consultas SQL. Aquí
tienes información sobre cómo usarla:

41
Programación para Desarrollo de Software With Oracle

La sintaxis básica de `ORDER BY` es la siguiente:

Figura N° 17 Sintaxis básica de ORDER BY

▪ `SELECT columnas`: Especifica las columnas que deseas seleccionar


en la consulta.
▪ `FROM tabla`: Indica la tabla de la que deseas recuperar datos.
▪ `ORDER BY columna1, columna2, ...`: Especifica las columnas por las
cuales deseas ordenar los resultados. Puedes ordenar por una o más
columnas, separándolas por comas. Por defecto, la ordenación se
realiza en orden ascendente (ASC) de manera ascendente.

Puedes agregar la palabra clave `ASC` para ordenar de manera ascendente


o `DESC` para ordenar de manera descendente.

Por ejemplo:

Figura N° 18 Uso de la clase DESC

En este ejemplo, se seleccionan los nombres y salarios de los empleados de


la tabla "empleados", y se ordenan en orden descendente según el salario.

También es posible ordenar por múltiples columnas. Si dos filas tienen el


mismo valor en la primera columna, se utilizará la segunda columna para
determinar el orden. Por ejemplo:

42
Programación para Desarrollo de Software With Oracle

Figura N° 19 Uso de las claves AC y DESC

En este caso, los resultados se ordenarán primero por el nombre del


departamento en orden ascendente y, para los departamentos con el mismo
nombre, se ordenarán por salario en orden descendente.

La clasificación es útil en diversas situaciones, como cuando necesitas


obtener los resultados en un orden específico para una presentación clara de
los datos o cuando implementas paginación en una aplicación.

Recuerda que la cláusula `ORDER BY` puede tener un impacto en el


rendimiento de la consulta, especialmente en grandes conjuntos de datos.
Por lo tanto, es importante utilizarla de manera eficiente y considerar la
creación de índices en las columnas utilizadas para la clasificación si la
consulta se ejecuta con frecuencia.

✓ Introducción a las funciones

Se refiere al uso de funciones en el lenguaje de programación PL/SQL de


Oracle Database. Las funciones son subprogramas o bloques de código que
realizan una tarea específica y pueden devolver un valor. En Oracle, las
funciones se utilizan comúnmente para realizar cálculos, manipular datos y
realizar diversas tareas dentro de una base de datos.

Aquí hay algunos conceptos clave relacionados con las funciones en Oracle:

1. Declaración de funciones: Para crear una función en Oracle, debes


declararla primero. La declaración de una función incluye el nombre de la
función, los parámetros que recibe (si los hay) y el tipo de dato que
devuelve. Aquí hay un ejemplo de declaración de función:

43
Programación para Desarrollo de Software With Oracle

Figura N° 20 Declaración de función

2. Invocación de funciones: Una vez que una función está declarada,


puedes invocarla en una consulta SQL o desde otro bloque PL/SQL para
obtener su resultado. Por ejemplo:

Figura N° 21 Invocación de la función ‘calcular promedio’

3. Parámetros de entrada y salida: Las funciones pueden aceptar


parámetros de entrada y, en algunos casos, devolver valores de salida.
En el ejemplo anterior, la función `calcular_promedio` toma dos
parámetros de entrada (nota1 y nota2) y devuelve un valor numérico.

4. Tipos de retorno: Las funciones pueden devolver diferentes tipos de


datos, como números, cadenas de caracteres, fechas, etc., según su
definición.

5. Uso de funciones predefinidas: Oracle proporciona una amplia variedad


de funciones predefinidas que se pueden utilizar para realizar
operaciones comunes en bases de datos, como funciones matemáticas,
de cadena, de fecha y hora, etc.

6. Tratamiento de excepciones: En el cuerpo de una función, puedes


implementar lógica para manejar excepciones y errores que puedan
ocurrir durante su ejecución.
Es importante recordar que las funciones en Oracle son deterministas por
defecto, lo que significa que siempre devuelven el mismo resultado para un
conjunto de entradas dado. Esto es útil en contextos donde la consistencia y
la predictibilidad son importantes.

44
Programación para Desarrollo de Software With Oracle

Las funciones en Oracle son una parte fundamental de PL/SQL y se utilizan


para realizar tareas específicas y devolver resultados en consultas y
programas PL/SQL. Pueden aceptar parámetros de entrada y devolver
valores de salida, lo que las hace muy versátiles para trabajar con datos en
una base de datos Oracle.

45
Programación para Desarrollo de Software With Oracle

TAREA N°06

REALIZA CONSULTAS Y SUBCONSULTAS CON FUNCIONES

• Funciones de una sola fila (Parte I).

✓ Manipulación de casos y personajes

Oracle ofrece una variedad de funciones de una sola fila que te permiten
manipular casos y personajes en los datos de tu base de datos. Estas
funciones son especialmente útiles cuando necesitas realizar
transformaciones en valores de texto o caracteres en una consulta SQL.
Mostraremos información sobre algunas de las funciones más comunes para
la manipulación de casos y personajes en Oracle:

1. UPPER() y LOWER():
▪ `UPPER(cadena)`: Esta función convierte todos los caracteres en
una cadena de texto en letras mayúsculas.
▪ `LOWER(cadena)`: Esta función convierte todos los caracteres en
una cadena de texto en letras minúsculas.

Ejemplo:

Figura N° 22 Uso de UPPER y LOWER

Esta consulta seleccionaría los nombres de los empleados en letras


mayúsculas.

2. INITCAP():
`INITCAP(cadena)`: Esta función convierte la primera letra de cada
palabra en una cadena de texto en mayúscula y el resto en minúscula.
Ejemplo:

Figura N° 23 Función INITCAP

46
Programación para Desarrollo de Software With Oracle

Esta consulta seleccionaría los nombres de los empleados con la primera


letra de cada palabra en mayúscula.

3. LENGTH():
`LENGTH(cadena)`: Esta función devuelve la longitud (número de
caracteres) de una cadena de texto.

Ejemplo:

Figura N° 24 Función LENGTH

Esta consulta mostraría la longitud de la descripción de los productos.

4. SUBSTR():
`SUBSTR(cadena, inicio, longitud)`: Esta función devuelve una
subcadena de una cadena de texto a partir de la posición de inicio
especificada y con una longitud determinada.

Ejemplo:

Figura N° 25 Función SUBSTR

Esta consulta mostraría los primeros 10 caracteres de la dirección de los


clientes.

5. REPLACE():
`REPLACE(cadena, antiguo, nuevo)`: Esta función reemplaza todas las
ocurrencias de una cadena de texto antigua por una nueva en una cadena
de texto.

47
Programación para Desarrollo de Software With Oracle

Ejemplo:

Figura N° 26 Función REPLACE

Esta consulta reemplazaría todas las ocurrencias de "mal" por "bien" en


los comentarios de las opiniones.

6. TRIM():
`TRIM([LEADING | TRAILING | BOTH] caracteres FROM cadena)`: Esta
función elimina los caracteres especificados del principio (LEADING), del
final (TRAILING) o de ambos extremos (BOTH) de una cadena de texto.
Si no se especifica el tipo de recorte, se asume BOTH.

Ejemplo:

Figura N° 27 Función TRIM

Esta consulta eliminaría los ceros iniciales de los números de serie de los
productos.

Estas funciones te permiten manipular y transformar valores de texto y


caracteres en tus consultas SQL de Oracle de diversas maneras. Puedes
combinar estas funciones con otras funciones y operadores SQL para
realizar tareas más complejas de procesamiento de texto y manipulación de
datos.

✓ Funciones numéricas

Las funciones numéricas son un conjunto de funciones que se utilizan para


realizar operaciones y cálculos en valores numéricos dentro de una consulta
SQL. Estas funciones proporcionan una amplia gama de capacidades para
realizar operaciones matemáticas y manipulaciones de datos en valores
numéricos almacenados en una base de datos. Mostraremos información
sobre algunas de las funciones numéricas más comunes en Oracle:

48
Programación para Desarrollo de Software With Oracle

1. SUM():
`SUM(columna)`: Esta función se utiliza para calcular la suma de los valores
en una columna numérica. Puedes usarla para obtener la suma total de los
valores en una columna específica.

Ejemplo:

Figura N° 28 Función SUM

Esta consulta calcularía la suma total de las ventas en la tabla de pedidos.

2. AVG():
`AVG(columna)`: La función AVG se utiliza para calcular el promedio de los
valores en una columna numérica. Proporciona el valor promedio de los datos
en la columna especificada.

Ejemplo:

Figura N° 29 Función AVG

Esta consulta calcularía la edad promedio de los estudiantes.

3. COUNT():
`COUNT(columna)` o `COUNT(*)`: La función COUNT se utiliza para contar
el número de filas en una columna específica o el número total de filas en
una tabla (cuando se utiliza `COUNT(*)`).

Ejemplo:

Figura N° 30 Función COUNT

Esta consulta contaría el número de productos en el inventario.

49
Programación para Desarrollo de Software With Oracle

4. MAX():
`MAX(columna)`: La función MAX se utiliza para obtener el valor máximo en
una columna numérica. Devuelve el valor más grande en la columna
especificada.

Ejemplo:

Figura N° 31 Función MAX

Esta consulta devolvería el precio máximo de todos los productos.

5. MIN():
`MIN(columna)`: La función MIN se utiliza para obtener el valor mínimo en
una columna numérica. Devuelve el valor más pequeño en la columna
especificada.

Ejemplo:

Figura N° 32 Función MIN

Esta consulta devolvería el salario mínimo entre todos los empleados.

6. ROUND():
`ROUND(valor, decimales)`: La función ROUND se utiliza para redondear un
valor numérico a un número específico de decimales.

Ejemplo:

Figura N° 33 Función ROUND

Esta consulta redondearía los precios de los productos a dos decimales.

50
Programación para Desarrollo de Software With Oracle

Estas son solo algunas de las funciones numéricas disponibles en Oracle.


Puedes combinar estas funciones en consultas SQL para realizar cálculos y
análisis numéricos más avanzados en tus datos. Oracle proporciona muchas
otras funciones numéricas y matemáticas que te permiten realizar una amplia
variedad de operaciones en valores numéricos según tus necesidades
específicas.

✓ Funciones de fecha

Las funciones de fecha en Oracle son un conjunto de funciones que permiten


realizar operaciones y manipulaciones en valores de fecha y hora dentro de
una consulta SQL. Estas funciones son útiles cuando trabajas con fechas en
bases de datos y necesitas realizar cálculos, conversiones y formatos de
fechas. Mostraremos información sobre algunas de las funciones de fecha
más comunes en Oracle:

1. SYSDATE:
`SYSDATE`: Esta función devuelve la fecha y hora actual del sistema en el
formato predeterminado de Oracle (con fecha y hora).

Ejemplo:

Figura N° 34 Función SYSDATE

Esta consulta devolverá la fecha y hora actuales del sistema.

2. TO_DATE():
`TO_DATE(cadena, formato)`: La función TO_DATE se utiliza para convertir
una cadena en una fecha según un formato específico. Puedes especificar el
formato de entrada para que Oracle pueda interpretar la cadena
correctamente.

Ejemplo:

Figura N° 35 Función TO_DATE

51
Programación para Desarrollo de Software With Oracle

Esta consulta convertirá la cadena '2023-10-09' en una fecha.

3. TO_CHAR():
`TO_CHAR(fecha, formato)`: La función TO_CHAR se utiliza para convertir
una fecha en una cadena de texto en el formato deseado. Puedes especificar
el formato de salida para personalizar cómo se muestra la fecha.

Ejemplo:

Figura N° 36 Función TO_CHAR

Esta consulta mostrará la fecha actual en el formato 'DD-MON-YYYY


HH24:MI:SS'.

4. MONTHS_BETWEEN():
`MONTHS_BETWEEN(fecha1, fecha2)`: Esta función calcula el número de
meses entre dos fechas. Puedes usarla para determinar la diferencia en
meses entre dos puntos en el tiempo.

Ejemplo:

Figura N° 37 Función MONTHS_BETWEEN

Esta consulta calculará la diferencia en meses entre las dos fechas.

5. ADD_MONTHS():
`ADD_MONTHS(fecha, meses)`: La función ADD_MONTHS se utiliza para
agregar un número específico de meses a una fecha dada.

Ejemplo:

Figura N° 38 Función ADD_MONTHS

52
Programación para Desarrollo de Software With Oracle

Esta consulta devolverá la fecha actual más 3 meses.

6. TRUNC():
`TRUNC(fecha, formato)`: La función TRUNC se utiliza para truncar una
fecha a una unidad específica (como día, mes o año) y eliminar las partes de
la fecha y la hora que no deseas.

Ejemplo:

Figura N° 39 Función TRUNC

Esta consulta truncará la fecha actual al primer día del mes.

Estas son algunas de las funciones de fecha más comunes en Oracle.


Puedes combinar estas funciones y utilizarlas en consultas SQL para realizar
cálculos y manipulaciones avanzadas en valores de fecha y hora según tus
necesidades específicas.

• Funciones de una sola fila (Parte II).

✓ Funciones de conversión

Las funciones de conversión en Oracle son un conjunto de funciones que


permiten convertir valores de un tipo de datos a otro. Estas funciones son
útiles cuando necesitas realizar conversiones entre diferentes tipos de datos,
como números, fechas, cadenas de texto y otros tipos de datos.

1. TO_NUMBER():
`TO_NUMBER(cadena, formato)`: Esta función se utiliza para convertir
una cadena de texto en un valor numérico. Puedes especificar un formato
opcional que determine cómo se debe interpretar la cadena.

Ejemplo:

Figura N° 40 Función TO_NUMBER

53
Programación para Desarrollo de Software With Oracle

Esta consulta convertirá la cadena '123.45' en un valor numérico.

2. TO_DATE():
`TO_DATE(cadena, formato)`: Como mencioné anteriormente, esta
función se utiliza para convertir una cadena en una fecha. Puedes
especificar el formato de entrada para que Oracle pueda interpretar la
cadena correctamente.

Ejemplo:

Figura N° 41 Función TO_DATE

Esta consulta convertirá la cadena '2023-10-09' en una fecha.

3. TO_CHAR():
`TO_CHAR(valor, formato)`: Esta función se utiliza para convertir un valor
en una cadena de texto con un formato específico. Puedes personalizar
cómo se muestra el valor en la cadena.

Ejemplo:

Figura N° 42 Función TO_CHAR

Esta consulta mostrará la fecha actual en un formato específico como una


cadena.

4. CAST():
`CAST(expresion AS tipo_de_dato)`: Esta función permite realizar una
conversión de tipo explícita. Puedes utilizarla para convertir una expresión
en un tipo de datos específico.

Ejemplo:

Figura N° 43 Función CAST

54
Programación para Desarrollo de Software With Oracle

Esta consulta realizará una conversión explícita de la cadena '123' en un


número.

5. TO_BINARY_DOUBLE() y TO_BINARY_FLOAT()*:
`TO_BINARY_DOUBLE(valor)` y `TO_BINARY_FLOAT(valor)`: Estas
funciones se utilizan para convertir valores numéricos en formatos
binarios de doble y simple precisión, respectivamente.

Ejemplo:

Figura N° 44 Función TO_BINARY_DOUBLE

Esta consulta convertirá el valor numérico 123.45 en formato binario de


doble precisión.

Oracle proporciona una amplia variedad de funciones de conversión para


manejar diferentes tipos de datos y necesidades específicas en tus consultas
SQL. Estas funciones son útiles para asegurarse de que los datos se
almacenan y manipulan en el formato correcto en una base de datos Oracle.

✓ Funciones NULL

Las funciones NULL son un conjunto de funciones que te permiten trabajar


con valores nulos en consultas SQL. Los valores nulos representan la
ausencia de datos en una columna de una tabla y pueden complicar las
operaciones de consulta y cálculos. Las funciones NULL te ayudan a lidiar
con estos valores nulos de manera efectiva.

1. NVL():
`NVL(expresion, valor_predeterminado)`: La función NVL se utiliza para
reemplazar un valor nulo en una expresión por un valor predeterminado.
Si la expresión es nula, se devuelve el valor predeterminado.

Ejemplo:

Figura N° 45 Función NVL

55
Programación para Desarrollo de Software With Oracle

Esta consulta mostrará el nombre del cliente, pero si el nombre es nulo,


mostrará 'No disponible' en su lugar.

2. NVL2():
`NVL2(expresion, valor_si_no_nulo, valor_si_nulo)`: La función NVL2 se
utiliza para evaluar una expresión. Si la expresión no es nula, devuelve el
valor especificado si no es nulo; de lo contrario, devuelve el valor si es
nulo.

Ejemplo:

Figura N° 46 Función NVL2

Esta consulta verificará si el campo de correo electrónico no es nulo y


mostrará 'Correo disponible' si no es nulo, o 'Correo no proporcionado' si
es nulo.

3. COALESCE():
`COALESCE(valor1, valor2, ...)`: La función COALESCE se utiliza para
encontrar el primer valor no nulo en una lista de valores y devolverlo.

Ejemplo:

Figura N° 47 Función COALESCE

Esta consulta seleccionará el primer número no nulo de la lista o, si todos


son nulos, devolverá 0.

4. NULLIF():
`NULLIF(expresion1, expresion2)`: La función NULLIF se utiliza para
comparar dos expresiones. Si ambas expresiones son iguales, el
resultado es nulo; de lo contrario, devuelve la primera expresión.

56
Programación para Desarrollo de Software With Oracle

Ejemplo:

Figura N° 48 Función NULLIF

Esta consulta devolverá nulo si valor1 y valor2 son iguales, de lo contrario,


devolverá valor1.

5. DECODE():
`DECODE(expresion, valor1, resultado1, valor2, resultado2, ..., valorN,
resultadoN, valorPredeterminado)`: La función DECODE se utiliza para
realizar una serie de comparaciones y devolver un resultado basado en
la primera coincidencia encontrada. Puedes utilizarlo para reemplazar
valores nulos.

Ejemplo:

Figura N° 49 Función DECODE

Esta consulta mostrará 'Sin nombre' si el campo de nombre es nulo, o el


nombre real si no es nulo.

Estas son algunas de las funciones NULL más comunes en Oracle. Te


permiten manejar de manera efectiva los valores nulos en tus consultas SQL,
lo que es esencial para garantizar que tus operaciones de bases de datos
sean precisas y que los resultados sean útiles y coherentes.

✓ Expresiones condicionales

Las expresiones condicionales se utilizan en funciones de una sola fila para


realizar evaluaciones condicionales y devolver resultados basados en
condiciones específicas.

Estas expresiones permiten tomar decisiones en función de los datos


presentes en una fila y pueden ayudar a personalizar el resultado de una
consulta en función de condiciones lógicas.

57
Programación para Desarrollo de Software With Oracle

Las expresiones condicionales se suelen utilizar dentro de las cláusulas


SELECT, WHERE, HAVING y otras partes de una consulta SQL.

1. CASE:
La expresión `CASE` se utiliza para realizar evaluaciones condicionales en
una consulta SQL y devolver diferentes resultados en función de las
condiciones.

Ejemplo:

Figura N° 50 Función CASE

En este ejemplo, se utiliza `CASE` para evaluar el salario de los empleados


y asignar un nivel de salario en función de las condiciones especificadas.

2. DECODE:
La función `DECODE` se utiliza para realizar evaluaciones condicionales en
una consulta y devolver un valor específico cuando se cumple una condición.

Ejemplo:

Figura N° 51 Función DECODE

En este ejemplo, `DECODE` se utiliza para asignar un valor al campo


"equipo" en función del departamento del empleado.

3. COALESCE:
La función `COALESCE` se utiliza para evaluar una lista de valores y
devolver el primer valor no nulo encontrado.

58
Programación para Desarrollo de Software With Oracle

Ejemplo:

Figura N° 52 Función COALESCE

Aquí, `COALESCE` se utiliza para determinar el valor de contacto basado en


la disponibilidad de datos en las columnas "email" y "telefono".

4. NULLIF:
La función `NULLIF` se utiliza para comparar dos valores y devolver nulo si
son iguales, o el primer valor si son diferentes.

Ejemplo:

Figura N° 53 Función NULLIF

En este ejemplo, `NULLIF` se utiliza para reemplazar los salarios de valor


cero con valores nulos.

Las expresiones condicionales son útiles para personalizar y transformar los


resultados de una consulta en función de las condiciones específicas que
necesitas aplicar. Puedes combinar múltiples condiciones y utilizar estas
expresiones en diversas partes de una consulta SQL para tomar decisiones
basadas en los datos de tu base de datos Oracle.

59
Programación para Desarrollo de Software With Oracle

TAREA N°07

REALIZA CONSULTAS DE AGRUPACIÓN CON UNA O MÁS TABLAS.

• JOINs (Parte I).

✓ Uniones cruzadas y uniones naturales

Las uniones cruzadas (cross joins) y uniones naturales (natural joins) son
tipos de operaciones de unión utilizadas en SQL para combinar datos de dos
o más tablas en Oracle. Sin embargo, es importante tener en cuenta que
estos tipos de uniones no son tan comunes como las uniones internas o
externas, ya que su uso puede ser menos intuitivo y más propenso a errores
si no se utilizan con cuidado.

Mostraremos información sobre las uniones cruzadas y las uniones naturales


en Oracle:

1. Uniones Cruzadas (Cross Joins):


Una unión cruzada, también conocida como producto cartesiano,
combina cada fila de la primera tabla con cada fila de la segunda tabla,
generando un conjunto de resultados que es el producto de ambas tablas.
No se requiere una condición de unión específica para realizar una unión
cruzada.

Ejemplo:

Figura N° 54 Uniones Cruzadas

Esta consulta generaría todas las combinaciones posibles de nombres de


empleados y nombres de departamentos, sin ninguna condición de unión
específica. Las uniones cruzadas pueden resultar en conjuntos de
resultados muy grandes si se aplican a tablas con un gran número de
filas, por lo que se deben usar con precaución.

60
Programación para Desarrollo de Software With Oracle

2. Uniones Naturales (Natural Joins):


Una unión natural es una unión que se realiza automáticamente basada
en las columnas con el mismo nombre en ambas tablas. El motor de
Oracle compara las columnas con el mismo nombre en ambas tablas y
combina las filas donde los valores de esas columnas coinciden.

Ejemplo:

Figura N° 55 Uniones Naturales

En este ejemplo, Oracle realizaría una unión natural basada en la


columna "nombre" en ambas tablas. Solo las filas con nombres idénticos
en ambas tablas se incluirían en el resultado.

Las uniones naturales pueden ser convenientes cuando tienes tablas con
columnas que tienen el mismo nombre y deseas combinarlas
automáticamente sin especificar las columnas de unión. Sin embargo,
también pueden ser riesgosas si las columnas con el mismo nombre no
tienen el mismo significado en ambas tablas.

Es importante recordar que, aunque las uniones cruzadas y las uniones


naturales pueden ser útiles en ciertas situaciones, generalmente se prefieren
las uniones internas o externas (LEFT, RIGHT, FULL) con condiciones de
unión explícitas, ya que brindan un mayor control sobre cómo se combinan
los datos y permiten evitar resultados inesperados. Las uniones cruzadas y
las uniones naturales deben utilizarse con precaución y se recomienda
comprender completamente su comportamiento antes de usarlas en
consultas SQL.

✓ Unir cláusulas

Oracle permite combinar varias cláusulas JOIN en una sola consulta SQL
para unir múltiples tablas y obtener datos de manera más compleja y
específica. Al hacerlo, puedes realizar combinaciones más elaboradas y
obtener resultados que involucren múltiples tablas en una consulta única.

61
Programación para Desarrollo de Software With Oracle

1. Sintaxis básica de JOIN múltiples:


Para unir cláusulas JOIN múltiples en una consulta SQL, simplemente
puedes agregar más de una cláusula JOIN en la misma consulta. Cada
cláusula JOIN se agrega después de la tabla o la cláusula JOIN anterior y se
puede especificar su tipo (INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL
JOIN) según sea necesario.

Ejemplo:

Figura N° 56 Sintaxis Básica de JOIN Múltiples

En este ejemplo, se unen tres tablas: "empleados," "asignaciones" y


"proyectos." La primera cláusula JOIN se utiliza para unir "empleados" y
"asignaciones," y la segunda cláusula JOIN se utiliza para unir "asignaciones"
y "proyectos."

2. Uso de alias de tabla:


Para mantener la claridad en las consultas SQL que involucran múltiples
tablas, es común utilizar alias de tabla. Los alias permiten abreviar el nombre
de las tablas y hacer que la consulta sea más legible.

Ejemplo:

Figura N° 57 Uso de alias de tabla

En este ejemplo, se han asignado alias a las tablas para abreviar sus
nombres en la consulta.

62
Programación para Desarrollo de Software With Oracle

3. Combinaciones de tipos de JOIN:


Puedes combinar diferentes tipos de JOIN en una consulta si necesitas
realizar combinaciones complejas de datos. Por ejemplo, puedes usar un
INNER JOIN con un LEFT JOIN para obtener resultados específicos.

Ejemplo:

Figura N° 58 Combinaciones de tipo JOIN

En este ejemplo, se utiliza un INNER JOIN entre "empleados" y


"asignaciones" y un LEFT JOIN entre "asignaciones" y "proyectos."

4. Uso de condiciones de unión adicionales:


Puedes agregar condiciones de unión adicionales en cualquier cláusula JOIN
para refinar aún más los resultados de tu consulta. Esto es útil cuando
necesitas especificar cómo se relacionan las tablas de manera más precisa.

Ejemplo:

Figura N° 59 Uso de condiciones de unión adicionales

En este ejemplo, se agrega una condición adicional en la primera cláusula


JOIN para que solo se incluyan asignaciones después de una fecha
específica.

Unir cláusulas JOIN te permite realizar consultas SQL complejas que


involucran múltiples tablas y obtener resultados específicos de manera
eficiente. Sin embargo, es importante comprender bien las relaciones de
datos en tu base de datos y cómo se deben relacionar las tablas para obtener
los resultados deseados.

63
Programación para Desarrollo de Software With Oracle

Además, asegúrate de optimizar tus consultas para el rendimiento, ya que


unir muchas tablas puede tener un impacto en la velocidad de la consulta.

✓ Uniones internas versus externas

Se refieren a diferentes tipos de operaciones de combinación de datos que


se pueden realizar utilizando la cláusula JOIN en Oracle y otros sistemas de
gestión de bases de datos relacionales. Estos tipos de JOINs se utilizan para
combinar filas de dos o más tablas en función de una condición específica.

1. Unión Interna (INNER JOIN):


▪ Una unión interna devuelve solo las filas que tienen coincidencias
en ambas tablas.
▪ Cuando se utiliza una unión interna en una consulta, solo se
recuperarán las filas donde la condición de JOIN se cumple en
ambas tablas.
▪ Las filas que no tienen coincidencias en ambas tablas se excluyen
del resultado.
▪ La sintaxis básica de una unión interna en Oracle es la siguiente:

Figura N° 60 Unión Interna

2. Unión Externa (OUTER JOIN):


▪ Una unión externa devuelve todas las filas de al menos una de las
tablas involucradas en la consulta, incluso si no hay coincidencias
en la otra tabla.
▪ Se utilizan principalmente para recuperar datos de una tabla,
manteniendo todas las filas de esa tabla, incluso si no hay
coincidencias en la otra tabla.
▪ En Oracle, puedes realizar tres tipos de uniones externas:
o LEFT OUTER JOIN: Devuelve todas las filas de la tabla
izquierda y las filas coincidentes de la tabla derecha (o filas
nulas si no hay coincidencias en la tabla derecha).
o RIGHT OUTER JOIN: Devuelve todas las filas de la tabla
derecha y las filas coincidentes de la tabla izquierda (o filas
nulas si no hay coincidencias en la tabla izquierda).

64
Programación para Desarrollo de Software With Oracle

o FULL OUTER JOIN: Devuelve todas las filas cuando hay


una coincidencia en cualquiera de las tablas, y las filas nulas
en la otra tabla si no hay coincidencias.
▪ La sintaxis básica de una unión externa en Oracle es la siguiente:

Figura N° 61 Sintaxis Básica de una unión externa

Las uniones internas se utilizan para obtener solo las filas que coinciden en
ambas tablas, mientras que las uniones externas se utilizan para obtener
todas las filas de al menos una de las tablas, junto con las coincidencias en
la otra tabla (o filas nulas si no hay coincidencias). La elección entre unión
interna y externa dependerá de los requisitos específicos de tu consulta y de
los resultados que desees obtener.

✓ Autouniones y consultas jerárquicas

Se refieren a técnicas avanzadas de consultas que se utilizan para trabajar


con datos jerárquicos o estructurados en forma de árbol, como organigramas,
árboles genealógicos o estructuras de productos. Oracle proporciona un
conjunto de características y operadores que permiten realizar consultas
jerárquicas de manera eficiente.

1. Autouniones (SELF JOIN):


Una autounión, también conocida como autounión de tabla o autojoin, es
una operación de JOIN en la que se une una tabla consigo misma. Esto
puede ser útil cuando deseas relacionar filas en una tabla con otras filas
en la misma tabla. Por lo general, se utiliza en escenarios en los que las
filas de una tabla tienen una relación jerárquica o de dependencia.

Ejemplo de autounión en Oracle:

Figura N° 62 Autounión en Oracle

65
Programación para Desarrollo de Software With Oracle

En este ejemplo, la tabla "employees" se une consigo misma para


relacionar a los empleados con sus respectivos gerentes.

2. Consultas Jerárquicas:
Las consultas jerárquicas se utilizan para recuperar datos de una
estructura jerárquica almacenada en una tabla, como un árbol de
categorías o una organización con una estructura de informes. Oracle
proporciona el operador `CONNECT BY` para realizar este tipo de
consultas.

Ejemplo de consulta jerárquica en Oracle:

Figura N° 63 Consulta jerárquica

En este ejemplo, la consulta recupera una jerarquía de empleados y sus


gerentes utilizando el operador `CONNECT BY`. Comienza con aquellos
empleados cuyo `manager_id` es nulo (los principales) y luego sigue
conectando filas de la tabla según la relación `PRIOR employee_id =
manager_id`.

Estas técnicas son útiles para trabajar con datos jerárquicos y pueden ser
fundamentales en aplicaciones como la generación de organigramas, la
navegación de árboles de categorías o la administración de estructuras de
informes.

• JOINs (Parte II).

✓ Oracle Equijoin y producto cartesiano

1. Oracle Equijoin:
▪ El Oracle Equijoin, a veces llamado simplemente "join", es una
operación que combina dos o más tablas en función de una condición
de igualdad en una o más columnas entre las tablas involucradas.
▪ En un Oracle Equijoin, se utiliza el operador de igualdad (=) para
comparar las columnas específicas en las tablas y encontrar
coincidencias. Las filas que cumplen con la condición de igualdad se
incluyen en el resultado de la consulta.

66
Programación para Desarrollo de Software With Oracle

▪ La sintaxis básica de un Oracle Equijoin es la siguiente:

Figura N° 64 Sintaxis básica de un Oracle Equijoin

▪ En este ejemplo, la consulta combina las filas de "tabla1" y "tabla2"


donde las columnas especificadas son iguales.

2. Producto Cartesiano (Cartesian Product):


▪ El producto cartesiano es una operación de combinación de tablas que
devuelve todas las posibles combinaciones de filas entre dos o más
tablas sin una condición de JOIN específica.
▪ Si no se especifica una condición de igualdad en la cláusula JOIN, el
resultado será el producto cartesiano de las tablas involucradas. Esto
significa que cada fila de la primera tabla se combina con cada fila de
la segunda tabla, y así sucesivamente.
▪ El producto cartesiano puede generar un conjunto de resultados muy
grande y generalmente no es deseado en la mayoría de las consultas,
ya que puede ser ineficiente y difícil de interpretar.
▪ La sintaxis básica de un producto cartesiano en Oracle es la siguiente:

Figura N° 65 Sintaxis básica de un producto cartesiano

▪ En este ejemplo, la consulta devuelve todas las combinaciones


posibles de filas entre "tabla1" y "tabla2" sin una condición de igualdad
específica.

Es importante evitar el producto cartesiano no deseado en consultas, ya que


puede generar conjuntos de resultados enormes y causar un rendimiento
deficiente en la base de datos. Para realizar una unión significativa entre
tablas, siempre debes especificar una condición de igualdad utilizando la
cláusula JOIN, como se muestra en el Oracle Equijoin, para obtener
resultados precisos y eficientes.

67
Programación para Desarrollo de Software With Oracle

✓ Noquijoins de Oracle y uniones externas

1. Noquijoin (No-Join):
▪ Un Noquijoin, como su nombre sugiere, es una operación en la que no
se realiza una unión (JOIN) explícita entre dos o más tablas. En lugar
de combinar filas de tablas, se busca un resultado que incluye
registros que no tienen correspondencia en otra tabla. Esta operación
se logra utilizando operadores relacionales como `NOT IN`, `NOT
EXISTS` o `MINUS`.
▪ Un ejemplo común de Noquijoin es cuando deseas encontrar registros
en una tabla que no tengan correspondencia en otra tabla. Aquí tienes
un ejemplo usando `NOT IN`:

Figura N° 66 Usando ‘NOT IN’

En este caso, estamos buscando empleados que no hayan realizado ninguna


venta.

2. Uniones Externas (Outer Joins):


▪ Las uniones externas son operaciones de combinación de datos en
las que se recuperan todas las filas de una tabla (tabla izquierda) y las
filas coincidentes de otra tabla (tabla derecha) o viceversa, junto con
filas nulas si no hay coincidencias.
▪ Oracle admite tres tipos de uniones externas: LEFT OUTER JOIN,
RIGHT OUTER JOIN y FULL OUTER JOIN.
▪ Un ejemplo de unión externa sería unir una tabla de empleados con
una tabla de departamentos para obtener todos los empleados y los
departamentos a los que están asignados. Si algunos empleados no
están asignados a ningún departamento, aún aparecerán en el
resultado con valores nulos en la información del departamento.

Figura N° 67 Ejemplo de unión externa

68
Programación para Desarrollo de Software With Oracle

▪ En este ejemplo, estamos utilizando un LEFT OUTER JOIN para


asegurarnos de que todos los empleados aparezcan en el resultado,
incluso si no están asignados a ningún departamento.

Los Noquijoins son operaciones que no involucran una unión explícita,


mientras que las uniones externas son operaciones que combinan datos de
dos tablas, incluyendo filas nulas cuando no hay coincidencias. La elección
entre Noquijoins y uniones externas depende de los requisitos específicos de
la consulta y de si deseas incluir o excluir registros que no tienen
correspondencia en la otra tabla.

• Funciones de grupo (Parte I).

✓ Funciones de grupo

Son un conjunto de funciones que se utilizan para realizar cálculos en grupos


de filas de una tabla en lugar de en filas individuales.

Estas funciones se utilizan comúnmente en consultas SQL para resumir y


agregar datos en función de ciertos criterios, como contar filas, calcular
sumas, promedios o encontrar valores máximos y mínimos en un conjunto
de datos.

Algunas de las funciones de grupo más comunes en Oracle incluyen:

1. SUM(): Calcula la suma de los valores en una columna específica para un


grupo de filas.

2. AVG(): Calcula el promedio de los valores en una columna específica para


un grupo de filas.

3. COUNT(): Cuenta el número de filas en un grupo (también puede contar el


número de valores no nulos en una columna específica).

4. MAX(): Encuentra el valor máximo en una columna específica para un grupo


de filas.

5. MIN(): Encuentra el valor mínimo en una columna específica para un grupo


de filas.

Para utilizar estas funciones de grupo en una consulta SQL, generalmente


debes agrupar las filas utilizando la cláusula GROUP BY y aplicar la función
de grupo deseada en las columnas relevantes. Por ejemplo:

69
Programación para Desarrollo de Software With Oracle

Figura N° 68 Cláusula GROUP BY

En este ejemplo, estamos contando el número de empleados en cada


departamento agrupando las filas por el ID del departamento y utilizando la
función COUNT().

Las funciones de grupo son esenciales para realizar operaciones de


agregación y resumen en grandes conjuntos de datos y son una parte
fundamental de la programación SQL en Oracle y otros sistemas de gestión
de bases de datos relacionales.

• Funciones de grupo (Parte II).

✓ Uso de cláusulas Agrupar por y Tener

En Oracle y otros sistemas de gestión de bases de datos relacionales, las


cláusulas "GROUP BY" y "HAVING" se utilizan en combinación con funciones
de grupo como SUM(), AVG(), COUNT(), MAX() y MIN() para realizar
operaciones de agregación y filtrado en grupos de filas de una tabla.

1. GROUP BY:
▪ La cláusula "GROUP BY" se utiliza para agrupar filas de una tabla
en función de los valores de una o más columnas. Cada grupo
resultante contiene filas que comparten los mismos valores en las
columnas especificadas.
▪ Cuando se utiliza "GROUP BY", se suele utilizar una función de
grupo, como COUNT(), SUM(), AVG(), etc., en las columnas que
no forman parte de la agrupación. Esto permite realizar cálculos de
agregación en cada grupo.
▪ Ejemplo:

Figura N° 69 Cláusula GROUP BY

70
Programación para Desarrollo de Software With Oracle

En este ejemplo, las filas se agrupan por el ID del departamento, y se


calcula el salario promedio en cada grupo.

2. HAVING:
▪ La cláusula "HAVING" se utiliza para filtrar los resultados de una
consulta después de haber aplicado la cláusula "GROUP BY".
Permite establecer condiciones para los grupos en función de las
funciones de grupo.
▪ Por ejemplo, puedes utilizar "HAVING" para filtrar grupos basados
en el resultado de una función de grupo, como para mostrar solo
aquellos grupos donde el salario promedio sea mayor que cierto
valor.
▪ Ejemplo:

Figura N° 70 Cláusula HAVING

En este ejemplo, la cláusula "HAVING" se utiliza para mostrar solo los


departamentos cuyo salario promedio es superior a 50,000.

La cláusula "GROUP BY" se utiliza para agrupar filas en función de los


valores de una o más columnas, mientras que la cláusula "HAVING" se utiliza
para filtrar los resultados de una consulta después de aplicar la cláusula
"GROUP BY", en función de los resultados de las funciones de grupo. Estas
cláusulas son esenciales para realizar consultas complejas que involucran
agregación y filtrado en bases de datos Oracle y otros sistemas relacionales.

✓ Uso de operaciones de acumulación y cubo, y conjuntos de agrupación

El uso de operaciones de acumulación (ROLLUP y CUBE) y conjuntos de


agrupación (GROUPING SETS) en Oracle es una forma avanzada de
realizar cálculos de agregación y obtener resúmenes de datos en consultas
SQL que involucran múltiples niveles de agrupación.

71
Programación para Desarrollo de Software With Oracle

1. Operaciones de Acumulación (ROLLUP y CUBE):


▪ ROLLUP y CUBE son operaciones que permiten crear resúmenes
jerárquicos de datos en consultas SQL.
▪ ROLLUP: Esta operación genera resultados de agregación en
múltiples niveles de agrupación, desde el nivel más detallado hasta
el nivel más general. Cada nivel de agregación se representa como
una fila en los resultados, lo que crea una especie de "rollos" o
niveles de resumen.
▪ CUBE: Esta operación genera todas las combinaciones posibles
de agrupaciones, creando una especie de "cubo" de resumen.
Proporciona una visión completa de los datos y permite calcular
totales para todas las combinaciones posibles de columnas
agrupadas.
Ejemplo de ROLLUP:

Figura N° 71 Operación ROLLUP

En este ejemplo, se calculan sumas de salario para cada combinación de


departamento y puesto, así como totales por departamento y totales
generales.

2. Conjuntos de Agrupación (GROUPING SETS):


▪ GROUPING SETS permite definir múltiples niveles de agrupación
en una sola consulta, sin necesidad de usar ROLLUP o CUBE.
Puedes especificar explícitamente las combinaciones de columnas
que deseas agregar en diferentes niveles de agrupación.
▪ Esto es útil cuando deseas obtener un control más granular sobre
los niveles de agregación y seleccionar qué resúmenes específicos
deseas en el resultado.
Ejemplo de GROUPING SETS:

Figura N° 72 Ejemplo de GROUPING SETS

72
Programación para Desarrollo de Software With Oracle

En este ejemplo, se generan tres niveles de resumen: por departamento


y puesto, por departamento y un total general.

El uso de operaciones de acumulación y conjuntos de agrupación es


especialmente útil cuando necesitas crear informes complejos con múltiples
niveles de resumen y deseas tener un control preciso sobre los resultados.
Estas características avanzadas de Oracle te permiten generar análisis
detallados y jerárquicos de tus datos de manera eficiente en una sola
consulta SQL.

✓ Uso de operadores de conjuntos

Son utilizados en consultas SQL para realizar operaciones de conjuntos en


los resultados de consultas. Estos operadores permiten combinar, comparar
y manipular conjuntos de datos devueltos por las consultas.

1. UNION:
▪ El operador UNION se utiliza para combinar los resultados de dos
o más consultas en un solo conjunto de resultados. Elimina
automáticamente duplicados y devuelve un conjunto de resultados
único que incluye todas las filas de las consultas combinadas.
▪ Ejemplo de UNION:

Figura N° 73 Operador UNION

2. UNION ALL:
▪ El operador UNION ALL realiza una operación similar a UNION,
pero no elimina duplicados. Devuelve todas las filas de las
consultas combinadas, incluyendo duplicados si existen.
▪ Ejemplo de UNION ALL:

Figura N° 74 Operador UNION ALL

73
Programación para Desarrollo de Software With Oracle

3. INTERSECT:
El operador INTERSECT se utiliza para obtener las filas comunes que
aparecen en dos o más conjuntos de resultados. Devuelve solo las filas
que se encuentran en todos los conjuntos de resultados combinados.
Ejemplo de INTERSECT:

Figura N° 75 Operador INTERSECT

4. MINUS (EXCEPT en algunos sistemas):


▪ El operador MINUS (o EXCEPT en algunos sistemas) se utiliza
para obtener las filas que están en el primer conjunto de resultados
pero no en el segundo conjunto de resultados. Devuelve las filas
que son exclusivas del primer conjunto.
▪ Ejemplo de MINUS:

Figura N° 76 Operador MINUS

Estos operadores de conjuntos son útiles cuando necesitas combinar,


comparar o manipular conjuntos de datos en tus consultas SQL. Puedes
utilizarlos para realizar operaciones de conjuntos avanzadas en las filas
resultantes de tus consultas y obtener resultados específicos de acuerdo a
tus necesidades.

• Subconsultas.

Las subconsultas son consultas SQL que se incluyen dentro de otra consulta
principal para recuperar datos específicos que se utilizarán en la consulta principal.
Estas subconsultas se pueden utilizar para realizar consultas más complejas y
obtener resultados más precisos en Oracle y otros sistemas de gestión de bases de
datos relacionales.

74
Programación para Desarrollo de Software With Oracle

✓ Fundamentos de las subconsultas


▪ Una subconsulta es una consulta SQL anidada dentro de otra consulta
(consulta principal).
▪ Las subconsultas se utilizan para recuperar un conjunto de resultados
que se utilizará en la condición de la consulta principal para filtrar o
comparar datos.
▪ Las subconsultas pueden aparecer en diversas partes de una
consulta, como en una cláusula WHERE, una cláusula FROM o
incluso en una cláusula SELECT.

✓ Subconsultas de una sola fila


▪ Las subconsultas de una sola fila devuelven un solo valor o fila como
resultado.
▪ Son comunes en situaciones donde necesitas comparar un valor con
un solo valor de otra tabla o realizar una acción basada en un valor
específico.
Ejemplo de subconsulta de una sola fila:

Figura N° 77 Ejemplo de subconsulta de una sola fila

En este ejemplo, la subconsulta de una sola fila encuentra el salario máximo


y se compara con el salario de los empleados.

✓ Subconsultas de varias filas


▪ Las subconsultas de varias filas devuelven un conjunto de resultados
con múltiples filas.
▪ Se utilizan cuando necesitas comparar o filtrar datos basados en un
conjunto de resultados completo, como una lista de valores o
registros.

Ejemplo de subconsulta de varias filas:

Figura N° 78 Ejemplo de subconsulta de varias filas

75
Programación para Desarrollo de Software With Oracle

En este ejemplo, la subconsulta de varias filas devuelve los IDs de


departamento en Nueva York para filtrar los empleados en esos
departamentos.

✓ Subconsultas correlacionadas
▪ Las subconsultas correlacionadas son subconsultas que hacen
referencia a una columna de la tabla de la consulta principal en su
cláusula WHERE.
▪ Se utilizan para obtener resultados basados en datos relacionados en
la consulta principal.
Ejemplo de subconsulta correlacionada:

Figura N° 79 Ejemplo de subconsulta correlacionada

En este ejemplo, la subconsulta correlacionada compara el salario de un


empleado con el salario promedio de su departamento.

Las subconsultas son una característica poderosa en Oracle que te permite realizar
consultas más complejas y adaptadas a tus necesidades específicas, ya que
puedes utilizar los resultados de una consulta dentro de otra. Puedes combinar
diferentes tipos de subconsultas para lograr resultados precisos y personalizados
en tus consultas SQL.

76
Programación para Desarrollo de Software With Oracle

TAREA N°08

REALIZA OPERACIONES BÁSICAS Y COMPLEJAS

• DML.

Dentro de Oracle y otros sistemas de gestión de bases de datos relacionales, las


declaraciones DML (Data Manipulation Language) se utilizan para manipular los
datos en una base de datos. Aquí tienes información sobre las declaraciones DML
relacionadas con la inserción de datos, la actualización de valores y la eliminación
de filas, así como sobre los valores predeterminados, la fusión y las inserciones de
tablas múltiples:

✓ INSERTAR declaraciones
▪ La declaración INSERT se utiliza para agregar nuevas filas de datos
a una tabla.
▪ Puedes especificar los valores a insertar en una fila utilizando la
sintaxis VALUES o utilizando una subconsulta para recuperar los
valores de otra tabla o fuentes externas.
Ejemplo de INSERT:

Figura N° 80 Ejemplo de INSERT

En este ejemplo, estamos insertando una nueva fila en la tabla "empleados"


con valores específicos para las columnas "nombre", "salario" y
"departamento_id".

✓ Actualización de valores de columna y eliminación de filas


▪ La declaración UPDATE se utiliza para modificar los valores de una o
más columnas en filas existentes de una tabla.
▪ La declaración DELETE se utiliza para eliminar una o varias filas de
una tabla.
▪ Ambas declaraciones pueden incluir una cláusula WHERE para
especificar las filas que se deben actualizar o eliminar.

77
Programación para Desarrollo de Software With Oracle

Ejemplo de UPDATE:

Figura N° 81 Ejemplo de UPDATE

En este ejemplo, estamos actualizando los salarios de los empleados en el


departamento con ID 101.

Ejemplo de DELETE:

Figura N° 82 Ejemplo de DELETE

En este ejemplo, estamos eliminando las filas de la tabla "empleados" donde


el salario es inferior a 30,000.

✓ Valores PREDETERMINADOS, FUSIÓN e inserciones de tablas múltiples


▪ Los valores predeterminados son valores que se asignan
automáticamente a una columna si no se proporciona un valor durante
una inserción.
▪ La fusión (MERGE) es una declaración que combina operaciones de
inserción, actualización y eliminación en función de una condición de
coincidencia.
▪ Las inserciones de tablas múltiples se utilizan para insertar datos en
varias tablas en una sola declaración INSERT, generalmente cuando
hay una relación entre las tablas.

Ejemplo de valores predeterminados:

Figura N° 83 Ejemplo de valores predeterminados

78
Programación para Desarrollo de Software With Oracle

En este ejemplo, la columna "salario" tiene un valor predeterminado de 0 si


no se especifica ningún valor durante la inserción.

Ejemplo de fusión:

Figura N° 84 Ejemplo de fusión

Este ejemplo muestra una declaración MERGE que actualiza o inserta datos
en la tabla "objetivo" basándose en datos de la tabla "fuente".

Ejemplo de inserción de tablas múltiples:

Figura N° 85 Ejemplo de inserción de tablas múltiples

En este ejemplo, estamos insertando datos en dos tablas diferentes ("tabla1"


y "tabla2") a partir de una consulta en "tabla3".

Estas declaraciones DML son fundamentales para manipular y gestionar los datos
en una base de datos Oracle, permitiéndote agregar, actualizar y eliminar registros
según sea necesario. Además, los valores predeterminados, la fusión y las
inserciones de tablas múltiples ofrecen flexibilidad en la forma en que trabajas con
los datos y mantienes la integridad de la base de datos.

79
Programación para Desarrollo de Software With Oracle

• DDL.

En Oracle y otros sistemas de gestión de bases de datos relacionales, el lenguaje


de definición de datos (DDL, por sus siglas en inglés) se utiliza para crear, modificar
y gestionar la estructura de las tablas en una base de datos.

✓ Crear tablas

▪ La creación de tablas en Oracle se realiza utilizando la declaración


CREATE TABLE.

▪ Para crear una tabla, debes especificar un nombre para la tabla y las
definiciones de columnas, incluyendo el nombre de la columna y el
tipo de datos que contendrá.

Ejemplo de creación de tabla:

Figura N° 86 Función de creación de tabla

En este ejemplo, estamos creando una tabla llamada "empleados" con tres
columnas: "empleado_id," "nombre" y "salario." La columna "empleado_id"
se define como la clave primaria.

✓ Uso de tipos de datos

▪ Oracle admite una variedad de tipos de datos que puedes utilizar al


definir las columnas de una tabla. Algunos ejemplos comunes de tipos
de datos incluyen NUMBER, VARCHAR2, DATE, CHAR, CLOB,
BLOB y más.

▪ Debes elegir el tipo de datos adecuado para cada columna en función


del tipo de datos que contendrá y de los requisitos de almacenamiento.

80
Programación para Desarrollo de Software With Oracle

Ejemplo de uso de tipos de datos:

Figura N° 87 Ejemplo de uso de tipos de datos

En este ejemplo, estamos utilizando varios tipos de datos, como NUMBER


para "estudiante_id" y DATE para "fecha_nacimiento."

✓ Modificar una tabla


▪ Para modificar una tabla existente en Oracle, puedes utilizar las
declaraciones DDL como ALTER TABLE.
▪ Puedes realizar diversas modificaciones, como agregar, eliminar o
modificar columnas, cambiar restricciones, agregar índices, entre
otras.
Ejemplo de modificación de tabla para agregar una columna:

Figura N° 88 Ejemplo de modificación de tabla para agregar una columna

En este ejemplo, estamos agregando una nueva columna llamada


"fecha_contrato" a la tabla "empleados."
También puedes utilizar ALTER TABLE para realizar otras operaciones,
como eliminar una columna, cambiar el tipo de datos de una columna,
agregar restricciones o realizar otras modificaciones en la estructura de la
tabla según tus necesidades.
La capacidad de crear y modificar tablas es esencial para diseñar y mantener una
base de datos eficiente y adaptable. Debes tener en cuenta las necesidades de tu
aplicación y el modelo de datos para diseñar las tablas adecuadamente y utilizar los
tipos de datos apropiados. Además, es importante utilizar las declaraciones DDL de
forma cuidadosa para mantener la integridad y la consistencia de la base de datos a
lo largo del tiempo.

81
Programación para Desarrollo de Software With Oracle

• Restricciones.

✓ Introducción a las restricciones; Restricciones NO NULAS y ÚNICAS

En Oracle y otros sistemas de gestión de bases de datos relacionales, las


restricciones son reglas que se aplican a las columnas de una tabla para
garantizar la integridad de los datos y mantener la consistencia de la base de
datos. Las restricciones permiten definir reglas y condiciones que deben
cumplirse cuando se insertan, actualizan o eliminan registros en una tabla.
Aquí tienes información sobre dos tipos comunes de restricciones:
restricciones NO NULAS y restricciones ÚNICAS.

1. Restricciones NO NULAS (NOT NULL):


▪ Una restricción NO NULA asegura que un campo (columna) en una
tabla no puede contener valores nulos (sin valor).
▪ Cuando se define una columna con una restricción NOT NULL,
cada fila debe contener un valor válido en esa columna; de lo
contrario, la inserción o actualización se rechaza.
Ejemplo de definición de una columna con restricción NOT NULL:

Figura N° 89 Ejemplo de definición de una columna con restricción NOT NULL

En este ejemplo, tanto la columna "nombre" como la columna "salario"


tienen restricciones NOT NULL, lo que significa que no se pueden dejar
en blanco en ninguna fila de la tabla.

2. Restricciones ÚNICAS (UNIQUE):


▪ Una restricción ÚNICA garantiza que los valores en una columna
(o conjunto de columnas) sean únicos en todas las filas de la tabla.
▪ Puedes aplicar restricciones UNIQUE a una o más columnas para
asegurarte de que los datos en esas columnas no tengan
duplicados.

82
Programación para Desarrollo de Software With Oracle

Ejemplo de definición de una columna con restricción UNIQUE:

Figura N° 90 Ejemplo de definición de una columna con restricción UNIQUE

En este ejemplo, tanto la columna "nombre" como la columna


"numero_serie" tienen restricciones UNIQUE, lo que garantiza que no
puede haber dos productos con el mismo nombre o número de serie en
la tabla.

El uso de restricciones NO NULAS y restricciones ÚNICAS es fundamental


para garantizar la integridad de los datos en una base de datos Oracle. Al
aplicar estas restricciones, puedes evitar la inserción de datos incorrectos o
duplicados, lo que mejora la calidad de los datos y simplifica la gestión de la
base de datos.

✓ Restricciones de PRIMARY KEY, FOREIGN KEY y CHECK

Las restricciones son reglas que se aplican a las columnas de una tabla en
una base de datos Oracle para garantizar la integridad de los datos y
mantener la consistencia de la base de datos. Aquí tienes información sobre
varios tipos de restricciones adicionales además de las restricciones NO
NULAS y ÚNICAS, así como el manejo de restricciones en Oracle:

1. Restricciones de PRIMARY KEY:


▪ Una restricción PRIMARY KEY garantiza que los valores en una o más
columnas sean únicos en todas las filas de la tabla y que no puedan
contener valores nulos.
▪ La restricción PRIMARY KEY se utiliza para definir una clave primaria
para una tabla, que identifica de forma única cada fila en la tabla.

83
Programación para Desarrollo de Software With Oracle

Ejemplo de definición de una restricción PRIMARY KEY:

Figura N° 91 Ejemplo de definición de una restricción PRIMARY KEY

En este ejemplo, la columna "estudiante_id" se define como la clave primaria


de la tabla "estudiantes".

2. Restricciones de FOREIGN KEY:


▪ Una restricción FOREIGN KEY se utiliza para establecer una relación
entre dos tablas mediante una columna común. La columna que se
relaciona con la clave primaria de otra tabla se llama clave foránea.
▪ La restricción FOREIGN KEY garantiza que los valores en la columna
clave foránea coincidan con los valores en la columna de clave
primaria de la tabla relacionada o sean nulos.

Ejemplo de definición de una restricción FOREIGN KEY:

Figura N° 92 Ejemplo de definición de una restricción FOREIGN KEY

En este ejemplo, la columna "cliente_id" en la tabla "pedidos" está


relacionada con la columna de clave primaria "cliente_id" en la tabla
"clientes".
3. Restricciones CHECK:
▪ Una restricción CHECK se utiliza para especificar una condición que
deben cumplir los valores en una columna. Si un valor no cumple con
la condición especificada, se rechazará la inserción o actualización.

84
Programación para Desarrollo de Software With Oracle

▪ Puedes utilizar restricciones CHECK para aplicar reglas de negocio


personalizadas a tus datos.
Ejemplo de definición de una restricción CHECK:

Figura N° 93 Ejemplo de definición de una restricción CHECK

En este ejemplo, la restricción CHECK garantiza que el valor de la columna


"salario" sea siempre mayor que cero.

Las restricciones en Oracle son herramientas esenciales para garantizar la


calidad y la integridad de los datos en una base de datos. Cada tipo de
restricción tiene un propósito específico, como garantizar la unicidad,
establecer relaciones entre tablas o aplicar reglas de negocio. Es importante
utilizar restricciones adecuadamente en el diseño de bases de datos para
mantener la integridad de los datos y garantizar que los datos sean precisos
y coherentes.

✓ Manejo de restricciones
▪ Puedes agregar restricciones cuando creas una tabla usando la
declaración CREATE TABLE o modificar una tabla existente para
agregar o eliminar restricciones utilizando la declaración ALTER
TABLE.
▪ También puedes habilitar o deshabilitar restricciones temporalmente
según sea necesario. Esto puede ser útil durante la carga inicial de
datos o para realizar cambios en la estructura de la tabla.

Ejemplo de habilitación y deshabilitación de una restricción:

Figura N° 94 Ejemplo de habilitación y deshabilitación de una restricción

85
Programación para Desarrollo de Software With Oracle

En este ejemplo, estamos deshabilitando la restricción "salario_minimo" en


la tabla "empleados".

• Puntos de vista.

En Oracle, una vista es una consulta almacenada que se representa como una tabla
virtual. Las vistas permiten a los usuarios acceder y consultar datos de una o más
tablas de una manera simplificada y personalizada.

✓ Creación de vistas
▪ Para crear una vista en Oracle, debes utilizar la declaración CREATE
VIEW.
▪ Una vista se basa en una consulta SQL que selecciona y proyecta
datos de una o más tablas.
Ejemplo de creación de una vista:

Figura N° 95 Ejemplo de creación de una vista

En este ejemplo, estamos creando una vista llamada "vista_empleados" que


muestra los empleados cuyos salarios son mayores a 50,000.

✓ Operaciones y vistas de DML


▪ Puedes realizar operaciones de manipulación de datos (DML) en una
vista, como INSERT, UPDATE y DELETE, siempre que la vista cumpla
con ciertas condiciones.
▪ Para que una vista sea actualizable, debe cumplir con las siguientes
condiciones: La vista debe basarse en una sola tabla, no en una
consulta compleja, La vista debe seleccionar columnas que sean parte
de la clave primaria de la tabla base Y No debe haber expresiones
complejas, agregaciones ni funciones definidas por el usuario en la
vista.

86
Programación para Desarrollo de Software With Oracle

Ejemplo de actualización de datos en una vista:

Figura N° 96 Ejemplo de actualización de datos en una vista

En este ejemplo, estamos actualizando el salario de un empleado a través


de la vista.

✓ Administrar vistas
▪ Puedes modificar o eliminar vistas existentes utilizando las
declaraciones ALTER VIEW y DROP VIEW, respectivamente.
▪ También puedes renombrar una vista utilizando la declaración
RENAME.
▪ Para modificar una vista, debes tener los privilegios necesarios para
hacerlo.
Ejemplo de modificación y eliminación de una vista:

Figura N° 97 Ejemplo de modificación y eliminación de una vista

En este ejemplo, estamos modificando y luego eliminando la vista


"vista_empleados."

Las vistas son útiles para simplificar el acceso a los datos y personalizar la
presentación de la información a los usuarios. Puedes crear vistas basadas en
consultas complejas y luego permitir que los usuarios realicen operaciones DML en
esas vistas como si fueran tablas reales. Sin embargo, es importante tener en
cuenta las restricciones de actualización de vistas y garantizar que las vistas sean
adecuadas para los propósitos deseados.

87
Programación para Desarrollo de Software With Oracle

TAREA N° 09

REALIZAR LA INTRODUCCIÓN A LOS TIPOS DE DATOS Y DESARROLLO DE


SOFTWARE EN JAVA.

• Acerca del curso de Java.

Java es conocido por su portabilidad, lo que significa que los programas escritos en
Java pueden ejecutarse en una variedad de plataformas sin necesidad de
modificaciones significativas. Esto lo hace esencial en el desarrollo de aplicaciones
de software, desde aplicaciones de escritorio hasta aplicaciones móviles y sistemas
empresariales.

Además, ten en cuenta que un curso de Java proporciona una base sólida en la
programación Java y puede ser un punto de partida esencial para aquellos que
deseen convertirse en desarrolladores de software o mejorar sus habilidades de
programación en un entorno profesional y versátil.

• Una breve historia de Java.

La historia de Java es una interesante narrativa en el mundo de la informática y la


programación. Mencionaremos los eventos claves en la historia de Java, a
continuación:

1. Origen en Sun Microsystems: Java fue desarrollado en la década de 1990 por


un equipo de ingenieros liderado por James Gosling en Sun Microsystems, una
compañía de tecnología que ya no existe. La idea detrás de Java era crear un
lenguaje de programación que pudiera ser utilizado en una amplia variedad de
dispositivos y sistemas, conocido entonces como "Write Once, Run Anywhere"
(Escribe una vez, ejecuta en cualquier lugar).

2. Lanzamiento público en 1995: La primera versión pública de Java, conocida


como JDK 1.0 (Java Development Kit 1.0), fue lanzada en mayo de 1995. Esto
marcó el inicio de la disponibilidad de Java para los desarrolladores de todo el
mundo.

3. Auge en el desarrollo web: A mediados y finales de la década de 1990, Java se


convirtió en un lenguaje muy popular para el desarrollo web. La tecnología
JavaServer Pages (JSP) y Servlets permitieron la creación de aplicaciones web
dinámicas y escalables.

88
Programación para Desarrollo de Software With Oracle

4. Adquisición por Oracle: En 2010, Oracle Corporation adquirió Sun Microsystems,


lo que hizo que Java quedara bajo el control de Oracle. Esto tuvo implicaciones
significativas para el desarrollo y la licencia de Java.

5. Desarrollo de nuevas versiones: Java ha continuado evolucionando con el


tiempo, con el lanzamiento de nuevas versiones. A partir de 2017, Oracle cambió
la cadencia de lanzamiento de Java a un modelo más regular, con nuevas
versiones cada seis meses. Además, se introdujo un nuevo esquema de
numeración en el que las versiones principales se lanzan cada tres años,
marcando hitos importantes en la evolución del lenguaje.

6. OpenJDK y licencia: Oracle adoptó un enfoque más estricto en cuanto a la


licencia de Java, lo que llevó al crecimiento de OpenJDK, una implementación
de código abierto de la plataforma Java. OpenJDK se ha convertido en la base
para muchas distribuciones de Java en la actualidad.

7. Java en la actualidad: Java sigue siendo uno de los lenguajes de programación


más populares y ampliamente utilizados en el mundo, especialmente en el
desarrollo de aplicaciones empresariales, aplicaciones Android y servicios en la
nube.

La historia de Java es una historia de éxito en la informática debido a su versatilidad,


portabilidad y capacidad para adaptarse a las cambiantes demandas de la industria
de la tecnología a lo largo de los años. Aunque ha habido controversias y desafíos
a lo largo de su historia, Java sigue siendo una herramienta esencial en el mundo
del desarrollo de software.

• Configuración de Java.

La configuración de Java se refiere a la configuración del entorno de desarrollo y


ejecución de aplicaciones escritas en el lenguaje de programación Java. Esta
configuración puede ser necesaria tanto para los desarrolladores que están
escribiendo código Java como para los usuarios que desean ejecutar aplicaciones
Java en sus sistemas. Proporcionaremos información sobre algunos aspectos clave
de la configuración de Java:

1. Instalación de Java: Antes de configurar Java, debes instalar una versión del Kit
de Desarrollo de Java (JDK) en tu sistema. El JDK incluye el compilador Java
(javac) y otras herramientas necesarias para desarrollar aplicaciones Java. Los
usuarios finales que solo deseen ejecutar aplicaciones Java necesitarán instalar
la Máquina Virtual de Java (JVM) en sus sistemas.

89
Programación para Desarrollo de Software With Oracle

2. Variables de entorno: Para que el sistema y las aplicaciones reconozcan la


instalación de Java, es necesario configurar las variables de entorno adecuadas.
Esto incluye configurar la variable de entorno `PATH` para que apunte al
directorio binario de Java y configurar `JAVA_HOME` para señalar al directorio
de instalación de Java.

3. Versiones de Java: Java tiene múltiples versiones, y es importante configurar la


versión correcta para tu proyecto. Puedes usar la herramienta `java` seguida de
la opción `-version` para verificar la versión de Java instalada en tu sistema.
También puedes usar la herramienta `update-alternatives` en sistemas basados
en Unix/Linux para configurar la versión predeterminada de Java.

4. Configuración de IDEs: Si estás utilizando un Entorno de Desarrollo Integrado


(IDE) como Eclipse, IntelliJ IDEA o NetBeans, deberás configurar el IDE para
que utilice la versión de JDK deseada. Esto se hace típicamente en la
configuración del IDE.

5. Configuración de variables de entorno para proyectos: Dentro de proyectos


específicos, puedes configurar variables de entorno personalizadas o
configuraciones de compilación para utilizar una versión específica de Java o
establecer otras opciones específicas.

6. Manejo de la memoria: Para aplicaciones Java que requieran una cantidad


significativa de memoria, es posible que debas configurar la asignación de
memoria máxima (Xmx) y mínima (Xms) utilizando las opciones de línea de
comandos al ejecutar la aplicación. Esto es especialmente importante para
aplicaciones Java empresariales y servidores.

7. Seguridad: Java tiene un sistema de seguridad incorporado que puede requerir


configuración adicional para permitir o restringir ciertas acciones o accesos a
recursos del sistema. Esto se controla mediante políticas de seguridad y archivos
de políticas de seguridad.

8. Actualizaciones y parches: Mantener Java actualizado es esencial para la


seguridad de tu sistema. Debes estar atento a las actualizaciones y parches de
seguridad lanzados por Oracle o la distribución de Java que estés utilizando.

La configuración de Java puede variar según el sistema operativo y las necesidades


específicas de tu proyecto, por lo que es importante consultar la documentación
oficial de Java y las guías de configuración de tu plataforma para obtener
instrucciones detalladas sobre cómo configurar Java de manera adecuada.

90
Programación para Desarrollo de Software With Oracle

• Proceso de desarrollo de software.

El proceso de desarrollo de software en Java es similar al proceso de desarrollo de


software en otros lenguajes de programación, pero se enfoca en el uso de la
plataforma Java y sus herramientas específicas. Aquí te proporciono una visión
general del proceso de desarrollo de software en Java:

1. Requisitos y análisis: El proceso comienza con la identificación de los requisitos


del software. Esto implica comprender las necesidades del usuario, los objetivos
del proyecto y las funcionalidades requeridas. El análisis de requisitos es una
fase crucial en la que se documentan los requisitos de manera clara y precisa.

2. Diseño: En esta etapa, se crea el diseño arquitectónico y de alto nivel del


software. Se determina la estructura general del sistema, los componentes
principales y las relaciones entre ellos. También se pueden definir diagramas de
clases y diagramas de secuencia para modelar la lógica del programa.

3. Desarrollo: En esta fase, los desarrolladores escriben el código fuente del


software en Java. Esto implica la implementación de las clases, métodos y lógica
de negocio necesarios para cumplir con los requisitos. Es importante seguir las
mejores prácticas de programación y utilizar patrones de diseño cuando sea
apropiado.

4. Pruebas: Una vez que se ha desarrollado una parte del software, se procede a
las pruebas. Las pruebas pueden incluir pruebas unitarias para probar unidades
individuales de código, pruebas de integración para garantizar que los diferentes
componentes funcionen juntos y pruebas de aceptación para verificar que el
software cumple con los requisitos del usuario.

5. Depuración y refinamiento: Durante las pruebas, es común encontrar errores y


problemas que deben solucionarse. Los desarrolladores depuran el código,
corrigen errores y realizan mejoras según sea necesario.

6. Despliegue: Una vez que el software ha pasado con éxito las pruebas y está listo
para su lanzamiento, se procede al despliegue. Esto implica la instalación del
software en un entorno de producción, como un servidor web o una aplicación
de escritorio.

7. Mantenimiento: Después del lanzamiento, el software requiere mantenimiento


continuo para corregir errores, aplicar actualizaciones y agregar nuevas
funcionalidades según las necesidades cambiantes del usuario.

91
Programación para Desarrollo de Software With Oracle

8. Gestión de versiones: Es importante utilizar herramientas de control de


versiones, como Git, para mantener un registro de los cambios en el código
fuente a lo largo del tiempo y facilitar la colaboración en equipos de desarrollo.

9. Documentación: Durante todo el proceso, es esencial mantener una


documentación adecuada que describa el diseño, los requisitos, las pruebas y
otros aspectos del proyecto. La documentación es valiosa para futuros
desarrolladores y para garantizar la comprensión del sistema.

10. Seguridad: Asegurarse de que el software Java sea seguro es fundamental. Esto
implica aplicar prácticas de seguridad, proteger contra vulnerabilidades
conocidas y seguir las mejores prácticas de seguridad en el desarrollo.

Es importante destacar que el proceso de desarrollo de software es iterativo y puede


adaptarse según las necesidades del proyecto. Además, existen metodologías de
desarrollo de software, como Scrum o DevOps, que proporcionan marcos de trabajo
específicos para la gestión y el desarrollo de proyectos en Java y otros lenguajes.

• ¿Qué hace mi programa?

A continuación, explicaremos y describiremos la funcionalidad y el comportamiento


de un programa. Para determinar lo que hace un programa Java, es importante
realizar un análisis del código fuente, identificar las instrucciones y algoritmos
utilizados, y comprender cómo interactúan los diferentes componentes.

1. Leer y Comprender el Código: Examina el código fuente de tu programa línea


por línea para entender las declaraciones, expresiones y estructuras utilizadas.

2. Identificar Objetivos y Funcionalidad: ¿Cuál es el propósito principal de tu


programa? Identifica sus objetivos y funcionalidad principal. Por ejemplo, puede
ser un programa que calcule una suma, lea y escriba archivos, realice
operaciones en una base de datos, etc.

3. Revisa Comentarios y Documentación: A menudo, los programadores incluyen


comentarios en el código para explicar su lógica y propósito. Consulta estos
comentarios para obtener una visión más clara de lo que hace el programa.

4. Prueba el Programa: Ejecuta el programa y proporciona datos de entrada para


observar su comportamiento. Comprueba si produce los resultados esperados y
si se cumplen sus objetivos.

5. Divide en Funciones o Métodos: Si tu programa es grande, considera dividirlo en


funciones o métodos más pequeños, cada uno con una tarea específica. Esto
facilita la comprensión y el análisis de lo que hace cada parte del programa.

92
Programación para Desarrollo de Software With Oracle

6. Depuración: Utiliza herramientas de depuración para rastrear el flujo de


ejecución y observar los valores de las variables durante la ejecución del
programa. Esto puede ayudarte a identificar problemas y entender cómo se
desarrolla la lógica del programa.

7. Documentación y Comunicación: Documenta tu código de manera clara y


concisa para que otros desarrolladores (y tú mismo en el futuro) puedan
entender fácilmente lo que hace el programa. Comunicar claramente la
funcionalidad del programa es una buena práctica de programación.

8. Pruebas Unitarias y Pruebas de Integración: Implementa pruebas unitarias y de


integración para verificar que cada componente del programa funcione según lo
previsto y que todas las partes se integren correctamente.

9. Revisión de Código: Si trabajas en equipo, realiza revisiones de código con


colegas para obtener diferentes perspectivas y asegurarte de que todos
comprendan lo que hace el programa.

• Introducción a los conceptos de programación orientada a objetos.

La programación orientada a objetos (POO) es un paradigma de programación


fundamental que se utiliza ampliamente en Java y en muchos otros lenguajes de
programación. A continuación, mostraremos algunos conceptos de programación
orientada a objetos en el contexto de Java:

1. Objetos:
✓ En la POO, un objeto es una instancia concreta de una clase.
✓ Un objeto tiene atributos (variables de instancia) y métodos (funciones)
que pueden actuar sobre esos atributos.
✓ Por ejemplo, en un programa de gestión de biblioteca, un libro podría ser
un objeto con atributos como título, autor y año de publicación.

2. Clases:
✓ Una clase es un plano o plantilla que define la estructura y el
comportamiento de los objetos.
✓ Las clases son los moldes para crear objetos.
✓ En Java, se define una clase utilizando la palabra clave `class`.
✓ Por ejemplo, puedes tener una clase `Libro` que define la estructura y el
comportamiento de todos los libros en tu programa.

3. Encapsulación:
✓ La encapsulación es el principio de ocultar los detalles de implementación
de un objeto y proporcionar una interfaz clara y controlada para
interactuar con ese objeto.

93
Programación para Desarrollo de Software With Oracle

✓ En Java, se logra mediante el uso de modificadores de acceso como


`private`, `public`, `protected`, etc.
✓ La encapsulación ayuda a proteger los datos y garantiza que se mantenga
la integridad de los objetos.

4. Herencia:
✓ La herencia es un concepto que permite crear nuevas clases basadas en
clases existentes.
✓ Una subclase hereda atributos y métodos de su superclase (clase base).
✓ La herencia promueve la reutilización de código y la creación de
jerarquías de clases.
✓ En Java, se implementa con la palabra clave `extends`.
✓ Por ejemplo, puedes tener una subclase `Novela` que hereda de la clase
`Libro`.

5. Polimorfismo:
✓ El polimorfismo permite que objetos de diferentes clases se comporten de
manera similar a través de una interfaz común o una jerarquía de clases.
✓ Los objetos pueden responder a llamadas de métodos de manera
diferente según su tipo real.
✓ En Java, se logra a través de la herencia y la implementación de
interfaces.

6. Abstracción:
✓ La abstracción es el proceso de simplificar la complejidad al mostrar solo
los aspectos esenciales de un objeto.
✓ En Java, las clases y las interfaces son ejemplos de abstracciones que
modelan conceptos del mundo real de manera simplificada.

7. Instanciación:
✓ La instanciación es el proceso de crear un objeto a partir de una clase.
✓ En Java, se utiliza el operador `new` para crear una instancia de una
clase.
✓ Por ejemplo, `Libro miLibro = new Libro();` crea una instancia de la clase
`Libro`.

8. Composición:
✓ La composición es un concepto que permite construir objetos complejos
a partir de objetos más simples.

✓ Se basa en la idea de que un objeto puede contener otros objetos como


atributos.
✓ Esto permite diseñar sistemas más modularizados y flexibles.

94
Programación para Desarrollo de Software With Oracle

Java es un lenguaje de programación que se adhiere estrictamente a los principios


de la POO. Los conceptos de POO son fundamentales para comprender y
desarrollar aplicaciones Java efectivas y orientadas a objetos.

• ¿Qué es una variable?

En Java, una variable es un contenedor que se utiliza para almacenar datos que
pueden ser accedidos, manipulados y utilizados en un programa. Las variables se
utilizan para almacenar información temporalmente en la memoria de la
computadora y pueden tomar diversos tipos de datos, como números, texto, valores
booleanos, objetos y más.

1. Declaración de variables:
✓ Para utilizar una variable en Java, primero debes declararla. La
declaración de una variable especifica su tipo de datos y su nombre.
✓ Por ejemplo, para declarar una variable entera llamada `edad`, puedes
escribir: `int edad;`.

2. Inicialización de variables:
✓ Después de declarar una variable, generalmente es necesario asignarle
un valor inicial antes de utilizarla.
✓ Por ejemplo, puedes inicializar la variable `edad` con un valor como:
`edad = 30;` o declararla e inicializarla en una sola línea: `int edad = 30;`

3. Tipos de datos:
✓ Java es un lenguaje de programación con un sistema de tipos estáticos,
lo que significa que cada variable tiene un tipo de datos específico que
debe ser declarado.
✓ Algunos tipos de datos comunes en Java incluyen `int` (entero), `double`
(decimal de punto flotante), `String` (cadena de caracteres), `boolean`
(verdadero o falso), entre otros.
✓ Java también permite definir tipos de datos personalizados mediante
clases y objetos.

4. Ámbito de las variables:


✓ El ámbito de una variable es la región del código donde esa variable es
válida y puede utilizarse.
✓ Las variables locales tienen un ámbito limitado a un bloque de código,
como un método o una función.
✓ Las variables de instancia y de clase tienen un ámbito más amplio y están
relacionadas con objetos y clases, respectivamente.

95
Programación para Desarrollo de Software With Oracle

5. Nombres de variables:
Los nombres de variables en Java deben seguir ciertas reglas y convenciones:
✓ Deben comenzar con una letra, guion bajo (_) o el símbolo dólar ($).
✓ Pueden contener letras, números, guiones bajos y símbolos de dólar.
✓ No pueden ser una palabra reservada de Java (como `int`, `for`, `while`,
etc.).
✓ Se distingue entre mayúsculas y minúsculas (es decir, `miVariable` y
`mivariable` son diferentes).

6. Alcance de las variables:


✓ El alcance de una variable se refiere a la región del código en la que la
variable es visible y se puede acceder.
✓ Las variables locales tienen un alcance limitado al bloque de código en el
que se declaran.
✓ Las variables de instancia son visibles en toda la clase y pueden ser
accedidas por métodos dentro de la misma clase.
✓ Las variables de clase (estáticas) son compartidas entre todas las
instancias de una clase y se pueden acceder mediante el nombre de la
clase.

7. Uso de variables:
✓ Las variables se utilizan para almacenar valores temporales y realizar
operaciones en programas Java.
✓ Puedes asignar valores a variables, realizar cálculos con ellas, imprimir
sus valores y más.

Ejemplo de uso de variable en Java:

Figura N° 98 Ejemplo de uso de variable en Java

Una variable en Java es un contenedor que almacena datos y se utiliza para trabajar
con valores en un programa. Debes declarar, inicializar y utilizar variables según las
reglas y convenciones de Java para escribir código efectivo y legible.

96
Programación para Desarrollo de Software With Oracle

• Datos numéricos.

En Java, los datos numéricos son uno de los tipos de datos fundamentales que se
utilizan para representar valores numéricos. Los datos numéricos se dividen en
varias categorías, según el tipo de número que pueden representar y la cantidad de
memoria que ocupan. Aquí tienes información sobre los datos numéricos en Java:

1. Enteros (Integers):
✓ En Java, los números enteros se representan mediante los tipos de datos
`byte`, `short`, `int`, y `long`.
✓ `byte`: Almacena números enteros de 8 bits, con un rango de -128 a 127.
✓ `short`: Almacena números enteros de 16 bits, con un rango de -32,768 a
32,767.
✓ `int`: Almacena números enteros de 32 bits, con un rango de
aproximadamente -2.1 mil millones a 2.1 mil millones.}`long`: Almacena
números enteros de 64 bits, con un rango extremadamente amplio.

Ejemplo de declaración y asignación de variables enteras en Java:

Figura N° 99 Declaración y asignación de variables enteras

2. Números de Punto Flotante (Floating-Point Numbers):


✓ Los números de punto flotante se utilizan para representar valores con
decimales.
✓ En Java, los números de punto flotante se representan mediante los tipos
de datos `float` y `double`.
✓ `float`: Almacena números de punto flotante de 32 bits.
✓ `double`: Almacena números de punto flotante de 64 bits (es el tipo de
dato por defecto para números con decimales en Java).

Ejemplo de declaración y asignación de variables de punto flotante en Java:

Figura N° 100 Declaración y asignación de variables de punto flotante

97
Programación para Desarrollo de Software With Oracle

3. Operaciones Numéricas:
✓ Java proporciona una variedad de operaciones numéricas para trabajar
con datos numéricos, como suma, resta, multiplicación, división y más.
✓ Los operadores aritméticos comunes incluyen `+` (suma), `-` (resta), `*`
(multiplicación) y `/` (división).
✓ Puedes realizar operaciones numéricas tanto con enteros como con
números de punto flotante.

Ejemplo de operaciones numéricas en Java:

Figura N° 101 Operaciones numéricas

En Java, los datos numéricos son esenciales para realizar cálculos matemáticos y
representar valores numéricos en programas. Puedes utilizar diferentes tipos de
datos numéricos según tus necesidades y tener en cuenta las operaciones y
conversiones de tipo al trabajar con ellos.

• Datos textuales.

En Java, los datos textuales se utilizan para representar y manipular información de


texto, como palabras, frases y caracteres. Para trabajar con datos textuales en Java,
puedes utilizar principalmente el tipo de dato `String` y otros tipos de datos
relacionados con caracteres.

1. Tipo de Dato `String`:


✓ El tipo de dato `String` en Java se utiliza para representar cadenas de
caracteres o texto.

98
Programación para Desarrollo de Software With Oracle

✓ Las cadenas de texto son inmutables, lo que significa que no se pueden


cambiar una vez que se han creado. Cualquier operación de modificación
en una cadena de texto crea una nueva cadena.
✓ Para declarar y asignar una cadena de texto, puedes hacerlo de la
siguiente manera:

Figura N° 102 Declaración y asignación de cadena de texto

2. Concatenación de Cadenas:
✓ Puedes combinar o concatenar cadenas de texto utilizando el operador
`+`.
✓ También puedes utilizar el método `concat()` o el método `StringBuilder`
para realizar concatenaciones eficientes si necesitas realizar muchas
operaciones de concatenación.

Ejemplo de concatenación de cadenas:

Figura N° 103 Concatenación de cadenas

3. Operaciones con Cadenas:


✓ Java proporciona una variedad de métodos y operaciones para trabajar
con cadenas de texto, como la búsqueda de subcadenas, la obtención de
la longitud de una cadena, la conversión entre mayúsculas y minúsculas,
y más.
✓ Puedes utilizar métodos como `length()`, `substring()`, `toUpperCase()`,
`toLowerCase()`, `indexOf()`, `replace()`, etc., para manipular cadenas.

Ejemplo de operaciones con cadenas:

Figura N° 104 Operaciones con cadenas

99
Programación para Desarrollo de Software With Oracle

4. Caracteres y Arrays de Caracteres:


✓ Para trabajar con caracteres individuales, Java utiliza el tipo de dato
`char`.
✓ Puedes declarar y asignar caracteres como sigue:

Figura N° 105 Declaración y asignación de caracteres

✓ Java también permite representar una secuencia de caracteres como un


array de caracteres (`char[]`) y manipularlos directamente.

Ejemplo de declaración y asignación de un array de caracteres:

Figura N° 106 Declaración y asignación de un array de caracteres

5. Interacción con el Usuario:


✓ Para interactuar con el usuario a través de la entrada y salida estándar,
puedes utilizar la clase `Scanner` para leer cadenas de texto desde el
teclado y la clase `System.out` para imprimir mensajes en la consola.

Ejemplo de entrada y salida de texto con `Scanner` y `System.out`:

Figura N° 107 Entada y salida de texto

100
Programación para Desarrollo de Software With Oracle

6. Formateo de Cadenas:
✓ Puedes formatear cadenas de texto utilizando métodos como
`String.format()` o la clase `java.text.MessageFormat` para crear cadenas
con un formato específico.

Ejemplo de formateo de cadenas:

Figura N° 108 Formateo de cadenas

En Java, los datos textuales se gestionan principalmente utilizando el tipo de dato


`String`, que proporciona una amplia gama de operaciones y métodos para
manipular cadenas de texto. También puedes utilizar tipos de datos como `char` y
arrays de caracteres para trabajar con caracteres individuales o secuencias de
caracteres. El manejo de datos textuales es fundamental en la mayoría de las
aplicaciones Java para interactuar con el usuario y procesar información basada en
texto.

• Conversión entre tipos de dato.

En Java, la conversión entre tipos de datos, también conocida como "casting," es el


proceso de cambiar un valor de un tipo de dato a otro. Esto es útil cuando necesitas
utilizar un valor en un contexto que requiere un tipo de dato diferente al original.
Java admite dos tipos principales de conversión: conversión implícita y conversión
explícita (casting).

1. Conversión Implícita:
✓ La conversión implícita se produce automáticamente por el compilador
cuando no hay pérdida de datos y la conversión es segura.
✓ Por ejemplo, puedes asignar un valor `int` a una variable `double` sin
ningún problema, ya que no hay pérdida de precisión:

Figura N° 109 Conversión Implícita

101
Programación para Desarrollo de Software With Oracle

2. Conversión Explícita (Casting):


✓ La conversión explícita, o casting, se utiliza cuando necesitas convertir un
valor de un tipo de dato a otro de manera manual.
✓ Esto se hace colocando el tipo de dato al que deseas convertir entre
paréntesis antes del valor que deseas convertir.
✓ Por ejemplo, para convertir un `double` en un `int`, puedes hacerlo de la
siguiente manera:

Figura N° 110 Conversión Explícita

✓ Ten en cuenta que la conversión explícita puede resultar en pérdida de


datos si el valor original no puede ser representado con precisión en el
tipo de destino. En el ejemplo anterior, se perderá la parte decimal del
número.

3. Conversión entre Tipos Numéricos:


✓ Puedes realizar conversiones entre tipos numéricos, pero debes tener en
cuenta la posibilidad de pérdida de datos.
✓ Al convertir de un tipo de dato con mayor capacidad de almacenamiento
a uno con menor capacidad, es posible que se pierda información.

Ejemplo de conversión entre tipos numéricos:

Figura N° 111 Conversión entre tipos numéricos

4. Conversión desde y hacia `String`:


✓ Java permite convertir valores numéricos en cadenas de texto (`String`) y
viceversa utilizando métodos específicos.
✓ Para convertir un valor numérico a una cadena, puedes usar
`String.valueOf()` o la concatenación con una cadena vacía (`""`).
✓ Para convertir una cadena en un valor numérico, puedes usar métodos
como `Integer.parseInt()`, `Double.parseDouble()`, etc.

102
Programación para Desarrollo de Software With Oracle

Ejemplo de conversión entre `String` y tipos numéricos:

Figura N° 112 Conversión entre ‘String’ y tipos numéricos

5. Conversión entre Tipos de Objetos:


✓ Puedes realizar conversiones entre tipos de objetos en Java, pero estas
conversiones deben ser explícitas y generalmente requieren que los tipos
estén relacionados a través de herencia o interfaces.
✓ Puedes utilizar el casting para convertir un objeto de una subclase a una
superclase o viceversa.

Ejemplo de conversión entre tipos de objetos:

Figura N° 113 Conversión entre tipos de objetos

La conversión entre tipos de datos en Java es un proceso común y esencial en la


programación para adaptar los valores a diferentes contextos y tipos de datos. La
conversión implícita se realiza automáticamente cuando no hay pérdida de datos,
mientras que la conversión explícita (casting) se utiliza cuando se necesita una
conversión manual y puede resultar en pérdida de datos si no se hace
correctamente.

103
Programación para Desarrollo de Software With Oracle

TAREA N° 10

IMPLEMENTAR LAS CLASES DE BIBLIOTECAS Y MÉTODOS EN JAVA

• ¿Qué es un método?.

Un método es una colección de instrucciones o declaraciones que se agrupan juntas


para llevar a cabo una tarea específica. Los métodos son parte fundamental de la
programación orientada a objetos (POO) y se definen dentro de las clases. Cada
objeto creado a partir de una clase puede llamar a sus métodos para realizar
operaciones específicas.

1. Declaración de un método: Para declarar un método en Java, debes especificar


su firma, que incluye el nombre del método, los tipos de parámetros (si los tiene),
y el tipo de valor que devuelve el método (si es que devuelve algo). Aquí hay un
ejemplo de una declaración de método simple:

Figura N° 114 Declaración de método simple

2. Modificadores de acceso: Los métodos pueden tener modificadores de acceso


como `public`, `private`, `protected` o el predeterminado (ninguno), que
determinan desde dónde se puede acceder al método.

3. Parámetros: Los métodos pueden recibir cero o más parámetros como entrada.
Estos parámetros se declaran entre paréntesis después del nombre del método y
se utilizan en el cuerpo del método para realizar operaciones. En el ejemplo
anterior, el método "sumar" recibe dos parámetros enteros, "a" y "b".

4. Tipo de retorno: Un método puede devolver un valor utilizando la palabra clave


`return`. El tipo de valor que devuelve el método se especifica antes del nombre
del método. En el ejemplo anterior, el método "sumar" devuelve un valor entero.

5. Invocación de métodos: Para llamar a un método desde un objeto, se utiliza la


notación de punto.

104
Programación para Desarrollo de Software With Oracle

Por ejemplo:

Figura N° 115 Invocación por métodos

6. Métodos estáticos: En Java, también puedes definir métodos estáticos utilizando


la palabra clave `static`. Estos métodos pertenecen a la clase en lugar de a una
instancia específica y se pueden invocar utilizando el nombre de la clase. Por
ejemplo:

Figura N° 116 Métodos estáticos

7. Métodos sobrecargados: Puedes definir múltiples métodos con el mismo nombre


en una clase, siempre y cuando tengan diferentes tipos de parámetros o una
cantidad diferente de parámetros. Esto se conoce como sobrecarga de métodos.

Los métodos son bloques de código que se utilizan para realizar tareas específicas.

• Declaración import y paquetes.

La declaración `import` y los paquetes son conceptos relacionados que se utilizan


para organizar y gestionar las clases y recursos en una aplicación.

1. Paquetes (Packages):
Un paquete en Java es un mecanismo de organización para agrupar clases
relacionadas y otros recursos. Los paquetes se utilizan para evitar conflictos de
nombres y para proporcionar una estructura lógica y jerárquica a las clases y
recursos de una aplicación. Algunos puntos clave sobre los paquetes incluyen:

✓ Los paquetes se definen mediante la palabra clave `package` al principio


de un archivo fuente Java. Por ejemplo:

Figura N° 117 Paquetes en Java

105
Programación para Desarrollo de Software With Oracle

✓ Los nombres de los paquetes suelen seguir una convención de


nomenclatura inversa del dominio de la empresa (por ejemplo,
`com.ejemplo.miapp`). Esto ayuda a garantizar la unicidad de los nombres
de los paquetes.

✓ Los archivos fuente Java dentro de un paquete deben incluir una


declaración `package` que coincide con el nombre del paquete.

✓ Los paquetes pueden contener subpaquetes para organizar aún más las
clases y recursos. Por ejemplo, `com.ejemplo.miapp.util`.

2. Declaración `import`:
La declaración `import` se utiliza para permitir el acceso a clases y miembros de
clases que se encuentran en otros paquetes. Algunos puntos clave sobre la
declaración `import` incluyen:

✓ Para utilizar una clase de otro paquete en un archivo fuente Java, debes
importarla utilizando la declaración `import`. Por ejemplo:

Figura N° 118 Declaración ‘import’

✓ También es posible importar clases estáticas o miembros estáticos de una


clase utilizando la forma:

Figura N° 119 Declaración estática ‘import’

✓ La declaración `import` permite que el código sea más legible al evitar tener
que utilizar el nombre completo de la clase en cada referencia.

✓ Si no se importa una clase explícitamente con `import`, aún se puede


acceder a ella utilizando su nombre completo (nombre del paquete +
nombre de la clase) en el código.

✓ Java proporciona algunas importaciones implícitas para clases del paquete


`java.lang`, por lo que no es necesario importar clases como
`java.lang.String` o `java.lang.System`.

106
Programación para Desarrollo de Software With Oracle

Los paquetes y la declaración `import` son elementos fundamentales en Java para


organizar y gestionar las clases y recursos de una aplicación. Los paquetes ayudan
a evitar conflictos de nombres y proporcionan una estructura lógica, mientras que la
declaración `import` permite el acceso a clases de otros paquetes de manera más
conveniente.

• Clase String.

La clase `String` en Java es una de las clases más utilizadas y es fundamental en la


manipulación y representación de texto. La clase `String` está incluida en el paquete
`java.lang`, por lo que no es necesario importarla explícitamente, ya que se encuentra
automáticamente disponible en cualquier programa Java. Aquí tienes información
importante sobre la clase `String`:

1. Inmutabilidad: Una de las características más destacadas de la clase `String` en


Java es su inmutabilidad, lo que significa que una vez que se crea un objeto
`String`, su contenido no puede ser modificado. Cualquier operación que parezca
modificar una cadena en realidad crea una nueva cadena con los cambios, en
lugar de modificar la original. Esto tiene importantes implicaciones en la gestión
de cadenas en Java.

2. Creación de objetos String: Puedes crear objetos `String` en Java de varias


maneras, incluyendo:

✓ Mediante una literal de cadena: Por ejemplo, `String nombre = "Juan";`.


✓ Utilizando el constructor de la clase `String`: Por ejemplo, `String direccion
= new String("123 Calle Principal");`.

3. Métodos útiles: La clase `String` proporciona una amplia variedad de métodos


para realizar operaciones comunes en cadenas, como concatenación, búsqueda,
reemplazo, conversión de mayúsculas y minúsculas, y más. Algunos de los
métodos más utilizados incluyen:

✓ `length()`: Devuelve la longitud (número de caracteres) de la cadena.

✓ `charAt(int index)`: Devuelve el carácter en la posición especificada.

✓ `substring(int beginIndex)`: Devuelve una subcadena que comienza en el


índice especificado hasta el final de la cadena.

✓ `substring(int beginIndex, int endIndex)`: Devuelve una subcadena que


abarca desde el índice de inicio hasta el índice de finalización
especificados.

107
Programación para Desarrollo de Software With Oracle

✓ `concat(String str)`: Concatena otra cadena al final de la cadena actual.

✓ `equals(Object obj)`: Compara dos cadenas para determinar si tienen el


mismo contenido.

✓ `equalsIgnoreCase(String str)`: Compara dos cadenas sin tener en cuenta


las diferencias entre mayúsculas y minúsculas.

✓ `indexOf(String str)`: Devuelve la posición de la primera aparición de una


subcadena en la cadena actual.

✓ `replace(char oldChar, char newChar)`: Reemplaza todas las apariciones


de un carácter con otro carácter.

✓ `split(String regex)`: Divide la cadena en un arreglo de subcadenas basado


en un patrón de expresión regular.

4. Comparación de cadenas: Al comparar cadenas en Java, es importante utilizar el


método `equals()` (o `equalsIgnoreCase()` para comparaciones sin distinción
entre mayúsculas y minúsculas) en lugar del operador `==`, ya que `equals()`
compara el contenido de las cadenas, mientras que `==` compara las referencias
de los objetos `String`.

La inmutabilidad de la clase `String` garantiza la integridad de las cadenas originales,


lo que es importante en muchas aplicaciones.

• Clase Random.

La clase `Random` en Java es parte de la biblioteca estándar y se utiliza para generar


números aleatorios. Proporciona una manera sencilla de crear secuencias de
números aleatorios utilizando diferentes algoritmos y semillas. Aquí tienes
información importante sobre la clase `Random` en Java:

1. Creación de objetos Random:


Para usar la clase `Random`, primero debes crear un objeto de esta clase. Puedes
hacerlo utilizando uno de los siguientes constructores:

✓ `Random()`: Crea un objeto `Random` utilizando una semilla basada en el


reloj del sistema, lo que significa que obtendrás una secuencia de números
aparentemente aleatorios.

✓ `Random(long seed)`: Crea un objeto `Random` con una semilla


específica. Utilizar la misma semilla en múltiples instancias de `Random`
producirá la misma secuencia de números aleatorios.

108
Programación para Desarrollo de Software With Oracle

2. Generación de números aleatorios:


La clase `Random` proporciona varios métodos para generar números aleatorios
de diferentes tipos, como enteros, valores en punto flotante y más. Algunos de los
métodos más comunes incluyen:

✓ `nextInt()`: Genera un número entero aleatorio en todo el rango de valores


de un `int`.

✓ `nextInt(int n)`: Genera un número entero aleatorio entre 0 (inclusive) y n


(exclusivo).

✓ `nextLong()`: Genera un número largo aleatorio en todo el rango de valores


de un `long`.

✓ `nextDouble()`: Genera un valor de punto flotante aleatorio entre 0


(inclusive) y 1 (exclusivo).

✓ `nextFloat()`: Genera un valor de punto flotante aleatorio entre 0 (inclusive)


y 1 (exclusivo).

3. Semilla (Seed):
La semilla es un valor inicial que se utiliza para inicializar el generador de números
aleatorios. Si se utiliza la misma semilla, se obtendrá la misma secuencia de
números aleatorios en diferentes ejecuciones del programa. Esto es útil cuando
se necesita reproducir resultados específicos. Sin embargo, si no se especifica
una semilla, se utilizará una semilla basada en el tiempo del sistema, lo que
generará secuencias diferentes en cada ejecución.

4. Uso típico:
La clase `Random` se utiliza en una amplia variedad de aplicaciones donde se
requieren valores aleatorios, como juegos, simulaciones, generación de datos de
prueba y criptografía. También se puede combinar con otras clases y técnicas
para realizar tareas más complejas que involucran aleatoriedad.

Es importante tener en cuenta que, aunque los números generados por la clase
`Random` pueden parecer aleatorios, en realidad son pseudoaleatorios, ya que
están determinados por un algoritmo matemático. Esto significa que, dada la
misma semilla, siempre obtendrás la misma secuencia de números aleatorios.

La clase `Random` en Java es una herramienta útil para generar números aleatorios
en aplicaciones y programas. Permite controlar la generación de números aleatorios
mediante el uso de semillas y ofrece una variedad de métodos para obtener
diferentes tipos de valores aleatorios.

109
Programación para Desarrollo de Software With Oracle

• Clase Math.

La clase `Math` en Java es una clase de utilidad que proporciona una amplia gama
de métodos estáticos para realizar operaciones matemáticas comunes. Estos
métodos están diseñados para ser utilizados en cálculos matemáticos y proporcionan
funciones matemáticas estándar y operaciones trigonométricas.

1. Métodos estáticos: Todos los métodos de la clase `Math` son estáticos, lo que
significa que puedes invocarlos directamente a través de la clase sin necesidad
de crear una instancia de la misma.

2. Funciones matemáticas básicas: La clase `Math` incluye métodos para realizar


operaciones matemáticas básicas, como:

✓ `Math.abs(double a)`: Devuelve el valor absoluto de un número.

✓ `Math.max(double a, double b)`: Devuelve el valor máximo entre dos


números.

✓ `Math.min(double a, double b)`: Devuelve el valor mínimo entre dos


números.

✓ `Math.sqrt(double a)`: Devuelve la raíz cuadrada de un número.

✓ `Math.cbrt(double a)`: Devuelve la raíz cúbica de un número.

✓ `Math.pow(double a, double b)`: Calcula a elevado a la potencia de b.

3. Funciones trigonométricas: La clase `Math` proporciona métodos para realizar


funciones trigonométricas comunes, como:

✓ `Math.sin(double a)`: Calcula el seno de un ángulo en radianes.

✓ `Math.cos(double a)`: Calcula el coseno de un ángulo en radianes.

✓ `Math.tan(double a)`: Calcula la tangente de un ángulo en radianes.

✓ `Math.atan(double a)`: Calcula la tangente inversa de un número.

✓ `Math.toDegrees(double radians)`: Convierte radianes a grados.

✓ `Math.toRadians(double degrees)`: Convierte grados a radianes.

110
Programación para Desarrollo de Software With Oracle

4. Funciones exponenciales y logarítmicas: La clase `Math` también incluye métodos


para cálculos exponenciales y logarítmicos, como:

✓ `Math.exp(double a)`: Calcula la exponenciación de E elevado a la potencia


de a.

✓ `Math.log(double a)`: Calcula el logaritmo natural (base E) de a.

✓ `Math.log10(double a)`: Calcula el logaritmo base 10 de a.

5. Constantes matemáticas: La clase `Math` contiene constantes matemáticas como


`Math.PI`, que representa el valor de π (pi).

6. Redondeo: Puedes usar métodos como `Math.round(double a)` para redondear


un número al valor entero más cercano y `Math.floor(double a)` y
`Math.ceil(double a)` para redondear hacia abajo y hacia arriba, respectivamente.

7. Números aleatorios: Aunque la generación de números aleatorios no es su función


principal, la clase `Math` también proporciona métodos para obtener números
aleatorios. Por ejemplo, `Math.random()` devuelve un número decimal aleatorio
entre 0 (inclusive) y 1 (exclusivo).

La clase `Math` es una herramienta poderosa para realizar cálculos matemáticos en


Java y es ampliamente utilizada en una variedad de aplicaciones, desde la ciencia y
la ingeniería hasta la programación de juegos y gráficos. Sus métodos ofrecen una
forma conveniente y eficiente de realizar operaciones matemáticas comunes en
programas Java.

• Expresiones booleanas y construcciones If/Else.

Las expresiones booleanas y las construcciones `if/else` son conceptos


fundamentales en Java y en la mayoría de los lenguajes de programación. Se utilizan
para controlar el flujo de ejecución de un programa y tomar decisiones basadas en
condiciones booleanas.

Expresiones Booleanas:
Una expresión booleana es una expresión que produce un valor de tipo booleano, es
decir, un valor verdadero (`true`) o falso (`false`). Estas expresiones se utilizan para
evaluar condiciones en un programa y controlar el flujo de ejecución. Algunos
ejemplos de expresiones booleanas incluyen:

✓ Comparaciones: Puedes comparar dos valores utilizando operadores de


comparación como `==` (igual a), `!=` (diferente de), `<` (menor que), `>`
(mayor que), `<=` (menor o igual que), `>=` (mayor o igual que), etc.

111
Programación para Desarrollo de Software With Oracle

✓ Operadores lógicos: Puedes combinar expresiones booleanas utilizando


operadores lógicos como `&&` (y lógico), `||` (o lógico) y `!` (no lógico).

✓ Resultado de funciones o métodos: Algunas funciones o métodos en Java


pueden devolver valores booleanos, y estos valores se pueden usar como
expresiones booleanas.

Construcciones If/Else:

Las construcciones `if` y `else` se utilizan para tomar decisiones basadas en


condiciones booleanas. Aquí tienes una descripción de cómo funcionan:

✓ If (Si): La construcción `if` permite ejecutar un bloque de código si una


expresión booleana se evalúa como verdadera. La sintaxis básica es la
siguiente:

Figura N° 120 Construcción If

Si la expresión es verdadera, el bloque de código entre llaves se ejecuta. De


lo contrario, se omite y la ejecución continúa después del bloque `if`.

✓ Else (Sino): Puedes agregar un bloque `else` después de un `if` para


especificar qué hacer si la expresión booleana es falsa. La sintaxis básica es
la siguiente:

Figura N° 121 Construcción If/Else

112
Programación para Desarrollo de Software With Oracle

El bloque `else` se ejecutará si la expresión en el `if` es falsa. Solo se ejecutará


uno de los dos bloques (`if` o `else`), dependiendo de la evaluación de la
expresión booleana.

✓ Else-If (Sino Si): Puedes encadenar múltiples bloques `if` y `else` para manejar
varias condiciones utilizando la construcción `else if`. Esto es útil cuando tienes
múltiples condiciones que deben evaluarse de manera secuencial. La sintaxis
es la siguiente:

Figura N° 122 Construcción Else-If

Las expresiones booleanas y las construcciones `if/else` son fundamentales en Java


para tomar decisiones en función de condiciones. Permiten que tu programa se
adapte dinámicamente a diferentes situaciones y controlen el flujo de ejecución en
función de la evaluación de las condiciones booleanas. Estas construcciones son
esenciales en la programación para crear lógica condicional en tus aplicaciones.

• Descripción de ejecución condicional.

La ejecución condicional en Java se refiere a la capacidad de un programa para tomar


decisiones y ejecutar diferentes bloques de código según una condición o conjunto
de condiciones específicas. Esto se logra utilizando construcciones como if, else if,
else, y switch. Las cuales ya mencionamos anteriormente, excepto a switch, que lo
mencionaremos más adelante.

• Sentencia Switch.

La sentencia `switch` se utiliza para manejar múltiples casos basados en el valor de


una expresión. A diferencia de `if/else if`, que maneja condiciones booleanas, `switch`
maneja valores discretos. Aquí hay un ejemplo de `switch`:

113
Programación para Desarrollo de Software With Oracle

Figura N° 123 Sentencia Switch

En este ejemplo, se evalúa el valor de `diaSemana` y se ejecuta el bloque de código


correspondiente al caso que coincida con ese valor. Si ningún caso coincide, se
ejecuta el bloque `default` (opcional).

La ejecución condicional es esencial en la programación ya que permite que un


programa tome decisiones dinámicas y ejecute diferentes acciones en función de
las condiciones que se cumplan en tiempo de ejecución. Estas construcciones son
fundamentales para la lógica de control y la toma de decisiones en programas Java

114
Programación para Desarrollo de Software With Oracle

TAREA N° 11

CREAR SENTENCIAS DE DECISIÓN, BUCLES, CLASES, MATRICES Y


EXCEPCIONES

• Bucles For.

Los bucles `for` son estructuras de control de flujo que permiten ejecutar un bloque
de código repetidamente hasta que una condición se vuelva falsa. Los bucles `for`
son especialmente útiles cuando se sabe de antemano cuántas veces se debe
repetir un conjunto de instrucciones.

Sintaxis básica de un bucle `for`:

Figura N° 124 Bucle ‘for’

✓ `inicialización`: Esta parte se ejecuta una vez al principio, antes de que


comience el bucle. Se utiliza generalmente para inicializar variables
contadoras.

✓ `condición`: Es una expresión booleana que se evalúa antes de cada


iteración. Si la condición es verdadera, el bucle continúa; si es falsa, el bucle
se detiene.

✓ `expresión de actualización`: Se ejecuta después de cada iteración y


generalmente se utiliza para actualizar variables contadoras o de control.

✓ `Bloque de código a repetir`: Es el conjunto de instrucciones que se ejecutan


repetidamente mientras la condición sea verdadera.

Ejemplo de un bucle `for` que imprime los números del 1 al 5:

115
Programación para Desarrollo de Software With Oracle

Figura N° 125 Ejemplo de bucle ‘for’

En este ejemplo:
✓ La inicialización `int i = 1` establece la variable `i` en 1.
✓ La condición `i <= 5` verifica si `i` es menor o igual a 5 antes de cada iteración.
✓ La expresión de actualización `i++` incrementa el valor de `i` en 1 después
de cada iteración.

El resultado de este bucle sería la impresión de los números del 1 al 5 en la consola.

Puedes usar bucles `for` para iterar sobre arreglos, colecciones y realizar otras
tareas repetitivas. Además, puedes anidar bucles `for` dentro de otros bucles para
realizar iteraciones más complejas.

Es importante tener cuidado con las condiciones y expresiones de actualización en


los bucles `for` para evitar bucles infinitos o resultados inesperados. También es
posible utilizar la palabra clave `break` para salir anticipadamente de un bucle si se
cumple una condición específica, y la palabra clave `continue` para saltar una
iteración y pasar a la siguiente.

Los bucles `for` son una herramienta poderosa en Java para realizar iteraciones
controladas y repetir acciones un número específico de veces. Son ampliamente
utilizados en programación para automatizar tareas repetitivas y procesar datos de
manera eficiente.

• Bucles While y Do-While.

Los bucles `while` y `do-while` son estructuras de control de flujo que permiten
ejecutar un bloque de código repetidamente mientras se cumpla una condición
booleana.

Bucle `while`:

El bucle `while` es una estructura de control de flujo que repite un bloque de código
mientras una condición sea verdadera. La sintaxis básica es la siguiente:

116
Programación para Desarrollo de Software With Oracle

Figura N° 126 Bucle while

✓ `condición`: Es una expresión booleana que se evalúa antes de cada


iteración. Si la condición es verdadera, el bucle continúa; si es falsa, el bucle
se detiene.

✓ `Bloque de código a repetir`: Es el conjunto de instrucciones que se ejecutan


repetidamente mientras la condición sea verdadera.

Ejemplo de un bucle `while` que imprime los números del 1 al 5:

Figura N° 127 Ejemplo de bucle ‘while’

En este ejemplo, el bucle se ejecutará mientras `i` sea menor o igual a 5. Se inicializa
`i` en 1, y después de cada iteración se incrementa en 1.

Bucle `do-while`:

El bucle `do-while` es similar al bucle `while`, pero la condición se verifica después


de cada iteración, lo que significa que el bloque de código se ejecutará al menos
una vez, incluso si la condición es falsa desde el principio. La sintaxis básica es la
siguiente:

Figura N° 128 Bucle ‘do-while’

117
Programación para Desarrollo de Software With Oracle

✓ `Bloque de código a repetir`: Es el conjunto de instrucciones que se ejecutan


al menos una vez y luego repetidamente mientras la condición sea
verdadera.

✓ `condición`: Es una expresión booleana que se evalúa después de cada


iteración. Si la condición es verdadera, el bucle continúa; si es falsa, el bucle
se detiene.

Ejemplo de un bucle `do-while` que solicita un número al usuario hasta que ingrese
un número positivo:

Figura N° 129 Ejemplo de bucle ‘do-while’

En este ejemplo, el bucle se ejecutará al menos una vez porque la condición se


verifica después de la primera iteración.

Ambos bucles `while` y `do-while` son útiles en situaciones donde no se sabe de


antemano cuántas veces se repetirá el bloque de código, pero se debe verificar una
condición para determinar si se continúa o se sale del bucle. Es importante
asegurarse de que la condición eventualmente se vuelva falsa para evitar bucles
infinitos.

Los bucles `while` y `do-while` son estructuras de control de flujo en Java que
permiten la repetición de un bloque de código mientras se cumpla una condición. La
diferencia principal es cuándo se verifica la condición (antes o después de la
iteración). Ambos tipos de bucles son útiles en diferentes contextos y pueden ayudar
a automatizar tareas repetitivas en programas Java.

• Uso de sentencias break y continue.

Las sentencias `break` y `continue` son constructos de control de flujo en Java que
se utilizan dentro de bucles (como `for`, `while` o `do-while`) para controlar el flujo
de ejecución y realizar acciones específicas.

118
Programación para Desarrollo de Software With Oracle

Sentencia `break`:

La sentencia `break` se utiliza para salir inmediatamente de un bucle cuando se


cumple una condición específica. Al encontrar una instrucción `break`, el flujo de
ejecución del programa se sale del bucle y continúa con la primera instrucción
después del bucle. Aquí hay un ejemplo:

Figura N° 130 Sentencia ‘break’

En este ejemplo, el bucle `for` imprimirá los números del 1 al 4 y luego se detendrá
inmediatamente cuando `i` sea igual a 5 debido a la sentencia `break`.

La sentencia `break` es útil para salir de un bucle antes de que se complete su


iteración normal en respuesta a una condición específica. Por ejemplo, se puede
utilizar para detener un bucle cuando se ha encontrado un valor deseado en una
búsqueda.

Sentencia `continue`:

La sentencia `continue` se utiliza para omitir la iteración actual de un bucle y


continuar con la siguiente iteración. Al encontrar una instrucción `continue`, el flujo
de ejecución del programa salta al final del ciclo actual y verifica la condición de
bucle para la siguiente iteración. Aquí hay un ejemplo:

Figura N° 131 Sentencia ‘continue’

119
Programación para Desarrollo de Software With Oracle

En este ejemplo, cuando `i` es igual a 3, se omite la impresión de ese valor y se


pasa directamente a la siguiente iteración. El resultado será la impresión de los
números 1, 2, 4 y 5. La sentencia `continue` es útil cuando deseas saltar una
iteración en un bucle basado en una condición específica, como evitar el
procesamiento de ciertos elementos en una colección durante una iteración.

Ambas sentencias, `break` y `continue`, son herramientas importantes para


controlar el flujo de ejecución en bucles en Java. Su uso adecuado puede simplificar
la lógica del programa y ayudar a evitar bucles infinitos o ejecuciones innecesarias
de código.

• Creación de una clase.

En Java, la creación de una clase es uno de los conceptos fundamentales de la


programación orientada a objetos (POO). Una clase es un plano o plantilla que
define cómo se deben crear objetos de ese tipo en particular.

Sintaxis básica para crear una clase:

Figura N° 132 Sintaxis de una clase

120
Programación para Desarrollo de Software With Oracle

Donde:

✓ `NombreDeLaClase` es el nombre de la clase que estás creando. Debe


comenzar con una letra mayúscula y seguir la convención de nomenclatura
CamelCase.

✓ Variables de instancia (atributos): Son las variables que representan las


características o propiedades de un objeto de esa clase. Puedes definir
múltiples variables de instancia dentro de la clase.

✓ Constructor: Es un método especial que se llama cuando se crea un nuevo


objeto de la clase. Puede tener parámetros para inicializar las variables de
instancia y otros valores necesarios.

✓ Métodos: Son funciones definidas dentro de la clase que realizan acciones o


cálculos específicos. Los métodos pueden tener parámetros y devolver
valores.

Ejemplo de creación de una clase:

Figura N° 133 Ejemplo de creación de la clase

121
Programación para Desarrollo de Software With Oracle

En este ejemplo, hemos creado una clase llamada `Persona` con dos variables de
instancia (`nombre` y `edad`), un constructor para inicializar esas variables y un
método `mostrarInformacion()` para mostrar los detalles de una persona.

Uso de una clase:

Para usar una clase en Java, primero debes crear un objeto de esa clase. Aquí hay
un ejemplo de cómo crear y usar un objeto de la clase `Persona`:

Figura N° 134 Uso de una clase

En este ejemplo, hemos creado un objeto `persona1` de la clase `Persona` y luego


llamamos al método `mostrarInformacion()` para mostrar los detalles de esa
persona.

Crear clases en Java es una parte fundamental de la programación orientada a


objetos y te permite modelar objetos del mundo real en tu código. Las clases
encapsulan atributos y comportamientos en un solo lugar, lo que facilita la
organización y mantenimiento de tu código.

• Instanciación de objetos.

La instanciación de objetos en Java se refiere al proceso de crear una instancia o


un objeto de una clase. Una clase en Java es una plantilla que define la estructura
y el comportamiento de un tipo de objeto. Para utilizar una clase y trabajar con
objetos de esa clase, primero debes crear una instancia de esa clase.

122
Programación para Desarrollo de Software With Oracle

Sintaxis básica de la instanciación de objetos:

Figura N° 135 Sintaxis de la instanciación de objetos

Donde:
✓ `NombreDeLaClase` es el nombre de la clase de la cual deseas crear una
instancia.

✓ `nombreDelObjeto` es el nombre que elijas para tu objeto.

✓ `new` es una palabra clave que se utiliza para crear una nueva instancia del
objeto.

✓ `()` son paréntesis vacíos que pueden o no contener argumentos para el


constructor de la clase.

Ejemplo de instanciación de objetos:

Supongamos que tienes una clase llamada `Persona`:

Figura N° 136 Clase ‘Persona’

Puedes crear instancias de la clase `Persona` de la siguiente manera:

123
Programación para Desarrollo de Software With Oracle

Figura N° 137 Instancia de la clase ‘Persona’

En este ejemplo, hemos creado dos objetos de la clase `Persona` llamados


`persona1` y `persona2`. Cada objeto tiene sus propias variables de instancia
`nombre` y `edad`, que pueden ser diferentes para cada objeto.

Uso de métodos y variables de instancia:


Una vez que has creado una instancia de un objeto, puedes acceder a sus variables
de instancia y métodos utilizando el operador de punto (`.`).
Por ejemplo:

Figura N° 138 Usando métodos y variables de instancia

Importancia de la instanciación de objetos:

La instanciación de objetos es fundamental en la programación orientada a objetos


(POO) porque te permite modelar objetos del mundo real y trabajar con ellos en tu
programa. Cada objeto creado a partir de una clase es una entidad independiente
con su propio estado (variables de instancia) y su propio comportamiento (métodos).
La instanciación de objetos te permite crear múltiples instancias de una clase y
trabajar con ellas de manera individual, lo que facilita la gestión de datos y la
encapsulación de la funcionalidad. Java es un lenguaje orientado a objetos, y la
creación de objetos es una parte esencial de la programación en Java.

• Constructores.

Los constructores en Java son métodos especiales que se utilizan para inicializar
objetos de una clase. Un constructor se llama automáticamente cuando se crea una
instancia u objeto de esa clase. Los constructores son esenciales en Java ya que
permiten que los objetos se inicialicen correctamente y se configuren con los valores
iniciales deseados.

124
Programación para Desarrollo de Software With Oracle

Características clave de los constructores:

1. Nombre igual al de la clase: El nombre de un constructor debe coincidir


exactamente con el nombre de la clase en la que se encuentra. Los
constructores no tienen un tipo de retorno, ni siquiera `void`.

2. Inicialización de objetos: Los constructores se utilizan para asignar valores


iniciales a las variables de instancia del objeto y realizar cualquier otra
inicialización necesaria.

3. Puede haber múltiples constructores: Puedes definir varios constructores en una


clase, siempre y cuando tengan diferentes listas de parámetros. Esto se conoce
como sobrecarga de constructores.

Sintaxis de un constructor:

Figura N° 139 Sintaxis de un constructor

125
Programación para Desarrollo de Software With Oracle

Ejemplo de constructor:

Figura N° 140 Ejemplo de constructor

En este ejemplo, hemos creado un constructor para la clase `Persona` que toma
dos parámetros (nombre y edad) y los utiliza para inicializar las variables de
instancia `nombre` y `edad` de un objeto `Persona`.

Uso de constructores:

Para crear un objeto de una clase y utilizar un constructor, puedes hacer lo


siguiente:

Figura N° 141 Uso de constructor

En este caso, hemos creado un objeto `persona1` de la clase `Persona` utilizando


el constructor que toma un nombre y una edad como argumentos. El constructor se
llama automáticamente cuando se crea el objeto y se encarga de la inicialización de
las variables de instancia.

126
Programación para Desarrollo de Software With Oracle

Constructor por defecto:

Si no defines ningún constructor en tu clase, Java proporciona automáticamente un


constructor por defecto sin parámetros. Sin embargo, si defines al menos un
constructor en la clase, Java no proporcionará automáticamente el constructor por
defecto. Puedes definir explícitamente un constructor por defecto si lo necesitas.

Los constructores son una parte fundamental de la programación orientada a


objetos en Java y permiten la creación y la inicialización adecuada de objetos.
Puedes utilizarlos para configurar objetos con valores iniciales, lo que es esencial
para el correcto funcionamiento de tu programa.

• Sobrecarga de métodos.

La sobrecarga de métodos en Java es una característica que permite definir varios


métodos en una clase con el mismo nombre, pero con diferentes listas de
parámetros. Esto significa que puedes tener múltiples métodos con el mismo
nombre en una clase, siempre y cuando tengan diferentes tipos, número o
secuencia de parámetros. La decisión sobre cuál método ejecutar se toma en
función de la lista de argumentos proporcionada cuando se llama al método.

La sobrecarga de métodos es útil para crear métodos con funcionalidades similares


pero que trabajan con diferentes tipos de datos o números de argumentos.

Sintaxis de la sobrecarga de métodos:

Figura N° 142 Sobrecarga de métodos

127
Programación para Desarrollo de Software With Oracle

Características de la sobrecarga de métodos:

1. Mismo nombre de método: Todos los métodos sobrecargados deben tener el


mismo nombre.

2. Diferentes listas de parámetros: Al menos una de las siguientes debe ser


diferente en los métodos sobrecargados:

✓ El número de parámetros.
✓ Los tipos de parámetros.
✓ El orden de los tipos de parámetros.

3. Tipo de retorno: El tipo de retorno puede ser diferente entre los métodos
sobrecargados, pero no es suficiente para distinguirlos. La diferencia clave
radica en los parámetros.

Ejemplo de sobrecarga de métodos:

Supongamos que tenemos una clase `Calculadora` que contiene dos métodos
sobrecargados `sumar` para sumar números:

Figura N° 143 Sobrecarga del Método sumar

En este ejemplo, hemos definido dos métodos `sumar` en la clase `Calculadora`.


Uno acepta dos enteros como parámetros y devuelve un entero como resultado, y
el otro acepta dos números de punto flotante (double) como parámetros y devuelve
un número de punto flotante como resultado. Ambos métodos tienen el mismo
nombre (`sumar`), pero tienen listas de parámetros diferentes.

128
Programación para Desarrollo de Software With Oracle

Uso de métodos sobrecargados:

Cuando se llama a un método sobrecargado, Java determina cuál método ejecutar


en función de la lista de argumentos proporcionados en la llamada. Por ejemplo:

Figura N° 144 Uso de Métodos sobrecargados

En este caso, la llamada `calc.sumar(5, 10)` llama al primer método `sumar`, y la


llamada `calc.sumar(3.5, 2.5)` llama al segundo método `sumar`, debido a las
diferencias en los tipos de parámetros.

La sobrecarga de métodos es una técnica útil para hacer que tu código sea más
flexible y fácil de usar, ya que permite a los programadores utilizar métodos con
nombres intuitivos para realizar tareas similares con diferentes tipos de datos. Esto
mejora la legibilidad del código y facilita el trabajo con diferentes tipos de datos en
una clase.

• Interacción de objeto y encapsulación.

La interacción de objetos y la encapsulación son conceptos fundamentales en la


programación orientada a objetos (POO) y son especialmente importantes en Java.
Estos conceptos se centran en cómo los objetos interactúan entre sí y cómo se
ocultan los detalles internos de un objeto para mantener la integridad y la seguridad
de los datos.

Interacción de Objetos:

La interacción de objetos se refiere a la comunicación y colaboración entre objetos


en un programa Java. Los objetos interactúan a través de métodos, que son
funciones definidas en las clases y que permiten a otros objetos realizar operaciones
en ellos. La interacción de objetos se basa en los siguientes principios:

1. Métodos de llamada: Un objeto puede llamar a los métodos de otro objeto para
solicitar que realice una acción o proporcione información.

2. Pasaje de información: Los objetos pueden intercambiar información a través de


la llamada a métodos con argumentos.

129
Programación para Desarrollo de Software With Oracle

3. Composición: Los objetos pueden contener otros objetos como parte de su


estructura interna, lo que se conoce como composición. Esto permite crear
estructuras más complejas y jerárquicas.

4. Asociación: Los objetos pueden estar asociados entre sí de diferentes maneras,


como agregación, composición y asociación simple. Esto refleja las relaciones
en el mundo real.

Encapsulación:

La encapsulación es un principio de diseño que implica ocultar los detalles internos


de un objeto y proporcionar una interfaz controlada y segura para acceder a esos
detalles. En Java, la encapsulación se logra mediante la declaración de variables
de instancia como privadas (`private`) y proporcionando métodos públicos (`public`)
para acceder y modificar esas variables. Los beneficios de la encapsulación
incluyen:

1. Control de acceso: Al hacer que las variables de instancia sean privadas, evitas
que se modifiquen de manera inadecuada desde fuera de la clase.

2. Mantenimiento y evolución: Puedes cambiar la implementación interna de una


clase sin afectar a otros objetos que interactúan con ella, siempre que
mantengas la misma interfaz pública.

3. Seguridad y confiabilidad: Al encapsular datos y comportamiento, puedes validar


y controlar el acceso a los datos, lo que aumenta la seguridad y la integridad de
los objetos.

130
Programación para Desarrollo de Software With Oracle

Ejemplo de encapsulación en Java:

Figura N° 145 Encapsulación en Java

En este ejemplo, hemos encapsulado los datos de una persona (nombre y edad)
utilizando variables privadas y proporcionando métodos públicos (`get` y `set`) para
acceder y modificar esos datos de manera controlada.

131
Programación para Desarrollo de Software With Oracle

La interacción de objetos y la encapsulación son conceptos clave en la


programación orientada a objetos en Java y son esenciales para crear programas
robustos, seguros y mantenibles. Estos conceptos promueven la reutilización de
código, la organización lógica de datos y comportamiento, y la creación de sistemas
más fáciles de entender y mantener.

• Variables y métodos estáticos.

Las variables y métodos estáticos son miembros de clase en lugar de miembros de


instancia. Esto significa que pertenecen a la clase en sí en lugar de pertenecer a
objetos o instancias específicas de esa clase. Los miembros estáticos se definen
usando la palabra clave `static`. Aquí tienes información sobre las variables y
métodos estáticos en Java:

Variables Estáticas (Campos Estáticos):

Las variables estáticas, también conocidas como campos estáticos o variables de


clase, se declaran con la palabra clave `static`. Estas variables son compartidas por
todas las instancias (objetos) de una clase y pertenecen a la clase en lugar de a
objetos individuales. Algunas características clave de las variables estáticas son:

✓ Se inicializan una vez, cuando la clase se carga en la memoria, y mantienen


su valor compartido entre todas las instancias de la clase.

✓ Pueden accederse utilizando el nombre de la clase en lugar de a través de


una instancia específica.

✓ Son útiles para mantener valores que deben ser compartidos por todas las
instancias de una clase, como constantes o contadores compartidos.

Ejemplo de una variable estática:

Figura N° 146 Ejemplo de una variable estática

132
Programación para Desarrollo de Software With Oracle

Para acceder a la variable estática desde fuera de la clase:

Figura N° 147 Acceso a una variable estática

Métodos Estáticos:

Los métodos estáticos, también conocidos como métodos de clase, se definen con
la palabra clave `static`. Al igual que las variables estáticas, los métodos estáticos
pertenecen a la clase en lugar de a objetos individuales. Algunas características
clave de los métodos estáticos son:

✓ No pueden acceder ni modificar directamente variables de instancia (no


tienen acceso a `this`) porque no están vinculados a una instancia específica.

✓ Se pueden invocar utilizando el nombre de la clase en lugar de a través de


una instancia.

✓ Son útiles para proporcionar funcionalidad que no depende de un estado


específico de objeto, como utilidades matemáticas, métodos de utilidad y
constructores de fábrica.

Ejemplo de un método estático:

Figura N° 148 Ejemplo de método estático

133
Programación para Desarrollo de Software With Oracle

Para invocar un método estático desde fuera de la clase:

Figura N° 149 Método estático

Cuándo usar Variables y Métodos Estáticos:

✓ Variables estáticas: Úsalas cuando desees mantener valores compartidos


entre todas las instancias de una clase, como constantes o contadores
compartidos.

✓ Métodos estáticos: Úsalos cuando desees proporcionar funcionalidad que no


dependa del estado de un objeto y pueda ser llamada a través del nombre
de la clase. Esto incluye utilidades matemáticas, métodos de utilidad y
constructores de fábrica.

Las variables y métodos estáticos en Java son miembros de clase que pertenecen
a la clase en sí y no a objetos individuales. Son útiles para mantener valores
compartidos o proporcionar funcionalidad que no dependa del estado de un objeto
específico.

• Matrices unidimensionales.

Una matriz unidimensional (también conocida como arreglo unidimensional o array


unidimensional) es una estructura de datos que almacena elementos del mismo tipo
en una secuencia lineal. A diferencia de las matrices bidimensionales que son tablas
o cuadrículas, las matrices unidimensionales son simples listas de elementos.

Declaración de una matriz unidimensional:

Para declarar una matriz unidimensional en Java, se utiliza la siguiente sintaxis:

Figura N° 150 Sintaxis para declarar matriz unidimensional

134
Programación para Desarrollo de Software With Oracle

Donde:
✓ `tipoDeDato` es el tipo de dato de los elementos que se almacenarán en la
matriz (por ejemplo, `int`, `double`, `String`, etc.).

✓ `nombreDeLaMatriz` es el nombre que elijas para la matriz.

Por ejemplo, para declarar una matriz de enteros:

Figura N° 151 Declaración de matriz enteros

Inicialización de una matriz unidimensional:

Una matriz unidimensional se puede inicializar de varias formas:

1. Inicialización directa: Puedes inicializar la matriz cuando la declaras:

Figura N° 152 Declaración de matriz

2. Inicialización después de la declaración: Puedes declarar la matriz y luego


inicializarla en una línea de código posterior:

Figura N° 153 Inicialización después de la declaración

3. Inicialización con un tamaño específico: Puedes declarar la matriz con un


tamaño específico y luego asignar valores a sus elementos:

135
Programación para Desarrollo de Software With Oracle

Figura N° 154 Inicialización con un tamaño específico

Acceso a elementos de una matriz unidimensional:

Puedes acceder a los elementos individuales de una matriz unidimensional


utilizando el nombre de la matriz seguido de un índice entre corchetes (`[]`). Los
índices comienzan en 0 para el primer elemento y van hasta `n-1`, donde `n` es el
tamaño de la matriz.

Figura N° 155 Accediendo a matrices

Propiedades de las matrices unidimensionales:

✓ Tamaño fijo: Una vez que se declara el tamaño de una matriz unidimensional,
no puede cambiar. Si necesitas una colección de tamaño variable, considera
el uso de una lista o una estructura de datos dinámica como `ArrayList`.

✓ Homogeneidad: Todos los elementos de una matriz unidimensional deben


ser del mismo tipo de dato.

✓ Acceso rápido: Puedes acceder a los elementos de una matriz


unidimensional por su índice, lo que permite un acceso eficiente.

Las matrices unidimensionales son útiles para almacenar listas de elementos del
mismo tipo, como números, nombres o datos de cualquier tipo. Son una estructura
de datos básica y fundamental en la programación y se utilizan comúnmente en
muchos programas Java.

136
Programación para Desarrollo de Software With Oracle

• ArrayLists.

Un `ArrayList` es una estructura de datos dinámica que se utiliza para almacenar y


administrar colecciones de objetos. A diferencia de los arreglos tradicionales, un
`ArrayList` es una implementación de la interfaz `List` en la biblioteca estándar de
Java y tiene la capacidad de cambiar de tamaño automáticamente según sea
necesario.

Características clave de los `ArrayLists`:

1. Dinámicos: Los `ArrayLists` son dinámicos, lo que significa que pueden crecer o
reducirse en tamaño automáticamente según sea necesario. Esto facilita la
gestión de colecciones de elementos de longitud variable.

2. Almacenamiento de objetos: Los `ArrayLists` almacenan objetos de cualquier


tipo de clase. Esto significa que puedes almacenar instancias de clases
incorporadas de Java, como `String`, así como tus propias clases
personalizadas.

3. Índices basados en cero: Los elementos de un `ArrayList` se indexan desde 0,


lo que significa que el primer elemento se encuentra en la posición 0, el segundo
en la posición 1 y así sucesivamente.

4. Admite duplicados: Puedes almacenar elementos duplicados en un `ArrayList`.

Uso básico de `ArrayLists`:

Importación: Debes importar la clase `ArrayList` del paquete `java.util` para utilizar
`ArrayLists` en tu código:

Figura N° 156 Importación de clase ‘ArrayList’

Declaración e inicialización: Puedes declarar e inicializar un `ArrayList` de la


siguiente manera:

Figura N° 157 Declaración e inicialización

137
Programación para Desarrollo de Software With Oracle

Donde `TipoDeDato` es el tipo de objetos que deseas almacenar en la lista y


`nombreArrayList` es el nombre que le das a tu lista.

Agregar elementos: Puedes agregar elementos a un `ArrayList` utilizando el método


`add()`:

Figura N° 158 Agregar elemento a ‘ArrayList’

Acceder a elementos: Puedes acceder a elementos de un `ArrayList` utilizando su


índice:

Figura N° 159 Acceso a elemento de un ‘ArrayList’

Modificar elementos: Puedes modificar elementos de un `ArrayList` utilizando su


índice y el método `set()`:

Figura N° 160 Modificación elementos de un ‘ArrayList’

Eliminar elementos: Puedes eliminar elementos de un `ArrayList` utilizando el


método `remove()`:

Figura N° 161 Eliminar elementos de un ‘ArrayList’

Tamaño de la lista: Puedes obtener el tamaño de un `ArrayList` utilizando el método


`size()`:

Figura N° 162 Tamaño de la lista

138
Programación para Desarrollo de Software With Oracle

Iteración: Puedes recorrer un `ArrayList` utilizando bucles como `for` o `foreach`:

Figura N° 163 Iteración

Ejemplo de uso de `ArrayList`:

Figura N° 164 Uso de ‘ArrayList’

139
Programación para Desarrollo de Software With Oracle

Los `ArrayLists` son una estructura de datos flexible y ampliamente utilizada en Java
para almacenar y manipular colecciones de elementos. Su capacidad de cambiar
de tamaño dinámicamente los hace adecuados para una amplia variedad de
aplicaciones en programación.

• Manejo de excepciones.

El manejo de excepciones es una parte fundamental de la programación que


permite a los desarrolladores gestionar situaciones excepcionales o errores que
pueden ocurrir durante la ejecución de un programa. Las excepciones son eventos
inesperados que pueden interrumpir el flujo normal de ejecución de un programa.

Clasificación de excepciones en Java:

Las excepciones en Java se dividen en dos categorías principales:

1. Excepciones verificadas (Checked Exceptions): Son excepciones que deben ser


manejadas explícitamente por el programador. Esto incluye excepciones que
extienden la clase `Exception`, pero no extienden `RuntimeException`. Ejemplos
de excepciones verificadas incluyen `IOException` y `SQLException`.

2. Excepciones no verificadas (Unchecked Exceptions):** Son excepciones que no


requieren manejo explícito. Esto incluye excepciones que extienden la clase
`RuntimeException`. Ejemplos de excepciones no verificadas incluyen
`NullPointerException` y `ArrayIndexOutOfBoundsException`.

Uso de bloques try-catch:

El manejo de excepciones en Java se realiza principalmente a través de bloques


`try-catch`. Aquí está la sintaxis básica de un bloque `try-catch`:

Figura N° 165 Sintaxis básica ‘Try-catch’

✓ El bloque `try` contiene el código que podría arrojar una excepción.

140
Programación para Desarrollo de Software With Oracle

✓ El bloque `catch` se ejecuta si se produce una excepción del tipo


especificado. El programador debe especificar el tipo de excepción que se
espera.

Ejemplo de manejo de excepciones:

Figura N° 166 Manejo de excepciones

En este ejemplo, se intenta dividir 10 por 0, lo que arrojará una excepción


`ArithmeticException`. El bloque `catch` maneja la excepción y muestra un mensaje
de error.

Bloque finally:

Puedes usar un bloque `finally` opcional después de un bloque `catch` para


especificar código que se ejecutará siempre, independientemente de si se produce
una excepción o no. Esto es útil para realizar tareas de limpieza, como cerrar
recursos abiertos.

Figura N° 167 Bloque ‘finally’

141
Programación para Desarrollo de Software With Oracle

Lanzamiento de excepciones:

Además de manejar excepciones, también puedes lanzar tus propias excepciones


usando la palabra clave `throw`. Esto te permite señalar explícitamente que ha
ocurrido un error en tu programa.

Figura N° 168 Lanzamientos de excepciones

Propagación de excepciones:

Cuando un método no maneja una excepción, puede propagarla (lanzarla) a los


métodos superiores en la pila de llamadas. Esto se hace usando la palabra clave
`throws` en la firma del método.

Figura N° 169 Propagación de excepciones

Personalización de excepciones:

Puedes crear tus propias clases de excepción personalizadas extendiendo la clase


`Exception` o una de sus subclases. Esto te permite definir excepciones específicas
para tu aplicación.

Figura N° 170 Personalización de excepciones

142
Programación para Desarrollo de Software With Oracle

El manejo de excepciones es una práctica importante en Java para garantizar que


tu programa pueda responder adecuadamente a situaciones inesperadas y evitar
que se bloquee o falle. Al manejar y propagar excepciones de manera adecuada,
puedes escribir código más robusto y confiable.

• Conceptos y técnicas de depuración.

La depuración es un proceso esencial en el desarrollo de software que implica


identificar y corregir errores o problemas en un programa. En Java, existen varias
herramientas, técnicas y conceptos para depurar eficazmente el código y solucionar
problemas. Aquí tienes información sobre los conceptos y técnicas de depuración
en Java:

1. Uso de IDEs (Entornos de Desarrollo Integrado): Los IDEs, como Eclipse, IntelliJ
IDEA y NetBeans, ofrecen potentes herramientas de depuración que facilitan la
identificación y corrección de errores en Java. Estas herramientas proporcionan
características como puntos de interrupción, inspección de variables,
seguimiento de la ejecución y visualización de la pila de llamadas.

2. Puntos de interrupción (breakpoints): Los puntos de interrupción son marcadores


que se colocan en el código fuente para detener la ejecución del programa en
un punto específico. Cuando se alcanza un punto de interrupción durante la
depuración, el programa se pausa y permite al desarrollador examinar el estado
actual de las variables y evaluar la lógica del programa.

3. Inspección de variables: Durante la depuración, puedes inspeccionar el valor de


las variables en tiempo real. Esto te ayuda a comprender cómo cambian las
variables a medida que se ejecuta el programa y a detectar posibles problemas
o valores inesperados.

4. Seguimiento de la ejecución: Las herramientas de depuración permiten seguir la


ejecución del programa línea por línea. Esto es útil para identificar el flujo de
control y detectar problemas en la lógica de programación.

5. Visualización de la pila de llamadas (stack trace): Cuando ocurre una excepción


no controlada, la visualización de la pila de llamadas muestra la secuencia de
llamadas de método que condujo al error. Esto facilita la identificación de la
causa raíz del problema.

6. Impresión de mensajes (System.out.println y registros): La impresión de


mensajes en la consola o registros (logs) es una técnica de depuración simple
pero efectiva. Puedes utilizar `System.out.println()` para imprimir valores de
variables y mensajes de depuración en la consola.

143
Programación para Desarrollo de Software With Oracle

7. Pruebas unitarias y pruebas de integración: Las pruebas unitarias y de


integración son técnicas que permiten identificar problemas en el código al
probar unidades individuales de código o la interacción entre módulos o
componentes. Las herramientas de prueba, como JUnit, son ampliamente
utilizadas en el desarrollo de Java para automatizar pruebas y detectar errores.

8. Análisis estático de código: Las herramientas de análisis estático de código,


como FindBugs, PMD y SonarQube, examinan el código fuente en busca de
posibles problemas y vulnerabilidades antes de la ejecución del programa. Estas
herramientas pueden identificar problemas de estilo, errores de programación y
prácticas no recomendadas.

9. Pair Programming (Programación en Parejas): La programación en parejas es


una técnica en la que dos programadores trabajan juntos en el mismo código.
Esto permite la revisión continua del código y la detección temprana de errores,
ya que dos personas pueden proporcionar diferentes perspectivas y
experiencias.

10. Control de versiones: Utilizar sistemas de control de versiones, como Git, facilita
la gestión de cambios en el código y permite la colaboración eficiente entre
desarrolladores. Los sistemas de control de versiones también proporcionan un
historial de cambios que puede ser útil para identificar y corregir errores.

La depuración en Java es una habilidad esencial para los desarrolladores y puede


acelerar significativamente el proceso de desarrollo al identificar y corregir errores
de manera efectiva. Al utilizar las herramientas y técnicas adecuadas, los
programadores pueden escribir código más confiable y mantener sistemas Java
funcionando de manera óptima

144
Programación para Desarrollo de Software With Oracle

TAREA N° 12

CREAR INTERFACES GRÁFICAS CON JAVA SE - SWING

Interfaces Gráficas en Java.

Lo primero que debemos saber es que para crear interfaces gráficas en java, debemos
importar el paquete javax.swing e incluso el paquete java.awt.

Por otro lado, independientemente de cómo se realice la aplicación, el componente


principal de todas las interfaces gráficas en java es una ventana. En java, podemos
diferenciar principalmente dos tipos de ventanas:

JFrame: Es la ventana principal de nuestra aplicación gráfica. En ella podemos ver los
típicos controles de una ventana de Windows como el de cerrar, maximizar o minimizar.

JDialog: Este tipo de ventana no tiene los controles de maximizar o minimizar. Además,
se encuentran dentro de un JFrame y puede ser de dos tipos
• Modal: Mientras una ventana de este tipo esté abierta no podremos hacer otra cosa.
• No modal: En este caso, podemos interactuar con la aplicación incluso aunque se
encuentre abierto.

Cuando vayamos a crear una interfaz gráfica de usuario (IGU), debemos tener en
cuenta que lo primero que debemos crear será un JFrame.

Características de un JFrame de las interfaces gráficas en java

Es importante saber que los JFrame tienen una serie de características que se deben
conocer:

• Son invisibles, es decir que cuando lanzamos el programa y se ejecuta la ventana,


hay que hacerla visible para que se vea.

• No tienen ningún tamaño, el tamaño por defecto es de cero píxeles de alto por
cero píxeles de ancho.

• Tenemos que decirle a nuestra ventana lo que queremos hacer cuando se


cierre, ya que si no lo hacemos el programa seguirá en ejecución consumiendo
recursos.

145
Programación para Desarrollo de Software With Oracle

Por otro lado, para construir nuestras aplicaciones gráficas, podemos hacer uso de
diferentes elementos swing.

Elementos de una interfaz gráfica con Swing.

Algunos de los elementos principales que podemos encontrar en una aplicación gráfica
son los siguientes.

• JPanel: Es una especie de cristal transparente que se coloca encima del JFrame o
ventana principal y que puede contener o no una distribución para los diferentes
controles. Esta distribución es lo que se llama layout del JPanel. Si por el contrario,
no se le asigna ninguna distribución al JPanel, o lo que es lo mismo, se le adjudica
un layout nulo, podremos colocar los controles en la posición de la lámina que
nosotros queramos.

• JLabel: Son etiquetas que muestran información al usuario. Se suele colocar como
título o acompañando a los controles de tipo JTextField, JComboBox, etc.

• JTextField: Son cuadros de texto donde el usuario puede escribir pero una linea
como máximo.

• JComboBox: Son cuadros desplegables. El usuario podrá desplegar este control


para seleccionar una opción u otra.

• JButton: Estos controles, son botones donde el usuario puede hacer clic para
ejecutar un evento.

• JRadioButton: Son botones de opción. Generalmente se colocan dentro de un


ButtonGroup para que al seleccionar una opción se desmarque otra que pueda estar
seleccionada.

• JCheckBox: Permiten seleccionar varias opciones a la vez.

• JTextArea: A diferencia del JTextField, este control permite escribir varias lineas de
texto en el mismo control.

• JTable: Este control dibuja una tabla donde podemos alojar por ejemlpo, registros
de una base de datos.

• JScrollPane: Es un control que suele colocarse dentro de los JTextArea o las


JTable, ya que en caso de que haya mucho texto o muchos registros, este control
nos permite desplazarnos con scroll hacia abajo o arriba según nuestra necesidad.

146
Programación para Desarrollo de Software With Oracle

• JPasswordField: Funciona igual que un JTextField, pero es específico para


introducir contraseñas.
• JList: Es un control que permite seleccionar varios elementos de una lista.

Windows Builder en Eclipse IDE.


La herramienta Windows Builder, es un plugin de eclipse, que nos permite crear
interfaces gráficas en java a través de una paleta de controles simplemente arrastrando
y soltando diferentes controles.
Además, es fundamental, ya que nos abrevia de manera considerable la tarea de la
creación de aplicaciones con formularios. Este plugin tiene un comportamiento
bidireccional, es decir, todo lo que hagamos en tiempo de diseño a través de la paleta
de controles se cambiará en el código fuente y viceversa.

Como importar librerías en java.


En muchas ocasiones cuando realizamos proyectos en java, éstos necesitan una serie
de librerías externas. Estas librerías, son archivos externos con extensión «:jar», que
el proyecto necesita para funcionar correctamente. Por ejemplo, cuando queremos
conectar nuestra aplicación a una base de datos, necesitamos importar la librería
correspondiente a esa base de datos para poder conectarnos a ella.
Vamos a ver como importar archivos externos a través del entorno de desarrollo
eclipse.
Una vez creado nuestro proyecto, haremos clic derechos sobre él y pincharemos en
«Build path» y después en «configure build path«.

Nos aparecerá el siguiente cuadro de diálogo.

Figura N° 171 Cuadro de Diálogo de Java Build

147
Programación para Desarrollo de Software With Oracle

TAREA N° 13

CREAR CONEXIÓN A BASE DE DATOS CON JAVA DATABASE CONNECTIVITY

Java con bases de datos. Crear conexión.

Conectar una aplicación java con bases de datos, nos permitirá manejar dicha
información a través de una aplicación externa. Gracias a ello, podremos insertar,
actualizar, eliminar o consultar la información de dicha base de datos. Todo ello, sin
tener que acceder a la base de datos de manera física.

Generalmente, cuando accedemos a una BBDD desde un programa java, la


información la encontraremos distribuida en tablas que se relacionan entre sí.

Cuando dichas tablas están relacionadas entre sí, decimos que estamos accediendo a
una BBDD relacional. Además, las bases de datos a las que vamos a poder acceder
se encontrarán dentro de un SGBD. Aunque podemos usar cualquier SGBD, para este
ejemplo, utilizaremos el SGBD MySQL.

Establecimiento de conexiones en java con bases de datos.

Para conectar una aplicación java con bases de datos, debemos seguir una serie de
pasos obligatorios, que detallaremos a continuación. Vamos a crear un ejemplo con
una base de datos que llamaremos gestión.

Este ejemplo lo crearemos dentro de la clase que contiene el método main. Por este
motivo, los métodos que crearemos serán de tipo «static» al igual que las variables
necesarias.

Pasos para conectar java con bases de datos.

1. Importar a nuestro proyecto el archivo jar con el driver correspondiente al SGBD al


que queremos conectarnos.

2. Importar las clases correspondientes en nuestro proyecto. Estas clases, se


encuentran dentro del paquete java.sql de la API de este lenguaje de programación.
Para poder importar dichas clases en nuestro proyecto haremos uso de la palabra
reservada “import”. De la siguiente manera: “import java.sql.*;”.

148
Programación para Desarrollo de Software With Oracle

Declararemos cuatro variables de tipo String a nivel de clase.

• Una primera donde almacenaremos el driver correspondiente al SGBD que estamos


utilizando. En caso del SGBD MySQL, el driver sería el siguiente:
“com.mysql.jdbc.Driver”.
• En la segunda almacenaremos la dirección del servidor donde se encuentra la
BBDD junto al nombre de la misma. Generalmente, solemos trabajar con un servidor
local, por lo tanto, la dirección del servidor será localhost. Hay que tener en cuenta,
que debemos indicar también el puerto de la conexión. Esto no es obligatorio, pero
si recomendable. Para almacenar dicha dirección lo haremos de la siguiente
manera. “jdbc:mysql://localhost:3306/gestion”.
• En las dos siguientes, almacenaremos el nombre de usuario y la contraseña de la
base de datos. Esto debe ser así, para poder acceder a la base de datos en
cuestión. Generalmente, si no se realizó ningún cambio, en el SGBD, el usuario será
“root” y la contraseña una cadena vacía.

Figura N° 172 Variables para conexión a la base de datos

Declarar el método correspondiente para poder conectarse con la base de datos.

Figura N° 173 Método para la conexión.

149
Programación para Desarrollo de Software With Oracle

Por último, para conectarnos a la base de datos desde el método main lo haremos de
la siguiente manera.

Figura N° 174 Método main para conectarnos a la base de datos

Como cerrar la conexión con la base de datos.

Para poder cerrar la conexión con la base de datos, necesitaremos un método el cual
llamaremos cerrarConexión(). Este método recibirá por parámetro un objeto de tipo
Connection para indicarle la conexión que debe cerrar.

Figura N° 175 Cerrar conexión a la base de datos

150
Programación para Desarrollo de Software With Oracle

TAREA N° 14

REALIZAR OPERACIONES CRUD DE JAVA SE - ORACLE

Crear base de datos.

Aquí la estructura de la base de datos y tabla.

Figura N° 176 Estructura de la base de datos

Crear proyecto.

El proyecto lo hemos desarrollado en el IDE Netbeans actualmente Apache Netbeans.


Creamos un proyecto de tipo Java Application y desmarcamos la casilla Create Main
Class:

Esto creará un proyecto vacío por lo cual agregaremos un paquete dan clic derecho
sobre el nombre del proyecto > New > Java Package y no nombramos como app.

Dentro de este paquete agregamos un JFrame dando clic derecho sobre el nombre del
paquete > New > JFrame Form y lo nombramos como persona.

La estructura del proyecto se será así:

151
Programación para Desarrollo de Software With Oracle

Figura N° 177 Estructura del proyecto

Diseño de la vista

Para agregar el diseño de nuestro formulario abrimos el archivo persona.java dando


doble clic, agregamos el siguiente diseño:

Figura N° 178 Diseño de la vista

Conexión a MySQL

Para conectar Java con MySQL se necesita un controlador JDBC compatible entre la
versión JDK y MySQL. Descargar Connector/J.

152
Programación para Desarrollo de Software With Oracle

Después de descargar el controlador vamos al proyecto y damos clic derecho en la


carpeta Libraries y seleccionamos Add JAR/Folder, buscamos el controlador .jar y lo
agregamos.

Teniendo el controlador agregado ya podemos conectarnos a la base de datos de


MySQL para esto regresamos al JFrame pero ahora seleccionamos la pestaña source
para ver el código fuente del formulario.

Método para conexión

Dentro del código fuente de la clase persona.java trabajaremos después del constructor
que es el método que se llama igual que la clase.

Figura N° 179 Método de Conexión

Métodos CRUD

Después de realizar la conexión a MySQL crearemos los métodos para las


transacciones básicas; Registrar, Leer o Buscar, Modificar y Eliminar. Para estos se
necesita implementar eventos de ActionListener la cual se usa para detectar y manejar
eventos de acción, como el clic en los botones.

Podemos activar este evento de forma automática regresando a la vista diseño y dando
doble clic en los botones o dando clic derecho sobre el botón > Events > Action >
actionPerformed.

Antes de agregar el código a los botón crearemos un método que elimine el contenido
de las cajas de texto (JTextField).

153
Programación para Desarrollo de Software With Oracle

Método del botón para guardar:

Figura N° 180 Código para guardar

154
Programación para Desarrollo de Software With Oracle

Método del botón para buscar:

Figura N° 181 Código para buscar

155
Programación para Desarrollo de Software With Oracle

Método del botón para editar:

Figura N° 182 Código para editar

156
Programación para Desarrollo de Software With Oracle

Método del botón para eliminar:

Figura N° 183 Código para eliminar

Ejecutar proyecto CRUD

Para ejecutar el proyecto damos clic derecho dentro de la clase y seleccionar Run File
para ejecutar el proyecto.

157
Programación para Desarrollo de Software With Oracle

Resultado:

Figura N° 184 Funcionamiento del proyecto

Puedes crear tu propio diseño, quitar o agregar campos al formulario y adaptarlo a tus
necesidades.

158
Programación para Desarrollo de Software With Oracle

REFERENCIAS BIBLIOGRÁFÍCAS
Referencia N° 01:
Gutiérrez P. (s.f.). “Fundamento de las bases de datos: Modelo entidad-relación “.
Genbeta. https://www.genbeta.com/desarrollo/fundamento-de-las-bases-de-datos-modelo-
entidad-relacion

Referencia N° 02:
“Jerarquías recursivas”.(s.f.). Microsoft. https://learn.microsoft.com/es-es/sql/master-data-
services/recursive-hierarchies-master-data-services?view=sql-server-ver16

Referencia N° 03:
“¿Qué es una base de datos relacional (sistema de gestión de bases de datos
relacionales)?”.(s.f.). Oracle. https://www.oracle.com/pe/database/what-is-a-relational-
database/

Referencia N° 04:
“Crear la base de datos de resultados de proyecto mediante Oracle”. (5 de marzo de
2023). IBM. https://www.ibm.com/docs/es/rtw/9.0.1?topic=tester-creating-project-results-
database-by-using-oracle

Referencia N° 05:
Sánchez J. (s.f.) "Consultas simples con SELECT". JorgeSanchez.
https://jorgesanchez.net/manuales/sql/select-basico-sql2016.html

Referencia N° 06:
Sánchez J. (s.f.) "Subconsultas". JorgeSanchez.
https://jorgesanchez.net/manuales/sql/select-subconsultas-sql2016.html

Referencia N° 07:
Sánchez J. (s.f.) "Consultas sobre varias tablas. Cláusula JOIN". JorgeSanchez.
https://jorgesanchez.net/manuales/sql/select-join-sql2016.html

Referencia N° 08:
Sánchez J. (s.f.) " Instrucciones DML ". JorgeSanchez.
https://jorgesanchez.net/manuales/sql/dml-sql2016.html

Referencia N° 09:
“Introducción a Java”. (s.f.). Manual Web.
https://www.manualweb.net/java/introduccion-java/

159
Programación para Desarrollo de Software With Oracle

Referencia N° 10:
Meza, J. (s.f.). “Uso de librerías en Java. Importar librerías estándar de Java y
librerías propias. Importar paquetes”. Programar ya.
https://www.programarya.com/Cursos/Java/Librerias

Referencia N° 11:
“Sentencias Control en Java”. (s.f.). Manual Web.
https://www.manualweb.net/java/sentencias-control-java/

Referencia N° 12:
“Interfaces Gráficas en Java”. (s.f.). Manual Web.
https://www.clasesdeinformaticaweb.com/java-desde-cero/interfaces-graficas-en-java/

Referencia N° 13:
“Java con Bases de Datos. Crear Conexión”. (s.f.). Manual Web.
https://www.clasesdeinformaticaweb.com/java-desde-cero/java-con-bases-de-datos/

Referencia N° 13:
“Tutorial CRUD en Java y MySQL”. (s.f.). Manual Web.
https://codigosdeprogramacion.com/2023/01/26/tutorial-crud-en-java-y-mysql/

160
Programación para Desarrollo de Software With Oracle

REFERENCIAS DE IMÁGENES
1. Figura N° 1: Creando una tabla en Oracle.
Elaboración propia.

2. Figura N° 2: Recuperación de niveles de jerarquía.


Elaboración propia.

3. Figura N° 3: Creación de una tabla en Oracle.


Elaboración propia.

4. Figura N° 4: Cláusula ‘ROWNUM’.


Elaboración propia.

5. Figura N° 5: Ejemplo de ‘FETCH FIRST’ y ‘OFFSET’.


Elaboración propia.

6. Figura N° 6: Operador de Igualdad (=).


Elaboración propia.

7. Figura N° 7: Operador de Diferente (!=).


Elaboración propia.

8. Figura N° 8: Operador ‘Mayor que’.


Elaboración propia.

9. Figura N° 9: Operador ‘Menor o igual que’.


Elaboración propia.

10. Figura N° 10: Operador BETWEEN.


Elaboración propia.

11. Figura N° 11: Operador IN.


Elaboración propia.

12. Figura N° 12: Operador LIKE.


Elaboración propia.

161
Programación para Desarrollo de Software With Oracle

13. Figura N° 13: Operador Lógico AND.


Elaboración propia.

14. Figura N° 14: Operador Lógico OR.


Elaboración propia.

15. Figura N° 15: Operador Lógico NOT.


Elaboración propia.

16. Figura N° 16: Uso de paréntesis.


Elaboración propia.

17. Figura N° 17: Sintaxis básica de ORDER BY.


Elaboración propia.

18. Figura N° 18: Uso de la clase DESC.


Elaboración propia.

19. Figura N° 19: Uso de las claves AC y DESC.


Elaboración propia.

20. Figura N° 20: Declaración de función.


Elaboración propia.

21. Figura N° 21: Invocación de la función ‘calcular promedio’.


Elaboración propia.

22. Figura N° 22: Uso de UPPER y LOWER.


Elaboración propia.

23. Figura N° 23: Función INITCAP.


Elaboración propia.

24. Figura N° 24: Función LENGTH.


Elaboración propia.

25. Figura N° 25: Función SUBSTR.


Elaboración propia.

162
Programación para Desarrollo de Software With Oracle

26. Figura N° 26: Función REPLACE.


Elaboración propia.

27. Figura N° 27: Función TRIM.


Elaboración propia.

28. Figura N° 28: Función SUM.


Elaboración propia.

29. Figura N° 29: Función AVG.


Elaboración propia.

30. Figura N° 30: Función COUNT.


Elaboración propia.

31. Figura N° 31: Función MAX.


Elaboración propia.

32. Figura N° 32: Función MIN.


Elaboración propia.

33. Figura N° 33: Función ROUND.


Elaboración propia.

34. Figura N° 34: Función SYSDATE.


Elaboración propia.

35. Figura N° 35: Función TO_DATE.


Elaboración propia.

36. Figura N° 36: Función TO_CHAR.


Elaboración propia.

37. Figura N° 37: Función MONTHS_BETWEEN.


Elaboración propia.

38. Figura N° 38: Función ADD_MONTHS.


Elaboración propia.

163
Programación para Desarrollo de Software With Oracle

39. Figura N° 39: Función TRUNC.


Elaboración propia.

40. Figura N° 40: Función TO_NUMBER.


Elaboración propia.

41. Figura N° 41: Función TO_DATE.


Elaboración propia.

42. Figura N° 42: Función TO_CHAR.


Elaboración propia.

43. Figura N° 43: Función CAST.


Elaboración propia.

44. Figura N° 44: Función TO_BINARY_DOUBLE.


Elaboración propia.

45. Figura N° 45: Función NVL.


Elaboración propia.

46. Figura N° 46: Función NVL2.


Elaboración propia.

47. Figura N° 47: Función COALESCE.


Elaboración propia.

48. Figura N° 48: Función NULLIF.


Elaboración propia.

49. Figura N° 49: Función DECODE.


Elaboración propia.

50. Figura N° 50: Función CASE.


Elaboración propia.

51. Figura N° 51: Función DECODE.


Elaboración propia.

164
Programación para Desarrollo de Software With Oracle

52. Figura N° 52: Función COALESCE.


Elaboración propia.

53. Figura N° 53: Función NULLIF.


Elaboración propia.

54. Figura N° 54: Uniones Cruzadas.


Elaboración propia.

55. Figura N° 55: Uniones Naturales.


Elaboración propia.

56. Figura N° 56: Sintaxis Básica de JOIN Múltiples.


Elaboración propia.

57. Figura N° 57: Uso de alias de tabla.


Elaboración propia.

58. Figura N° 58: Combinaciones de tipo JOIN.


Elaboración propia.

59. Figura N° 59: Uso de condiciones de unión adicionales.


Elaboración propia.

60. Figura N° 60: Unión Interna.


Elaboración propia.

61. Figura N° 61: Sintaxis Básica de una unión externa.


Elaboración propia.

62. Figura N° 62: Autounión en Oracle.


Elaboración propia.

63. Figura N° 63: Consulta jerárquica.


Elaboración propia.

64. Figura N° 64: Sintaxis básica de un Oracle Equijoin.


Elaboración propia.

165
Programación para Desarrollo de Software With Oracle

65. Figura N° 65: Sintaxis básica de un producto cartesiano.


Elaboración propia.

66. Figura N° 66: Usando ‘NOT IN’.


Elaboración propia.

67. Figura N° 67: Ejemplo de unión externa.


Elaboración propia.

68. Figura N° 68: Cláusula GROUP BY.


Elaboración propia.

69. Figura N° 69: Cláusula GROUP BY.


Elaboración propia.

70. Figura N° 70: Cláusula HAVING.


Elaboración propia.

71. Figura N° 71: Operación ROLLUP.


Elaboración propia.

72. Figura N° 72: Ejemplo de GROUPING SETS.


Elaboración propia.

73. Figura N° 73: Operador UNION.


Elaboración propia.

74. Figura N° 74: Operador UNION ALL.


Elaboración propia.

75. Figura N° 75: Operador INTERSECT.


Elaboración propia.

76. Figura N° 76: Operador MINUS.


Elaboración propia.

77. Figura N° 77: Ejemplo de subconsulta de una sola fila.


Elaboración propia.

166
Programación para Desarrollo de Software With Oracle

78. Figura N° 78: Ejemplo de subconsulta de varias filas.


Elaboración propia.

79. Figura N° 79: Ejemplo de subconsulta correlacionada.


Elaboración propia.

80. Figura N° 80: Ejemplo de INSERT.


Elaboración propia.

81. Figura N° 81: Ejemplo de UPDATE.


Elaboración propia.

82. Figura N° 82: Ejemplo de DELETE.


Elaboración propia.

83. Figura N° 83: Ejemplo de valores predeterminados.


Elaboración propia.

84. Figura N° 84: Ejemplo de fusión.


Elaboración propia.

85. Figura N° 85: Ejemplo de inserción de tablas múltiples.


Elaboración propia.

86. Figura N° 86: Función de creación de tabla.


Elaboración propia.

87. Figura N° 87: Ejemplo de uso de tipos de datos.


Elaboración propia.

88. Figura N° 88: Ejemplo de modificación de tabla para agregar una columna.
Elaboración propia.

89. Figura N° 89: Ejemplo de definición de una columna con restricción NOT NULL.
Elaboración propia.

90. Figura N° 90: Ejemplo de definición de una columna con restricción UNIQUE.
Elaboración propia.

167
Programación para Desarrollo de Software With Oracle

91. Figura N° 91: Ejemplo de definición de una restricción PRIMARY KEY.


Elaboración propia.

92. Figura N° 92: Ejemplo de definición de una restricción FOREIGN KEY.


Elaboración propia.

93. Figura N° 93: Ejemplo de definición de una restricción CHECK.


Elaboración propia.

94. Figura N° 94: Ejemplo de habilitación y deshabilitación de una restricción.


Elaboración propia.

95. Figura N° 95: Ejemplo de creación de una vista.


Elaboración propia.

96. Figura N° 96: Ejemplo de actualización de datos en una vista.


Elaboración propia.

97. Figura N° 97: Ejemplo de modificación y eliminación de una vista.


Elaboración propia.

98. Figura N° 98: Ejemplo de uso de variable en Java.


Elaboración propia.

99. Figura N° 99: Declaración y asignación de variables enteras


Elaboración propia.

100. Figura N° 100: Declaración y asignación de variables de punto flotante.


Elaboración propia.

101. Figura N° 101: Operaciones numéricas.


Elaboración propia.

102. Figura N° 102: Declaración y asignación de cadena de texto.


Elaboración propia.

103. Figura N° 103: Concatenación de cadenas.


Elaboración propia.

168
Programación para Desarrollo de Software With Oracle

104. Figura N° 104: Operaciones con cadenas.


Elaboración propia.

105. Figura N° 105: Escáner de la marca EPSON.


Elaboración propia.

106. Figura N° 106: Declaración y asignación de un array de caracteres.


Elaboración propia.

107. Figura N° 107: Entada y salida de texto.


Elaboración propia.

108. Figura N° 108: Formateo de cadenas.


Elaboración propia.

109. Figura N° 109: Conversión Implícita.


Elaboración propia.

110. Figura N° 110: Conversión Explícita.


Elaboración propia.

111. Figura N° 111: Conversión entre tipos numéricos.


Elaboración propia.

112. Figura N° 112: Conversión entre ‘String’ y tipos numéricos.


Elaboración propia.

113. Figura N° 113: Conversión entre tipos de objetos.


Elaboración propia.

114. Figura N° 114: Declaración de método simple.


Elaboración propia.

115. Figura N° 115: Invocación por métodos.


Elaboración propia.

116. Figura N° 116: Métodos estáticos.


Elaboración propia.

169
Programación para Desarrollo de Software With Oracle

117. Figura N° 117: Paquetes en Java.


Elaboración propia.

118. Figura N° 118: Declaración ‘import’.


Elaboración propia.

119. Figura N° 119: Declaración estática ‘import’.


Elaboración propia.

120. Figura N° 120: Construcción If.


Elaboración propia.

121. Figura N° 121: Construcción If/Else.


Elaboración propia.

122. Figura N° 122: Construcción Else-If.


Elaboración propia.

123. Figura N° 123: Sentencia Switch.


Elaboración propia.

124. Figura N° 124: Bucle ‘for’.


Elaboración propia.

125. Figura N° 125: Ejemplo de bucle ‘for’.


Elaboración propia.

126. Figura N° 126: Bucle while.


Elaboración propia.

127. Figura N° 127: Ejemplo de bucle ‘while’.


Elaboración propia.

128. Figura N° 128: Bucle ‘do-while’.


Elaboración propia.

129. Figura N° 129: Ejemplo de bucle ‘do-while’.


Elaboración propia.

170
Programación para Desarrollo de Software With Oracle

130. Figura N° 130: Sentencia ‘break’.


Elaboración propia.

131. Figura N° 131: Sentencia ‘continue’.


Elaboración propia.

132. Figura N° 132: Sintaxis de una clase.


Elaboración propia.

133. Figura N° 133: Ejemplo de creación de la clase.


Elaboración propia.

134. Figura N° 134: Uso de una clase.


Elaboración propia.

135. Figura N° 135: Sintaxis de la instanciación de objetos.


Elaboración propia.

136. Figura N° 136: Clase ‘Persona’.


Elaboración propia.

137. Figura N° 137: Instancia de la clase ‘Persona’.


Elaboración propia.

138. Figura N° 138: Usando métodos y variables de instancia.


Elaboración propia.

139. Figura N° 139: Sintaxis de un constructor.


Elaboración propia.

140. Figura N° 140: Ejemplo de constructor.


Elaboración propia.

141. Figura N° 141: Uso de constructor.


Elaboración propia.
142. Figura N° 142: Sobrecarga de métodos.
Elaboración propia.

171
Programación para Desarrollo de Software With Oracle

143. Figura N° 143: Sobrecarga del Método sumar.


Elaboración propia.

144. Figura N° 144: Uso de Métodos sobrecargados.


Elaboración propia.

145. Figura N° 145: Encapsulación en Java.


Elaboración propia.

146. Figura N° 146: Ejemplo de una variable estática.


Elaboración propia.

147. Figura N° 147: Acceso a una variable estática.


Elaboración propia.

148. Figura N° 148: Ejemplo de método estático.


Elaboración propia.

149. Figura N° 149: Método estático.


Elaboración propia.

150. Figura N° 150: Sintaxis para declarar matriz unidimensional.


Elaboración propia.

151. Figura N° 151: Declaración de matriz enteros.


Elaboración propia.

152. Figura N° 152: Declaración de matriz.


Elaboración propia.

153. Figura N° 152: Inicialización después de la declaración.


Elaboración propia.

154. Figura N° 154: Inicialización con un tamaño específico.


Elaboración propia.

155. Figura N° 155: Accediendo a matrices.


Elaboración propia.

172
Programación para Desarrollo de Software With Oracle

156. Figura N° 156: Importación de clase ‘ArrayList’.


Elaboración propia.

157. Figura N° 157: Declaración e inicialización.


Elaboración propia.

158. Figura N° 158: Agregar elemento a ‘ArrayList’.


Elaboración propia.

159. Figura N° 159: Acceso a elemento de un ‘ArrayList’.


Elaboración propia.

160. Figura N° 160: Modificación elementos de un ‘ArrayList’.


Elaboración propia.

161. Figura N° 161: Eliminar elementos de un ‘ArrayList’.


Elaboración propia.

162. Figura N° 162: Tamaño de la lista.


Elaboración propia.

163. Figura N° 163: Iteración.


Elaboración propia.

164. Figura N° 164: Uso de ‘ArrayList’.


Elaboración propia.

165. Figura N° 165: Sintaxis básica ‘Try-catch’.


Elaboración propia.

166. Figura N° 166: Manejo de excepciones.


Elaboración propia.

167. Figura N° 167: Bloque ‘finally’.


Elaboración propia.

168. Figura N° 168: Lanzamientos de excepciones.


Elaboración propia.

173
Programación para Desarrollo de Software With Oracle

169. Figura N° 169: Propagación de excepciones.


Elaboración propia.

170. Figura N° 170: Personalización de excepciones.


Elaboración propia

171. Figura N° 171: Cuadro de Diálogo de Java Build.


https://www.clasesdeinformaticaweb.com/java-desde-cero/interfaces-graficas-en-java/

172. Figura N° 172: Variables para conexión a la base de datos.


https://www.clasesdeinformaticaweb.com/java-desde-cero/java-con-bases-de-datos/

173. Figura N° 173: Método para la conexión.


https://www.clasesdeinformaticaweb.com/java-desde-cero/java-con-bases-de-datos/

174. Figura N° 174: Método main para conectarnos a la base de datos.


https://www.clasesdeinformaticaweb.com/java-desde-cero/java-con-bases-de-datos/

175. Figura N° 175: Cerrar conexión a la base de datos.


https://www.clasesdeinformaticaweb.com/java-desde-cero/java-con-bases-de-datos/

176. Figura N° 176: Estructura de la base de datos.


https://codigosdeprogramacion.com/2023/01/26/tutorial-crud-en-java-y-mysql/

177. Figura N° 177: Estructura del proyecto.


https://codigosdeprogramacion.com/2023/01/26/tutorial-crud-en-java-y-mysql/

178. Figura N° 178: Diseño de la vista.


https://codigosdeprogramacion.com/2023/01/26/tutorial-crud-en-java-y-mysql/

179. Figura N° 179: Método de Conexión.


https://codigosdeprogramacion.com/2023/01/26/tutorial-crud-en-java-y-mysql/

180. Figura N° 180: Código para guardar.


https://codigosdeprogramacion.com/2023/01/26/tutorial-crud-en-java-y-mysql/

181. Figura N° 181: Código para buscar.


https://codigosdeprogramacion.com/2023/01/26/tutorial-crud-en-java-y-mysql/

174
Programación para Desarrollo de Software With Oracle

182. Figura N° 182: Código para editar.


https://codigosdeprogramacion.com/2023/01/26/tutorial-crud-en-java-y-mysql/

183. Figura N° 183: Código para eliminar.


https://codigosdeprogramacion.com/2023/01/26/tutorial-crud-en-java-y-mysql/

184. Figura N° 184: Funcionamiento del proyecto.


https://codigosdeprogramacion.com/2023/01/26/tutorial-crud-en-java-y-mysql/

175

También podría gustarte