Estudien todo esto por favor....... y Buena suerte.....
MODULO DE DESARROLLO DE APLICACIONES DE ENTORNOS DE CUARTA GENERACIÓN Y HERRAMIENTAS CASE
Para diseñar una base de datos debemos establecer un proceso partiendo del mundo real, de manera que sea posible plasmarlo mediante una serie de datos. La imagen que obtenemos del mundo real se denomina modelo conceptual y consiste en una serie de elementos que definen lo que queremos plasmar del mundo real en la base de datos. La definición de este modelo se denomina esquema conceptual..
Sistemas tradicional de almacenamiento
Almacenamiento y Recuperación de los Archivos en el Ambiente Tradicional
Los archivos que generan y manipulan los sistemas de información se guardan en dispositivos de Almacenamiento secundario, típicamente discos duros o cintas magnéticas.
Existen distintas técnicas para el almacenamiento y posterior recuperación de los archivos:
Acceso Secuencial
Acceso Directo
Los principales problemas de archivos son:
· Redundancia de Datos
· Dependencia programas-datos
· Falta de Flexibilidad
· Pobre Seguridad
· Dificultad para Compartir y Disponer de los Datos
Bases de Datos
Una base de datos es un conjunto de datos almacenados de manera estructurada en algún soporte magnético. Diferentes programas y usuarios pueden utilizar estos datos.
Sistema de información
Es el término general utilizado para la estructura global que incluye todos los mecanismos para compartir datos que se han instalado.
Características de una Base de Datos:
· Independencia Física y lógica de los datos
· Redundancia mínima
· Acceso concurrente de múltiples usuarios
· Integridad de datos
· Consultas optimizadas
· Seguridad de datos y Auditoría
· Respaldo de recuperación
Ventajas de una Base de datos:
· Mejora la Seguridad
· Mejora la accesibilidad de datos
· Mejora la productividad
· Mejora el Mantenimiento
Arquitectura de un Sistema de Base de Datos (SBD)
La arquitectura de tres niveles es útil para explicar el concepto de independencia de datos que podemos definir como la capacidad para modificar el esquema en un nivel del sistema sin tener que modificar el esquema del nivel inmediato superior.
Independencia de Datos Lógica:
Es cambiar el esquema conceptual y eso no implica cambiar las vistas. Basado fundamentalmente en las características de FLEXIBILIDAD e INDEPENDENCIA
Independencia de Datos Físico:
Es cambiar el esquema físico y eso no implica cambiar el esquema conceptual. Adaptación e implementación del diseño obtenido anteriormente a un SGBD concreto teniendo como objetivo principal el RENDIMIENTO
ETAPAS DEL ANALISIS DE DATOS SON:
ANALISIS. Obtención de un modelo conceptual de datos a partir del Modelo externo existente
DISEÑO LOGICO. Transformación del modelo conceptual en un modelo lógico, en nuestro caso el Modelo Relacioinal
DISEÑO FISICO. Transformación del modelo lógico en un modelo físico implementable en el SGBD comercial elegido
Modelo de Base de Datos (BD)
Los modelos más conocidos y utilizados son:
· Modelo de datos jerárquico
· Modelo de datos en red
· Modelo de datos relacional
Algunas de sus principales características son:
o Puede ser entendido y usado por cualquier usuario.
o Permite ampliar el esquema conceptual sin modificar las aplicaciones de gestión.
o Los usuarios no necesitan saber dónde se encuentran los datos físicamente.
o El elemento principal de este modelo es la relación que se representa mediante una tabla.
Bases de datos Distribuidas (BDD)
Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma que, un usuario en cualquier sitio puede acceder los datos en cualquier parte de la red exactamente como si estos fueran accedidos de forma local.
Un sistema distribuido de bases de datos se almacenan en varias computadoras. Los principales factores que distinguen un SBDD de un sistema centralizado son los siguientes:
· Hay múltiples computadores, llamados sitios o nodos.
· Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios.
Estructura Cliente/Servidor
La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes.
MODELO ENTIDAD RELACION (MER)
Es una herramienta gráfica que nos permite crear un modelo del mundo real
CARACTERÍSTICAS DEL MER
· Refleja solo la existencia de los datos y no lo que se hace con ellos
· Se incluyen todos los datos del sitema informativos y por lo tanto no esta orientado a ninguna aplicación en particular
· Es independiente al modelo fisico de datos y al sisstema operativo
· No tiene en cuenta restricciones de espacio, almacenamiento, ni tiempo de ejecución
· Esta abierto a la evolución del sistema
MODELO DE DATOS RELACIONAL
Es un grupo de herramientas conceptuales para describir los datos, sus relaciones, su semántica y sus limitaciones, de tal forma que facilite la interpretación de nuestro mundo real y su representación en forma de datos en nuestro sistema informativo.
Consta de dos partes:
PARTE ESTATICA. Es la estructura del Modelo que va a estar compuesto por los objetos (relación, tupla, entidad, atributo) y las restricciones (restricciones inherentes o compuestas por el usuario), esto es el lenguaje de Definición de datos (DDL)
PARTE DINÁMICA. Son operaciones del modelo que van a ser las ocurrencias que forman parte de la base de datos, esto es el Lenguaje de manipulación de Datos (DML)
RELACION. Dada una serie de conjuntos R{D1,D2,...Dn}, R es una relación de esos conjuntos, si es un conjunto ordenado de n ocurrencias d1, d2, .. dn, tal que d1ЄD1, d2ЄD2, dnЄDn, siendo D1, D2, Dn dominios de R
CAMPO. Es una característica o un atributo del Modelo Entidad Relación (Campo = Atributo)
DOMINIO. Conjunto de valores a partir el cual los campos van a tomar valores, existen dos clases de dominios:
Dominios Continuos: El dominio de los números enteros, valores que tienen continuidad.
Dominios Discretos: Conjunto de valores finitos. Ejemplo: verdadero-falso, colores, etc.
TUPLA. Son ocurrencias de la relación (Tupla = Fila)
GRADO. Cantidad de campos que forman parte de la relación.
CARDINALIDAD DE LA RELACION. Cantidad de tuplas que forman parte de la relación.
CLAVES. Es el(los) campo(s) que van a permitir identificar de manera única y mínima a una tupla dentro de la relación.
CLAVE AGENA. Es un campo que es clave de otra relación, utiliza para establecer una interrelación.
INTERRELACION. Un vínculo entre dos tablas, el cual se establece entre la clave primaria de una relación y la clave agena (1-1, 1-n).
VISTA. Es una tabla virtual, que no existe en la realidad, solamente se almacena su definición, se obtienen a partir de las tablas bases, mediante una asociación de operación y tienen las siguientes características:
Ø Sus columnas se pueden obtener a partir de múltiples tablas bases
Ø Pueden ser definidas a partir de otras vistas
Ø Sus datos, se obtienen como resultado de operaciones de recuperación
Ø Se puede almacenar su definición para su uso posterior.
Restricciones del Modelo:
Ø No puede aparecer dos filas iguales en una misma relación
Ø Que el(los) atributo(s) que forman parte de la clave no pueden tomar valores nulos
Características que debe cumplir:
Ø Cada columna debe estar identificado por un nombre específico que debe ser único
Ø El valor de una columna para una fila debe ser único
Propiedades:
Ø Las filas pueden estar en diferente orden
Ø Una fila hace referencia mediante todos los valores que la forma
Ø Las columnas pueden estar en cualquier orden
Ø Se hace referencia a una columna mediante el nombre que la identifica
REDUCCIÓN DEL MER AL MDR
El objetivo del diseño lógico es conseguir a partir del modelo conceptual un modelo lógico, en nuestro caso formando por un conjunto de relaciones, que sea fácilmente implementable, fácil de usar, independiente de las estructuras lógicas y físicas de los datos y que limite la posibilidad de tener datos incoherentes. Para ello debemos seguir las siguientes reglas:
1. Grado 1-1 entre dos entidades: se obtendrá una relación que tendrá como atributos la clave principal de una de las entidades y el resto de sus atributos de las dos entidades. Ejm: VENDEDORES(CodVendedor, NombreVendedor, Telefono, NombreZona) ó ZONAS(CodZona, NombreZona, NombreVendedor, Telefono)
2. Se puede crear dos tablas una para cada identidad y crear una clave agena de la otra entidad. Ejm:
VENDEDORES(CodVendedor, NombreVendedor, Telefono)
ZONAS(CodZona, NombreZona)
3. Crear 3 tablas, dos relaciones para cada identidad y una tercera con las claves principales de las dos entidades. Ejm.
VENDEDORES(CodVendedor, NombreVendedor, Telefono)
VENDEDORESXZONAS(CodVendedor, CodZona)
ZONAS(CodZona, NombreZona)
4. Grado 1-m entre dos entidades regulares: se obtendrá dos relaciones con los mismos atributos de la primera entidad y otra con los mismos atributos de la segunda entidad, añadiéndole la clave principal de la primera entidad y como clave ajena para la otra entidad
5. Crear 3 tablas: dos para cada entidad y una tercera para las claves principales de las dos entidades y estas dos son claves principales.
6. Grado M-N entre dos entidades, se obtendrán tres entidades, los mismos atributos en la primera entidad, los mismos atributos en la segunda entidad y una tercera con las claves principales de las dos entidades, donde serían claves principales en la tercera tabla.
Consiste en un conjunto de operaciones con las relaciones. Esto es Procedural (obtener resultados)
El Algebra Relacional es una notación algebraica, en la cual las consultas se expresan aplicando operadores especializados a las relaciones.
El Cálculo Relacional es una notación lógica, donde las consultas se expresan formulando algunas restricciones lógicas que las tuplas de la respuesta deban satisfacer.
SELECCIÓN.
Es una operación básica del Álgebra relacional con un solo operando, forma una relación como operando y selecciona las tuplas que cumplan la condición y el resultado es otra relación con el mismo grado y con una cardinalidad menor o igual a la relación original.
Tabla’ = S( Tabla ( Condición ))
PROYECCION.
Es una operación Unaria del Álgebra Relacional, se obtiene una nueva relación con la misma cardinalidad o menor que la inicial y todas las tuplas, pero se descartan las tuplas repetidas y solo aparece una, cuando exista tuplas repetidas.
Tabla’ = P ( Tabla ( A1, A2, .. An ) )
Utiliza dos relaciones como operando, se tiene como parámetro dos tablas y se obtiene una tabla, con las columnas de las dos tablas. Donde las tablas deben tener el mismo número de columnas, además que estas columnas sean del mismo tipo, sin repetir las filas que sean duplicas. (Tienen el mismo grado e igual dominio)
TablaR = Tabla1 U Tabla2
Contiene las tuplas de la primera tabla que no se encuentran en la segunda tabla. Esto da como resultado una tercera tabla, donde tendrá el mismo grado y de igual dominio.
TablaR = Tabla1 – Tabla2
Toma la primera relación, fila por fila y la multiplica por las filas de la segunda tabla. El grado de la tabla resultante es la suma de las columnas de las dos tablas, y la cardinalidad es la multiplicación de la cardinalidad de la primera tabla por la cardinalidad de la segunda tabla.
TablaR = Tabla1 X Tabla2
Intersección.
Cociente.
Join
EJERCICIOS CON OPERACIONES DE ALGEBRA RELACIONAL
Dadas las siguientes relaciones:
CLIENTES (CodCli, NomCli, DirCli, TelCli)
PROVEEDORES (CodPro, NomPro, DirPro)
Obtenga una relación que contenga los códigos de todos los clientes
(CLIENTES (CodCli, NomCli)
Obtenga una relación que esté formado por todas las filas de la tabla clientes, cuyos clientes sean de Ambato.
S(CLIENTES(DirCli = “Ambato”))
Obtenga una relación que esté formado por todos los nombres y direcciones y que sean de la Ciudad de Ambato.
S(P(CLIENTES(DirCli = “Ambato”))(NomCli, DirCli))
Obtenga una relación que esté formado por los nombres de todos los clientes y de todos los proveedores.
P(CLIENTES(NomCli)) U P(PROVEEDOR(NomPro)
Ø Obtenga una relación que esté formado por codigo, nombre y dirección de los clientes que no sean proveedores.
CLIENTES – PROVEEDORES
SQL
SQL (Structured Query Language), lenguaje de consulta estructurada, es lenguaje estándar de lenguaje de bases de datos, y la mayoría de los sistemas de bases de datos lo soportan. Cada sistema puede variar a otro el desarrollo SQL.
· SQL nos permite realizar consultas a la base de datos.
· Realiza funciones de definición, control y gestión de la base de datos.
· Las sentencias SQL se clasifican según su finalidad dando origen a tres ‘lenguajes’ o mejor dicho sublenguajes: DML y DDL
Características del lenguaje
Una instrucción o sentencia SQL es como una frase (escrita en inglés ) con la que decimos lo que queremos obtener y de donde obtenerlo.
Todas las sentencias empiezan con un verbo (palabra reservada que indica la acción a realizar), seguido del resto de cláusulas, algunas obligatorias y otras opcionales que completan la frase. Todas las sentencias siguen una sintaxis para que se puedan ejecutar correctamente, para describir esa sintaxis utilizaremos un diagrama sintáctico como el que se muestra a continuación.
COMANDOS DML DE SQL:
INSERT. Utilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATE. Utilizado para modificar los valores de los campos y registros especificados
DELETE. Utilizado para eliminar registros de una tabla de una base de datos
SELECT. Permite seleccionar campos de una tabla/consulta. Ejm:
SELECT * FROM oficinas
AS. Cambia el nombre de una columna.
ALL. Visualiza todas la filas en la consulta, incluidas la filas duplicadas
DISTINCT. Elimina el resultado de las filas repetidas
TOP. Permite sacar las n primeras filas de la tabla de origen
· CAMPOS CALCULADOS
AVG. Devuelve el promedio de un conjunto de valores
COUNT. Devuelve el total de un conjunto de valores
SUM. Devuelve la suma de un conjunto de valores
MAX. Devuelve el valor máximo de un conjunto de valores
MIN. Devuelve el valor mínimo de un conjunto de valores
DATE. Devuelve la fecha en que estamos
YEAR. Devuelve el año de la fecha
MONTH. Devuelve el mes de la fecha
DAY. Devuelve el día de la fecha
FROM. Indica el origen de datos
WHERE. Selecciona filas que cumplan con la condición seleccionada
ORDER BY. Ordena las filas del resultado
· ASC. Orden Ascendente
· DESC. Orden Descendente
PHP
PHP
PHP: Significa Hypertext Preprocessor, es lenguaje de código abierto muy popular, especialmente adecuado para el desarrollo web y puede ser incrustado en el lenguaje HTML, mediante las siguientes marcas
<php
?php>
Al finalizar una sentencia simple en php utilizamos un punto y coma (;)
DEFINICIÓN DE VARIABLES
$a=0; * definición de variable entera
$b=”hola”; * definición de variable tipo cadena
$c=”1999-06-12”; * definición de variable tipo fecha
Para definir una variable siempre debe empezar con el signo de dólar ($) y un letra, no se permite caracteres especiales o espacios en blanco
$VarN; * Variable válida
$Var-N; * Variable NO válida (contiene – que es un carácter especial)
$Var_N; * Variable válida
$Var_1; * Variable válida
UNIR CADENAS
Para unir cadenas en php, se utiliza echo $a . $b;
echo ’Examen de grado’;
echo “Examen de grado”;
OPERADORES MATEMATICOS
+ Suma
- resta
* Multiplicación
/ División
OPERADORES LÓGIOCOS
&& and o y
|| or o
! Negación
OPERADORES DE RELACIÓN
== Igual que
> Mayor que
< Menor que
>= Mayor igual que
<= Menor igual que
!= Diferente que
ESTRUCTURAS DE DECISIÓN
if (a==0) sentencia si;
if (a==0) sentencia si;
else sentencia No;
METODO GET
METODO POST
METODO REQUEST
COMANDOS PHP DE BASES DE DATOS
mysql_connect("localhost")
Mysql_close(conexión)
mysql_query
Mysql_select_db(database_name)
Mysql_num_rows
EJERCICIOS SQL
SQL Ejercicio 1
La Tienda de Informática
ARTICULOS(CodigoP, Nombre, Precio, CodigoF)
FABRICANTES(CodigoF, Nombre)
1. Obtener los nombres de los productos de la tienda.
SELECT nombre FROM ARTICULOS
2. Obtener los nombres y los precios de los productos de la tienda.
SELECT Nombre, Precio FROM ARTICULOS
3. Obtener el nombre de los productos cuyo precio sea menor o igual a 200
SELECT nombre FROM ARTICULOS WHERE Precio > 200
4. Listar todos los productos que empiecen con la letra C
SELECT * FROM ARTICULOS WHERE Nombre LIKE "C%"
5. Obtener todos los datos de los artículos cuyo precio están entre los $60 y $120 (dos formas para resolver)
SELECT * FROM ARTICULOS WHERE Precio >=60 ANDPrecio <= 120
*********
SELECT * FROM ARTICULOS WHERE Precio BETWEEN 60 AND 120
6. Obtener el nombre y el precio en Euros(es decir, el precio en dólares multiplicado por 0.98)
SELECT Nombre, Precio*0.98 FROM ARTICULOS
7. Seleccionar el precio medio de todos los productos.
SELECT AVG(Precio) FROM ARTICULOS
8. Obtener el precio medio de los artículos cuyo código de fabricante sea 2
SELECT AVG(Precio) FROM ARTICULOS WHERE CodigoF = 2
9. Obtener el número de artículos cuyo precio sea mayor o igual a 180
SELECT COUNT(*) FROM ARTICULOS WHERE Precio >=180
10. Obtener el nombre y precio de los artículos cuyo precio sea mayor o igual a 180 y ordenarlos descendentemente por precio, y luego ascendentemente por nombre.
SELECT Nombre, Precio FROM ARTICULOS
WHERE Precio >=180 ORDER BY Precio DESC, Nombre
11. Obtener un listado completo de artículos, incluyendo por cada artículo los datos del artículo y de su fabricante.
SELECT * FROM ARTICULOS, FABRICANTES
WHERE ARTICULO.CodigoF = FABRICANTES.CodigoF
12. Obtener un listado de artículos, incluyendo el nombre del artículo, su precio, y el nombre de su fabricante.
SELECT ARTICULOS.Nombre, Precio, FABRICANTES.Nombre
FROM ARTICULOS, FABRICANTES
WHERE ARTICULOS.CodigoF = FABRICANTES.CodigoF
13. Obtener el precio medio de los productos de cada fabricante, mostrando solo los códigos de fabricante
SELECT AVG(Precio), CodigoF FROM ARTICULOS
GROUP BY CodigoF
14. Obtener el precio medio de los productos de cada fabricante, mostrando el nombre del fabricante.
SELECT AVG(Precio), FABRICANTES.Nombre
FROM ARTICULOS, FABRICANTES
WHERE ARTICULOS.CodigoF = FABRICANTES.CodigoF
GROUP BY FABRICANTES.Nombre
15. Obtener los nombres de los fabricantes que ofrezcan productos cuyo precio medio sea mayor o igual a 150
SELECT AVG(Precio), FABRICANTES.Nombre
FROM ARTICULOS, FABRICANTES
WHERE ARTICULOS.CodigoF = FABRICANTES.CodigoF
GROUP BY FABRICANTES.Nombre
HAVING AVG(Precio) >= 150
16. Añadir un nuevo producto: Altavoces de $70 (del fabricante 2)
INSERT INTO ARTICULOS( Nombre, Precio, CodigoF)
VALUES ("Altavoces", 70, 2)
17. Cambiar el nombre del producto 8 a ’Impresora Laser’
UPDATE ARTICULOS
SET Nombre="Impresora Laser"
WHERE CodigoP = 8;
18. Aplicar un descuento del 10 % (multiplicar el precio por 0’9) a todos los productos.
UPDATE ARTICULOS SET Precio = Precio * 0.9
19. Aplicar un descuento del 10 % a todos los productos cuyo precio sea mayor o igual a $120
UPDATE ARTICULOS
SET Precio = Precio * 0.9
WHERE Precio >= 120
SQL Ejercicio 2
EMPLEADOS
EMPLEADOS(DNI, Nombre, Apellidos, CodD)
DEPARTAMENTOS(CodD, Nombre, Presupuesto)
1. Obtener los apellidos de los empleados.
SELECT Apellidos FROM EMPLEADOS
2. Obtener los apellidos de los empleados sin repeticiones.
SELECT DISTINCT Apellidos FROM EMPLEADOS
3. Obtener todos los datos de los empleados que se apellidan Pérez
SELECT * FROM EMPLEADOS WHERE Apellidos = "Pérez"
4. Obtener todos los datos de los empleados que se apellidan López y los que seo apellidan Pérez
SELECT * FROM EMPLEADOS
WHERE Apellidos = "López" OR Apellidos = "Pérez"
5. Obtener todos los datos de los empleados que trabajan para el departamento 14.
SELECT * FROM EMPLEADOS
WHERE CodD=14
6. Obtener todos los datos de los empleados que trabajan para el departamento 37 y para el departamento 77.
SELECT * FROM EMPLEADOS
WHERE CodD = 37 OR CodD=77
7. Obtener todos los datos de los empleados cuyo apellido comience por ’P’.
SELECT * FROM EMPLEADOS
WHERE Apellidos LIKE "P%"
8. Obtener el presupuesto total de todos los departamentos.
SELECT SUM(Presupuesto) FROM DEPARTAMENTOS
9. Obtener el número de empleados en cada departamento.
SELECT Departamento, COUNT(*)
FROM EMPLEADOS
GROUP BY Departamento
10. Obtener un listado completo de empleados, incluyendo por cada empleado los datos del empleado y de su departamento.
SELECT * FROM EMPLEADOS, DEPARTAMENTOS
WHERE DEPARTAMENTOS.CodD = EMPLEADOS.CodD
11. Obtener un listado completo de empleados, incluyendo el nombre y apellidos del empleado junto al nombre y presupuesto de su departamento.
SELECT EMPLEADOS.Nombre, Apellidos
FROM EMPLEADOS, DEPARTAMENTOS
WHERE DEPARTAMENTOS.CodD = EMPLEADOS.CodD
12. Obtener los nombres y apellidos de los empleados que trabajen en departamentos cuyo presupuesto sea mayor de 60.000.
SELECT EMPLEADOS.Nombre, Apellidos
FROM EMPLEADOS, DEPARTAMENTOS
WHERE DEPARTAMENTOS.CodD = EMPLEADOS.CodD AND Presupuesto > 600000
13. Añadir un nuevo departamento: ‘Calidad’, con presupuesto de 40.000 y código 11. Añadir un empleado vinculado al departamento recién creado: Esther Vázquez, Codigo: 89267109
INSERT INTO DEPARTAMENTOS
VALUES (11, "Calidad", 40000)
INSERT INTO EMPLEADOS
VALUES (89267109, "Esther", "Vásquez", 11)
14. Aplicar un recorte presupuestario del 10 % a todos los departamentos.
UPDATE DEPARTAMENTOS SET Presupuesto = Presupuesto * 0.9
15. Reasignar a los empleados del departamento de investigación (código 77) al departamento de informática (código 14)
UPDATE EMPLEADOS SET Departamento = 14
WHERE Departamento=77
16. Despedir a todos los empleados que trabajan para el departamento de informática (código 14)
DELETE * FROM EMPLEADOS
WHERE Departamento = 14
SQL Ejercicio 3
ALMACENES
ALMACENES(IdAlmacen, Lugar, capacidad)
CAJAS(NumReferencia, Contenido, valor, IdAlmacen)
1. Obtener un listado de todos los almacenes
SELECT * FROM ALMACENES
2. Obtener todas las cajas cuyo contenido tenga un valor superior a 150
SELECT * FROM ALMACENES WHERE Valor > 150
3. Obtener un listado de todos los almacenes que empiecen con la letra B
SELECT * FROM ALMACENES WHERE Lugar LIKE "C%"
4. Obtener el valor medio de todas las cajas.
SELECT AVG(valor) FROM ALMACENES
5. Obtener el valor promedio de las cajas de cada almacén.
SELECT AVG(valor) FROM ALMACENES GROUP BY Almacen
6. Obtener los códigos de los almacenes en los cuales el valor promedio de las cajas sea igual o superior a 150.
SELECT AVG(Valor)
FROM Cajas
GROUP BY IdAlmacen
HAVING AVG(Valor) > 150
7. Obtener el número de referencia de cada caja junto con el nombre de la ciudad en el que se encuentra.
SELECT NumReferencia, Lugar
FROM ALMACENES, CAJAS
WHERE ALMACENES,IdAlmacen=CAJAS.IdAlmacen
8. Obtener el número de cajas que hay en cada almacén
SELECT IdAlmacen, count(*)
FROM CAJAS
WHERE ALMACENES,IdAlmacen=CAJAS.IdAlmacen
9. Obtener los números de referencia de las cajas que están en Quito.
10. Insertar un nuevo almacén en Barcelona con capacidad para 3 cajas.
11. Insertar una nueva caja, con número de referencia ‘H5RT’, con contenido ‘Papel’, $200, y situada en el almacén 2.
12. Rebajar el valor de todas las cajas un 15 %.
13. Rebajar un 20 % el valor de todas las cajas cuyo valor sea superior al valor medio de todas las cajas.
14. Eliminar todas las cajas cuyo valor sea inferior a 100
SQL Ejercicio 4
Películas y Salas
SALAS(CodS, nombre, CodP)
PELICULAS(CodP, nombre, CalificaionEdad)
1. Mostrar el nombre de todas las películas.
2. Mostrar las salas con la película y las calificaciones de edad que existen.
3. Mostrar todas las películas que tengan calificación B
4. Mostrar todas las salas con su respectiva película
5. Añadir una nueva película ‘Uno, Dos, Tres’, para mayores de 7 años
6. Hacer constar que todas las películas no calificadas han sido calificadas ‘no recomendables para menores de 13 años’.
7. Eliminar todas las salas
SQL Ejercicio 5
VENTAS
CLIENTE(codigo,nombre,domicilio,provincia)
PRODUCTO(codigo_producto,nombre_producto)
ITEM_VENTAS(número_factura,codigo_producto,cantidad,precio)
VENTAS(numero_factura,codigo_cliente,fecha)
1. Obtener el nombre y el domicilio de los clientes que viven en la provincia de Chimborazo
2. Obtener el nombre, domicilio y provincia de los clientes que viven en la provincia de Cotopaxi o de Chimborazo
3. Obtener el importe total en dolares por factura y producto, especificando el numero de factura, el código del producto y el importe total
4. Sobre la consulta 3, obtener solo el importe total para el producto a
5. Sobre la consulta 3, obtener solo el importe total para las facturas mayores iguales a 2 y menores iguales a 5 y solo para el producto código c
6. Sobre la consulta 3, obtener solo el importe total para los registros cuyo importe total sea mayor a 200
7. Obtener un listado de las facturas realizadas especificando numero de factura, nombre del producto y cantidad vendida
8. Obtener un listado de las facturas realizadas cuya cantidad sea mayor igual a 15 especificando numero de factura, nombre del producto y cantidad vendida
9. Obtener un listado de las facturas realizadas indicando número de factura, nombre del cliente, nombre del producto, cantidad y precio y el importe total
10. Obtener la cantidad de unidades máxima
11. Obtener la cantidad total de unidades vendidas del producto c
SQL Ejercicio 6
TABLAS
PROVEEDORES (IdP, PNombre, Categoria, Ciudad)
COMPONENTES(IdC, Cnombre, Color, peso, Ciudad)
ARTICULOS(IdT, TNombre, Ciudad)
ENVIOS(IdP, IdC, IdT, Cantidad)
Obtener todos los detalles de todos los artículos de CACERES.
Obtener todos los valores de IdP para los proveedores que abastecen el artículo T1.
Obtener la lista de pares de atributos (COLOR, CIUDAD) de la tabla componentes eliminando los pares duplicados.
Obtener de la tabla de artículos los valores de IdT y CIUDAD donde el nombre de la ciudad acaba en D o contiene al menos una E.
Obtener los valores de IdP para los proveedores que suministran para el artículo T1 el componente C1.
Obtener los valores de TNOMBRE en orden alfabético para los artículos abastecidos por el proveedor P1.
Obtener los valores de IdC para los componentes suministrados para cualquier artículo de QUITO.
Obtener todos los valores de IdC de los componentes tales que ningún otro componente tenga un valor de peso inferior.
Obtener los valores de IdP para los proveedores que suministren los artículos T1 y T2.
Obtener los valores de IdP para los proveedores que suministran para un artículo de Ambato o Quito un componente ROJO.
Obtener, mediante subconsultas, los valores de IdC para los componentes suministrados para algún artículo de GUAYAQUIL por un proveedor de Salcedo.
Obtener los valores de IdT para los artículos que usan al menos un componente que se puede obtener con el proveedor P1.
Obtener todas las ternas (CIUDAD, IdC, CIUDAD) tales que un proveedor de la primera ciudad suministre el componente especificado para un artículo montado en la segunda ciudad.
Repetir el ejercicio anterior pero sin recuperar las ternas en los que los dos valores de ciudad sean los mismos.
Obtener el número de suministros, el de artículos distintos suministrados y la cantidad total de artículos suministrados por el proveedor P2.
Para cada artículo y componente suministrado obtener los valores de IdC, IdT y la cantidad total correspondiente.
Obtener los valores de IdT de los artículos abastecidos al menos por un proveedor que no viva en QUITO y que no esté en la misma ciudad en la que se monta el artículo.
Obtener los valores de IdP para los proveedores que suministran al menos un componente suministrado al menos por un proveedor que suministra al menos un componente ROJO.
Obtener los identificadores de artículos, IdT, para los que se ha suministrado algún componente del que se haya suministrado una media superior a 320 artículos.
Seleccionar los identificadores de proveedores que hayan realizado algún envío con Cantidad mayor que la media de los envíos realizados para el componente a que corresponda dicho envío.
Seleccionar los identificadores de componentes suministrados para el artículo 'T2' por el proveedor 'P2'.
Seleccionar todos los datos de los envíos realizados de componentes cuyo color no sea 'ROJO'.
Seleccionar los identificadores de componentes que se suministren para los artículos 'T1' y 'T2'.
Seleccionar el identificador de proveedor y el número de envíos de componentes de color 'ROJO' llevados a cabo por cada proveedor.
Seleccionar los colores de componentes suministrados por el proveedor 'P1'.