Bases de datos ss14

36
Servicio de asesoría y resolución de ejercicios [email protected] www.maestronline.com Solicita una cotización a través de nuestros correos. Maestros Online Bases de datos Apoyo en ejercicios Servicio de asesorías y solución de ejercicios [email protected]

Transcript of Bases de datos ss14

Page 1: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Solicita una cotización a través de nuestros correos.

Maestros Online

Bases de datos

Apoyo en

ejercicios

Servicio de asesorías y solución de ejercicios

[email protected]

Page 2: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Trae a clase información de fuentes confiables, como la Biblioteca Digital, sobre los siguientes productos y las compañías que los distribuyen:

a. MySQL

b. ORACLEDB

c. MS SQL SERVER

d. DB2

Instrucciones para el alumno:

1. Con la información que traes a clase de los siguientes productos elabora un cuadro

comparativo que contenga:

MySQL ORACLE DB MS SQL

SERVER DB2

Diseño y propiedades

Almacenamiento de

datos

Query language

Protocolos

Unicode

TTL para entradas

Compresión

Integridad

Atomicidad

Consistencia

Data storage

Transacciones

Control de revisiones

Distribución

Escalabilidad horizontal

Replicación

Modo de replicación

Arquitectura (shared

Page 3: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

nothing architecture)

Sistema

Tamaño máximo (16 mb,

20 mb, etc)

2. Selecciona cuál de las bases de datos conviene más adquirir si tu factor principal de

decisión es el costo del producto, justifica tu respuesta.

3. Consulta y haz un resumen de la tecnología “Reporting Services” de MS SQL Server y

una tecnología equivalente en ORACLE DB.

4. Consulta y haz un resumen de la tecnología “Analysis Services” de SQL Server y una

tecnología equivalente en ORACLE DB.

5. Consulta y haz un resumen de la tecnología “Integration Services” de SQL Server y una

tecnología equivalente en ORACLE DB.

6. Describe cinco aplicaciones donde se usen las bases de datos.

7. Explica qué es una base de datos y qué es un DBMS e ilustra con un ejemplo ambos

conceptos.

8. Describe qué es un RDBMS (Manejador de bases de datos relacionales).

9. Elabora una arquitectura con los componentes de un DBMS.

10. Identifica y describe cuáles son las ventajas y desventajas de un DBMS.

11. Identifica quiénes son los actores en escena en un entorno de bases de datos.

1. Considera la siguiente presentación gráfica de los niveles de la base de datos:

Page 4: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

2. Menciona cuáles serían las instrucciones para el DML del nivel externo, cuáles serían las

instrucciones para el DDL del nivel conceptual y agrega dichas instrucciones al lado de

cada nivel.

3. Consulta, incluye y explica detalladamente la relación de los usuarios con los niveles de

abstracción expresados en el punto1.

4. Consulta, incluye y explica detalladamente al menos 5 conceptos de la tecnología de

información donde haya intervenido la ANSI para efectos de estandarización.

5. Elabora un mapa conceptual donde menciones los 3 niveles de una base de datos,

cómo están conformados y cuáles son sus funciones.

6. Agrega ejemplos que ayuden a comprender mejor la función de cada nivel.

1. naliza el siguiente modelo correspondiente a un DER para un sistema de renta de videos.

Haz clic en la imagen para verla en grande.

2. Da respuesta a los siguiente:

a. Identifica las entidades y sus atributos.

Page 5: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

b. Escribe la interpretación del diagrama dado explicando el significado de cada relación

entre las entidades.

c. Explica el significado de relaciones 1:1, 1:N, M:N.

d. Ejemplifica una relación recursiva.

3. Agrega al modelo anterior lo siguiente: un miembro del videoclub puede tener varios

familiares que también son miembros del videoclub a través de una relación M:N.

Software para modelado de datos en UML como StarUML o ArgoUML.

Instrucciones para el alumno:

1. Representa el siguiente modelo en un modelo de clases UML.

1. Analiza el siguiente modelo de base de datos:

Carreras

Page 6: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

IdCarrera NombreCarrera Duración

1 Mercadotecnia 8 Tetramestres

2 Administración 8 Tetramestres

Alumnos

IdAlumno Nombre Promedio IdCarrera

1 Juan Reyes 90 1

2 Luis González 80 1

3 Carlos Pérez 85 2

2. Indica cuántas tuplas tiene la relación “Carrera”.

3. Indica cuántas tuplas tiene la relación “Alumnos”.

4. Identifica en cada relación cuál sería la clave primaria.

5. Identifica si en alguna relación existiría una llave foránea y si es así, indica cuál sería

dicha relación y su llave foránea.

6. Indica la cardinalidad de la relación carreras.

7. Indica la cardinalidad de la relación alumnos.

8. Indica el dominio del atributo promedio.

9. Indica el dominio del atributo idCarrera de la relación alumnos.

10. Indica el grado de la relación alumnos.

Software StarUML o ArgoUML.

Instrucciones para el alumno:

1. Lee el siguiente caso y realiza lo que se te solicita:

La mayor cantidad de donaciones que recibe la Cruz Roja Mexicana (CRM), contrario a lo que se pudiera pensar, no son derivadas de las campañas nacionales de colecta, sino de las aportaciones voluntarias que personas e instituciones realizan de manera altruista, sin importar que exista una campaña o no. Del análisis del caso de negocio podemos desprender dos cosas importantes: a) Requerimientos de la aplicación. b) Características del flujo de información. En el caso de nuestro ejemplo tendríamos el siguiente resultado. Requerimientos de la aplicación La CRM desea una aplicación de bases de datos que les permita lo siguiente:

Page 7: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Registrar las aportaciones que se realizan.

Que permita disponer de un padrón de donadores clasificado.

Que permita hacer estudios estadísticos que arrojen información

significativa de los sectores que representan mayor captación, a fin

de dirigir sus campañas publicitarias de forma adecuada.

Que emita comprobantes fiscales para deducción.

Que emita un consolidado rápido del monto global aportado por

cada una de los sectores que colaboran con donaciones.

Características de flujo de información Las donaciones tienen las siguientes características:

