SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Ciencias_help@hotmail.com
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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:
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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.
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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:
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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,
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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:
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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:
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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:
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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.
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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)
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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;
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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.
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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;
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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:
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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.
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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.
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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:
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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:
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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.
Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
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

Más contenido relacionado

Similar a Bases de datos ss14

Similar a Bases de datos ss14 (20)

Bases de datos ss14
Bases de datos ss14Bases de datos ss14
Bases de datos ss14
 
Bases de datos ss14
Bases de datos ss14Bases de datos ss14
Bases de datos ss14
 
Sistemas operativos y base de datos
Sistemas operativos y base de datosSistemas operativos y base de datos
Sistemas operativos y base de datos
 
Base de datos ti09313
Base de datos ti09313Base de datos ti09313
Base de datos ti09313
 
Sistemas operativos y base de datos
Sistemas operativos y base de datosSistemas operativos y base de datos
Sistemas operativos y base de datos
 
Base de datos sb09002
Base de datos sb09002Base de datos sb09002
Base de datos sb09002
 
Computación 1 y 3
Computación 1 y 3Computación 1 y 3
Computación 1 y 3
 
Base de datos sb09002
Base de datos sb09002Base de datos sb09002
Base de datos sb09002
 
Base de datos ti09313
Base de datos ti09313Base de datos ti09313
Base de datos ti09313
 
Computación 1 y 3
Computación 1 y 3Computación 1 y 3
Computación 1 y 3
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Ac diseño de reactivos
Ac diseño de reactivosAc diseño de reactivos
Ac diseño de reactivos
 
Modelación estructural de sistemas
Modelación estructural de sistemasModelación estructural de sistemas
Modelación estructural de sistemas
 
Modelacion de aplicaciones TecM
Modelacion de aplicaciones TecMModelacion de aplicaciones TecM
Modelacion de aplicaciones TecM
 
Modelacion de aplicaciones
Modelacion de aplicacionesModelacion de aplicaciones
Modelacion de aplicaciones
 
Programacion orientada a objetos cel2015
Programacion orientada a objetos cel2015Programacion orientada a objetos cel2015
Programacion orientada a objetos cel2015
 
Sistemas de información
Sistemas de informaciónSistemas de información
Sistemas de información
 
Modelación estructural de sistemas
Modelación estructural de sistemasModelación estructural de sistemas
Modelación estructural de sistemas
 
Comercio electronico 09307
Comercio electronico 09307Comercio electronico 09307
Comercio electronico 09307
 

Más de Educaciontodos

Más de Educaciontodos (20)

Asesorías mate en linea
Asesorías mate en lineaAsesorías mate en linea
Asesorías mate en linea
 
Bioestadistica aplus
Bioestadistica aplusBioestadistica aplus
Bioestadistica aplus
 
Inteligencia de mercados ss14
Inteligencia de mercados ss14Inteligencia de mercados ss14
Inteligencia de mercados ss14
 
Instrumentacion ss13
Instrumentacion ss13Instrumentacion ss13
Instrumentacion ss13
 
Ingenieria mecatronica
Ingenieria mecatronicaIngenieria mecatronica
Ingenieria mecatronica
 
Ingenieria electronica ss14
Ingenieria electronica ss14Ingenieria electronica ss14
Ingenieria electronica ss14
 
Ingenieria electrica ss14
Ingenieria electrica ss14Ingenieria electrica ss14
Ingenieria electrica ss14
 
Ingenieria de control mr
Ingenieria de control mrIngenieria de control mr
Ingenieria de control mr
 
Ingenieria de control ic09002
Ingenieria de control ic09002Ingenieria de control ic09002
Ingenieria de control ic09002
 
Historia de la educacion
Historia de la educacionHistoria de la educacion
Historia de la educacion
 
Fundamentos matemáticos aplus
Fundamentos matemáticos aplusFundamentos matemáticos aplus
Fundamentos matemáticos aplus
 
Fundamentos de sistemas mecanicos
Fundamentos de sistemas mecanicosFundamentos de sistemas mecanicos
Fundamentos de sistemas mecanicos
 
Fundamentos de programacion ss14
Fundamentos de programacion ss14Fundamentos de programacion ss14
Fundamentos de programacion ss14
 
Fundamentos de la administración maestría
Fundamentos de la administración maestríaFundamentos de la administración maestría
Fundamentos de la administración maestría
 
Fundamentos de dibujo y dibujo tecnico
Fundamentos de dibujo y dibujo tecnicoFundamentos de dibujo y dibujo tecnico
Fundamentos de dibujo y dibujo tecnico
 
Fundamentos de cadena de suministros ss14
Fundamentos de cadena de suministros ss14Fundamentos de cadena de suministros ss14
Fundamentos de cadena de suministros ss14
 
Fundamentos de cadena de suministros s14
Fundamentos de cadena de suministros s14Fundamentos de cadena de suministros s14
Fundamentos de cadena de suministros s14
 
Fundamentos de cadena de suministros cel20152
Fundamentos de cadena de suministros cel20152Fundamentos de cadena de suministros cel20152
Fundamentos de cadena de suministros cel20152
 
Fundamentos de cadena de suministros cel2015
Fundamentos de cadena de suministros cel2015Fundamentos de cadena de suministros cel2015
Fundamentos de cadena de suministros cel2015
 
Fundamentos de administracion ss14
Fundamentos de administracion ss14Fundamentos de administracion ss14
Fundamentos de administracion ss14
 

Último

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Último (20)

Ensayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 PreuniversitarioEnsayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 Preuniversitario
 
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
 
animalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdfanimalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdf
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
LA JUNGLA DE COLORES.pptx Cuento de animales
LA JUNGLA DE COLORES.pptx  Cuento de animalesLA JUNGLA DE COLORES.pptx  Cuento de animales
LA JUNGLA DE COLORES.pptx Cuento de animales
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docxUNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Educacion Basada en Evidencias SM5 Ccesa007.pdf
Educacion Basada en Evidencias  SM5  Ccesa007.pdfEducacion Basada en Evidencias  SM5  Ccesa007.pdf
Educacion Basada en Evidencias SM5 Ccesa007.pdf
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 

Bases de datos ss14

  • 1. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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 Ciencias_help@hotmail.com
  • 2. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 3. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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:
  • 4. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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.
  • 5. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 6. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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:
  • 7. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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,
  • 8. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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:
  • 9. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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:
  • 10. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 11. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 12. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 13. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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:
  • 14. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 15. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 16. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 17. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 18. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 19. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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.
  • 20. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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)
  • 21. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 22. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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;
  • 23. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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.
  • 24. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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;
  • 25. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 26. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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:
  • 27. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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.
  • 28. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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.
  • 29. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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:
  • 30. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 31. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 32. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 33. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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
  • 34. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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:
  • 35. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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.
  • 36. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com 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