informe-administracion de los datos y la informacion.pdf

64
UNIVERSIDAD CATÓLICA DE SANTA MARÍA FACULTAD DE CIENCIAS E INGENIERÍAS FÍSICAS Y FORMALES PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS CURSO: Administración de los datos y la información DOCENTE: ING. Guillermo Calderón Ruiz PRESENTADO POR: PEROCHENA CORNEJO IRVIN VALDEZ HUAMANI WILLIAM AREQUIPA – PERÚ 2013

Upload: william-valdez

Post on 26-Dec-2015

20 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

UNIVERSIDAD

CATÓLICA DE SANTA MARÍA

FACULTAD DE CIENCIAS E INGENIERÍAS FÍSICAS Y

FORMALES

PROGRAMA PROFESIONAL DE INGENIERÍA DE

SISTEMAS

CURSO: Administración de los datos y

la información

DOCENTE: ING. Guillermo Calderón Ruiz

PRESENTADO POR:

PEROCHENA CORNEJO IRVIN VALDEZ HUAMANI WILLIAM

AREQUIPA – PERÚ

2013

Page 2: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

INDICE

RESUMEN ................................................................................................................................................ 5

INTRODUCCION ..................................................................................................................................... 5

OBJETIVOS .............................................................................................................................................. 5

SUPOSICIONES ADICIONALES ............................................................................................................ 6

DIAGRAMA DE ENTIDAD RELACIÓN ...................................................................................................................... 6

ENTIDADES: ............................................................................................................................................................ 6

O ENTIDAD USUARIO ......................................................................................................................................... 7

O ENTIDAD CONTENIDO .................................................................................................................................. 7

O ENTIDAD DESCARGA ..................................................................................................................................... 8

O ENTIDAD REGALO ........................................................................................................................................... 8

O ENTIDAD PROMOCIONES ............................................................................................................................ 8

O ENTIDAD CATEGORIA ................................................................................................................................... 9

O ENTIDAD RANKING......................................................................................................................................... 9

DIAGRAMA ENTIDAD – RELACION: ......................................................................................................... 9

NORMALIZACIÓN: ............................................................................................................................................................10

PASO 1: Transformación de Entidades...............................................................................................................11

PASO 2: Transformación de Entidades Débiles .............................................................................................11

PASO 3: Transformación de 1: N............................................................................................................................11

O Usuario-Promociones (1:N) ......................................................................................................................11

O Promociones-Contenido (1:N) .................................................................................................................12

............................................................................................................................................................................................12

O Categoria-Contenido (1:N) ........................................................................................................................13

O Contenido-Ranking (1:N) ...........................................................................................................................13

PASO 4: Transformación De 1: 1 ............................................................................................................................14

PASO 5: Transformación De N: M ..........................................................................................................................14

PASO 6: Transformación De Atributos Multivaluados ...............................................................................14

PASO 7: Transformación De Vínculos .................................................................................................................14

PASO 8: Información De Una Generalización. ............................................................................................14

DIAGRAMA RELACIONAL.............................................................................................................................................15

Breve Explicación ..........................................................................................................................................................15

Cardinalidad .....................................................................................................................................................................16

DICCIONARIO DE DATOS .............................................................................................................................................16

CÓDIGO SQL PARA CADA UNA DE LAS CONSULTAS ...................................................................................19

Page 3: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

Consulta 1:...............................................................................................................................................................19

Consulta 2:...............................................................................................................................................................19

Consulta 3:...............................................................................................................................................................20

Consulta 4:...............................................................................................................................................................20

Consulta 5:...............................................................................................................................................................21

Consulta 6:...............................................................................................................................................................22

Consulta 7:...............................................................................................................................................................22

Consulta 8:...............................................................................................................................................................23

Consulta 9:...............................................................................................................................................................23

Consulta 10: ............................................................................................................................................................24

Consulta 11: ............................................................................................................................................................24

Consulta 12: ............................................................................................................................................................25

Consulta 13: ............................................................................................................................................................25

Consulta 14: ............................................................................................................................................................26

Consulta 15: ............................................................................................................................................................27

PROCEDIMIENTOS ALMACENADOS: ....................................................................................................................28

AbrirCuenta: ...........................................................................................................................................................28

Cerrar Cuenta: .......................................................................................................................................................29

Descarga: ..................................................................................................................................................................30

Regalo: .......................................................................................................................................................................32

Agregar Contenido: .............................................................................................................................................33

Ingresar Promoción: ..........................................................................................................................................34

Cargar Dinero: .......................................................................................................................................................35

Crear Categoría:....................................................................................................................................................36

DESCRIPCION GENERAL DE LA ARQUITECTURA .........................................................................................38

1. REGISTRARSE........................................................................................................................................................38

2. TIENDA ..................................................................................................... ¡Error! Marcador no definido.

3. ADMINISTRACION ..............................................................................................................................................44

Insertar Contenido:..................................................................................................................................................44

Modificar Contenido: ..............................................................................................................................................45

Eliminar Contenido ..................................................................................................................................................46

Cerrarcuenta ...............................................................................................................................................................48

MANUAL DE USUARIO ...................................................................................................................................................49

DESCRIPCION ..................................................................................................................................................................49

REQUERIMIENTOS DEL SISTEMA ........................................................................................................................49

Page 4: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

ACCESO A LA APLICACIÓN .......................................................................................................................................49

1. PESTAÑA REGISTRAR ..................................................................................................................................51

2. PESTAÑA TIENDA ..........................................................................................................................................52

3. PESTAÑA ADMINISTRACION ...................................................................................................................53

Contenido ......................................................................................................................................................54

O Insertar ......................................................................................................................................................54

O Modificar ...................................................................................................................................................54

O Eliminar .....................................................................................................................................................55

Categoria ........................................................................................................................................................55

O Insertar ......................................................................................................................................................55

O Modificar ...................................................................................................................................................56

O Eliminar .....................................................................................................................................................57

Promociones ................................................................................................................................................58

O Insertar ......................................................................................................................................................58

O Modificar ...................................................................................................................................................59

O Eliminar .....................................................................................................................................................60

Usuario ............................................................................................................................................................61

O Cargar Dinero .........................................................................................................................................61

O Cerrar Cuenta .........................................................................................................................................62

CONCLUCIONES: .................................................................................................................................. 62

GLOSARIO.............................................................................................................................................. 63

Modelado de Datos .............................................................................................................................................63

Estructura de Base de Datos ..........................................................................................................................63

Normalización .......................................................................................................................................................63

Procedimientos almacenados .......................................................................................................................63

BIBLIOGRAFÍA ....................................................................................................................................................................63

Page 5: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

5

RESUMEN

El presente informe da a conocer paso a paso el desarrollo del proyecto de descarga

de contenidos en el cual mostramos suposiciones que el grupo considero necesarias,

el diseño del diagrama E-R el cual cumple con la definición del problema y responde a

todas las consultas del proyecto. A partir de dicho modelo realizamos la normalización

del esquema, descripción del esquema final implementado, diccionario de datos,

posteriormente especificaciones de códigos SQL para cada una de las consultas

requeridas, además de ellos el esquema relacional poblado y finalmente los

procedimientos almacenados.

En una última etapa las conclusiones que se extraen de este documento se concentran

en una muy detalla la comprensión de todos los factores que hacen posible el

desarrollo

INTRODUCCION

El presente informe consiste en la elaboración de un modelo de datos y sistema de

información asociado a un portal de descarga pagada de contenidos en formato de

imágenes (PNG, JPG, GIF o BMP), sonidos (MP3, MID o WAV) y videos (WMV, AVI, MPG

o MOV).

OBJETIVOS

Los objetivos principales del proyecto son:

a. Construir un modelo de datos Relacional que permita almacenar la

información del portal de descargas.

b. Implementación de consultas en la Base de Datos para el sistema de

descargas.

c. Implementar algunos procedimientos que sirven para implementar algunas

de las transacciones solicitadas como parte de los requerimientos iniciales del

proyecto. Los parámetros que reciben los procedimientos deben ser elegidos

