ESCUELA ACADEMICO PROFESIONAL DE INGENIERIA EN INFORMATICA Y SISTEMAS RPP NOTICIAS BASE DE DATOS II DOCENTE: EQUIPO DE TRABAJO: AÑO: 2013 1 CON MUCHO ESTIMA Y RESPETO: Este proyecto decimiento a esta prestigiosa universidad la cual abrió abre sus puertas a jóvenes como nosotros, preparándonos para un futuro competitivo personas de bien. 2 y formándonos como CONTENIDO INDICE DE ESQUEMAS ...................................................................................................... 4 INDICE DE TABLAS ............................................................................................................ 5 INTRODUCCION .................................................................................................................. 7 DISEÑO DEL MODELO ENTIDAD – RELACION ............................................................ 8 DISEÑO DEL MODELO RELACIONAL ...................................................................... 13 CODIGO GENERADO USANDO FORWARD ENGINEER (INGENIERIA PROGRESIVA) ................................................................................................................ 14 I. DIAGRAMA RELACIONAL GENERADO EN SQL 2005 ....................................... 19 II. TABLAS POBLADAS DE LA BASE DE DATOS DE RPP ...................................... 20 III. CONSULTAS Y VISTAS ......................................................................................... 28 ALGEBRA RELACIONAL: CONSULTAS ................................................................... 28 IV. CONSULTAS Y VISTAS ......................................................................................... 34 CODIGO DEL ALGEBRA RELACIONAL: CONSULTAS .............................................. 34 CODIGO DEL ALGEBRA RELACIONAL: VISTAS ....................................................... 36 V. PROCEDIMIENTOS ALMACENADOS en T-SQL ................................................... 38 VI. FUNCIONES en T-SQL ............................................................................................ 40 VII. TRIGGERS en T-SQL............................................................................................... 41 VIII. FORMULARIOS EN VISUAL STUDIO 2012 ........................................................ 42 Ventana principal:................................................................................................................. 42 IX. ANALISIS DE RESULTADOS ................................................................................ 44 X. CONCLUSIONES ........................................................................................................ 46 XI. RECOMENDACIONES ........................................................................................... 47 XII. BIBLIOGRAFIA ....................................................................................................... 48 3 INDICE DE ESQUEMAS Esquema Esquema Esquema Esquema Esquema Esquema Esquema Esquema 1: Diagrama E-R de RPP noticias .............................................................................8 2: Parte del Diagrama E-R: Lugar, Ciudad y País. ...........................................................9 3: Parte del Diagrama E-R: Lugar y Evento....................................................................10 4: Parte del diagrama E-R: Evento y Noticia ..................................................................10 5: Parte del diagrama E-R: Noticia y Entrevistador ........................................................11 6: Parte del diagrama E-R: Noticia y Lector ...................................................................12 7: Diagrama Relacional de RPP noticias ........................................................................13 8: Diagrama Relacional de RPP noticias generado en SQL 2005 ...................................19 4 INDICE DE TABLAS TABLA 1: Tabla PAIS.....................................................................................................................20 TABLA 2: Tabla CIUDAD ..............................................................................................................21 TABLA 3: Tabla LUGAR................................................................................................................21 TABLA 4: Tabla EVENTO .............................................................................................................22 TABLA 5: Tabla NOTICIA .............................................................................................................22 TABLA 6: Tabla CATEGORIA_NOTICIA ....................................................................................23 TABLA 7: Tabla ENTREVISTADOR.............................................................................................23 TABLA 8: Tabla TIPO_ENTREVISTADOR ..................................................................................24 TABLA 9: Tabla REPORTAJE .......................................................................................................24 TABLA 10: Tabla PALABRA_CLAVE ..........................................................................................25 TABLA 11: Tabla TIPO_FORMATO .............................................................................................26 TABLA 12: Tabla COMENTARIO .................................................................................................26 TABLA 13: Tabla LECTOR ............................................................................................................27 5 6 INTRODUCCION Desde los inicios de la historia las distintas empresas que se dedican al campo periodístico, tal es el caso del grupo RPP noticias del Perú, han buscado siempre llegar la mayor numero de público lector u oyente, para esto sus métodos han ido evolucionando, desde los periódicos, la radio y la televisión, hasta llegar a los tiempos actuales donde se ve que los usuarios normales podemos mantenernos informados casi al instante de ocurrido el evento periodístico, esto gracias a los sistemas de información tal como es, en este caso particular, la página web de RPP noticias del Perú. Para el diseño de la base de datos de RPP aplicamos al comienzo la ingeniería regresiva, por el hecho de que hemos partido desde la visión general de la página web de RPP para poder identificar las entidades existentes y las posibles relaciones que hay entre ellas. A partir de esto construimos un modelo E-R (realizado utilizando la herramienta de software DIA) para su posterior modelo Relacional, los cuales mostraremos posteriormente en el contenido de esta monografía. Una vez aplicado la ingeniería regresiva, pasaremos a aplicar la ingeniería progresiva, pasando el modelo relacional hecho en ERWIN 7.3, al SGBD SQL 2005, donde realizaremos múltiples consultas y vistas sobre las tablas (que han sido pobladas previamente) las cuales serán explicadas y descritas con detalle en el contenido de esta monografía. La información es uno de los recursos más importantes que tienen las empresas, en especial las empresas periodísticas; y muchas no le dan la debida importancia que merece. La necesidad de mejorar muchos sistemas de información es olvidada en muchos casos por los jefes superiores, no tomando en cuenta la asignación de un presupuesto para el mantenimiento y protección de la valiosa información, como ventaja de RPP noticias, ya usa estos sistemas de información, mediante su página web, gracias a la cual es capaz de captar la mayor cantidad de usuarios lectores y de esta forma, mantenerse a la vanguardia de otras empresas periodísticas competidoras. 7 DISEÑO DEL MODELO ENTIDAD – RELACION El modelo de datos entidad-relación (E-R) está basado en una percepción del mundo real que consta de una colección de objetos básicos, llamados entidades, y de relaciones entre estos objetos. (Henry F. Korth, Fundamentos de Bases de Datos – Cuarta Edición) El modelo E-R que hemos elaborado, usando el software DIA, es el siguiente: Esquema 1: Diagrama E-R de RPP noticias Fuente: Elaboración propia Descripción: Con este diagrama representamos las entidades y sus atributos, junto con las relaciones que guardan entre ellas. A continuación se muestran fragmentos de nuestro diagrama E-R con una breve descripción de cada uno: 8 • Entidades: Lugar, Ciudad y País Esquema 2: Parte del Diagrama E-R: Lugar, Ciudad y País. Fuente: Elaboración propia Descripción: En este fragmento del diagrama E-R se visualiza como es que el acontecimiento que genera la noticia tiene un ámbito, en este caso consideramos el ámbito como “Lugar”, la cual está en una determinada “Ciudad” y a su vez cada ciudad está dentro de un “País” • Entidades: Lugar y Evento 9 Esquema 3: Parte del Diagrama E-R: Lugar y Evento. Fuente: Elaboración propia Descripción: En este fragmento del Diagrama E-R, se visualiza la relación que guarda el “Evento” (acontecimiento ocurrido, que da origen a una noticia) con el “Lugar” donde ha ocurrido tal Evento. • Entidades: Evento y Noticia Esquema 4: Parte del diagrama E-R: Evento y Noticia Fuente: Elaboración propia Descripción: En este fragmento del diagrama E-R se puede apreciar la entidad “Evento” (evento es el acontecimiento que ha ocurrido, el cual genera la noticia que los usuarios leemos), la cual genera una “Noticia”; un evento genera una sola noticia dentro de la base de datos de RPP, a eso se debe la cardinalidad (de uno a uno). 10 • Entidades: Noticia y Entrevistador Esquema 5: Parte del diagrama E-R: Noticia y Entrevistador Fuente: Elaboración propia Descripción: En este fragmento del diagrama E-R se visualiza la entidad “Noticia”, con sus atributos multivaluados: “palabra_clave”, “tipo_formato_noticia” y “categoría_noticia”, los cuales posteriormente generaran tablas con relaciones no identificadas con la entidad Noticia; y la relación que existe entre “Noticia” y “Entrevistador”, el cual es la persona que va a realizar el reportaje de un acontecimiento para escribir una nota periodística (Noticia). 11 • Entidades: Noticia y Lector Esquema 6: Parte del diagrama E-R: Noticia y Lector Fuente: Elaboración propia Descripción: En este fragmento del diagrama E-R se puede observar cómo es que el “Lector” puede hacer comentarios sobre las “Noticias”, para esto el lector tiene que identificarse previamente, usando su correo electrónico para esto, varios lectores pueden comentar, si lo desean, múltiples noticias, por lo que la relación tiene cardinalidad de “muchos a muchos”. 12 DISEÑO DEL MODELO RELACIONAL En el modelo relacional se utiliza un grupo de tablas para representar los datos y las relaciones entre ellos. Cada tabla está compuesta por varias columnas, y cada columna tiene un nombre único. (Henry F. Korth, Fundamentos de Bases de Datos – Cuarta Edición) El modelo Relacional que hemos elaborado, hecho en ERWin 7.3, es el siguiente: PAIS CIUDAD cod_ciudad LUGAR nom_ciudad población_ciudad gentilicio_ciudad aniversario_ciudad alias_ciudad latitud_ciudad cod_pais (FK) cod_lugar desc_lugar cod_ciudad (FK) REPORTAJE NOTICIA EVENTO cod_evento detalle_evento fecha_evento cod_lugar (FK) cod_noticia cod_categoria_noticia (FK) cod_evento (FK) titulo_noticia epigrafe_noticia cuerpo_noticia cantidad_visitas cod_formato (FK) cod_palabra_clave (FK) cod_noticia (FK) cod_entrevistador (FK) cod_reporte cod_categoria_noticia (FK) cod_evento (FK) fecha fuente cod_pais nom_pais población_pais aniversario_pais TIPO_ENTREVISTADOR cod_tipo_entrevistador desc_tipo_entrevistador ENTREVISTADOR cod_entrevistador nom_entrevistador dni_entrevistador apel_colaborador email_colaborador telef_colaborador direccion_colaborador sexo_colaborador cod_tipo_entrevistador (FK) CATEGORIA_NOTICIA cod_categoria_noticia COMENTARIO desc_categoria_noticia PALABRA_CLAVE cod_palabra_clave desc_palabra_clave TIPO_FORMATO cod_formato nombre_formato cod_noticia (FK) correo_electronico (FK) cod_categoria_noticia (FK) cod_evento (FK) LECTOR correo_electronico desc_comentario fecha_comentario Esquema 7: Diagrama Relacional de RPP noticias Fuente: Elaboración propia Descripción: En este modelo Relacional estamos generando las tablas que serán migradas a SQL 2005 usando la ingeniería progresiva, tablas con sus respectivos atributos primarios, foráneos y sus demás atributos, y algunas relaciones como no identificadas se pueden observar con mayor detalle que en el modelo E-R, también en este paso, usando ERWin 7.3 definimos los tipos de datos, con sus respectivos tamaños. 13 CODIGO GENERADO USANDO FORWARD ENGINEER (INGENIERIA PROGRESIVA) CREATE TABLE CATEGORIA_NOTICIA ( cod_categoria_noticia varchar(20) NOT NULL , desc_categoria_noticia varchar(20) NULL ) go ALTER TABLE CATEGORIA_NOTICIA ADD CONSTRAINT XPKCATEGORIA_NOTICIA PRIMARY KEY (cod_categoria_noticia ASC) go CREATE TABLE CIUDAD ( cod_ciudad nom_ciudad población_ciudad gentilicio_ciudad aniversario_ciudad alias_ciudad latitud_ciudad cod_pais ) go CLUSTERED varchar(20) NOT NULL , varchar(30) NULL , varchar(20) NULL , varchar(20) NULL , datetime NULL , varchar(20) NULL , integer NULL , varchar(20) NULL ALTER TABLE CIUDAD ADD CONSTRAINT XPKCIUDAD PRIMARY KEY ASC) go CLUSTERED (cod_ciudad CREATE TABLE COMENTARIO ( cod_noticia varchar(20) NOT NULL , correo_electronico varchar(50) NOT NULL , desc_comentario varchar(200) NULL , fecha_comentario datetime NULL , cod_categoria_noticia varchar(20) NOT NULL , cod_evento varchar(20) NOT NULL ) go ALTER TABLE COMENTARIO ADD CONSTRAINT XPKCOMENTARIO PRIMARY KEY CLUSTERED (cod_noticia ASC,correo_electronico ASC,cod_categoria_noticia ASC,cod_evento ASC) go CREATE TABLE ENTREVISTADOR ( cod_entrevistador varchar(20) nom_entrevistador varchar(50) 14 NOT NULL , NULL , dni_entrevistador varchar(8) NULL , apel_colaborador varchar(30) NULL , email_colaborador varchar(50) NULL , telef_colaborador numeric(10) NULL , direccion_colaborador varchar(50) NULL , sexo_colaborador varbinary NULL , cod_tipo_entrevistador varchar(20) NULL ) go ALTER TABLE ENTREVISTADOR ADD CONSTRAINT XPKENTREVISTADOR PRIMARY KEY (cod_entrevistador ASC) go CREATE TABLE EVENTO ( cod_evento detalle_evento fecha_evento cod_lugar ) go varchar(20) NOT NULL , varchar(50) NULL , datetime NULL , varchar(20) NULL ALTER TABLE EVENTO ADD CONSTRAINT XPKEVENTO PRIMARY KEY ASC) go CREATE TABLE LECTOR ( correo_electronico ) go varchar(50) varchar(20) varchar(50) varchar(20) CLUSTERED NOT NULL , NULL , NULL ALTER TABLE LUGAR ADD CONSTRAINT XPKLUGAR PRIMARY KEY ASC) go CREATE TABLE NOTICIA ( cod_noticia titulo_noticia CLUSTERED (cod_evento NOT NULL ALTER TABLE LECTOR ADD CONSTRAINT XPKLECTOR PRIMARY KEY (correo_electronico ASC) go CREATE TABLE LUGAR ( cod_lugar desc_lugar cod_ciudad ) go CLUSTERED CLUSTERED (cod_lugar varchar(20) NOT NULL , varchar(100) NULL , 15 epigrafe_noticia varchar(500) NULL , cuerpo_noticia varchar(8000) NULL , cantidad_visitas integer NULL , cod_formato varchar(20) NULL , cod_categoria_noticia varchar(20) NOT NULL , cod_evento varchar(20) NOT NULL , cod_palabra_clave varchar(20) NULL ) go ALTER TABLE NOTICIA ADD CONSTRAINT XPKNOTICIA PRIMARY KEY CLUSTERED (cod_noticia ASC,cod_categoria_noticia ASC,cod_evento ASC) go CREATE TABLE PAIS ( cod_pais nom_pais población_pais aniversario_pais ) go varchar(20) NOT NULL , varchar(20) NULL , varchar(20) NULL , datetime NULL ALTER TABLE PAIS ADD CONSTRAINT XPKPAIS PRIMARY KEY go CREATE TABLE PALABRA_CLAVE ( cod_palabra_clave varchar(20) desc_palabra_clave varchar(20) ) go CLUSTERED (cod_pais ASC) NOT NULL , NULL ALTER TABLE PALABRA_CLAVE ADD CONSTRAINT XPKPALABRA_CLAVE PRIMARY KEY (cod_palabra_clave ASC) go CLUSTERED CREATE TABLE REPORTAJE ( cod_noticia varchar(20) NOT NULL , cod_entrevistador varchar(20) NOT NULL , cod_reporte varchar(20) NOT NULL , fecha datetime NULL , fuente varchar(30) NULL , cod_categoria_noticia varchar(20) NOT NULL , cod_evento varchar(20) NOT NULL ) go ALTER TABLE REPORTAJE ADD CONSTRAINT XPKREPORTAJE PRIMARY KEY CLUSTERED (cod_noticia ASC,cod_entrevistador ASC,cod_reporte ASC,cod_categoria_noticia ASC,cod_evento ASC) go 16 CREATE TABLE TIPO_ENTREVISTADOR ( cod_tipo_entrevistador varchar(20) NOT NULL , desc_tipo_entrevistador varchar(20) NULL ) go ALTER TABLE TIPO_ENTREVISTADOR ADD CONSTRAINT XPKTIPO_ENTREVISTADOR PRIMARY KEY (cod_tipo_entrevistador ASC) go CREATE TABLE TIPO_FORMATO ( cod_formato nombre_formato ) go varchar(20) varchar(20) CLUSTERED NOT NULL , NULL ALTER TABLE TIPO_FORMATO ADD CONSTRAINT XPKTIPO_FORMATO PRIMARY KEY (cod_formato ASC) go CLUSTERED ALTER TABLE CIUDAD ADD CONSTRAINT R_14 FOREIGN KEY (cod_pais) REFERENCES PAIS(cod_pais) ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE COMENTARIO ADD CONSTRAINT R_5 FOREIGN KEY (cod_noticia,cod_categoria_noticia,cod_evento) REFERENCES NOTICIA(cod_noticia,cod_categoria_noticia,cod_evento) ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE COMENTARIO ADD CONSTRAINT R_13 FOREIGN KEY (correo_electronico) REFERENCES LECTOR(correo_electronico) ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE ENTREVISTADOR ADD CONSTRAINT R_32 FOREIGN KEY (cod_tipo_entrevistador) REFERENCES TIPO_ENTREVISTADOR(cod_tipo_entrevistador) ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE EVENTO ADD CONSTRAINT R_28 FOREIGN KEY (cod_lugar) REFERENCES LUGAR(cod_lugar) 17 ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE LUGAR ADD CONSTRAINT R_9 FOREIGN KEY (cod_ciudad) REFERENCES CIUDAD(cod_ciudad) ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE NOTICIA ADD CONSTRAINT R_24 FOREIGN KEY (cod_formato) REFERENCES TIPO_FORMATO(cod_formato) ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE NOTICIA ADD CONSTRAINT R_29 FOREIGN KEY (cod_categoria_noticia) REFERENCES CATEGORIA_NOTICIA(cod_categoria_noticia) ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE NOTICIA ADD CONSTRAINT R_30 FOREIGN KEY (cod_evento) REFERENCES EVENTO(cod_evento) ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE NOTICIA ADD CONSTRAINT R_31 FOREIGN KEY (cod_palabra_clave) REFERENCES PALABRA_CLAVE(cod_palabra_clave) ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE REPORTAJE ADD CONSTRAINT R_4 FOREIGN KEY (cod_noticia,cod_categoria_noticia,cod_evento) REFERENCES NOTICIA(cod_noticia,cod_categoria_noticia,cod_evento) ON DELETE NO ACTION ON UPDATE NO ACTION go ALTER TABLE REPORTAJE ADD CONSTRAINT R_11 FOREIGN KEY (cod_entrevistador) REFERENCES ENTREVISTADOR(cod_entrevistador) ON DELETE NO ACTION ON UPDATE NO ACTION go 18 I. DIAGRAMA RELACIONAL GENERADO EN SQL 2005 Esquema 8: Diagrama Relacional de RPP noticias generado en SQL 2005 Fuente: Elaboración propia Descripción: En este modelo Relacional generado en SQL 2005, podemos apreciar todas las tablas generadas, sus claves primarias y todos sus atributos. 19 II. TABLAS POBLADAS DE LA BASE DE DATOS DE RPP ▪ Tabla PAÍS TABLA 1: Tabla PAIS Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada País, con sus respectivos atributos y varios registros que han sido previamente ingresados. 20 ▪ Tabla CIUDAD TABLA 2: Tabla CIUDAD Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada Ciudad, con sus respectivos atributos y varios registros que han sido previamente ingresados. ▪ Tabla LUGAR TABLA 3: Tabla LUGAR Fuente: Elaboración propia 21 Descripción: Esta tabla contiene los datos respectivos de cada Lugar, donde suceden los hechos, con sus respectivos atributos y varios registros que han sido previamente ingresados. ▪ Tabla EVENTO TABLA 4: Tabla EVENTO Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada Evento, con sus respectivos atributos y varios registros que han sido previamente ingresados. ▪ Tabla NOTICIA TABLA 5: Tabla NOTICIA Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada Noticia, que es la que se publica en la página web de RPP, con sus respectivos atributos y varios registros que han sido previamente ingresados. 22 ▪ Tabla CATEGORIA_NOTICIA TABLA 6: Tabla CATEGORIA_NOTICIA Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada Categoría donde se clasifican las noticias en la página web de RPP, con sus respectivos atributos y varios registros que han sido previamente ingresados. ▪ Tabla ENTREVISTADOR TABLA 7: Tabla ENTREVISTADOR Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada Entrevistador, que es la persona que va al lugar de los hechos a recopilar información para redactar la noticia, con sus respectivos atributos y varios registros que han sido previamente ingresados. 23 ▪ Tabla TIPO_ENTREVISTADOR TABLA 8: Tabla TIPO_ENTREVISTADOR Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de Tipo de entrevistador, con sus respectivos atributos y varios registros que han sido previamente ingresados. ▪ Tabla REPORTAJE TABLA 9: Tabla REPORTAJE Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada Reportaje, que es el acto de recopilar los datos para generar la noticia, con sus respectivos atributos y varios registros que han sido previamente ingresados. 24 ▪ Tabla PALABRA_CLAVE TABLA 10: Tabla PALABRA_CLAVE Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada Palabra clave que pueda contener cada noticia en la página web de RPP, con sus respectivos atributos y varios registros que han sido previamente ingresados. 25 ▪ Tabla TIPO_FOMATO TABLA 11: Tabla TIPO_FORMATO Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada Tipo de formato, entre los cuales están: noticias con fotos, audios o videos; que es el acto de recopilar los datos para generar la noticia, con sus respectivos atributos y varios registros que han sido previamente ingresados. ▪ Tabla COMENTARIO TABLA 12: Tabla COMENTARIO Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada Comentario, realizado por distintos lectores, con sus respectivos atributos y varios registros que han sido previamente ingresados. 26 ▪ Tabla LECTOR TABLA 13: Tabla LECTOR Fuente: Elaboración propia Descripción: Esta tabla contiene los datos respectivos de cada Lector, que es el actor usuario de la BD, como lector de las noticias que se publican en la web de RPP, con sus respectivos atributos y varios registros que han sido previamente ingresados. 27 III. CONSULTAS Y VISTAS ALGEBRA RELACIONAL: CONSULTAS 1. Encontrar la noticia con mayor cantidad de visitas 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝜎𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑_𝑣𝑖𝑠𝑖𝑡𝑎𝑠>100 (𝑁𝑂𝑇𝐼𝐶𝐼𝐴) 2. Mostrar todos los nombres de entrevistadores y el titulo de notica (𝜋𝑛𝑜𝑚𝑏𝑒𝑛𝑡𝑟𝑒𝑣𝑖𝑠𝑡𝑎𝑑𝑜𝑟,𝑡𝑖𝑡𝑢𝑙𝑜 𝑛𝑜𝑡𝑖𝑐𝑖𝑎 , (𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝐸𝑁𝑇𝑅𝐸𝑉𝐼𝑆𝑇𝐴𝐷𝑂𝑅 |𝑋|𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸)) 3. Mostrar el título de la noticia que no tenga formato video 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝜎𝑛𝑜𝑚𝑏𝑟𝑒_𝑓𝑜𝑟𝑚𝑎𝑡𝑜≠′ 𝑣𝑖𝑑𝑒𝑜′ (𝑇𝐼𝑃𝑂_𝐹𝑂𝑅𝑀𝐴𝑇𝑂|𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴)) 4. Mostrar el título de la noticia que este en la fecha de 02-02-2010 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝜎𝑓𝑒𝑐ℎ𝑎=′ 02−02−2010′ (𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸 |𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴)) 5. Obtener el título, cantidad de visitas y descripción del lugar, cuya categoría de la noticia sea economía. 𝑀 ← 𝜎𝑓𝑒𝑐ℎ𝑎𝑒𝑣𝑒𝑛𝑡𝑜 =16−12−2013 ( ) 𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋| 𝐿𝑈𝐺𝐴𝑅|𝑋|𝐸𝑉𝐸𝑁𝑇𝑂 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎,𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑_𝑣𝑖𝑠𝑖𝑡𝑎𝑠_ (𝑀) 6. Mostrar el título de noticia que contengan la palabra clave nacional. 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝜎𝑑𝑒𝑠𝑐_𝑝𝑎𝑙𝑎𝑏𝑟𝑎_𝑐𝑙𝑎𝑣𝑒=′ 𝑛𝑎𝑐𝑖𝑜𝑛𝑎𝑙′ (𝑃𝐴𝐿𝐴𝐵𝑅𝐴_𝐶𝐿𝐴𝑉𝐸 |𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴)) 7. Mostrar el nombre de formato video de una noticia 𝜎𝑛𝑜𝑚𝑏𝑟𝑒_𝑓𝑜𝑟𝑚𝑎𝑡𝑜=′ 𝑣𝑖𝑑𝑒𝑜′ (𝑇𝐼𝑃𝑂_𝐹𝑂𝑅𝑀𝐴𝑇𝑂|𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴) 28 8. Obtener el título de noticia que no contenga la categoría salud 𝐵 ← 𝜋𝑡𝑖𝑡𝑢𝑙𝑜𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝜎 𝑑𝑒𝑠𝑐 𝑐𝑎𝑡𝑒𝑔𝑜𝑟𝑖𝑎′ 𝑛𝑜𝑡𝑖𝑐𝑎≠′ 𝑠𝑎𝑙𝑢𝑑 (𝐶𝐴𝑇𝐸𝐺𝑂𝑅𝐼𝐴_𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋| 𝑁𝑂𝑇𝐼𝐶𝐼𝐴)) 𝐴 ← 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝑁𝑂𝑇𝐼𝐶𝐼𝐴) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎,𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑_𝑣𝑖𝑠𝑖𝑡𝑎𝑠 (𝐴 − 𝐵) 9. Mostrar el título de noticia que no tenga un formato imagen ni que la categoría sea espectáculos 𝐴 ← 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝜎 𝑛𝑢𝑚𝑒𝑟𝑜_𝑓𝑜𝑟𝑚𝑎𝑡𝑜≠′ 𝑖𝑚𝑎𝑔𝑒𝑛′ (𝑇𝐼𝑃𝑂_𝐹𝑂𝑅𝑀𝐴𝑇𝑂|𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴)) 𝐵 ← 𝜋𝑡𝑖𝑡𝑢𝑙𝑜𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝜎 𝑐𝑎𝑡𝑒𝑔𝑜𝑟𝑖𝑎′ 𝑛𝑜𝑡𝑖𝑐𝑖𝑎=′ 𝑒𝑠𝑝𝑒𝑐𝑡𝑎𝑐𝑢𝑙𝑜𝑠 (𝐶𝐴𝑇𝐸𝐺𝑂𝑅𝐼𝐴𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋| 𝑁𝑂𝑇𝐼𝐶𝐼𝐴)) 10. Seleccionar la noticia que tenga una cantidad de visitas igual a 200 y la fecha de comentario se el 02-02-2013 𝜎 𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑′ 𝑣𝑖𝑠𝑖𝑡𝑎𝑠=′ 200 ∩ 𝑓𝑒𝑐ℎ𝑎𝑐𝑜𝑚𝑒𝑛𝑡𝑎𝑟𝑖𝑜 =′02−02−2013′ (𝐶𝑂𝑀𝐸𝑁𝑇𝐴𝑅𝐼𝑂 |𝑋| 𝑁𝑂𝑇𝐼𝐶𝐼𝐴)) 11. Seleccionar la noticia que tenga la palabra clave deporte y sea un comentario del 01-22-2013 𝜎 𝑐𝑜𝑑𝑖𝑔𝑜 ∩ 𝑓𝑒𝑐ℎ𝑎𝑐𝑜𝑚𝑒𝑛𝑡𝑎𝑟𝑖𝑜 =′01−22−2013′ 𝑝𝑎𝑙𝑎𝑏𝑟𝑎′ 𝑐𝑙𝑎𝑣𝑒=′ 𝑑𝑒𝑝𝑜𝑟𝑡𝑒𝑠 (𝑃𝐴𝐿𝐴𝐵𝑅𝐴_𝐶𝐿𝐴𝑉𝐸 |𝑋| 𝐶𝑂𝑀𝐸𝑁𝑇𝐴𝑅𝐼𝑂 |𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴)) 12. Mostrar la descripción comentario de una noticia que tenga como correo electrónico julio_esis@gmail.com. 𝜋𝑑𝑒𝑠𝑐_𝑐𝑜𝑚𝑒𝑛𝑡𝑟𝑎𝑟𝑖𝑜 (𝜎 𝑐𝑜𝑟𝑟𝑒𝑜_𝑒𝑙𝑒𝑐𝑡𝑟𝑜𝑛𝑖𝑐𝑜=′ 𝑗𝑢𝑙𝑖𝑜_𝑒𝑠𝑖𝑠@𝑔𝑚𝑎𝑖𝑙.𝑐𝑜𝑚.′ (𝐶𝑂𝑀𝐸𝑁𝑇𝐴𝑅𝐼𝑂) 29 13. Mostrar la cantidad de visitas y los títulos de la noticia que sea de la fecha de 07-07-2013 y la descripción categoría de la noticia sea deporte. 𝐴 ← 𝜎𝑓𝑒𝑐ℎ𝑎=′ 07−07−2013′ ∩𝑑𝑒𝑠𝑐𝑐𝑎𝑡𝑒𝑔𝑜𝑟𝑖𝑎 𝑛𝑜𝑡𝑖𝑐𝑖𝑎 =′ 𝑑𝑒𝑝𝑜𝑟𝑡𝑒 ′ (𝐶𝐴𝑇𝐸𝐺𝑂𝑅𝐼𝐴_𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋| 𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎,𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑_𝑣𝑖𝑠𝑖𝑡𝑎𝑠 (𝐴) 14. Mostrar el epígrafe y los títulos de las noticias que tengan una fecha 05-052012 y una descripción de palabras claves lima. 𝐵 ← 𝜎𝑓𝑒𝑐ℎ𝑎=′ 05−05−2012′ ∩𝑑𝑒𝑠𝑐𝑝𝑎𝑙𝑎𝑏𝑟𝑎 𝑐𝑙𝑎𝑣𝑒 =′ 𝑙𝑖𝑚𝑎′ (𝑃𝐴𝐿𝐴𝐵𝑅𝐴_𝐶𝐿𝐴𝑉𝐸 |𝑋| 𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎,𝑒𝑝𝑖𝑔𝑟𝑎𝑓𝑒 _𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝐵) 15. Mostrar los títulos de las noticias que contengan una fecha 08-05-2013 y sea de formato video 𝐶 ← 𝜎𝑓𝑒𝑐ℎ𝑎=′ 08−05−2013′ ∩𝑛𝑜𝑚𝑏𝑓𝑜𝑟𝑚𝑎𝑡𝑜=′ 𝑣𝑖𝑑𝑒𝑜′ (𝑇𝐼𝑃𝑂_𝐹𝑂𝑅𝑀𝐴𝑇𝑂|𝑋| 𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝐶) 16. Obtener los títulos de las noticias que no tengan formato video en ninguna de sus de sus cantidades de sus visitas 𝑋 ← 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝜎 𝑛𝑢𝑚𝑒𝑟𝑜_𝑓𝑜𝑟𝑚𝑎𝑡𝑜≠′ 𝑣𝑖𝑑𝑒𝑜′ (𝑇𝐼𝑃𝑂_𝐹𝑂𝑅𝑀𝐴𝑇𝑂|𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴)) 𝑌 ← 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝜎 𝑐𝑎𝑛𝑡𝑖𝑑𝑎_𝑣𝑖𝑠𝑖𝑡𝑎𝑠>′150′ (𝑁𝑂𝑇𝐼𝐶𝐼𝐴)) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝑌 − 𝑋) 30 17. Mostrar los títulos de la noticia que sean de la nacionalidad Perú 𝑀 ← 𝜎𝑛𝑜𝑚_𝑝𝑎𝑖𝑠=′𝑝𝑒𝑟𝑢′ (𝑃𝐴𝐼𝑆|𝑋|𝐶𝐼𝑈𝐷𝐴𝐷|𝑋|𝐿𝑈𝐺𝐴𝑅|𝑋|𝐸𝑉𝐸𝑁𝑇𝑂|𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎,𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑_𝑣𝑖𝑠𝑖𝑡𝑎𝑠,𝑑𝑒𝑠𝑐_𝑙𝑢𝑔𝑎𝑟 (𝑀) 18. Obtener los títulos de las noticias que tengan categoría deporte o formato video o ambos 𝑁 ← 𝜎𝑑𝑒𝑠𝑐𝑐𝑎𝑡𝑒𝑔𝑜𝑟𝑖𝑎 𝑛𝑜𝑡𝑖𝑐𝑖𝑎 =′ 𝑑𝑒𝑝𝑜𝑟𝑡𝑒 ′ ∪𝑛𝑜𝑚𝑏𝑓𝑜𝑟𝑚𝑎𝑡𝑜 =′𝑣𝑖𝑑𝑒𝑜 ′ (𝑇𝐼𝑃𝑂_𝐹𝑂𝑅𝑀𝐴𝑇𝑂|𝑋| 𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝐶𝐴𝑇𝐸𝐺𝑂𝑅𝐼𝐴_𝑁𝑂𝑇𝐼𝐶𝐼𝐴) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎,𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑_𝑣𝑖𝑠𝑖𝑡𝑎𝑠,𝑑𝑒𝑠𝑐_𝑐𝑎𝑡𝑒𝑔𝑜𝑟𝑖𝑎_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝑁) 19. Mostrar las fechas y los títulos de las noticias que tengan una fecha 02-07-2013 𝑃 ← 𝜎𝑓𝑒𝑐ℎ𝑎=′ 02−07−2013′ (𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸|𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎,𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑_𝑣𝑖𝑠𝑖𝑡𝑎𝑠,𝑓𝑒𝑐ℎ𝑎 (𝑃) 20. Mostrar los títulos y las fechas de una noticia que sea de categoría político 𝐴 ← 𝜎𝑑𝑒𝑠𝑐𝑐𝑎𝑡𝑒𝑔𝑜𝑟𝑖𝑎 𝑛𝑜𝑡𝑖𝑐𝑖𝑎 =′ 𝑝𝑜𝑙𝑖𝑡𝑖𝑐𝑎′ (𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸|𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋| 𝐶𝐴𝑇𝐸𝐺𝑂𝑅𝐼𝐴_𝑁𝑂𝑇𝐼𝐶𝐼𝐴) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎,𝑓𝑒𝑐ℎ𝑎 (𝐴) 31 ALGEBRA RELACIONAL: VISTAS 1. Muestra los títulos y las fechas de una determinado reportaje Create view reportaje_noticia as 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎,𝑓𝑒𝑐ℎ𝑎 (𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸 |𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴) 2. Muestra lostítulos , cantidad de visitas , al país que pertenece y el nombre de la ciudad 𝜋𝑡𝑖𝑡𝑢𝑙𝑜𝑛𝑜𝑡𝑖𝑐𝑖𝑎 ,𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑𝑣𝑖𝑠𝑖𝑡𝑎𝑠,𝑛𝑜𝑚𝑐𝑖𝑢𝑑𝑎𝑑,𝑛𝑜𝑚𝑝𝑎𝑖𝑠 (𝑃𝐴𝐼𝑆|𝑋|𝐶𝐼𝑈𝐷𝐴𝐷|𝑋| 𝐿𝑈𝐺𝐴𝑅|𝑋|𝐸𝑉𝐸𝑁𝑇𝑂 |𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴) 3. Muestra las vistas de títulos que tengan una fecha 07-07-2013 y que pertenezca a la categoría deporte 𝐴 ← 𝜎𝑓𝑒𝑐ℎ𝑎=′ 07−07−2013′ ∩ 𝑑𝑒𝑠𝑐𝑐𝑎𝑡𝑒𝑔𝑜𝑟𝑖𝑎 𝑛𝑜𝑡𝑖𝑐𝑖𝑎 =′ 𝑑𝑒𝑝𝑜𝑟𝑡𝑒 ′ (𝐶𝐴𝑇𝐸𝐺𝑂𝑅𝐼𝐴𝑁𝑂𝑇𝐼𝐶𝐼𝐴 |𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝐴) 4. Muestra una vista de todas las noticias que tengan fecha 05-05-2012 y la palabra clave lima Create view palabra_clave as 𝐵 ← 𝜎𝑓𝑒𝑐ℎ𝑎=′ 05−05−2012′ ∩𝑑𝑒𝑠𝑐𝑝𝑎𝑙𝑎𝑏𝑟𝑎 𝑐𝑙𝑎𝑣𝑒 =′𝑙𝑖𝑚𝑎′ (𝑃𝐴𝐿𝐴𝐵𝑅𝐴_𝐶𝐿𝐴𝑉𝐸 |𝑋| 𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝐵) 5. Muestra una vista de todas las noticias que tengan una fecha 08-05-2013 y tenga un formato video Create view titulo_noticia as 𝐶 ← 𝜎𝑓𝑒𝑐ℎ𝑎=′ 08−05−2013′ ∩𝑛𝑜𝑚𝑏𝑓𝑜𝑟𝑚𝑎𝑡𝑜=′ 𝑣𝑖𝑑𝑒𝑜′ (𝑇𝐼𝑃𝑂_𝐹𝑂𝑅𝑀𝐴𝑇𝑂|𝑋| 𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸) 𝜋𝑡𝑖𝑡𝑢𝑙𝑜_𝑛𝑜𝑡𝑖𝑐𝑖𝑎,𝑒𝑝𝑖𝑔𝑟𝑎𝑓𝑒 _𝑛𝑜𝑡𝑖𝑐𝑖𝑎 (𝐶) 6. Muestra una vista de todas las noticias con sus títulos de noticias , categoría, fecha comentario y reportaje Create view noticia_registros as 32 𝜋𝑡𝑖𝑡𝑢𝑙𝑜𝑛𝑜𝑡𝑖𝑐𝑖𝑎 ,𝑑𝑒𝑠𝑐𝑐𝑎𝑡𝑒𝑔𝑜𝑟𝑖𝑎 ,𝑓𝑒𝑐ℎ𝑎𝑐𝑜𝑚𝑒𝑛𝑡𝑎𝑟𝑖𝑜,𝑓𝑒𝑐ℎ𝑎 (𝐶𝑂𝑀𝐸𝑁𝑇𝐴𝑅𝐼𝑂|𝑋| 𝐶𝐴𝑇𝐸𝐺𝑂𝑅𝐼𝐴_𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸) 7. Muestra una vista de títulos, formato noticia, nombre del entrevistador y la fecha del reportaje Create view datos_noticia as 𝜋𝑡𝑖𝑡𝑢𝑙𝑜𝑛𝑜𝑡𝑖𝑐𝑖𝑎 ,𝑡𝑖𝑝𝑜𝑓𝑜𝑟𝑚𝑎𝑡𝑜,𝑛𝑜𝑚𝑒𝑛𝑡𝑟𝑒𝑣𝑖𝑠𝑡𝑎𝑑𝑜𝑟,𝑓𝑒𝑐ℎ𝑎 (𝑇𝐼𝑃𝑂_𝐹𝑂𝑅𝑀𝐴𝑇𝑂|𝑋| 𝐸𝑁𝑇𝑅𝐸𝑉𝐼𝑆𝑇𝐴𝐷𝑂𝑅 |𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝑅𝐸𝑃𝑂𝑅𝑇𝐴𝐽𝐸) 8. Muestra una vista de titulos de la noticia, fecha de comentario y al nombre del pais que pertenece Create view comentario_pais as 𝜋𝑡𝑖𝑡𝑢𝑙𝑜𝑛𝑜𝑡𝑖𝑐𝑖𝑎 ,𝑓𝑒𝑐ℎ𝑎𝑐𝑜𝑚𝑒𝑛𝑡𝑎𝑟𝑖𝑜,𝑛𝑜𝑚𝑝𝑎𝑖𝑠 (𝑃𝐴𝐼𝑆|𝑋|𝐶𝐼𝑈𝐷𝐴𝐷|𝑋|𝐿𝑈𝐺𝐴𝑅|𝑋|𝐸𝑉𝐸𝑁𝑇𝑂 |𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴|𝑋|𝐶𝑂𝑀𝐸𝑁𝑇𝐴𝑅𝐼𝑂 (𝑃𝐴𝐼𝑆|𝑋|𝐶𝐼𝑈𝐷𝐴𝐷 |𝑋| 𝐿𝑈𝐺𝐴𝑅|𝑋|𝐸𝑉𝐸𝑁𝑇𝑂 |𝑋|𝑁𝑂𝑇𝐼𝐶𝐼𝐴) 33 IV. CONSULTAS Y VISTAS CODIGO DEL ALGEBRA RELACIONAL: CONSULTAS 1. Encontrar la noticia con mayor cantidad de visitas SELECT cantidad_visitas FROM NOTICIA WHERE cantidad_visitas>100 2. Mostrar todos los nombres de entrevistadores y el titulo de notica SELECT nom_entrevistador,titulo_noticia FROM NOTICIA N INNER JOIN REPORTAJE RE ON N.cod_noticia=RE.cod_noticia INNER JOIN ENTREVISTADOR EN ON RE.cod_entrevistador=EN.cod_entrevistador 3. Muestra los títulos , cantidad de visitas , al país que pertenece y el nombre de la ciudad select titulo_noticia,cantidad_visitas,nom_ciudad,nom_pais from PAIS P INNER JOIN CIUDAD CI ON P.cod_pais=CI.cod_pais INNER JOIN LUGAR L ON CI.cod_ciudad = L.cod_ciudad INNER JOIN EVENTO E ON E.cod_lugar=L.cod_lugar INNER JOIN NOTICIA N ON E.cod_evento =N.cod_evento 4. Muestra los títulos que tengan una fecha 07-07-2013 y que pertenezca a la categoría deporte. SELECT titulo_noticia FROM CATEGORIA_NOTICIA CN INNER JOIN NOTICIA N ON CN.cod_categoria_noticia=N.cod_categoria_noticia INNER JOIN REPORTAJE RE ON N.cod_noticia=RE.cod_noticia WHERE fecha='07-07-2013' AND desc_categoria_noticia='DEPORTE' 5. Muestra las noticias que tengan fecha 05-05-2012 y la palabra clave lima select titulo_noticia,cantidad_visitas from PALABRA_CLAVE PC INNER JOIN NOTICIA N ON PC.cod_palabra_clave = N.cod_palabra_clave INNER JOIN REPORTAJE RE ON N.cod_noticia=RE.cod_noticia where fecha='05-05-2012' and desc_palabra_clave='lima' 6. Muestra todas las noticias que tengan una fecha 08-05-2013 y tenga un formato video 34 select titulo_noticia,fecha,nombre_formato from TIPO_FORMATO TF inner join NOTICIA N ON TF.cod_formato=N.cod_formato inner join REPORTAJE RE ON N.cod_noticia = RE.cod_noticia WHERE FECHA='08-05-2013' AND nombre_formato='VIDEO' 7. Muestra todas las noticias con sus títulos de noticias , categoría, fecha comentario y reportaje SELECT titulo_noticia,fecha_comentario,desc_comentario FROM COMENTARIO CO INNER JOIN NOTICIA N ON CO.cod_noticia = N.cod_noticia INNER JOIN CATEGORIA_NOTICIA CN ON CN.cod_categoria_noticia=N.cod_categoria_noticia INNER JOIN REPORTAJE RE ON RE.cod_noticia=N.cod_noticia 8. Muestra los títulos, formato noticia, nombre del entrevistador y la fecha del reportaje SELECT titulo_noticia,fecha_comentario,desc_comentario FROM COMENTARIO CO INNER JOIN NOTICIA N ON CO.cod_noticia = N.cod_noticia INNER JOIN CATEGORIA_NOTICIA CN ON CN.cod_categoria_noticia=N.cod_categoria_noticia INNER JOIN REPORTAJE RE ON RE.cod_noticia=N.cod_noticia 9. Muestra los titulos de la noticia, fecha de comentario y al nombre del pais que pertenece select titulo_noticia,desc_comentario,fecha_comentario from PAIS P INNER JOIN CIUDAD CI ON P.cod_pais=CI.cod_pais INNER JOIN LUGAR L ON CI.cod_ciudad = L.cod_ciudad INNER JOIN EVENTO E ON E.cod_lugar=L.cod_lugar INNER JOIN NOTICIA N ON E.cod_evento =N.cod_evento INNER JOIN COMENTARIO CO ON CO.cod_noticia=N.cod_noticia 10. Muestra los títulos, cantidad de visitas cuya fecha de evento se 16/12/2013 select titulo_noticia,cantidad_visitas,desc_lugar from NOTICIA N inner join EVENTO E ON N.cod_evento = E.cod_evento inner join LUGAR L on E.cod_lugar=L.cod_lugar where fecha_evento=16/12/2013 35 CODIGO DEL ALGEBRA RELACIONAL: VISTAS 1. Muestra los títulos y las fechas de una determinado reportaje create view fecha_noticia as select fecha,fuente,titulo_noticia from NOTICIA N inner join REPORTAJE RE on N.cod_noticia=RE.cod_noticia 2. Muestra lostítulos , cantidad de visitas , al país que pertenece y el nombre de la ciudad CREATE VIEW NOTICIA_PAIS AS select titulo_noticia,cantidad_visitas,nom_ciudad,nom_pais from PAIS P INNER JOIN CIUDAD CI ON P.cod_pais=CI.cod_pais INNER JOIN LUGAR L ON CI.cod_ciudad = L.cod_ciudad INNER JOIN EVENTO E ON E.cod_lugar=L.cod_lugar INNER JOIN NOTICIA N ON E.cod_evento =N.cod_evento 3. Muestra las vistas de títulos que tengan una fecha 07-07-2013 y que pertenezca a la categoría deporte CREATE VIEW titulonoticia AS SELECT titulo_noticia FROM CATEGORIA_NOTICIA CN INNER JOIN NOTICIA N ON CN.cod_categoria_noticia=N.cod_categoria_noticia INNER JOIN REPORTAJE RE ON N.cod_noticia=RE.cod_noticia WHERE fecha='07-07-2013' AND desc_categoria_noticia='DEPORTE' 4. Muestra una vista de todas las noticias que tengan fecha 05-05-2012 y la palabra clave lima CREATE VIEW PALABRA_LIMA AS select titulo_noticia,cantidad_visitas from PALABRA_CLAVE PC INNER JOIN NOTICIA N ON PC.cod_palabra_clave = N.cod_palabra_clave INNER JOIN REPORTAJE RE ON N.cod_noticia=RE.cod_noticia where fecha ='05-05-2012' and desc_palabra_clave='lima' 36 5. Muestra una vista de todas las noticias que tengan una fecha 08-05-2013 y tenga un formato video CREATE VIEW NOTIFORMATO AS select titulo_noticia,fecha,nombre_formato from TIPO_FORMATO TF inner join NOTICIA N ON TF.cod_formato=N.cod_formato inner join REPORTAJE RE ON N.cod_noticia = RE.cod_noticia WHERE FECHA='08-05-2013' AND nombre_formato='VIDEO' 6. Muestra una vista de todas las noticias con sus títulos de noticias , categoría, fecha comentario y reportaje CREATE VIEW NOTI_COMENTARIO AS SELECT titulo_noticia,fecha_comentario,desc_comentario FROM COMENTARIO CO INNER JOIN NOTICIA N ON CO.cod_noticia=N.cod_noticia INNER JOIN CATEGORIA_NOTICIA CN ON CN.cod_categoria_noticia=N.cod_categoria_noticia INNER JOIN REPORTAJE RE ON RE.cod_noticia=N.cod_noticia 7. Muestra una vista de títulos, formato noticia, nombre del entrevistador y la fecha del reportaje CREATE VIEW TITULOS_ENTREVISTADOR_TIPOFORMATO AS select titulo_noticia,nombre_formato,nom_entrevistador,fecha from TIPO_FORMATO TF inner join NOTICIA N ON TF.cod_formato = N.cod_formato inner join REPORTAJE RE ON N.cod_noticia = RE.cod_noticia INNER JOIN ENTREVISTADOR EN ON EN.cod_entrevistador=RE.cod_entrevistador 8. Muestra una vista de títulos de la noticia, fecha de comentario y al nombre del país que pertenece CREATE VIEW NOTICIA_COMENTARIO AS select titulo_noticia,desc_comentario,fecha_comentario from PAIS P INNER JOIN CIUDAD CI ON P.cod_pais=CI.cod_pais INNER JOIN LUGAR L ON CI.cod_ciudad = L.cod_ciudad INNER JOIN EVENTO E ON E.cod_lugar=L.cod_lugar INNER JOIN NOTICIA N ON E.cod_evento =N.cod_evento INNER JOIN COMENTARIO CO ON CO.cod_noticia=N.cod_noticia 37 V. PROCEDIMIENTOS ALMACENADOS en T-SQL 1. crear un procedimiento almacenado que permita eliminar todas las publicaciones del entrevistador que se ha despedido. create procedure elimina_publicacion @cod_entrevistador varchar(20) as declare @qwe varchar(20) set @qwe=(select comentario.cod_comentario from noticia inner join comentario on noticia.cod_noticia=comentario.cod_noticia where entrevistador.cod_entrevistador=@cod_entrevistador) delete from comentario where cod_comentario=@qwe on noticia.cod_noticia=reportaje.cod_noticia where cod_entrevistador=@cod_entrevistador exec elimina_publicacion 'JOSE' 2. crear un procedimiento almacenado que reciba el correo electronico de un lector y que devuelva todos sus comentarios. create procedure busca_lector @correo varchar(50) as select desc_comentario from comentario inner join lector on comentario.correo_electronico=lector.correo_electronico where lector.correo_electronico=@correo exec busca_lector 'alvaro.sacari@gmail.com' 3. crear un procedimiento almacenado que al ingresar el tipo de entrevistador, que devuelva todos los entrevitadores de ese tipo. create procedure busca_tipo @tipo varchar(50) as select nom_entrevistador from entrevistador inner join tipo_entrevistador on entrevistador.cod_tipo_entrevistador=tipo_entrevistador.cod_t ipo_entrevistador where desc_tipo_entrevistador=@tipo exec busca_tipo 'camarografo' 38 4. crear un procedimiento almacenado que reciba el lugar y que devuelva todas las noticias ocurridas hasta el momento de dicho lugar. create procedure busca_lugar @lugar varchar(50) as select titulo_noticia from noticia inner join evento on noticia.cod_evento=evento.cod_evento inner join lugar on evento.cod_lugar=lugar.cod_lugar where desc_lugar=@lugar exec busca_lugar 'centro' 39 VI. FUNCIONES en T-SQL 1. crear una función que calcule el trimestre de una fecha especifica create function trimestre (@fecha datetime) returns int as begin declare @mes int,@num_trimestre int set @mes=month(@fecha) set @num_trimestre=case when @mes<=3 then 1 when @mes<=6 then 2 when @mes<=9 then 3 when @mes<=12 then 4 else 0 end return @num_trimestre end select dbo.trimestre ('1994/21/12') 2. crear una función que calcule la antigüedad en años de un comentario create function antiguedad (@fecha_comentario datetime) returns int as begin declare @new_fecha datetime, @antiguedad int set @new_fecha=@fecha_comentario set @antiguedad=(year(getdate())-year(@new_fecha)) return @antiguedad end select dbo.antiguedad ('1989/12/04') 40 VII. TRIGGERS en T-SQL 1. Crear un trigger que elimine automáticamente los comentarios de un lector determinado. create trigger eliminar on lector after delete as begin declare @correo varchar(50) delete comentario where correo_electronico=@correo delete lector where correo_electronico=@correo end 2. Crear un trigger que no permita insertar más tipos de entrevistadores create trigger no_entrevistador on tipo_entrevistador for insert as begin if(0<1) begin declare @mensaje varchar(200) set @mensaje='no se tiene prmitido insertar nievos tipos e ntrevistador' raiserror (@mensaje,16,1) end end 41 VIII. FORMULARIOS EN VISUAL STUDIO 2012 Ventana principal: Formulario entrevistador Formulario noticias 42 Formulario lector 43 IX. ANALISIS DE RESULTADOS • Modelo Entidad – Relación: hemos hecho el diseño de este diagrama primero en papel, y luego fuimos modificando en el software DIA, hasta llegar a nuestro diagrama final. • Modelo Relacional: Una vez que terminamos el modelo Entidad – Relación, procedimos a hacer nuestro modelo Relacional en Erwin 7.3, y definir allí los tipos de datos y su respectiva longitud. • Poblado de datos: para esto hemos pasado las tablas, de nuestro modelo relacional hecho en ERwin, aplicando ingeniería progresiva, pasamos a SQL, ya aquí procedimos a poblar la base de datos, con datos reales, tomados de la misma página Web de RPP noticias. • Diseño de consultas y vistas: aplicamos los conocimientos previos de Algebra Relacional para diseñar las consultas y vistas primero sobre las entidades de nuestro modelo relacional y luego sobre las tablas de la base de datos en SQL. • Implementación de consultas en Transact SQL: luego de poblar la base de datos hemos implementado algunas consultas en SQL, obteniendo los resultados deseados satisfactoriamente. • Implementación de procedimientos almacenados en T-SQL: logramos implementar tres procedimientos almacenados, que permiten realizar lo siguiente: o crear un procedimiento almacenado que reciba el correo electrónico de un lector y que devuelva todos sus comentarios. o crear un procedimiento almacenado que al ingresar el tipo de entrevistador, que devuelva todos los entrevistadores de ese tipo. o crear un procedimiento almacenado que reciba el lugar y que devuelva todas las noticias ocurridas hasta el momento de dicho lugar. • Implementación de funciones el T-SQL: implementamos las siguientes funciones : 44 o crear una función que calcule el trimestre de una fecha especifica. o crear una función que calcule la antigüedad en años de un comentario. • Implementación de triggers en T-SQL: implementamos los siguientes triggers , que permiten hacer lo siguiente: o Crear un trigger que elimine automáticamente los comentarios de un lector eliminado. o Crear un trigger que no permita insertar más tipos de entrevistador. 45 X. CONCLUSIONES • Se ha logrado el diseño del Modelo Entidad – Relación y el Modelo Relacional. • Hemos logrado aplicar la Ingeniería Progresiva para pasar nuestra base de datos de ERWIN a SQL, y poblar la base de datos. • Realizamos el poblado de datos, con datos reales tomados de la página de RPP noticias satisfactoriamente. • Hemos logrado formular las consultas en su totalidad, usando Algebra Relacional y algunas vistas. • Hemos logrado implementar algunas consultas en Transact SQL y mostrar los resultados que estos generan. 46 XI. RECOMENDACIONES • La primera recomendación, va dirigida para nuestros demás compañeros, que en un futuro, todos los integrantes dentro de cada grupo debe usar la misma versión de software, para evitar así los inconvenientes que genera la migración, por ejemplo, de la base de datos (pasar la base de datos de una PC a otra). • La segunda recomendación, también dirigida para nuestros compañeros, es que el diseño del modelo Entidad – Relación lo hagan con todos los miembros del grupo presentes, nosotros hemos tenido inconvenientes para terminar nuestro modelo E-R, pero logramos refinarlo aplicando este método, dando cada uno su idea, su percepción y así se pudo notar más rápido donde estaban algunos errores o fallas en nuestras diferentes versiones del modelo E-R. • Y una última recomendación, “siempre es mejor el trabajo en equipo, en este caso, para realizar el diseño de los modelos E-R y MR, que repartirse esas tareas”. 47 XII. BIBLIOGRAFIA - CREACIÓN DEL MODELO ENTIDAD RELACIÓN disponible en: http://www.ender.es/2010/03/modelo-entidad-relacion-un-ejemplo-practico-imatriculacion/ - DESCRIPCIÓN DEL MODELO RELACIONAL disponible en: http://mysql.conclase.net/curso/?cap=003 - USO Y UTILIZACIÓN DEL ERWIN disponible en: http://mysql.conclase.net/curso/?cap=003 - AYUDAS, EJMPLOS Y GUIAS CON LA CREACIÓN DE MODELOS DE ER disponible en: http://www.databaseanswers.org/data_models/index.htm - MIGRAR DE ERWIN A SQL SERVER MANAGMENT STUDIO disponible en: http://adanyc.blogspot.com/2010/05/rapido-y-facil-migracion-erwin-7-sql.html - MANUAL DE SQL CONSULTAS Y VISTAS disponible en: http://sql.11sql.com/ - USO DEL SOFTWARE DIA disponible en: http://www.eskola20.org/formacion/tutoriales/nivel1/mapas/modulos/es/content_1 _23.html 48