Pueden ser realizadas en todos los estados de la República

Mexicana, incluso por un mismo donador.

Pueden ser realizadas por dos tipos de donador: persona física o

persona moral.

Un donador puede hacer tantas donaciones como desee.

Los donadores pueden dedicarse a cualquiera de las siguientes

actividades objetivo (sectores): industria, comercio, sector

financiero, sector servicios, profesionistas independientes, otros.

Los donadores pudieron haberse enterado de la campaña por:

periódico, televisión, notificación de la empresa, aviso personal de

la Cruz Roja o visitador voluntario.

2. Utilizando la información que se obtuvo en la etapa anterior del caso, decide cuál sería el

modelo de datos que servirá como solución a los requerimientos de aplicación y de flujo

de información de la Cruz Roja Mexicana (considera el modelo entidad-relación y el

modelo de clases UML).

3. Dibuja el modelo propuesto como solución.

4. Una vez terminada la parte anterior procede a diseñar cómo quedaría la base de datos

con cada una de sus relaciones, claves primarias, claves foráneas, etc. usando como

referencia el modelo relacional.

1. Lee el siguiente caso y realiza lo que se te solicita:

La escuela “Escuela de Artes de México” requiere tener una normalización de su base de datos para controlar los certificados de estudios de los estudiantes, y cuenta con las siguientes características:

a. La universidad controla, por cada estudiante,

su NombreEstudiante, su NúmeroEstudiante, su Dni,

Page 8: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

suDirecciónActualEstudiante y

su TeléfonoActualEstudiante, su DirecciónPermanente-

Estudiante y suTeléfonoPermanenteEstudiante, su FechaNac,

su Sexo, su Curso („primer año‟, „segundo año‟, …, „graduado‟) y

suEspecialidad. Tanto el Dni como el NúmeroEstudiante tienen

valores únicos para cada estudiante.

b. Cada departamento está descrito mediante un NombreDpto,

un CódigoDpto, un NúmeroOficina, un TeléfonoOficina y

unColegio. Tanto el NombreDpto como el CódigoDpto tienen

valores únicos para cada departamento.

c. Cada curso tiene un NombreCurso, una DescripciónCurso,

un NúmeroCurso, el NúmeroHorasSemestre, el Nivel y

elDepartamentoImparte. El número de curso (NúmeroCurso) es

único por cada uno de ellos.

d. Cada sección tiene un profesor (NombreProfesor), un Semestre,

un Año, un CursoSección y un NumSección. El número de sección

(NumSección) diferencia cada una de las secciones del mismo

curso que se imparten durante el mismo semestre/año; sus valores

son 1, 2, 3,..., hasta alcanzar el número de secciones impartidas

durante cada semestre.

e. Un registro de nota hace referencia a un Estudiante (Dni), una

sección particular y una Nota.

2. Diseña para cada relación sus atributos, claves, etc., basándote en el modelo relacional.

3. Muestra todas las dependencias funcionales que deben cumplirse entre los atributos.

4. Normaliza tu diseño usando las formas de normalización estudiadas en este tema.

Diseño de una base de datos relacional para un proyecto real.

Instrucciones para realizar evidencia:

1. El dueño de la empresa “Yo vendo”, llega a ti como consultor del área de TI, te presenta

su problema y te pide que lo apoyes a darle solución: Compañía yovendo.com

La compañía “Yo vendo” se dedica a vender productos por Internet y requiere guardar la

información de todos sus clientes, productos, proveedores, empresas de mensajería y de

sus pedidos.

2. Entre las características que te solicitan para el diseño de la base de datos son las

siguientes:

Page 9: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

a. Se tiene el nombre del producto, proveedor, precio unitario actual, unidades en

inventario, nivel de reorden (Nivel en el que es necesario pedir más producto para que

la existencia se encuentre en equilibrio).

b. El producto se clasifica en categorías, cada producto tiene una categoría, para la

categoría se tiene nombre y descripción.

c. Se tiene una lista de todos los clientes de la empresa con datos como su Id, su

nombre, título, dirección, ciudad, región, código postal, teléfono y correo electrónico.

d. Debe guardar la información de clientes. Un cliente puede tener múltiples pedidos

(órdenes de compra).

e. Se guarda la fecha en que se hizo el pedido (orderDate), para cuando es requerido

(Required date) y cuándo se envió (shippedDate).

f. Cada pedido se envía por mensajería a una dirección especificada en la orden

(ShipAddress). En cada pedido se registra el empleado que lo atendió.

Del empleado se tiene su Id, su nombre y apellido, fecha de nacimiento (BirthDate),

fecha de contratación (HireDate), su dirección y el nombre de su jefe, que a su vez es

un empleado.

g. En cada pedido se puede tener pedir varias unidades del mismo producto y se

requiere guardar el precio al que se vendió el producto.

h. El precio del producto en el catálogo de productos puede cambiar sin previo aviso.

i. De la compañía de mensajería se tiene el Id, el nombre de la compañía y su teléfono.

Para el proveedor se necesita guardar el nombre, dirección, ciudad, CP, país,

teléfono.

3. Como parte de tu trabajo como especialista de TI, te pide que entregues lo siguiente:

a. Modelo de clases en UML.

b. Definición de las tablas, llaves primarias y llaves foráneas.

c. Normalización de tablas.

Laboratorio de computación con software ORACLE Database Express Edition, StartUML o ArgoUML.

Instrucciones para el alumno:

1. Lee el siguiente caso:

Como consultor de TI, te contacta un VideoClub para que diseñes una base de datos y

posteriormente implementarla en ORACLE.

Esta base de datos le permitirá almacenar consultar información acerca de las películas

que renta y devuelve un cliente.

El videoclub solo proporciona la siguiente forma que actualmente utiliza para llevar un

control manual por cada transacción:

Page 10: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Como consultor de TI, te contacta un videoclub para que diseñes una base de datos y posteriormente implementarla en ORACLE. Esta base de datos le permitirá almacenar consultar información acerca de las películas que renta y devuelve un cliente.