según el esquema que estamos manejando.

Page 6: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

6

SUPOSICIONES ADICIONALES

Al crear un nuevo usuario, se cargará automáticamente un valor de S/. 10.00 a su saldo actual, para q pueda realizar algunas descargas en forma de prueba del servicio.

Según las extensiones de los contenidos (definidas previamente en los requisitos del trabajo), será necesario ingresar los mime-type a la base de datos al momento de realizar las pruebas, ya que sólo de esta manera, el sistema reconocerá la clase de archivos que son, y así los podrá reproducir y/o visualizar.

Se considerará un atributo de estado en la tabla de cliente, para así notificar si está activo o inactivo, en el caso de que desee cerrar su cuenta.

Se creará un atributo de estado en la tabla de contenido, para que así, los usuarios puedan ver si lo que desean descargar aún se encuentra disponible, o fue de baja por el administrador, según sea el caso.

Se agregará el atributo de número de descargas al contenido, con un fin de poder tener un control más claro de las descargas que realizan los usuarios, y para realizar posteriormente los rankings o reportes.

Se considerará el uso de un árbol binario para la implementación de la entidad Categoría, de modo q se pueda ubicar de manera más fluida sus categorías padre y/o subcategorías.

Se realizará una notificación de regalo para el destinatario, y para reclamarlo, deberá ingresar el ID del regalo al sistema. De igual manera, se considerará un atributo del estado de regalo para el que lo manda, en este caso, se mostrará si el destinatario aceptó o rechazó el regalo.

DIAGRAMA DE ENTIDAD RELACIÓN ENTIDADES:

Describimos la arquitectura (modelo entidad - relación) de las entidades de nuestro sistema multimedia a realizar, las cuales están compuestas por siete entidades que describiremos a continuación

Page 7: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

7

o ENTIDAD USUARIO En esta entidad se encuentran toda la información del usuario que será pertinente para nuestro sistema.

o ENTIDAD CONTENIDO

En esta entidad se guardara la información del producto y las características de dicho producto.

Page 8: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

8

o ENTIDAD DESCARGA Para nuestro sistema es necesario tener una entidad descarga la cual se encargara de almacenar las descargas respectivas de cada usuario.

o ENTIDAD REGALO

Cada usuario tiene la opción de poder regalar un contenido o varios a un usuario el cual podrá rechazarlo o aceptarlo.

o ENTIDAD PROMOCIONES

El administrador vera por conveniente realizar promociones para aquellos usuarios que se comprometan con la página (haciendo descargas o regalando contenidos).

Page 9: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

9

o ENTIDAD CATEGORIA Como nuestro sistema trata de la venta de productos multimedia debemos almacenar en una base de datos y deben estar clasificados esos productos, por lo tanto se organizan por categorías para que la administración de los datos sea eficiente.

o ENTIDAD RANKING

Creamos la entidad ranking donde se mostraran los 10 más descargados y los 10 más votados, la cual se actualizara cada semana.

DIAGRAMA ENTIDAD – RELACION:

Mostramos las entidades con sus relaciones respectivas haciendo recalcar lo anterior mostrado.

Page 10: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

10

Normalización: Para la normalización tomamos como base los 8 pasos de transformación del modelo entidad-relación al modelo relacional – Navathe donde tomamos como punto principal:

Page 11: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

11

PASO 1: Transformación de Entidades

PASO 2: Transformación de Entidades Débiles

No hay ninguna entidad de este tipo.

PASO 3: Transformación de 1: N

Para cada vinculo 1:N entre dos entidades E y F donde F está del lado N del vínculo, se añade a la relación correspondiente a la entidad F de alguna de las entidades la clave primaria de la otra entidad relacionada.

o USUARIO-PROMOCIONES (1:N)

Page 12: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

12

o PROMOCIONES-CONTENIDO (1:N)

Page 13: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

13

o CATEGORIA-CONTENIDO (1:N)

o CONTENIDO-RANKING (1:N)

Page 14: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

14

PASO 4: Transformación de 1: 1 No hay ninguna relación de este tipo.

PASO 5: Transformación de N: M

No hay ninguna relación de este tipo. PASO 6: Transformación de atributos multivaluados

No hay ningún atributo de este tipo. PASO 7: Transformación de vínculos

Para cada vínculo se crea una relación R.

Los atributos de la relación R serán las claves primarias de todas las entidades relacionadas más los atributos propios del vínculo.

PASO 8: Información de Una Generalización.

No hay ninguna entidad de este tipo.

Page 15: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

15

DIAGRAMA RELACIONAL Realizada en SQL SERVER 2012, las 8 tablas presentan sus respectivos campos

con sus PKs respectivamente

BREVE EXPLICACIÓN En nuestro diagrama, hemos considerado la creación de ocho tablas: Usuario, Descarga, Contenido, Regalo, Promoción, Ranking, Categoría y Archivo. A continuación la explicación:

Un usuario, al realizar la descarga de un contenido, deberá automáticamente darle una puntuación. Esta información, junto a la fecha de descarga, el ID del usuario, del contenido, ID de descarga, entre otros, será almacenada en la tabla de Descarga, para una mejor administración de los datos. A su vez, esta tabla le permitirá validar al sistema, el número de veces que el usuario califica un contenido (debe ser 1 vez y sólo a los contenidos descargados), la fecha de descarga, y la calificación en sí que le dio el usuario al contenido.

De igual manera, los usuarios podrán regalar contenidos (música, imágenes, videos) a

otras personas, para ello, al momento de realizar el pago del contenido, se le pedirá el nombre de usuario del destinatario, y éste para poder reclamar su regalo, deberá ingresar al sistema el código del regalo (IDRegalo) para su posterior descarga; sin embargo, también puede rechazar el regalo (Estado_Regalo).

El Usuario Administrador será el único capaz de asignar las promociones a los contenidos, así como también aplicarle el 20% de descuento a los Usuarios q les corresponda

Los contenidos almacenados en la base de datos, contarán con varias características, entre las que están las principales que aparecerán en pantalla para una mejor

Page 16: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

16

descripción hacia el usuario, como el autor, nombre, precio, categoría, estado y puntuación promedio; sin embargo, hay otras que son necesarias para una mejor administración de la información, como el ID de la promoción a la cual está sujeto el contenido, árbol de categorías, tamaño, URL, secuencia en bytes, número de descargas, y algunos de estos datos, son extraídos de otras tablas presentes en la relación, como Categoría, Tipo de Archivo y Promoción.

Al ingresar a la Página de descargas, se visualizaran dos rankings, para lo cual se está integrando una tabla ranking la cual guardara dichos datos, los cuales brindaran información de los 10 contenidos más descargados en la semana anterior y otro de los 10 contenidos más votados en la semana anterior.

CARDINALIDAD

1 a 1: No hay ninguna relación de este tipo. 1 a MUCHOS: Se muestran las siguientes:

o USUARIO a REGALO.- Un determinado usuario puede realizar muchos regalos, y de igual manera, puede recibirlos. Un mismo regalo no puede ser dado a muchos usuarios, ya que cada uno de ellos es diferente y cuenta con un ID único.

o USUARIO a DESCARGA.- Un determinado usuario puede realizar muchas descargas. Una misma descarga no corresponde a muchos usuarios.

o CONTENIDO a REGALO.-Un mismo contenido puede ser parte de muchos regalos realizados. Un regalo incluye a un solo contenido.

o CONTENIDO a DESCARGA.- Un mismo contenido puede ser parte de muchas descargas. Una descarga incluye a un solo contenido.

o CATEGORIA a CONTENIDO.- Una categoría abarca muchos contenidos. Un contenido no puede ser parte de diferentes categorías.

o USUARIO a PROMOCIONES.-.- Un determinado Usuario (Administrador) puede establecer muchas promociones a uno o varios contenidos.

o CONTENIDO a PROMOCIONES.- Una misma promoción puede incluir muchos contenidos. Según los requisitos del trabajo, un contenido sólo puede tener una promoción asociada en el momento.

