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.
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.
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
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
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
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
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
Ademas
PROGRAMACIÓN HTML
tablas,
formularios,
campos de texto,
campos, botón de opción,
Lista/menú
PROGRAMACIÓN PHP
Definición de variables
Unir Cadenas
If...Else
While..
For...
Método
Post
Get
Request
Variables MySQL
connect
BD
query
cerrar
fetcharray
MYSQL
Crear tablas
íconos de entorno
DREAMWEAVER
Barra de Aplicación
Juego de registros
Tabla dinámica
Inserción de registros
Actualización de registros
Eliminación de registros