El videoclub sólo proporciona la siguiente forma que actualmente utiliza para llevar un control manual por cada transacción:

RENTAS/DEVOLUCION DE PELÍCULAS

Clave de cliente: ____________________________ Folio: _____________________________________ Fecha de emisión: __________________________ Nombre del cliente: _________________________ Dirección: ___________________________________ Teléfono: ___________________________________ RFC: ________________________________________

Clave de

película Título

Tipo de

Movimiento

Fecha de

Renta

Fecha de

Devolución

2. Obtén el diagrama entidad-relación o diagrama de clases.

3. Diseña detalladamente la base de datos resultante:

a. Normaliza la base de datos.

b. Nombre de columna, tipo de dato, especificación.

4. Construye la base de datos usando el DDL de SQL.

a. Incluye para cada tabla sus columnas y tipos.

b. Incluye para cada tabla su llave primaria.

c. Incluye para cada tabla sus llaves foráneas (si la hubiere).

5. Llena con al menos 10 campos cada una de las tablas.

1. Analiza el siguiente modelo de base de datos:

Producto_terminado

IdProductoTerminado NombreProducto

1 Teléfono

2 Conmutador

Page 11: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Parte

IdParte Nombre Cantidad IdProductoTerminado

1 Caratula 1 1

2 Batería 2 1

3 Teclado 1 2

2. Crea el diagrama entidad relación.

3. Crea la tabla Producto_Terminado con la instrucción CREATE.

4. Crea la tabla Parte con la instrucción CREATE.

5. Agrega una restricción de llave primaria en IdProductoTerminado para la

tabla Producto_terminado.

6. Agrega una restricción de llave primaria en IdParte para la tabla Parte.

7. Agrega una restricción de llave foránea en IdProductoTerminado para la

tabla Parte relacionándola con la llave primaria (IdProductoTerminado) de la

tablaProducto_terminado.

1. Analiza la siguiente base de datos relacional llamada Ventas:

Producto

PK ProductoId

NombreProducto

Ventas

FK1 CompradorId

Fk2 ProductId

cantidad

Comprador

PK CompradorId

NombreComprador

Page 12: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Donde:

PK Significa llave primaria

FK1 Llave foránea 1

FK2 Llave foránea 2

2. Construye la base de datos anterior con las instrucciones del DDL, que incluya las

restricciones necesarias.

3. Define las restricciones apropiadas para conservar la integridad de la base de datos

"Ventas" mediante instrucciones del DDL.

4. Una vez construida la base de datos, escribe las instrucciones necesarias para llenar los

datos de la base de datos usando la instrucción INSERT (al menos 10 registros por tabla).

5. Realiza las siguientes operaciones con el DML específico para ORACLE:

a. Lista todos los productos.

b. Lista todos compradores.

c. Lista todas las ventas.

d. Lista todas las ventas, incluyendo el nombre del producto y el nombre del comprador.

e. Lista todas aquellas ventas del producto 1.

f. Lista todas aquellas ventas del comprador 4.

g. Lista el promedio de ventas.

h. Lista el conteo de todos los productos.

i. Lista la desviación estándar de la cantidad de productos vendidos.

j. Lista la varianza de la cantidad de productos vendidos.

k. Lista el producto más vendido incluyendo su nombre y el nombre del comprador.

l. Lista el producto menos vendido incluyendo su nombre y el nombre del comprador.

m. Para cada nombre de comprador lista el total de la suma de sus ventas.

n. Para cada nombre de producto lista el total de la suma de sus ventas.

o. Cambia el nombre del producto 1.

p. Borra el comprador 10.

q. Borra todos los productos que no tengan venta.

1. Analiza la siguiente bases de datos:

Proveedores

NumProv NomProv Estado Ciudad

P1 Rodríguez NL Monterrey

P2 Reyes Tamp Camargo

Page 13: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

P3 López Coah. Piedras Negras

P4 Smith Chih Cd. Juárez

Partes

NumParte NomParte Color Peso Ciudad

PA1 Tuerca Rojo 12 Monterrey

PA2 Tornillo Verde 10 Camargo

PA3 Engrane Azul 11 Saltillo

PA4 Eje Rojo 15 Monterrey

PA5 Leva Azul 22 Camargo

PA6 Aspa Rojo 24 Monterrey

Proyectos

NumProy NomProy Ciudad

PY1 Clasificadora Camargo

PY2 Perforadora Saltillo

PY3 Lectora Cd. Juárez

PY4 Consola Cd. Juárez

PY5 Unidad Cinta Monterrey

PY6 Terminal Reynosa

PY7 Cartucho Monterrey

Suministro

NumProv NumParte NumProy Cantidad

P1 PA1 PY1 100

P1 PA2 PY1 50

P3 PA3 PY1 40

2. Con base en las tablas anteriores contesta lo siguiente:

Page 14: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

a. Obtén el detalle de todos los proyectos.

b. Obtén el detalle de los proyectos de Cd. Juárez.

c. Obtén el detalle de los proveedores de Monterrey.

d. Inserta un nuevo proveedor.

e. Inserta un nuevo proyecto.

f. Elimina un proveedor.

g. Elimina un proyecto.

h. Cambia el color a una parte.

i. Cambia el nombre a un proveedor.

Laboratorio de computación con software ORACLE Database Express Edition.

Instrucciones para el alumno:

1. Analiza la siguiente base de datos relacional llamada Expedientes:

Doctor

PK doc_id

Nombre

ApellidoPaterno

ApellidoMaterno

Especialidad

Telefono

Paciente

PK Paciente_Id

Nombre

ApellidoPaterno

ApellidoMaterno

Compañía de Seguros

Telefono

Expediente

PK Fecha_admision

Page 15: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

PK, FK Paciente_Id

FK doc_id

Diagnostico

Donde:

PK Significa llave primaria

FK Significa llave foránea

Nota: en la tabla expediente la llave primaria está compuesta por la unión de la fecha de admisión y el número de paciente. El número de paciente en el tabla expediente es llave foránea relacionada con la tabla paciente.

2. Construye la base de datos anterior con las instrucciones del DDL, incluye las