o TIPO_ARCHIVO a CONTENIDO.- Un determinado tipo de archivo puede ser para muchos contenidos. Un contenido sólo tiene un único tipo de archivo.

MUCHOS a MUCHOS: No hay ninguna relación de este tipo.

DICCIONARIO DE DATOS

Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas y puntuales de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización.

Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño.

Page 17: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

17

Page 18: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

18

Page 19: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

19

CÓDIGO SQL PARA CADA UNA DE LAS CONSULTAS

CONSULTA 1: − Número de descargas que se han efectuado desde la cuenta del cliente

con id X (ya sean propias o regalos a X) en los últimos 30 días. select IDUsuario, count (IDUsuario)as total from descargas where IDUsuario = 'U0043' and Fecha between dateadd( day , -40 , getdate() ) and dateadd( day , 0 , getdate()) group by IDUsuario order by total desc;

CONSULTA 2: − Número de descargas que se han efectuado desde la cuenta del cliente

con id X (ya sean propias o regalos a X) en el último año.

select IDUsuario, count(IDUsuario) as total from descargas where IDUsuario = 'U0043' and Fecha between dateadd( year , -1 , getdate() ) and dateadd( year , 0 , getdate() ) group by IDUsuario order by total desc

Page 20: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

20

CONSULTA 3: − Nombre, tipo de contenido y extensión del contenido más descargado

en los últimos 30 días. select top(1) with ties c.Nombre_cont , c.Informacion , c.Extension , count( d.IDContenido) as total from descargas d , contenido c where d.IDContenido = c.IDContenido and d.Fecha between dateadd( day , -30 , getdate() ) and dateadd( day , 0 , getdate() ) group by c.Nombre_cont , c.Informacion , c.Extension order by total desc

CONSULTA 4: − Nombre, tipo de contenido y extensión del contenido más descargado

en el último año select top(1) with ties c.Nombre_cont , c.Informacion , c.Extension,count( d.IDContenido) as total from descargas d , contenido c where d.IDContenido = c.IDContenido and d.Fecha between dateadd( year , -1 , getdate() ) and dateadd( year , 0 , getdate() ) group by c.Nombre_cont , c.Informacion , c.Extension order by total desc

Page 21: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

21

CONSULTA 5: − Nombre y promedio de notas de todos los contenidos. Si nadie ha

puesto nota a un contenido, ésta debe aparecer con valor nulo. Se debe ordenar por nota (la mayor primero)

select CONTENIDO.Nombre_cont, AVG(CONTENIDO.Nota_prom)"Promedio" from CONTENIDO group by CONTENIDO.Nombre_cont,CONTENIDO.Nota_prom order by CONTENIDO.Nota_prom desc;

Page 22: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

22

CONSULTA 6: − Nombre de todos los clientes que han regalado contenidos junto con el

nombre del destinatario y del contenido. select orig.Nombre , dest.Nombre as Destino , c.Nombre_cont from USUARIO dest , USUARIO orig , CONTENIDO c where dest.IDUsuario in (select r.IDUsuario_Dest from REGALO r where orig.IDUsuario = r.IDUsuario and r.IDContenido = c.IDContenido )

CONSULTA 7: − Nombre de todos los clientes que han regalado al menos 10 contenidos

diferentes. select u.Nombre from USUARIO u where ( select count( distinct c.Nombre_cont ) from contenido c , regalo r where u.IDUsuario = r.IDUsuario and r.IDContenido = c.IDContenido ) >= 10

Page 23: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

23

CONSULTA 8:

− Nombre, tipo de contenido y extensión de los contenidos que han sido descargados por el cliente con id X (ya sean propias o regalos a X) y cuyo precio es mayor a Y.

select c.Nombre_cont , c.Informacion , c.Extension from usuario u , descargas d , contenido c where u.IDUsuario = 'U0002' and u.IDUsuario = d.IDUsuario and d.IDContenido = c.IDContenido and c.precio > 8

CONSULTA 9: − Nombre, tipo de contenido y extensión de los contenidos que han sido

descargados por el cliente con id X (ya sean propias o regalos a X) y cuya nota promedio es mayor o igual a Y.

select c.Nombre_cont , c.Informacion , c.Extension ,c.Nota_prom, u.IDUsuario from usuario u , descargas d , contenido c where u.IDUsuario = 'U0002' and u.IDUsuario = d.IDUsuario and d.IDContenido = c.IDContenido and c.Nota_prom >= 8

Page 24: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

24

CONSULTA 10: − Nombre, autor, descripción, precio, extensión de archivo y la categoría a

la que pertenece (la más baja en el árbol de categorías) el contenido con id X

select con.Nombre_cont , con.Autor , con.Descripcion , con.Precio , con.Extension , cat.Desc_cat from categoria cat , contenido con where cat.IDhijo_izq IS NULL and cat.IDhijo_der IS NULL and cat.IDCategoria = con.IDCatg_cont and con.IDContenido = 'C0009'

CONSULTA 11: − Nombre de todos los clientes ordenados de acuerdo al número de

descargas efectuadas (ya sean propias o por regalos) en los últimos 6 meses (de más a menos)

select USUARIO.Nombre, count (USUARIO.Nombre) AS TOTAL from USUARIO inner join DESCARGAS on USUARIO.IDUsuario=DESCARGAS.IDUsuario where DESCARGAS.Fecha > DateAdd(MONTH, -6, GETDATE()+1) and DESCARGAS.Fecha<=GETDATE() group by USUARIO.Nombre order by total desc

Page 25: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

25

CONSULTA 12: − Nombre de todos los contenidos que pertenecen directamente a la

categoría raíz del árbol de categorías, junto con el nombre de la categoría− Nombre de todos los contenidos del autor X y que han sido regalados alguna vez

select con.Nombre_cont , cat.Desc_cat from categoria cat , contenido con where cat.IDCat_Padre IS NULL and cat.IDCategoria = con.IDCatg_cont

CONSULTA 13:

− Nombre de todos los contenidos del autor X y que han sido regalados alguna vez

select DISTINCT c.Nombre_cont from contenido c where c.autor = 'VERNIZ HERNANDEZ' and exists( select * from regalo r where r.IDContenido = c.IDContenido)

Page 26: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

26

CONSULTA 14: − Nombre de todos los contenidos con precio entre X e Y inclusive, y

que han sido alguna vez parte de una promoción que determinaba un descuento mayor o igual al Z%.

select c.Nombre_cont from contenido c where c.precio >= 5 and c.precio <= 8 and exists ( select * from promocion p where p.IDPromocion = c.IDPromocion and p.Decuento >= 30 )

Page 27: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

27

CONSULTA 15: − Nombre de todos los contenidos con precio entre X e Y inclusive, y que

han sido alguna vez parte de una promoción que determinaba un descuento mayor o igual al Z%

select CONTENIDO.Nombre_cont, PROMOCION.Fecha_ini, PROMOCION.Fecha_fin from PROMOCION inner join CONTENIDO on PROMOCION.IDPromocion = CONTENIDO.IDPromocion where PROMOCION.Fecha_ini >= CAST('20080101' AS DATETIME ) AND PROMOCION.Fecha_fin <= CAST('20081231' AS DATETIME );

Page 28: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

28

PROCEDIMIENTOS ALMACENADOS:

AbrirCuenta: o Este procedimiento realiza el ingreso de un nuevo usuario asigandole

un estado activo, un monto inicial de 200 soles y al mismo tiempo un codigo unico de usuario.

CREATE PROCEDURE AbrirCuenta @ApellidoP AS VARCHAR(50), @ApellidoM AS VARCHAR(50), @Nombre AS VARCHAR(50), @Contraseña AS VARCHAR(8), @Correo AS VARCHAR(50), @msg AS VARCHAR(100) OUTPUT AS BEGIN SET NOCOUNT ON; Begin Tran Tadd Begin Try INSERT INTO USUARIO VALUES ('TRUE', 'TRUE',@ApellidoP, @ApellidoM, @Nombre, @Contraseña, @Correo, 0, 200, 'FALSE', 0) SET @msg = '*****REGISTRO EXITOSO*****' COMMIT TRAN Tadd End try Begin Catch SET @msg = '*****ERROR AL REGISTRAR*****' Rollback TRAN Tadd End Catch END GO DECLARE @msg AS VARCHAR(100); EXEC AbrirCuenta 'Cervantes', 'Castillo', 'Haydee', '1234','[email protected]',@msg OUTPUT SELECT @msg AS msg SELECT * FROM USUARIO; DELETE FROM USUARIO WHERE IDUsuario='105' DROP PROCEDURE AbrirCuen

