Sei sulla pagina 1di 6

PRACTICA II IMPLEMENTACION DE BASE DE DATOS

Apellidos y Nombres:

FILA - 2

Espino Valenzuela, Luis Gustavo________ Fecha: ____03___ Noviembre 2010

1. Se dispone de las siguientes tablas con los siguientes datos: Utilizando consola crear la base de datos HOSPITAL y las tablas, luego insertar los respectivos datos, e incluir sus restricciones: (3 pts.)

use master create database Hospital go use Hospital Go create table hospitales ( cod_hospital int primary key , nombre varchar(50), direccion varchar(20), num_plazas int ) create table personas ( cod_hospital int references hospitales(cod_hospital) , dni char(8) , apellidos varchar(50) , funcion varchar(20), salario int ); GO create table medicos ( cod_hospital int references hospitales(cod_hospital) , dni char(8) , apellidos varchar(50) , especialidad varchar(20) ) GO insert insert insert insert GO into into into into hospitales hospitales hospitales hospitales values values values values (1 (2 (3 (4 ,'Rafael Mendez','Gran Via, 7',250) ,'Reina Sofia','junterone, 5',225) ,'Principe Asturias','Venida Colon',150) ,'Virgen de la Arrixaca','Av. Juan CArlos, I',250)

insert into personas values insert into personas values insert into personas values insert into personas values insert into personas values insert into personas values insert into personas values Dolores','CONSERJE',1200) insert into personas values insert into personas values insert into personas values insert into personas values GO

( ( ( ( ( ( ( ( ( ( (

1, 4, 2, 2, 4, 3, 4, 2, 1, 1, 3,

'12345678','garcia harnandez helario','CONSERJE',1500) '22233311','Martinez Molina, Gloria','MEDICO',1600) '22233322','Tristan Garcia, Ana','MEDICO',1900) '22233333','Martinez Molina, Andres','MEDICO',1600) '33222111','Meza del Castillo, Juan','MEDICO',2200) '55544411','Ruiz Hernandez, CAridad','MEDICO',1900) '55544412','Jimenez, Jimenez, '55544433','Gonzalez Marin, Alicia','CONSERJE',1200) '66655544','Castillo Montes, Pedro','MEDICO',1700) '87654321','Fuentes Bermejo, Carlos','DIRECTOR',2000) '99988333','Serrano Diaz, ALejandro','DIRECTOR',2400) '22233311','Martinez Molina, Gloria','PSIQUIATRA') '22233322','Tristan Garcia, Ana','CIRUJANO') '22233333','Martinez Molina, Andres','CIRUJANO') '33222111','Meza del Castillo, Juan','DERMATOLOGO') 1, '66655544','Castillo Montes, Pedro','PSIQUIATRA')

insert into medicos values ( 4, insert into medicos values ( 2, insert into medicos values ( 2, insert into medicos values ( 4, insert into medicos values (

2. Con la base de datos y sus tablas respectivas: a) Crear las vistas teniendo en cuenta las siguientes consultas: (5 Pts.) Mostrarlas personas que su oficio sea Cirujano y que este en el Hospital Reina Sofa
create view uno AS select P.cod_hospital, P.dni, P.apellidos, funcion, salario from (personas P INNER JOIN medicos M on P.dni = M.dni ) inner join hospitales H on P.cod_hospital = H. cod_hospital where especialidad = 'CIRUJANO' and H.nombre = 'Reina Sofia' ; select * from uno

Mostrar el promedio de salarios por especialidad.


create view dos as select M.especialidad,avg(salario) as Promedio from personas P INNER JOIN medicos M on P.dni = M.dni group by M.especialidad; select * from dos

Seleccionar a las personas que ganan el salario mayor de sus respectivas especialidades
create view tres as select M.especialidad,max(salario) as Promedio from personas P INNER JOIN medicos M on P.dni = M.dni group by M.especialidad

select * from tres

Mostrarla funcin de las personas y la especialidad Mdicos


create view cuatro as select P.dni, P.apellidos, funcion, M.especialidad from personas P INNER JOIN medicos M on P.dni = M.dni select * from cuatro

Mostrar el apellido de las personas que trabajan el hospital Prncipe Asturias.

create view cinco as select P.cod_hospital, P.dni, P.apellidos, funcion, salario from (personas P INNER JOIN medicos M on P.dni = M.dni ) inner join hospitales H on P.cod_hospital = H. cod_hospital where H.nombre = 'Principe Asturias' select * from cinco

b) Crear 4 vistas teniendo en cuenta el uso de GROUP BY ORDEN BY - HAVING - COUNT en las subconsultas(4 Pts.)
create view trece as select funcion from personas P where dni = (select dni from medicos where apellidos = 'Martinez Molina, Gloria')

group by funcion;
select * from trece

create view catorce as select funcion from personas P where dni = (select dni from medicos where apellidos = 'Martinez Molina, Gloria') group by funcion

order by funcion;
select * from catorce

create view qince as select avg(salario ) from personas where group by funcion

having

avg(salario ) > 100

create view diezseies AS select from (personas P INNER JOIN P.dni = M.dni ) inner join hospitales H on P.cod_hospital = H. cod_hospital where especialidad = 'DERMATOLOGO'

count(*)

medicos M on

c) Solicitar el acceso a 3 vistas creadas y mostrar resultado (3 pt)


select * from cuatro

select * from tres

select * from uno

d) Crear 2 vistas horizontales y mostrar resultado (2 pt)


create view once as select P.cod_hospital, P.dni, P.apellidos, funcion, salario from (personas P INNER JOIN medicos M on P.dni = M.dni ) inner join hospitales H on P.cod_hospital = H. cod_hospital where H.nombre = 'Reina Sofia' select * from once

create view doce AS select P.cod_hospital, P.dni, P.apellidos, funcion, salario from (personas P INNER JOIN medicos M on P.dni = M.dni ) inner join hospitales H on P.cod_hospital = H. cod_hospital where especialidad = 'DERMATOLOGO' ; select * from doce

e) Escribir 3 ventajas y 3 inconvenientes de las vistas.(3 pts) Ventajas : 1. Limita el acceso a las tablas a los usuarios 2. Las datos de diversas tablas ya se encuentran listos, pues son tablas virtuales 3. Ahorro de memoria, de tiempo de respuesta Desventajas 1. El numero de vistas limita la velocidad de la base de datos 2. Restricciones referidas a las actualizaciones. 3. El rendimiento del sistema cuando las consultas son complejas.

LA RESPUESTA,PEGAR EN ORDEN DE LAS PREGUNTAS EN ESTE DOC. EL RESULTADO CON CAPTURA DE PANTALLA

Potrebbero piacerti anche