restricciones necesarias.

3. Define las restricciones apropiadas para conservar la integridad de la base de

datos Expedientes mediante instrucciones del DDL.

4. Una vez construida la base de datos, escribe las instrucciones necesarias para llenar los

datos de la base de datos usando la instrucción INSERT (al menos 10 registros por tabla).

5. Realice las siguientes operaciones con el DML específico para ORACLE:

a. Liste todos los pacientes.

b. Lista todos doctores.

c. Lista todos los expedientes.

d. Lista todos los pacientes y sus respectivos doctores

e. Lista todos los doctores y sus respectivos pacientes.

f. Lista todos los pacientes con sus respectivas fechas de admisión en el hospital.

g. Lista los pacientes para un doctor en particular, por ejemplo el doctor cuyo id es 1.

h. Liste los pares de doctores quienes tienen la misma especialidad.

i. Lista el nombre de los pacientes que tienen más un expediente.

j. Lista el nombre de los doctores que atendieron pacientes en lo que va del año.

k. Lista los doctores que tengan o no pacientes asignados en lo que va del año.

l. Lista los pacientes que no tienen asignado un doctor.

m. Liste los expedientes cuyo diagnóstico excede los 150 caracteres.

Software ORACLE Database Express Edition.

Instrucciones para el alumno:

1. Analiza el siguiente modelo de base de datos:

Computadora

Page 16: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

IdComputadora NombreModelo

1 Modelo 1

2 Modelo 2

3 Modelo 3

Componente

IdComponente NombreComponente Cantidad IdComputadora

1 CPU 1 1

2 Teclado 1 1

3 Ratón 2 2

4 Teclado 1 2

2. Lista todos los componentes de la computadora modelo 1 (incluye el nombre del modelo

de la tabla Computadora).

3. Lista todas las computadoras que no tengan componentes.

4. Lista todos los componentes de las computadoras del modelo 2 que tengan más de 2 en

cantidad (incluye el nombre del modelo de la tabla Computadora).

5. Lista todos los componentes de la computadora modelo 2 cuya cantidad este entre 2 y 3

cantidad (incluye el nombre del modelo de la tabla Computadora).

1. Analiza el siguiente modelo de base de datos:

Carreras

IdCarrera NombreCarrera Duración

1 Mercadotecnia 8 Tetramestres

2 Administración 8 Tetramestres

Alumnos

IdAlumno Nombre Promedio IdCarrera

1 Juan Hernández 90 1

2 Luis González 80 1

3 Carlos Pérez 85 2

Page 17: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

2. Construye la base de datos anterior con las instrucciones del DDL, incluye las

restricciones necesarias.

3. Define las restricciones apropiadas para conservar la integridad de la base de datos

"Expedientes" mediante instrucciones del DDL.

4. Una vez construida la base de datos, escribe las instrucciones necesarias para llenar los

datos de la base de datos usando la instrucción INSERT (al menos 10 registros por tabla).

5. Realiza las siguientes operaciones con el DML específico para ORACLE y utiliza

subconsulta y consultas correlacionadas, no utilices JOINS:

a. Lista todos los alumnos.

b. Lista todas las carreras.

c. Lista todos los grupos.

d. Lista todas las materias.

e. Lista todos los alumnos y sus respectivos grupos.

f. Lista todas las carreras y sus respectivos alumnos.

g. Lista todas las carreras que tengan más de 5 alumnos.

h. Lista todos los alumnos que no estén en algún grupo.

i. Lista todas las carreras y sus respectivos grupos.

j. Lista aquellos alumnos que estén inscritos en dos o más grupos.

k. Lista todas las carreras que no tengan alumnos.

l. Lista todos los alumnos que estén en más de un grupo.

m. Lista las materias con más de 5 grupos.

n. Lista los grupos con más de 10 alumnos.

1. Analiza el siguiente modelo de base de datos:

Cuenta

IdCuenta TitularCuenta Saldo

1001 Juan Rodríguez 8000

1002 Andrés Garcia 12000

1003 Carlos Lanza 25000

Movimiento

IdMovimiento Cuenta Fecha Concepto Cargo-Abono

Importe

1 1003 1/2/2014 Pago Cargo 500

Page 18: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

servicios

2 1003 2/2/2014 Deposito Abono 1000

3 1001 3/3/2014 Retiro ATM Cargo 200

2. Para las siguientes consultas utiliza únicamente subconsultas o consultas

correlacionadas, no utilices JOINS.

a. Lista todas las cuentas.

b. Lista todos los movimientos.

c. Para la cuenta 1003 lista todos sus movimientos.

d. Lista sólo las cuentas que tengan movimientos.

e. Lista sólo aquellas cuentas que hayan tenido movimientos en lo que va del año en

curso.

f. Lista los movimientos que tienen como cuenta “1001”.

g. Lista los movimientos de “Carlos Lanza”.

h. Lista los movimientos cuya cuenta tenga más de $11,000 en saldo.

i. Lista los movimientos de cargo para la cuenta 1003.

j. Lista los movimientos de la cuenta 1003 que excedan los $500.

1. Analiza el siguiente modelo de base de datos:

Departamento

IdDepartamento NombreDepartamento

1 Mercadotecnia

2 Administración

3 Producción

Empleado

IdEmpleado Nombre Puesto IdDepartamento

1 Juan Hernández Jefe Publicidad 1

2 Luis González Analista 1

3 Carlos Pérez Contador 2

Page 19: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

2. Realiza las siguientes instrucciones:

a. Crea la tabla Departamento con la instrucción CREATE.

b. Crea la tabla Empleado con la instrucción CREATE.

c. Agrega una restricción de llave primaria en IdDepartamento para la tabla

departamento.

d. Agrega una restricción de llave primaria en IdEmpleado para la tabla empleado.

e. Agrega una restricción de llave foránea en IdDepartamento para la

tabla Empleado relacionándola con la llave primaria (idDepartamento) de la

tabla Departamentoincluyendo una restricción ON DELETE CASCADE de tal manera

que si se elimina un departamento se eliminen todos los empleados de dicho

departamento.