Page 29: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

29

Cerrar Cuenta: o Para poder cerrar una cuenta de usuario se tiene que verificar que el

saldo de dicho cliente se encuentre en cero de lo contrario no se podrá realizar el cierre de su cuenta, tomando en cuenta que no se eliminara el usuario solo se le asignara un estado de inactivo.

CREATE PROCEDURE CerrarCuenta @Correo AS VARCHAR(50), @msg AS VARCHAR(100) OUTPUT AS BEGIN SET NOCOUNT ON; Begin Tran Tadd Begin Try IF(SELECT Saldo_Actual FROM USUARIO WHERE @Correo = Correo) = 0 BEGIN UPDATE USUARIO SET Estado_Usuario = 'FALSE' WHERE Correo = @Correo ; SET @msg = '***USUARIO PASO DE ACTIVO A INACTIVO***' END ELSE SET @msg = '***EL CAMBIO NO SE PUEDE REALIZAR PORQUE EL USUARIO AUN TIENE SALDO EN SU CUENTA***' COMMIT TRAN Tadd End try Begin Catch SET @msg = '***ERROR AL ACTUALIZAR***' Rollback TRAN Tadd End Catch END GO DECLARE @msg AS VARCHAR(100); EXEC CerrarCuenta '[email protected]',@msg OUTPUT SELECT @msg AS msg select * from USUARIO; drop procedure CerrarCuenta; UPDATE USUARIO SET Saldo_Actual='0' WHERE IDUsuario= 107

Page 30: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

30

Descarga: o Para realizar una descarga se tiene que tomar en cuenta si es que el

usuario cuenta con el saldo suficiente para realizar una descarga y al mismo tiempo verificar si el usuario ya descargó ese contenido; si no cumple estas dos condiciones el usuario no podrá realizar la descarga. Si se cumplen las condiciones se procederá a descontar de su saldo el monto de dicho producto ya sea que presente descuento o no, se incrementara su número de descargas y se generara una nueva tupla en la tabla descargas.

CREATE PROCEDURE Descargar @Correo AS VARCHAR(50), @Nom_Cont AS VARCHAR(30), @Puntuacion AS SMALLINT, @msg AS VARCHAR(100) OUTPUT AS BEGIN DECLARE @ID_C AS INT, @ID_U AS int ,@ID_D AS int SET NOCOUNT ON; Begin Tran Tadd Begin Try SELECT @ID_C = (SELECT IDContenido FROM CONTENIDO WHERE Nombre_cont = @Nom_Cont AND IDCatg_cont = 2 ) SELECT @ID_U = (SELECT IDUsuario FROM USUARIO WHERE Correo = @Correo ) SELECT @ID_D = (SELECT COUNT (IDDescargas) FROM DESCARGAS WHERE IDUsuario = @ID_U AND IDContenido = @ID_C) SET @msg = @ID_D IF(@ID_D) > 0 BEGIN SET @msg = '***CONTENIDO YA DESCARGADO***' END IF(@ID_D) = 0 BEGIN DECLARE @DSCT INT IF(SELECT Monto_Usu FROM USUARIO WHERE IDUsuario = @ID_U) >=150 BEGIN SET @DSCT = (SELECT Precio FROM CONTENIDO WHERE IDContenido = @ID_C)*0.8 UPDATE USUARIO SET Saldo_Actual = Saldo_Actual - @DSCT , Monto_Usu = Monto_Usu + @DSCT , Num_Dscg_Usuario = Num_Dscg_Usuario + 1 WHERE IDUsuario = @ID_U; END ELSE BEGIN SET @DSCT = (SELECT PRECIO FROM CONTENIDO WHERE IDContenido = @ID_C) UPDATE USUARIO SET Saldo_Actual = Saldo_Actual - @DSCT , Monto_Usu = Monto_Usu + @DSCT , Num_Dscg_Usuario = Num_Dscg_Usuario + 1 WHERE IDUsuario = @ID_U; END

Page 31: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

31

INSERT INTO DESCARGAS VALUES(@ID_U,@ID_C,@Puntuacion,GETDATE()) SET @msg = '***DESCARGA EXITOSA***' END COMMIT TRAN Tadd End try Begin Catch SET @msg = '***ERROR EN LA DESCARGA***' Rollback TRAN Tadd End Catch END GO DECLARE @msg AS VARCHAR(100); EXEC Descargar '[email protected]','HE VUELTO', 7,@msg OUTPUT SELECT @msg AS MENSAJE DROP PROCEDURE Descargar; SELECT * FROM USUARIO; SELECT* FROM DESCARGAS;

Page 32: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

32

Regalo: o Para realizar un regalo se verifica si el usuario cuenta con el saldo

suficiente, se asigna a que usuario va dirigido el regalo, se realiza el descuento del monto al usuario emisor y se realiza el registro del regalo en las tablas Regalo y Descargas.

CREATE PROCEDURE Regalos @UsuarioR AS VARCHAR(30), @UsuarioD AS VARCHAR(30), @Nom_Cont AS VARCHAR(30), @msg AS VARCHAR(100) OUTPUT AS BEGIN SET NOCOUNT ON; Begin Tran Tadd Begin Try DECLARE @ID_C AS INT, @ID_UR AS int , @ID_UD AS int , @ID_D AS int , @ID_R AS int SET @ID_C = (SELECT IDContenido FROM CONTENIDO WHERE Nombre_cont= @Nom_Cont AND IDCatg_cont = 2 ) SET @ID_UR = (SELECT IDUsuario FROM USUARIO WHERE Correo= @UsuarioR ) SET @ID_UD = (SELECT IDUsuario FROM USUARIO WHERE Correo= @UsuarioD ) INSERT INTO REGALO VALUES ('1',GETDATE(),@ID_UR,@ID_UD,@ID_C) SET @ID_R = (SELECT IDRegalo FROM REGALO WHERE IDUsuario= @ID_UR AND IDUsuario_Dest = @ID_UD) IF(SELECT Estado_Regalo FROM REGALO WHERE IDUsuario = @ID_UR AND IDUsuario_Dest = @ID_UD) = 1 BEGIN DECLARE @DSCT INT INSERT INTO DESCARGAS VALUES(@ID_UD,@ID_C,7,GETDATE()) IF(SELECT Monto_Usu FROM USUARIO WHERE IDUsuario = @ID_UR) >= 150 BEGIN SET @DSCT = (SELECT Precio FROM CONTENIDO WHERE IDContenido = @ID_C)*0.8 UPDATE USUARIO SET Saldo_Actual = Saldo_Actual - @DSCT , Monto_Usu = Monto_Usu + @DSCT , Num_Dscg_Usuario = Num_Dscg_Usuario + 1 WHERE IDUsuario = @ID_UR; END ELSE BEGIN SET @DSCT = (SELECT Precio FROM CONTENIDO WHERE IDContenido = @ID_C) UPDATE USUARIO SET Saldo_Actual = Saldo_Actual - @DSCT , Monto_Usu = Monto_Usu + @DSCT , Num_Dscg_Usuario = Num_Dscg_Usuario + 1 WHERE IDUsuario = @ID_UR; END END COMMIT TRAN Tadd SET @msg = '***REGALO EXITOSO***' End try

Page 33: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

33

Begin Catch SET @msg = '***ERROR AL PROCESAR EL REGALO***' Rollback TRAN Tadd End Catch END GO DECLARE @msg AS VARCHAR(100); EXEC Regalos '[email protected]','[email protected]','HE VUELTO',@msg OUTPUT SELECT @msg AS msg DROP PROCEDURE Regalos; SELECT * FROM USUARIO; SELECT * FROM REGALO; SELECT * FROM DESCARGAS;

