Uploaded by Sebastian Gutierrez

TRABAJO FINAL

advertisement
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
Download