f. Modifica la tabla empleado agregando una columna llamada GradoEstudios con un

tipo de dato adecuado.

g. Modifica la tabla departamento agregando una columna

llamada CantidadEmpleados (significa la cantidad de empleados que tiene el

departamento) con un tipo de datos adecuado.

3. Analiza el siguiente modelo de base de datos:

Proyecto

IdProyecto NombreProyecto

1 Muestra internacional de Cine Francés

2 Encuentro de literatura española

3 Lecturas variadas

Evento

IdEvento EventoNombre Clasificacion IdProyecto

1 La Revolución

Francesa Todo publico 1

2 Historia de amor Adolescentes y

Adultos 1

3 Lecturas nocturnas Todo publico 2

4. Realiza lo que se te pide:

a. Crea la tabla Proyecto con la instrucción CREATE.

b. Crea la tabla Evento con la instrucción CREATE.

c. Agrega una restricción de llave primaria en IdProyecto para la tabla Proyecto.

Page 20: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

d. Agrega una restricción de llave primaria en IdEvento para la tabla Empleado.

e. Agrega una restricción de llave foránea en IdProyecto para la

tabla Evento relacionándola con la llave primaria (IdProyecto) de la

tabla Proyecto incluyendo una restricción ON DELETE CASCADE de tal manera que si

se elimina un Proyecto se eliminen todos los eventos de dicho proyecto.

f. Modifica la tabla Evento agregando una columna llamada LugarDelEvento con un

tipo dato adecuado.

g. Modifica la tabla Proyecto agregando una columna

llamada CantidadEventos (significa la cantidad de eventos que tiene el proyecto) con

un tipo de datos adecuado.

Reporte de ejecución de consultas avanzadas en el estándar SQL que se ejecuten en un DBMS relacional.

Instrucciones para realizar evidencia:

1. Supón que tienes la siguiente base de datos relacional llamada "Órdenes de Compra":

a. Clientes

NoCliente (PK) Nombre Ciudad

1 P. Jones Monterrey

2 A. Chan DF

3 K. Green DF

4 B. Smith Guadalajara

5 A. Khan Guadalajara

b. Órdenes

NoOrden(PK) NoCliente FechaOrden

1 1 24-01-12

2 1 24-01-12

3 2 24-01-12

4 4 24-01-12

c. Detalle de órdenes

NoOrden(FK) NoArticulo(FK) Cantidad (> 0)

Page 21: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

1 1 55

1 3 124

2 1 24

2 2 35

2 3 12

2 4 125

2 5 33

3 1 45

3 2 12

3 3 234

3 4 13

3 5 145

4 4 32

4 5 125

Nota: En esta tabla la llave primaria es NoOrden combinada con NoArticulo

d. Artículo

NoArticulo (PK) Nombre Precio Existencia (>0)

1 Clavos 0.15 250

2 Tornillos 0.75 6750

3 Tuercas 0.65 4562

4 Wasas 4.76 125

5 Lijas 0.11 9875

Page 22: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Nota: las restricciones entre paréntesis son:

PK: Clave primaria >0: Debe ser mayor que cero FK: Llave foránea

2. Construye la base de datos "Órdenes de Compra" mediante las instrucciones del DDL

específicas para ORACLE.

3. Define las restricciones apropiadas para conservar la integridad de la base de datos

"Órdenes de Compra" mediante instrucciones del DDL específicas para ORACLE.

4. Realiza las siguientes operaciones con el DML específico para ORACLE:

a. Escribe una consulta que despliegue el nombre de los primeros 2 clientes que sean

del DF (sin repetir nombres).

b. Escribe una consulta de órdenes cuya fecha esté entre 1 de febrero y 31 de marzo,

desplegando: Número de orden, fecha de orden, los nombres de artículos y

cantidades de cada detalle.

c. Escribe una consulta que despliegue los nombres de los clientes y sus órdenes

colocadas, incluye los clientes que no hayan colocado órdenes en la misma consulta.

d. Escribe una consulta que despliegue el número de orden y nombre de cliente; sólo de

las órdenes cuya fecha sea igual a la fecha más nueva de todas las órdenes.

e. Escribe una consulta que agrupe todos los detalles de órdenes por artículo y

despliegue sólo aquellos artículos que se hayan ordenado más de 100 unidades.

f. Escribe una consulta que despliegue aquellos clientes que hayan comprado tornillos o

tuercas.

g. Escribe una consulta que despliegue aquellos clientes que hayan comprado tornillos y

tuercas.

h. Escribe una consulta que despliegue aquellos clientes que hayan comprado tornillos,

pero que no hayan comprado tuercas.

i. Escribe una instrucción que borre todo los artículos que no hayan tenido movimientos.

j. Escribe una instrucción que sume 100 a la existencia, sólo al artículo cuyo número es

1.

k. Escribe una instrucción que inserte un nuevo artículo llamado "Tachuelas", cuyo

precio es .50 y su existencia es 1000.

l. Escribe una instrucción que actualice todos los precios de los artículos en un 95%.

1. Analiza la siguiente función:

FUNCTION convertir_moneda

(cantidad IN NUMBER(12,3), moneda_original IN VARCHAR2, moneda_destino IN VARCHAR2) RETURNS NUMBER(12,3) IS /* ahora comienza la declaración */ conversion IN NUMBER(12,3); datos_mal EXCEPTION;

Page 23: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

BEGIN

/*Inicio de la sección ejecutable de un bloque*/ IF cantidad > 0 THEN . . .; ELSE . . .; END IF;

EXCEPTION

/*Inicio de la sección de manejo de excepciones */

WHEN datos_mal THEN . . .;

END;

2. Agrega las instrucciones necesarias PL/SQL para que la función pueda hacer

conversiones de dólares a euros.

3. Analiza el siguiente procedimiento almacenado:

CREATE OR REPLACE PROCEDURE cambios_estudiantes

(p_legajo IN NUMBER, p_apellido IN VARCHAR2, p_nombre IN VARCHAR2) AS

BEGIN

UPDATE estudiantes SET nombre = p_nombre, apellido = p_apellido WHERE legajo = p_legajo;