Agregar Contenido: o Para agregar un contenido el administrador de la BD registra la

información requerida por los campos de la tabla Contenido.

CREATE PROCEDURE AgregarContenido @NomCont AS VARCHAR(50), @Descripcion VARCHAR(50), @Autor AS VARCHAR(50), @Estado AS bit, @Precio AS float, @Tamaño AS VARCHAR(50), @SecB AS IMAGE, @IDPromo AS INT, @IDCategoria AS INT, @Informacion AS VARCHAR(50), @Extension AS VARCHAR(50), @MMT AS VARCHAR(50), @msg AS VARCHAR(100) OUTPUT AS BEGIN DECLARE @ID_CONT INT SET NOCOUNT ON; Begin Tran Tadd Begin Try INSERT INTO CONTENIDO VALUES (@NomCont,@Descripcion, @Autor,@Estado,@Precio,@Tamaño,@SecB,0,0,@IDPromo, @IDCategoria,@Informacion,@Extension,@MMT) SET @ID_CONT= (SELECT IDContenido FROM CONTENIDO WHERE Nombre_cont = @NomCont) INSERT INTO PUENTECONTPROMO VALUES (@IDPromo,@ID_CONT)

SET @msg = '***COTENIDO AGREGADO***'

Page 34: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

34

COMMIT TRAN Tadd End try Begin Catch SET @msg = '***ERROR AL AGRAGAR CONTENIDO***' Rollback TRAN Tadd End Catch END GO DECLARE @msg AS VARCHAR(100); EXEC AgregarContenido 'CARITA DE PASAPORTE','SALSA','N´SAMBLE','true',5.00,'3000kb',NULL,1,1,'MUSIC','.mp3','WINDOWS MEDIA',@msg OUTPUT SELECT @msg AS msg SELECT * FROM CONTENIDO

Ingresar Promoción: o Para asignar una promoción a un contenido el administrador de la BD

registra la información requerida por los campos de la tabla Promocion.

CREATE PROCEDURE IngresarPromocion @IDPromocion AS INT, @Descripcion AS VARCHAR(50), @Descuento AS FLOAT, @FechaI AS DATETIME, @FechaF AS DATETIME, @msg AS VARCHAR(100) OUTPUT AS BEGIN SET NOCOUNT ON; Begin Tran Tadd Begin Try INSERT INTO PROMOCION VALUES (@IDPromocion,@Descripcion,@Descuento, @FechaI,@FechaF) SET @msg = '***PROMOCION INGRESADA***' COMMIT TRAN Tadd

Page 35: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

35

End try Begin Catch SET @msg = 'ERROR AL INGRESAR PROMOCION' Rollback TRAN Tadd End Catch END GO DECLARE @msg AS VARCHAR(100); EXEC IngresarPromocion 11,'PROMOCION11',5,'05/05/2013','05/06/2013',@msg OUTPUT SELECT @msg AS msg DROP PROCEDURE IngresarPromocion; SELECT * FROM PROMOCION; SET DATEFORMAT dmy;

Cargar Dinero: o Para aumentar el saldo de la cuenta de un usuario se verifica el

depósito de dinero; una vez realizado el depósito el administrador de la BD aumenta el saldo con dicho monto.

CREATE PROCEDURE CargarDinero @IDUsu AS INT, @Saldo AS VARCHAR(50), @msg AS VARCHAR(100) OUTPUT AS BEGIN SET NOCOUNT ON; Begin Tran Tadd Begin Try UPDATE USUARIO SET Saldo_Actual = Saldo_Actual + @saldo WHERE IDUsuario = @IDUsu SET @msg = '***RECARGA EXITOSA***' COMMIT TRAN Tadd End try Begin Catch SET @msg = '***ERROR AL RECARGAR DINERO***' Rollback TRAN Tadd

Page 36: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

36

End Catch END GO DECLARE @msg AS VARCHAR(100); EXEC CargarDinero 1,35,@msg OUTPUT SELECT @msg AS msg DROP PROCEDURE CargarDinero; SELECT * FROM USUARIO;

Crear Categoría: o Para crear una categoría el administrador de la Base de datos asigna la

información requerida por los campos de la tabla Categoria. CREATE PROCEDURE CrearCategoria @Descripcion AS VARCHAR(50), @IDPadre AS INT, @IDHIzq AS INT, @IDHDer INT, @msg AS VARCHAR(100) OUTPUT AS BEGIN SET NOCOUNT ON; Begin Tran Tadd Begin Try INSERT INTO CATEGORIA VALUES (@Descripcion,@IDPadre,@IDHIzq, @IDHDer) SET @msg = '***CATEGORIA CREADA CON EXITO***' COMMIT TRAN Tadd End try Begin Catch SET @msg = '***ERROR AL CREAR CATEGORIA***' Rollback TRAN Tadd End Catch

Page 37: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

37

END GO DECLARE @msg AS VARCHAR(100); EXEC CrearCategoria 'VIDEOS MUSICALES BACHATAS',NULL,NULL,NULL,@msg OUTPUT SELECT @msg AS msg DROP PROCEDURE CrearCategoria; SELECT * FROM CATEGORIA;

Page 38: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

38

DESCRIPCION GENERAL DE LA ARQUITECTURA

1. LOGIN

a. Para poder realizar una descarga debemos estar registrados, el cual es

el encargado de verificar si eres usuario o administrador mostrandote

un mensaje de verificacion de haber ingresado correctamente al

sistema.

public string bandest = ""; public int estado = 2; public string usuario; public int log = 0; public int logC = 1; protected void Page_Load(object sender, EventArgs e) { logC = (int)(Session["loginCerrar"]); if (log == 1) { Server.Transfer("DatosUsuario.aspx"); } if(logC == 0) { log = 0; estado = 2; usuario = ""; Session.Add("Estado", estado); Session.Add("Correo", usuario); Session.Add("login", log); } else { Session.Add("Estado", estado); Session.Add("login", log); } } protected void Button1_Click(object sender, EventArgs e) {

string cadenaconexion = "Data Source = .\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

usuario = tbCorreo.Text.ToString(); Session.Add("Correo", usuario); log = 1; Session.Add("login", log); try {

string selectSQL = "Select Tipo_usu From USUARIO Where Correo = '" + tbCorreo.Text + "'AND Contraseña ='" + tbContraseña.Text + "'";

SqlConnection con = new SqlConnection(cadenaconexion); SqlCommand cmd = new SqlCommand(selectSQL, con); SqlDataReader dr; con.Open(); dr = cmd.ExecuteReader(); if (dr.Read()) {

Page 39: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

39

estado = Convert.ToInt32(dr[0]); lblMensaje.Visible = true; lblMensaje.Text = Convert.ToString(estado); Session.Add("Estado", estado); if (estado == 0) { bandest = "admin"; lblMensaje.Visible = true; lblMensaje.Text = Convert.ToString(estado); Server.Transfer("ModuloAdministracion.aspx"); } else if (estado == 1) { bandest = "usuario"; lblMensaje.Visible = true; lblMensaje.Text = Convert.ToString(estado); Server.Transfer("DatosUsuario.aspx"); } if (estado == 2) { Server.Transfer("Descargar.aspx"); } con.Close(); lblMensaje.Visible = true; lblMensaje.Text = "BIENVENIDO" + "" + bandest + ""; } else { tbCorreo.Text = ""; tbContraseña.Text = ""; lblMensaje.Visible = true; lblMensaje.Text = "VERIFICA TU INFORMACION"; } } catch (Exception err) { lblMensaje.Visible = true; lblMensaje.Text = err.Message; } } protected void Button2_Click(object sender, EventArgs e) { Response.Redirect("Registrarse.aspx");

}

2. REGISTRARSE

a. Nosotros generamos una pestaña para que el Usuario se pueda crear su

cuenta y poder realizar las descargas respectivas de los productos que

el Usuario desee, los campos correspondientes al registro son:

Nombre

Apellidos

Correo

Page 40: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

40

Contraseña