EXCEPTION

WHEN no_data_found THEN DBMS_OUTPUT.PUT_LINE(‘No existe el empleado con el legajo’|| p_legajo)

END;

4. Modifica el procedimiento almacenado del punto 3 para que actualice también dirección,

teléfono y correo electrónico.

5. Desarrolla una función en PL/SQL llamada Cantidad_Letra que reciba como parámetro

un valor de tipo numérico que reciba valores como 1250 y retorne su equivalente en

cadena como “Un mil doscientos cincuenta pesos 00/M. N.”

6. Prueba cada una de las funciones y procedimientos y utiliza al menos 5 casos de prueba.

Page 24: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

1. Analiza la siguiente tabla:

Mobiliario

idArticulo Descripcion Existencia

1 Mesa 10

2 Sillon 15

2. Crea esta tabla en alguna de las bases de datos ya existentes usando el DDL.

3. Crea un procedimiento almacenado que inserte un registro en la tabla.

4. Crea un procedimiento almacenado que borre un registro de dicha tabla.

5. Crea un procedimiento almacenado que cambie la descripción y existencia de un artículo

en particular.

6. Crea un procedimiento almacenado que muestre un registro en particular.

7. Diseña un bloque PL/SQL que utilice ciclos y que dé de alta al menos 100 registros en la

tabla usando el procedimiento adecuado.

1. Analiza el siguiente código:

DECLARE mayor_porc_aumento constant number (10,5) := 1.2; medio_porc_aumento constant number (10,5) := 1.1; menor_porc_aumento constant number (10,5) := 1.05; TYPE t_emp IS RECORD ( t_sueldo empleado.sueldo%TYPE, t_nro_emp empleado.nroempleado%TYPE); r_empleado t_emp;

CURSOR c_empleado IS SELECT nroempleado, sueldo FROM empleados;

BEGIN

OPEN c_empleado;

LOOP

FETCH c_empleado INTO r_empleado; EXIT WHEN c_empleado%NOTFOUND;

IF r_empleado. t_nro_emp = 688

OR r_empleado. t_nro_emp = 700 THEN UPDATE empleados SET sueldo = r_empleado.t_sueldo*mayor_porc_aumento WHERE nroempleado = r_empleado.t_nro_emp;

Page 25: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

ELSIF r_empleado.t_nro_emp = 777

OR r_empleado.t_nro_emp = 788 THEN UPDATE empleados SET sueldo = r_empleado.t_sueldo*medio_porc_aumento WHERE nroempleado = r_empleado. t_nro_emp;

ELSE

UPDATE empleados SET sueldo = r_empleado.t_sueldo*menor_porc_aumento WHERE nroempleado = r_empleado. t_nro_emp;

END IF;

END LOOP; CLOSE c_empleado;

END;

2. Modifica el código PL/SQL anterior de la siguiente manera:

a. El cursor se construirá sólo para aquellos empleados cuyo número sea mayor o igual

que 100 y menor o igual que 1000.

b. Aumenta un 10% al sueldo de aquellos empleados cuyo número este entre 150 y 200.

c. Borra aquellos empleados cuyo sueldo sea cero.

3. Construye un cursor para la siguiente tabla, sigue las indicaciones mencionadas.

Producto

idProducto Descripcion Existencia

1 Automovil 2

2 Motocicleta 15

a. El cursor se construirá sólo para aquellos productos cuya cantidad sea mayor o igual

que 2 y menor o igual que 5.

b. Aumenta un 10% la existencia de aquellos productos cuyo número este entre 5 y 10.

c. Borra aquellos productos cuya existencia sea cero.

4. Analiza el siguiente trigger:

CREATE OR REPLACE TRIGGER bd_pagos_estudiantes

BEFORE delete ON pagos_estudiantes

Page 26: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

BEGIN INSERT INTO auditoría_pagos_estud (usuario, fecha_hora_cambio, motivo) VALUES (user, to_char(sysdate, ‘dd/mm/yy hh:mi:ss’,’borrado de filas de pagos_estudiantes’);

END;

5. Construye un trigger que cuando se ingrese un nuevo estudiante inserte un registro en la

tabla de auditoria de pagos de estudiantes indicando que se registra un nuevo

estudiante.

6. Construye un trigger que cuando se cambien los datos de un nuevo estudiante inserte un

registro en la tabla de auditoria de pagos de estudiantes indicando que se realizó

un cambio en un registro.

7. Construye un tipo registro para el siguiente caso:

Punto en el plano cartesiano P(X,Y)

Donde X y Y son enteros.

1. Analiza la siguiente tabla:

Juguete

IdJuguete Descripcion Genero EdadMinima EdadMaxima Existencia

1 Pelota Ambos 3 10 2

2 Muñeca Niña 3 12 3

3 Soldado plastico

Niño 4 12 4

2. Construye la tabla en Oracle usando el DDL.

3. Desarrolla un cursor que sólo incluya aquellos juguetes de ambos géneros.

4. Realiza el código PL/SQL que recorra el cursor creado en el punto anterior y sume un 10

% a la existencia de los juguetes con edad_minima de 8 y edad máxima de 10.

5. Para el inciso 4 utiliza una estructura de registro adecuada a la tabla.

6. Construye un trigger que inserte un registro en una tabla llamada Auditoria que sólo

tiene un campo id y un campo de descripción de evento, el trigger se ejecutara cada vez

que se inserte un registro a la tabla juguete.

7. Lleva a cabo pruebas unitarias para todo el código.

1. Analiza el siguiente código:

Page 27: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

DECLARE

mayor_porc_aumento constant number (10,5) := 1.2; medio_porc_aumento constant number (10,5) := 1.1; menor_porc_aumento constant number (10,5) := 1.05; TYPE t_emp IS RECORD ( t_sueldo empleado.sueldo%TYPE, t_nro_emp empleado.nroempleado%TYPE); r_empleado t_emp;

CURSOR c_empleado IS SELECT nroempleado, sueldo FROM empleados;

BEGIN

OPEN c_empleado;

LOOP

FETCH c_empleado INTO r_empleado; EXIT WHEN c_empleado%NOTFOUND;

IF r_empleado. t_nro_emp = 688

OR r_empleado. t_nro_emp = 700 THEN UPDATE empleados SET sueldo = r_empleado.t_sueldo*mayor_porc_aumento WHERE nroempleado = r_empleado.t_nro_emp;

ELSIF r_empleado.t_nro_emp = 777

OR r_empleado.t_nro_emp = 788 THEN UPDATE empleados SET sueldo = r_empleado.t_sueldo*medio_porc_aumento WHERE nroempleado = r_empleado. t_nro_emp;

ELSE

UPDATE empleados SET sueldo = r_empleado.t_sueldo*menor_porc_aumento WHERE nroempleado = r_empleado. t_nro_emp;

END IF;

END LOOP; CLOSE c_empleado;

END;

2. Realiza lo siguiente:

a. Incluye una sección de errores que se active cuando no se encuentre un empleado e

incluya el mensaje.

Page 28: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

b. Incluye una excepción definida por el usuario que se dispare cuando el sueldo exceda

los 10000.

3. Analiza la siguiente tabla:

Automovil

IdAutomovil Marca Modelo Año Costo Existencia

1 VW Sedan 1965 $ 100,000.00 2

2 Toyota Corola 2014 $ 200,000.00 1

a. Construye la tabla en Oracle usando el DDL.

b. Crea un cursor sólo para la marca VW.

c. Recorre el cursor anterior y cuenta para cada modelo el precio promedio.

d. Recorre el cursor anterior y cuenta para cada modelo la existencia promedio.

e. Recorre el cursor anterior y sube el precio en un 50% de cualquier modelo de costo

menor a $400,000.

f. Incluye una sección de errores que se active cuando no se encuentre un automóvil e

incluya el mensaje correspondiente.

g. Incluye una excepción definida por el usuario que se dispare cuando el precio

modificado exceda los $500,000.

1. Analiza la siguiente tabla:

AireAcondicionado

idAire Descripcion Marca Alto Color Ancho Fondo Peso Voltaje

1 minisplit GE 10 Blanco 20 10 50 110

2 clima ventana

Carrier 5 Negro 10 5 20 220

2. Construye la tabla en Oracle usando el DDL.

3. Crea un cursor sólo para la marca GE.

4. Recorre el cursor anterior y cuenta para cada modelo el peso promedio.

5. Recorre el cursor anterior y cuenta para cada modelo el alto promedio.

6. Recorre el cursor anterior y cambia el voltaje a 220 volts en los modelos que son de

voltaje 110.

Page 29: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

7. Incluye una sección de errores que se active cuando no se encuentre un modelo e incluya

el mensaje correspondiente.

8. Incluye una excepción definida por el usuario que se dispare cuando el voltaje modificado

exceda los 220.

1. Escribe un bloque PL/SQL que permita dar de alta a un empleado en la tabla emp,

insertando los valores mediante una asignación de variables. Es importante revisar la

tabla emp. Las variables a definir son:

a. Número de identificación

b. Nombre

c. Puesto

d. Número de jefe inmediato

e. Fecha de contratación

f. Salario

g. Comisión

h. Departamento al que pertenece

2. En el bloque anterior, asigna los siguientes valores a las variables:

a. Un número de cuatro dígitos

b. „Mi nombre‟

c. „Analista‟

d. Un número de cuatro dígitos

e. Una fecha (DD/MM/YY)

f. Un número de siete dígitos máximo

g. Un número de siete dígitos máximo

h. Un número de dos dígitos

Nota: Define el nivel de transaccional de la siguiente manera:

SET TRANSACTION READ ONLY

Utiliza la instrucción para definir el segmento PL/SQL:

SET TRANSACTION

Bloquea la tabla emp usando:

LOCK TABLE

Si no ocurre un error durante la ejecución del bloque termina el segmento con un:

Page 30: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

COMMIT

De lo contrario utiliza un:

ROLLBACK

Por último, inserta cada una de las variables asignadas a la tabla emp.

3. Utiliza la siguiente tabla para escribir un bloque PL/SQL que satisfaga los siguientes

puntos:

TABLA TEMP

COL1 COL2 MESSAGE

a. Escribe un procedimiento en PL/SQL que tenga un LOOP externo (outer LOOP) y un

LOOP interno (inner LOOP), donde el LOOP externo se repita cinco veces y el interno

cuatro.

b. En el LOOP externo, inserta un registro dentro de la tabla temp con los siguientes

valores:

El valor del contador del ciclo en col1.

El valor de NULL en col2.

El mensaje „In outer LOOP‟ en message.

c. En el LOOP interno, inserta un registro dentro de la tabla temp con los siguientes

valores:

El valor del contador del ciclo externo en col1.

El valor del contador del ciclo interno en col2.

El mensaje „In inner LOOP‟ en message.

Nota: Define el nivel aislamiento de la siguiente manera:

SET TRANSACTION READ ONLY

Utiliza la instrucción para definir el segmento PL/SQL:

SET TRANSACTION

Page 31: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Bloquea la tabla emp usando:

LOCK TABLE

Si no ocurre un error durante la ejecución del bloque termina la el segmento con un:

COMMIT

De lo contrario utiliza un:

ROLLBACK

4. Escribe un bloque utilizando transacciones PL/SQL que satisfaga los siguientes

requerimientos:

a. Obtén un número n del operador utilizando una variable tipo &.

b. Utiliza un ciclo sencillo para extraer los nombres y salarios de la gente con

los n salarios más altos en la compañía.

c. Todos los datos deberán ser extraídos de la tabla emp.

ENAME SAL

{VARCHAR2 (10)} {NUMBER (7,2)}

SMITH 800

ALLEN 1600

WARD 1250

JONES 2975

MARTIN 1250

BLAKE 2850

CLARK 2450

SCOTT 3000

KING 5000

JAMES 950

FORD 3000

MILLER 1300

Page 32: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

d. Guarda los datos en una tabla llamada top_sals, con las columnas

name VARCHAR2(20) y salary NUMBER (7,2).

Notas: Defina el nivel de aislamiento de la siguiente manera:

SET TRANSACTION READ ONLY

Utiliza la instrucción para definir el segmento PL/SQL:

SET TRANSACTION

Bloquea la tabla emp usando:

LOCK TABLE

Si no ocurre un error durante la ejecución del bloque termina la el segmento con un:

COMMIT

De lo contrario utiliza un:

ROLLBACK

1. Asume que tienes las siguientes tablas:

ACCOUNTS

ACCOUNT_ID BAL

1 1000

2 2000

3 1500

4 6500

5 500

Page 33: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

ACTION

ACCOUNT_ID OPER_TYPE NEW_VALUE

3 U 599

6 I 2099

7 U 1599

1 I 399

2. Escribe un bloque PL/SQL basado en las tablas que aparecen arriba y que cumpla con lo

siguiente:

a. La tabla action define un conjunto de acciones a ser tomadas en la tabla accounts.

b. Las acciones (almacenadas en la columna oper_type de la tabla action) pueden

tener dos valores: „I‟ si es que se va a insertar una nueva cuenta o „U‟ para actualizar

una cuenta existente. Por ejemplo, si un registro de la tabla action tiene como

valores (6,‟I‟,2099) significa que hay que crear una cuenta número 6 con $2099 como

saldo inicial, Si hubiera tenido una „U‟ en el ejemplo anterior, significaría que hay que

actualizar la cuenta número 6 y colocar como saldo nuevo el valor $2099.

3. Escribe un bloque PL/SQL que vaya por cada uno de los registros de la tabla action (tip:

utiliza un cursor) llevando a cabo las acciones mencionadas en el párrafo anterior.

4. Si se intenta insertar un registro ya existente entonces se debe realizar una actualización

en lugar de una inserción. Se puede utilizar la excepción internaDUP_VAL_ON_INDEX.

5. Si se intenta hacer una actualización en un registro que no exista, entonces deberá

efectuarse una inserción. Puedes utilizar SQL%NOTFOUND.

Notas: Define el nivel de aislamiento de la siguiente manera:

SET TRANSACTION READ ONLY

Utiliza la instrucción para definir el segmento PL/SQL:

SET TRANSACTION

Bloquea la tabla emp usando:

LOCK TABLE

Page 34: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Si no ocurre un error durante la ejecución del bloque termina el segmento con un:

COMMIT

De lo contrario utiliza un:

ROLLBACK

Laboratorio de computación con software Oracle Database Express Edition, SDK de Java y Net Beans.

Instrucciones para el alumno:

1. Supón que cuentas con la siguiente tabla:

Autores

idAutor nombre apellidoPaterno

1 Harvey Deitel

2 Paul Deitel

3 Tem Nieto

4 Sean Santry

2. Escribe una aplicación en Java que permita lo siguiente:

a. Insertar un autor en la tabla autores.

b. Eliminar un autor de la tabla autores.

c. Mostrar un autor en específico usando como llave el campo idAutor.

d. Modificar un autor en específico usando como llave el campo idAutor.

3. Realiza las siguientes instrucciones:

a. Diseña una interfaz GUI apropiada para la aplicación.

b. Programa una aplicación con interface gráfica usando para ellos la

tecnología swing de Java.

c. Incluye validación en el ingreso de la información.

d. Incluye manejo de transacciones en las operaciones de inserción, eliminación y

modificación.

e. Incluye manejo de errores utilizando mensajes amigables al usuario.

Reporte de ejecución de procedimientos almacenados y triggers en un DBMS.

Instrucciones para realizar evidencia:

Page 35: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

1. Construye la siguiente base de datos mediante un bloque PL/SQL que incluya las

restricciones adecuadas según tu criterio de diseñador de bases de datos:

Tabla INVENTORY

PRODUCT_ID PRODUCT_DESCRIPTION PRODUCT_STATUS STD_ORDER_QTY

1 JACKET STYLE #1 IN STOCK 100

2 JACKET STYLE #2 BACK ORDERED 200

3 JACKET STYLE #3 SPECIAL ORDER 300

Tabla CUST_ORDERS

ORDER_NO PRODUCT_ID ARRIVAL_DATE

1 1 11/12/2013

2 2 23/11/2013

3 3 3/01/2014

4 7 29/12/2013

5 5 18/12/2013

6 3 20/12/2013

Tabla SPECIAL_ORDERS

ORDER_ID PRODUCT_ID ORDER_QTY

2. Utiliza las tablas INVENTORY, CUST_ORDERS y SPECIAL_ORDERS según las especificaciones

de la siguiente página para crear un bloque PL/SQL que realice las siguientes

operaciones:

a. Obtén del usuario un número de orden y obtén de la

tabla CUST_ORDERS el PRODUCT_ID asociado. Busca en la tabla INVENTORY todos los

datos cuyo PRODUCT_ID sea el que recuperamos anteriormente.

b. Si el producto tiene un PRODUCT_STATUS de IN STOCK, hay que actualizar el valor de

la columnaARRIVAL_DATE de la tabla CUST_ORDERS asociado al número de orden

capturado por el usuario. El nuevo valor se calculará sumándole al día de hoy siete

días.

c. Si el producto tiene un PRODUCT_STATUS de „BACK ORDERED‟, hay que actualizar el

valor de la columnaARRIVAL_DATE de la tabla CUST_ORDERS asociado al número de

orden capturado por el usuario. El nuevo valor será el día de hoy más un mes.

Page 36: Bases de datos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

d. Si el producto tiene un PRODUCT_STATUS igual a SPECIAL ORDER, hay que actualizar la

columna deARRIVAL_DATE de la tabla CUST_ORDERS, asociando el número de orden

con el valor de la fecha de hoy más dos meses dentro de la orden que capturó el

operador. Además, inserta dentro de la tablaSPECIAL_ORDERS un nuevo registro,

considera los siguientes valores (esto último realízalo usando triggers):

ORDER_ID: un valor arbitrario

PRODUCT_ID: el valor asociado

ORDER_QTY: el valor de STD_ORDER_QTY correspondiente a ese producto