Confirmar contraseña

b. La funcionalidad para registrar en la BD de datos es la siguiente:

Se hace la conexión con la base de datos, almacenamos los valores

introducidos por el Usuario en variables string las cuales son

enviadas al procedimiento con los parámetros especificados. En la

BD se llenan los valores en una tupla en la tabla Usuario

protected void btnRegistarse_Click(object sender, EventArgs e) { do { var cn = new SqlConnection();

cn.ConnectionString = "Data Source=MELISSA-PC\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

string nombre = txtNom.Text.ToString(); string apellidoP = txtApellP.Text.ToString(); string apellidoM = txtApellM.Text.ToString(); string correo = txtCorreo.Text.ToString(); string contraseña = txtContraseña.Text.ToString(); string confirmar = txtConfirmar.Text.ToString(); //string mensaje = string.Empty; if (contraseña.Equals(confirmar)) { SqlDataAdapter daCategory = new SqlDataAdapter ("AbrirCuenta", cn); daCategory.SelectCommand.CommandType = CommandType.StoredProcedure; var cm = new SqlCommand("AbrirCuenta", cn); cm.CommandType = System.Data.CommandType.StoredProcedure; cm.Parameters.AddWithValue("@Nombre", nombre); cm.Parameters.AddWithValue("@ApellidoP", apellidoP); cm.Parameters.AddWithValue("@ApellidoM", apellidoM); cm.Parameters.AddWithValue("@Correo", correo); cm.Parameters.AddWithValue("@Contraseña", contraseña); cn.Open(); cm.ExecuteNonQuery(); cn.Close(); txtNom.Text = ""; txtApellP.Text = ""; txtApellM.Text = ""; txtCorreo.Text=""; txtContraseña.Text=""; txtConfirmar.Text=""; band = false; } else { lblMensaje.Text = "CONTRASEÑA ERRONEA"; lblMensaje.Visible = true; band = true; }

Page 41: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

41

} while (band == true); }

3. REGALO

a. El usuario tiene la opcion de realizar un regalo hacia otro usuario ya sea

de los que tiene descargados o de los que esta por descargar.

public partial class MisRegalos : System.Web.UI.Page { string correo; int IDContenido; int log; string cadenaconexion = "Data Source=.\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True"; protected void Page_Load(object sender, EventArgs e) { correo = (string)(Session["Correo"]); lblCorreo.Visible = true; lblCorreo.Text = correo; string selectSQL = "SELECT c.IDContenido,(SELECT Nombre FROM USUARIO WHERE IDUsuario = r.IDUsuario ), c.Nombre_cont, c.Extension, r.Fecha_regalo FROM USUARIO u INNER JOIN REGALO r ON u.IDUsuario = r.IDUsuario_Dest JOIN CONTENIDO c ON c.IDContenido = r.IDContenido WHERE u.Correo ='" + correo + "'AND r.Estado_Regalo='" + 1 + "'ORDER BY u.Nombre ASC"; GridView1.AutoGenerateSelectButton = true; SqlConnection con = new SqlConnection(cadenaconexion); SqlCommand cmd = new SqlCommand(selectSQL, con); SqlDataReader dr; try { con.Open(); dr = cmd.ExecuteReader(); GridView1.DataSource = dr; GridView1.DataBind(); con.Close(); } catch (Exception err) { lblMensaje.Text = err.Message; } } protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { IDContenido = Convert.ToInt32(GridView1.SelectedRow.Cells[1].Text); } protected void Button1_Click(object sender, EventArgs e) { try { IDContenido = Convert.ToInt32(GridView1.SelectedRow.Cells[1].Text); string cadenaconexion = "Data Source = .\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True"; string selectSQL = " UPDATE REGALO SET Estado_Regalo='" + 0 + "'WHERE IDContenido='" + IDContenido + "'"; SqlConnection con = new SqlConnection(cadenaconexion); SqlCommand cmd = new SqlCommand(selectSQL, con);

Page 42: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

42

con.Open(); cmd.ExecuteNonQuery(); con.Close(); lblMensaje.Text = "REGALO DESCARGADO"; } catch (Exception err) { lblMensaje.Text = err.Message; } log = (int)(Session["Estado"]); try { if (log == 0 || log == 1) { var cn = new SqlConnection(); cn.ConnectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True"; string correo = (string)(Session["Correo"]); int nota = 0; IDContenido = Convert.ToInt32(GridView1.SelectedRow.Cells[1].Text.ToString()); SqlDataAdapter daCategory = new SqlDataAdapter("Descargar", cn); daCategory.SelectCommand.CommandType = CommandType.StoredProcedure; var cm = new SqlCommand("Descargar", cn); cm.CommandType = System.Data.CommandType.StoredProcedure; cm.Parameters.AddWithValue("@Correo", correo); cm.Parameters.AddWithValue("@ID_C", IDContenido); cm.Parameters.AddWithValue("@Puntuacion", nota); cn.Open(); cm.ExecuteNonQuery(); cn.Close(); string Nombre = GridView1.SelectedRow.Cells[3].Text.ToString(); string Extencion = GridView1.SelectedRow.Cells[4].Text.ToString(); byte[] buffer = null; SqlConnection SqlConn = new SqlConnection(cadenaconexion); { SqlConn.Open(); using (SqlCommand command = new SqlCommand("SELECT Sec_bytes FROM CONTENIDO WHERE IDContenido ='" + IDContenido + "'", SqlConn)) { buffer = (byte[])command.ExecuteScalar(); } SqlConn.Close(); } long fileSize = (long)buffer.Length; Response.Clear(); Response.ContentType = "application/oc-stream"; Response.AddHeader("Content-Disposition", "attachement; filename=" + HttpUtility.UrlEncode(Nombre + Extencion)); Response.AddHeader("Content-Length", fileSize.ToString()); Response.BinaryWrite(buffer); Response.Flush(); Response.Close();

Page 43: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

43

lblMensaje.Visible = true; lblMensaje.Text = "PROCESO EXITOSO"; } else { Response.Redirect("Registrarse.aspx"); //lblMensaje.Text = "PARA DESCARGAR DEBES LOGEARTE"; } } catch { lblMensaje.Visible = true; lblMensaje.Text = "ERROR EN EL PROCESO"; } }

b. }

4. TIENDA

a. Se crea una pestaña Tienda en el cual el usuario realiza las descargas

deseadas mediante la búsqueda del contenido, los campos

correspondientes a tienda son:

Ingresar(El producto)

Buscar por(Nombre, Tipo, Autor, Precio)

Botón Buscar

Usuario

Nota

Boton Descargar

b. La funcionalidad de la pestaña Tienda es la siguiente:

Cuando llamamos al botón Buscar, se hace la conexión a la BD y

se asignan los valores ingresados a las variables

correspondientes, una vez que las variables están con sus

respectivos valores se los envía al procedimiento. Las nuevas

tuplas se asignan en la tabla Descargas y Usuarios, debido a que

un Usuario realiza la descarga

protected void btnDescargar_Click(object sender, EventArgs e) { var cn = new SqlConnection();

cn.ConnectionString = "Data Source=USUARIO-PC\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

string nombre = txtUsuarioD.Text.ToString(); int nota = Convert.ToInt32(txtNotaD.Text);

IDContenido = Convert.ToInt32(GridView1.SelectedRow.Cells[1].Text.ToString());

SqlDataAdapter daCategory = new SqlDataAdapter ("Descargar", cn); daCategory.SelectCommand.CommandType = CommandType.StoredProcedure;

Page 44: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

44

var cm = new SqlCommand("Descargar", cn); cm.CommandType = System.Data.CommandType.StoredProcedure; cm.Parameters.AddWithValue("@Correo", nombre); cm.Parameters.AddWithValue("@ID_C", IDContenido); cm.Parameters.AddWithValue("@Puntuacion", nota); cn.Open(); cm.ExecuteNonQuery(); cn.Close(); txtUsuarioD.Text = ""; txtNotaD.Text = ""; }

5. ADMINISTRACION

a. Esta pestaña es utilizada únicamente por el administrador de la BD en cual podrá modificar, insertar y eliminar los Contenidos de la BD, la funcionalidad para administrar contenidos es la siguiente: INSERTAR CONTENIDO: Para poder insertar un contenido debemos conocer los campos que se almacenan en la BD, con tal conocimiento podemos crear las respectivas variables que almacenaran los datos a ingresar una vez hecho ese proceso se envían las variables al procedimiento de inserción.

protected void btnInsertarCont_Click(object sender, EventArgs e) { var cn = new SqlConnection();

cn.ConnectionString = "Data Source=USUARIO-PC\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

string nombre = txtNombreC.Text.ToString(); string descripcion = txtDescrip.Text.ToString(); string autor = txtAutor.Text.ToString(); byte estado = Convert.ToByte(txtEstado.Text); float precio = Convert.ToSingle(txtPrecio.Text); string tamaño = txtTamaño.Text.ToString(); string sec_A = txtSec.Text.ToString(); string promo = txtPromo.Text.ToString(); string cate = txtCategoria.Text.ToString(); string info = txtInfo.Text.ToString(); string exte = txtExten.Text.ToString(); string mime = txtMime.Text.ToString(); SqlDataAdapter daCategory = new SqlDataAdapter ("AgregarContenido", cn); daCategory.SelectCommand.CommandType = CommandType.StoredProcedure; var cm = new SqlCommand("AgregarContenido", cn); cm.CommandType = System.Data.CommandType.StoredProcedure; cm.Parameters.AddWithValue("@NomCont", nombre); cm.Parameters.AddWithValue("@Descr", descripcion); cm.Parameters.AddWithValue("@Autor", autor); cm.Parameters.AddWithValue("@Estado", estado); cm.Parameters.AddWithValue("@Precio", precio); cm.Parameters.AddWithValue("@Tamaño", tamaño); cm.Parameters.AddWithValue("@SecB", sec_A);

Page 45: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

45

cm.Parameters.AddWithValue("@IDPromo",promo); cm.Parameters.AddWithValue("@IDCate", cate); cm.Parameters.AddWithValue("@Info", info); cm.Parameters.AddWithValue("@Extc", exte); cm.Parameters.AddWithValue("@MMT", mime); cn.Open(); cm.ExecuteNonQuery(); cn.Close(); GridView1.DataBind();

string cadenaconexion = "Data Source=USUARIO-PC\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

string selectSQL = "SELECT * FROM CONTENIDO'"; SqlConnection con = new SqlConnection(cadenaconexion); SqlCommand cmd = new SqlCommand(selectSQL, con); SqlDataReader dr; try { con.Open(); dr = cmd.ExecuteReader(); GridView1.DataSource = dr; con.Close(); } catch (Exception err) { lblAlerta.Text = err.Message; } }

MODIFICAR CONTENIDO: Para realizar la modificación primero mostramos los datos en un gridView el cual nos dará mayor facilidad; seleccionando la tupla a modificar y cargando los valores en las variables, las cuales son enviadas como parámetros al procedimiento a ejecutar.

protected void btnModificarCont_Click(object sender, EventArgs e) { var cn = new SqlConnection();

cn.ConnectionString = "Data Source=USUARIO-PC\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

string nombre = txtCont.Text.ToString(); string descripcion = txtDesc.Text.ToString(); string autor = txtAutor.Text.ToString(); byte estado = Convert.ToByte(txtEstado.Text); float precio = Convert.ToSingle(txtPrecio.Text); string tamaño = txtTamaño.Text.ToString(); string sec_A = txtSec.Text.ToString(); string promo = txtPromo.Text.ToString(); string cate = txtCate.Text.ToString(); string info = txtInfo.Text.ToString(); string exte = txtExt.Text.ToString(); string mime = txtMime.Text.ToString(); SqlDataAdapter daCategory = new SqlDataAdapter ("ModificarContenido", cn); daCategory.SelectCommand.CommandType = CommandType.StoredProcedure; var cm = new SqlCommand("ModificarContenido", cn);

Page 46: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

46

cm.CommandType = System.Data.CommandType.StoredProcedure; cm.Parameters.AddWithValue("@NombreCont", nombre); cm.Parameters.AddWithValue("@Descr", descripcion); cm.Parameters.AddWithValue("@Autor", autor); cm.Parameters.AddWithValue("@Estado", estado); cm.Parameters.AddWithValue("@Precio", precio); cm.Parameters.AddWithValue("@Tamaño", tamaño); cm.Parameters.AddWithValue("@SecB", sec_A); cm.Parameters.AddWithValue("@IDPromo",promo); cm.Parameters.AddWithValue("@IDCate", cate); cm.Parameters.AddWithValue("@Info", info); cm.Parameters.AddWithValue("@Extn", exte); cm.Parameters.AddWithValue("@MMT", mime); cn.Open(); cm.ExecuteNonQuery(); cn.Close(); txtCont.Text = ""; txtDesc.Text = ""; txtAutor.Text = ""; txtEstado.Text = ""; txtPrecio.Text = ""; txtTamaño.Text = ""; txtSec.Text = ""; txtPromo.Text = ""; txtCate.Text = ""; txtInfo.Text = ""; txtExt.Text = ""; txtMime.Text = ""; GridView1.DataBind();

string cadenaconexion = "Data Source=USUARIO-PC\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

string selectSQL = "SELECT * FROM CONTENIDO'"; GridView1.AutoGenerateSelectButton = true; SqlConnection con = new SqlConnection(cadenaconexion); SqlCommand cmd = new SqlCommand(selectSQL, con); SqlDataReader dr; try { con.Open(); dr = cmd.ExecuteReader(); GridView1.DataSource = dr; con.Close(); } catch (Exception err) { lblAlerta.Text = err.Message; } } }

ELIMINAR CONTENIDO Para eliminar un contenido solo nos fijamos en su ID y el procedimiento almacenado hace referencia a ese ID con la tabla, en la cual se borrara el dato una vez que hayamos enviado los datos al procedimiento almacenado

Page 47: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

47

protected void btnEliminarPro_Click(object sender, EventArgs e) { var cn = new SqlConnection();

cn.ConnectionString = "Data Source=USUARIO-PC\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

int contenido = Convert.ToInt32(txtEliminar.Text); SqlDataAdapter daCategory = new SqlDataAdapter ("EliminarContenido", cn); daCategory.SelectCommand.CommandType = CommandType.StoredProcedure; var cm = new SqlCommand("EliminarContenido", cn); cm.CommandType = System.Data.CommandType.StoredProcedure; cm.Parameters.AddWithValue("@IDCont", contenido); cn.Open(); cm.ExecuteNonQuery(); cn.Close(); GridView1.DataBind();

string cadenaconexion = "Data Source=USUARIO-PC\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

string selectSQL = "SELECT * FROM CONTENIDO'"; SqlConnection con = new SqlConnection(cadenaconexion); SqlCommand cmd = new SqlCommand(selectSQL, con); SqlDataReader dr; try { con.Open(); dr = cmd.ExecuteReader(); GridView1.DataSource = dr; con.Close(); } catch (Exception err) { lblAlerta.Text = err.Message; } }

a. Aparte de realizar mantenimiento a los contenidos de la BD, también

puede realizar mantenimiento a los Usuarios como son Cargar Dinero, Cerrar Cuenta, la funcionalidad para administrar Usuarios es la siguiente: CARGAR DINERO

Las variables utilizadas en este procesamiento son: Correo Electrónico Monto

El correo electrónico es el que identifica a que usuario se le va a recargar el dinero guardando el valor en una variable y enviándolo al procedimiento almacenado.

protected void btnRecargar_Click(object sender, EventArgs e) { var cn = new SqlConnection();

Page 48: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

48

cn.ConnectionString = "Data Source=MELISSA-PC\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

string usuario = txtUsuario.Text.ToString(); float saldo = Convert.ToSingle(txtSaldo.Text); SqlDataAdapter daCategory = new SqlDataAdapter ("CargarDinero", cn); daCategory.SelectCommand.CommandType = CommandType.StoredProcedure; var cm = new SqlCommand("CargarDinero", cn); cm.CommandType = System.Data.CommandType.StoredProcedure; cm.Parameters.AddWithValue("@Correo", usuario); cm.Parameters.AddWithValue("@Saldo",saldo); cn.Open(); cm.ExecuteNonQuery(); cn.Close(); GridView1.DataBind(); }

CERRARCUENTA

Se ingresa el correo electrónico de la persona a la cual se le inhabilita la cuenta, hay que considerar unas excepciones las cuales son:

Usuario no cuente con dinero Usuario se encuentre inhabilitado

protected void btnDesactivarUsu_Click(object sender, EventArgs e) { var cn = new SqlConnection();

cn.ConnectionString = "Data Source=MELISSA-PC\\SQLEXPRESS;Initial Catalog=DBMULTIMEDIA;Integrated Security=True";

string correo = txtUsuario.Text.ToString(); SqlDataAdapter daCategory = new SqlDataAdapter ("CerrarCuenta", cn); daCategory.SelectCommand.CommandType = CommandType.StoredProcedure; var cm = new SqlCommand("CerrarCuenta", cn); cm.CommandType = System.Data.CommandType.StoredProcedure; cm.Parameters.AddWithValue("@Correo", correo); cn.Open(); cm.ExecuteNonQuery(); cn.Close(); GridView1.DataBind(); }

Page 49: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

49

MANUAL DE USUARIO

DESCRIPCION

Se diseñó esta página web con el propósito de brindar a los usuarios productos

multimedia tales como música, video e imágenes, orientados a la descarga de

dichos productos para facilitar la demanda de los usuarios.

REQUERIMIENTOS DEL SISTEMA

Para poder utilizar esta página deberá contar, como mínimo con lo siguiente: Sistema operativo Windows® de 64 bits:

o Windows XP o Windows Vista o Windows 7 o Windows 8

Computadora PC con el sistema operativo detallado y funcionando correctamente.

ACCESO A LA APLICACIÓN

Una vez ingresado a la aplicación nos mostrara un resumen de los contenidos más descargados y los contenidos más votados, realizados por los clientes.

Page 50: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

50

LOGIN ADMINISTRADOR

Cuando un administrador se logea debe de enviarlo al módulo de administración,

donde se encarga de efectuar el mantenimiento de los usuarios y los productos

Page 51: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

51

LOGIN USUARIO

Cuando un usuario ingresa lo lleva a su perfil el cual le mostrara su información

necesaria para realizar: Sus descargas, regalos realizados, sus regalos, editar

información, regalar, etc.

1. PESTAÑA REGISTRAR

En la pestaña de REGISTRAR nos muestra los campos que se utilizan para crear

un Usuario.

Page 52: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

52

2. PESTAÑA TIENDA

En la pestaña de TIENDA nos muestra los campos por los cuales vamos a buscar

el producto, el cual lo podemos encontrar de 4 formas que son: Nombre, Tipo,

Autor y Precio.

Una vez realizada la búsqueda nos muestra en una tabla los resultados de

dicha búsqueda y al mismo tiempo un botón de descarga el cual nos permitirá

descargar una vez seleccionado el producto.

Page 53: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

53

3. PESTAÑA ADMINISTRACION

En la pestaña de ADMINISTRACION se encuentra nuestro módulo de

administración que contiene como índices principales los siguiente:

En esta pestaña nosotros realizamos la parte de mantenimiento de los artículos

y los usuarios registrados en nuestra BD.

Page 54: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

54

CONTENIDO

o INSERTAR

Insertamos los datos especificados por los campos de la tabla

Contenido.

MODIFICAR

Seleccionamos el producto, una vez seleccionado el producto se accede

a sus datos para poder hacer la modificación.

Page 55: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

55

o ELIMINAR

Mostramos la tabla Contenido con el cual nos guiaremos para saber su

ID. Ingresamos el ID seleccionado para eliminar el contenido de la

CATEGORIA

o INSERTAR

Insertamos los datos especificados por los campos de la tabla Categoria

Page 56: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

56

o MODIFICAR

Seleccionamos la categoría a modificar, una vez seleccionada la

categoría se accede a sus datos para poder hacer la modificación.

Page 57: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

57

o ELIMINAR

Mostramos la tabla Categoría con el cual nos guiaremos para saber su

ID. Ingresamos el ID seleccionado para eliminar el contenido de la BD.

Page 58: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

58

PROMOCIONES

o INSERTAR

Insertamos los datos especificados por los campos de la tabla

Promoción.

Page 59: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

59

o MODIFICAR

Seleccionamos la promoción a modificar, una vez seleccionada la

promoción se accede a sus datos para poder hacer la modificación.

Page 60: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

60

o ELIMINAR

Mostramos la tabla de las Promociones con el cual nos guiaremos para

saber su ID. Ingresamos el ID seleccionado para eliminar el contenido

de la BD.

Page 61: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

61

USUARIO

o CARGAR DINERO

Seleccionar el correo del Usuario y el monto a recargar, una vez hecho

el procedimiento se muestra una grilla con los datos del Usuario al cual

se le ha recargado el saldo.

Page 62: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

62

o CERRAR CUENTA

Mostramos la Tabla Usuario y por medio del campo correo nosotros

eliminaremos a dicho usuario que este asociado a ese campo. Hay que

considerar lo siguiente para eliminar a un Usuario:

− Usuario se encuentre habilitado

− No cuente con saldo

CONCLUCIONES:

• A partir de aquí, se detallan diferentes conclusiones agrupadas en puntos

claramente diferenciados y que correspondes a cada una de las fases y

entregables de las que se compone el proyecto.

• En la primera fase del Proyecto Final se realizó el modelado de datos y el

modelo entidad relación, a partir de este se realizó el modelo relacional que

permite almacenar la información del sistema de descarga, además de ellos

se realizó la normalización usando la metodología de la transformación de

los 8 pasos del modelo entidad relación al modelo relacional.

• En la segunda fase del Proyecto Final se realizo las consultas en la base de

datos a los cuales cumplen con los requerimientos, como puntos final se

realizó los procedimientos almacenados en los cuales se aplican los

Page 63: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

63

conocimientos sobre dicho tema estos procedimientos cumplen con los

requerimientos iniciales del proyecto.

• Por último, y a modo de enlace entre los conocimientos adquiridos en el

curso de Administración de datos y la Información podemos decir que

hicimos uso de todos los conocimientos dictados en el curso aplicando cada

uno de ellos para cada entregable de proyecto.

GLOSARIO

Modelado de Datos

o Colección de conceptos que describen la estructura de una Base de

Datos.

Estructura de Base de Datos

o Tipos de datos, vínculos y restricciones.

o Modelo relacional: Representa la Base de datos como una colección de

relaciones.

Normalización

o Proceso de conversión de una relación en una forma estándar, con el fin

de eliminar la redundancia de datos.

Procedimientos almacenados

o Secuencia ordenada de instrucciones T-SQL, que pueden recibir y

proporcionar parámetros provistos por el usuario y se pueden guardar

en el servidor con un nombre, para posteriormente se invocados y

ejecutados, por lo regular desde una aplicación.

Bibliografía

Paginas:

• “Crear un procedimiento almacenado”

http://msdn.microsoft.com/es-es/library/ms345415.aspx

• “Procedimientos almacenados (parámetros de entrada)”

http://www.sqlserverya.com.ar/temarios/descripcion.php?c

od=122&punto=122

• “Como crear Procedimientos Almacenados en Sql Server”

http://cristiantorresalfaro.blogspot.com/2012/06/como-

crear-procedimientos-almacenados.html

Page 64: INFORME-ADMINISTRACION DE LOS DATOS Y LA INFORMACION.pdf

64

• “Procedimientos almacenados en Transact SQL”

http://www.devjoker.com/contenidos/articulos/238/Proced

imientos-almacenados-en-Transact-SQL.aspx

• “[SQL]Procedimientos almacenados paso a paso”

http://mspnor.com/blog/2008/10/31/sqlprocedimientos-

almacenados-paso-a-paso/